├── .gitignore ├── .travis.yml ├── Event to iCalendar convertor ├── Constants.java ├── Main.java └── mycalendar.ics ├── LICENSE.md ├── README.md ├── app ├── build.gradle ├── debug.jks ├── proguard-rules.pro └── src │ ├── debug │ └── res │ │ └── values │ │ └── google_maps_api.xml │ ├── main │ ├── AndroidManifest.xml │ ├── java │ │ ├── android │ │ │ └── support │ │ │ │ └── v4 │ │ │ │ └── preference │ │ │ │ └── PreferenceFragment.java │ │ ├── com │ │ │ ├── android │ │ │ │ └── volley │ │ │ │ │ ├── AuthFailureError.java │ │ │ │ │ ├── Cache.java │ │ │ │ │ ├── CacheDispatcher.java │ │ │ │ │ ├── DefaultRetryPolicy.java │ │ │ │ │ ├── ExecutorDelivery.java │ │ │ │ │ ├── Network.java │ │ │ │ │ ├── NetworkDispatcher.java │ │ │ │ │ ├── NetworkError.java │ │ │ │ │ ├── NetworkResponse.java │ │ │ │ │ ├── NoConnectionError.java │ │ │ │ │ ├── ParseError.java │ │ │ │ │ ├── Request.java │ │ │ │ │ ├── RequestQueue.java │ │ │ │ │ ├── Response.java │ │ │ │ │ ├── ResponseDelivery.java │ │ │ │ │ ├── RetryPolicy.java │ │ │ │ │ ├── ServerError.java │ │ │ │ │ ├── TimeoutError.java │ │ │ │ │ ├── VolleyError.java │ │ │ │ │ ├── VolleyLog.java │ │ │ │ │ └── toolbox │ │ │ │ │ ├── AndroidAuthenticator.java │ │ │ │ │ ├── Authenticator.java │ │ │ │ │ ├── BasicNetwork.java │ │ │ │ │ ├── ByteArrayPool.java │ │ │ │ │ ├── CircularNetworkImageView.java │ │ │ │ │ ├── ClearCacheRequest.java │ │ │ │ │ ├── DiskBasedCache.java │ │ │ │ │ ├── HttpClientStack.java │ │ │ │ │ ├── HttpHeaderParser.java │ │ │ │ │ ├── HttpStack.java │ │ │ │ │ ├── HurlStack.java │ │ │ │ │ ├── ImageLoader.java │ │ │ │ │ ├── ImageRequest.java │ │ │ │ │ ├── JsonArrayRequest.java │ │ │ │ │ ├── JsonObjectRequest.java │ │ │ │ │ ├── JsonRequest.java │ │ │ │ │ ├── NetworkImageView.java │ │ │ │ │ ├── NoCache.java │ │ │ │ │ ├── PoolingByteArrayOutputStream.java │ │ │ │ │ ├── RequestFuture.java │ │ │ │ │ ├── StringRequest.java │ │ │ │ │ └── Volley.java │ │ │ ├── example │ │ │ │ └── android │ │ │ │ │ └── common │ │ │ │ │ └── view │ │ │ │ │ ├── SlidingTabLayout.java │ │ │ │ │ └── SlidingTabStrip.java │ │ │ └── viewpagerindicator │ │ │ │ ├── PageIndicator.java │ │ │ │ └── UnderlinePageIndicator.java │ │ └── org │ │ │ └── opentech │ │ │ ├── ConnectionDetect.java │ │ │ ├── FossasiaApplication.java │ │ │ ├── activities │ │ │ ├── EventDetailsActivity.java │ │ │ ├── MainActivity.java │ │ │ ├── PersonInfoActivity.java │ │ │ ├── RoomImageDialogActivity.java │ │ │ ├── SearchResultActivity.java │ │ │ ├── SettingsActivity.java │ │ │ ├── SplashActivity.java │ │ │ └── TrackActivity.java │ │ │ ├── adapters │ │ │ ├── ScheduleAdapter.java │ │ │ ├── SpeakerAdapter.java │ │ │ └── SponsorAdapter.java │ │ │ ├── alarms │ │ │ └── FosdemAlarmManager.java │ │ │ ├── api │ │ │ └── FossasiaUrls.java │ │ │ ├── db │ │ │ ├── Constants.java │ │ │ ├── DatabaseHelper.java │ │ │ ├── DatabaseManager.java │ │ │ └── JsonToDatabase.java │ │ │ ├── fragments │ │ │ ├── BookmarksListFragment.java │ │ │ ├── FossasiaEventDetailsFragment.java │ │ │ ├── KeySpeakerFragment.java │ │ │ ├── LiveFragment.java │ │ │ ├── MapFragment.java │ │ │ ├── MessageDialogFragment.java │ │ │ ├── PersonInfoListFragment.java │ │ │ ├── PersonsListFragment.java │ │ │ ├── RoomImageDialogFragment.java │ │ │ ├── ScheduleFragment.java │ │ │ ├── ScheduleListFragment.java │ │ │ ├── SearchResultListFragment.java │ │ │ ├── SettingsFragment.java │ │ │ ├── SmoothListFragment.java │ │ │ ├── SpeakerFragment.java │ │ │ ├── SponsorFragment.java │ │ │ └── TracksListFragment.java │ │ │ ├── loaders │ │ │ ├── BookmarkStatusLoader.java │ │ │ ├── LocalCacheLoader.java │ │ │ └── SimpleCursorLoader.java │ │ │ ├── model │ │ │ ├── Building.java │ │ │ ├── Day.java │ │ │ ├── Field.java │ │ │ ├── FossasiaEvent.java │ │ │ ├── KeySpeaker.java │ │ │ ├── Link.java │ │ │ ├── Person.java │ │ │ ├── Speaker.java │ │ │ ├── Sponsor.java │ │ │ ├── Track.java │ │ │ ├── TrackUrlVenue.java │ │ │ └── Venue.java │ │ │ ├── providers │ │ │ └── SearchSuggestionProvider.java │ │ │ ├── receivers │ │ │ └── AlarmReceiver.java │ │ │ ├── services │ │ │ └── AlarmIntentService.java │ │ │ ├── utils │ │ │ ├── ArrayUtils.java │ │ │ ├── BitmapLruCache.java │ │ │ ├── ByteCountInputStream.java │ │ │ ├── DateUtils.java │ │ │ ├── HttpUtils.java │ │ │ ├── NfcReceiverUtils.java │ │ │ ├── NfcSenderUtils.java │ │ │ ├── NfcUtils.java │ │ │ ├── StringUtils.java │ │ │ └── VolleySingleton.java │ │ │ └── widgets │ │ │ └── BookmarksMultiChoiceModeListener.java │ └── res │ │ ├── anim-v21 │ │ └── fab_elevation.xml │ │ ├── anim │ │ ├── partial_zoom_in.xml │ │ ├── partial_zoom_out.xml │ │ ├── partial_zoom_out_cum_total_fade.xml │ │ ├── slide_in_right.xml │ │ ├── slide_out_right.xml │ │ ├── zoom_in.xml │ │ └── zoom_out.xml │ │ ├── color │ │ └── tab_text.xml │ │ ├── drawable-hdpi-v11 │ │ └── ic_stat_fosdem.png │ │ ├── drawable-hdpi │ │ ├── campusmap.png │ │ ├── default_user.png │ │ ├── drawer_shadow.9.png │ │ ├── fosdem_fastscroll_thumb_default_holo.png │ │ ├── fosdem_fastscroll_thumb_pressed_holo.png │ │ ├── fosdem_progress_bg_holo_light.9.png │ │ ├── fosdem_progress_primary_holo_light.9.png │ │ ├── fosdem_progress_secondary_holo_light.9.png │ │ ├── fosdem_progressbar_indeterminate_holo1.png │ │ ├── fosdem_progressbar_indeterminate_holo2.png │ │ ├── fosdem_progressbar_indeterminate_holo3.png │ │ ├── fosdem_progressbar_indeterminate_holo4.png │ │ ├── fosdem_progressbar_indeterminate_holo5.png │ │ ├── fosdem_progressbar_indeterminate_holo6.png │ │ ├── fosdem_progressbar_indeterminate_holo7.png │ │ ├── fosdem_progressbar_indeterminate_holo8.png │ │ ├── ic_access_time_grey600_18dp.png │ │ ├── ic_bookmark_grey600_24dp.png │ │ ├── ic_bookmark_outline_white_24dp.png │ │ ├── ic_bookmark_white_24dp.png │ │ ├── ic_delete_white_24dp.png │ │ ├── ic_directions_white_24dp.png │ │ ├── ic_event_add_white_24dp.png │ │ ├── ic_event_grey600_24dp.png │ │ ├── ic_filter_list_selected_white_24dp.png │ │ ├── ic_filter_list_white_24dp.png │ │ ├── ic_launcher.png │ │ ├── ic_local_offer_black_18dp.png │ │ ├── ic_local_offer_grey600_18dp.png │ │ ├── ic_map_grey600_24dp.png │ │ ├── ic_people_grey600_24dp.png │ │ ├── ic_place_grey600_18dp.png │ │ ├── ic_place_white_24dp.png │ │ ├── ic_place_white_wear.png │ │ ├── ic_play_circle_outline_grey600_24dp.png │ │ ├── ic_public_white_24dp.png │ │ ├── ic_search_white_24dp.png │ │ ├── ic_share_white_24dp.png │ │ ├── ic_stat_fosdem.png │ │ ├── ic_sync_white_24dp.png │ │ ├── linkedin.png │ │ ├── list_focused_holo_dark.9.png │ │ ├── list_focused_holo_light.9.png │ │ ├── list_longpressed_holo_dark.9.png │ │ ├── list_longpressed_holo_light.9.png │ │ ├── opentech_logo.png │ │ ├── opentech_logo_small │ │ ├── room_k1105.png │ │ ├── room_k3x01.png │ │ ├── room_k4x01.png │ │ └── twitter.png │ │ ├── drawable-ldpi │ │ ├── room_aw1105.png │ │ ├── room_aw1115.png │ │ ├── room_aw1117.png │ │ ├── room_aw1120.png │ │ ├── room_aw1121.png │ │ ├── room_aw1124.png │ │ ├── room_aw1125.png │ │ ├── room_aw1126.png │ │ ├── room_ay.png │ │ ├── room_h1301.png │ │ ├── room_h1302.png │ │ ├── room_h1308.png │ │ ├── room_h1309.png │ │ ├── room_h2213.png │ │ ├── room_h2214.png │ │ ├── room_h2215.png │ │ ├── room_janson.png │ │ ├── room_ua2114.png │ │ ├── room_ua2220.png │ │ ├── room_ub2252.png │ │ └── room_ud2120.png │ │ ├── drawable-mdpi-v11 │ │ └── ic_stat_fosdem.png │ │ ├── drawable-mdpi │ │ ├── drawer_shadow.9.png │ │ ├── fosdem_fastscroll_thumb_default_holo.png │ │ ├── fosdem_fastscroll_thumb_pressed_holo.png │ │ ├── fosdem_progress_bg_holo_light.9.png │ │ ├── fosdem_progress_primary_holo_light.9.png │ │ ├── fosdem_progress_secondary_holo_light.9.png │ │ ├── fosdem_progressbar_indeterminate_holo1.png │ │ ├── fosdem_progressbar_indeterminate_holo2.png │ │ ├── fosdem_progressbar_indeterminate_holo3.png │ │ ├── fosdem_progressbar_indeterminate_holo4.png │ │ ├── fosdem_progressbar_indeterminate_holo5.png │ │ ├── fosdem_progressbar_indeterminate_holo6.png │ │ ├── fosdem_progressbar_indeterminate_holo7.png │ │ ├── fosdem_progressbar_indeterminate_holo8.png │ │ ├── ic_access_time_grey600_18dp.png │ │ ├── ic_bookmark_grey600_24dp.png │ │ ├── ic_bookmark_outline_white_24dp.png │ │ ├── ic_bookmark_white_24dp.png │ │ ├── ic_delete_white_24dp.png │ │ ├── ic_directions_white_24dp.png │ │ ├── ic_event_add_white_24dp.png │ │ ├── ic_event_grey600_24dp.png │ │ ├── ic_filter_list_selected_white_24dp.png │ │ ├── ic_filter_list_white_24dp.png │ │ ├── ic_launcher.png │ │ ├── ic_local_offer_black_18dp.png │ │ ├── ic_local_offer_grey600_18dp.png │ │ ├── ic_map_grey600_24dp.png │ │ ├── ic_people_grey600_24dp.png │ │ ├── ic_place_grey600_18dp.png │ │ ├── ic_place_white_24dp.png │ │ ├── ic_place_white_wear.png │ │ ├── ic_play_circle_outline_grey600_24dp.png │ │ ├── ic_public_white_24dp.png │ │ ├── ic_search_white_24dp.png │ │ ├── ic_share_white_24dp.png │ │ ├── ic_stat_fosdem.png │ │ ├── ic_sync_white_24dp.png │ │ ├── list_focused_holo_dark.9.png │ │ ├── list_focused_holo_light.9.png │ │ ├── list_longpressed_holo_dark.9.png │ │ └── list_longpressed_holo_light.9.png │ │ ├── drawable-v21 │ │ └── fab_background.xml │ │ ├── drawable-xhdpi-v11 │ │ └── ic_stat_fosdem.png │ │ ├── drawable-xhdpi │ │ ├── drawer_shadow.9.png │ │ ├── fosdem_fastscroll_thumb_default_holo.png │ │ ├── fosdem_fastscroll_thumb_pressed_holo.png │ │ ├── fosdem_progress_bg_holo_light.9.png │ │ ├── fosdem_progress_primary_holo_light.9.png │ │ ├── fosdem_progress_secondary_holo_light.9.png │ │ ├── fosdem_progressbar_indeterminate_holo1.png │ │ ├── fosdem_progressbar_indeterminate_holo2.png │ │ ├── fosdem_progressbar_indeterminate_holo3.png │ │ ├── fosdem_progressbar_indeterminate_holo4.png │ │ ├── fosdem_progressbar_indeterminate_holo5.png │ │ ├── fosdem_progressbar_indeterminate_holo6.png │ │ ├── fosdem_progressbar_indeterminate_holo7.png │ │ ├── fosdem_progressbar_indeterminate_holo8.png │ │ ├── fossasia.png │ │ ├── ic_access_time_grey600_18dp.png │ │ ├── ic_bookmark_grey600_24dp.png │ │ ├── ic_bookmark_outline_white_24dp.png │ │ ├── ic_bookmark_white_24dp.png │ │ ├── ic_delete_white_24dp.png │ │ ├── ic_directions_white_24dp.png │ │ ├── ic_event_add_white_24dp.png │ │ ├── ic_event_grey600_24dp.png │ │ ├── ic_filter_list_selected_white_24dp.png │ │ ├── ic_filter_list_white_24dp.png │ │ ├── ic_launcher.png │ │ ├── ic_local_offer_black_18dp.png │ │ ├── ic_local_offer_grey600_18dp.png │ │ ├── ic_map_grey600_24dp.png │ │ ├── ic_people_grey600_24dp.png │ │ ├── ic_place_grey600_18dp.png │ │ ├── ic_place_white_24dp.png │ │ ├── ic_place_white_wear.png │ │ ├── ic_play_circle_outline_grey600_24dp.png │ │ ├── ic_public_white_24dp.png │ │ ├── ic_search_white_24dp.png │ │ ├── ic_share_white_24dp.png │ │ ├── ic_stat_fosdem.png │ │ ├── ic_sync_white_24dp.png │ │ ├── list_focused_holo_dark.9.png │ │ ├── list_focused_holo_light.9.png │ │ ├── list_longpressed_holo_dark.9.png │ │ └── list_longpressed_holo_light.9.png │ │ ├── drawable-xxhdpi-v11 │ │ └── ic_stat_fosdem.png │ │ ├── drawable-xxhdpi │ │ ├── drawer_shadow.9.png │ │ ├── fosdem_fastscroll_thumb_default_holo.png │ │ ├── fosdem_fastscroll_thumb_pressed_holo.png │ │ ├── fosdem_progress_bg_holo_light.9.png │ │ ├── fosdem_progress_primary_holo_light.9.png │ │ ├── fosdem_progress_secondary_holo_light.9.png │ │ ├── fosdem_progressbar_indeterminate_holo1.png │ │ ├── fosdem_progressbar_indeterminate_holo2.png │ │ ├── fosdem_progressbar_indeterminate_holo3.png │ │ ├── fosdem_progressbar_indeterminate_holo4.png │ │ ├── fosdem_progressbar_indeterminate_holo5.png │ │ ├── fosdem_progressbar_indeterminate_holo6.png │ │ ├── fosdem_progressbar_indeterminate_holo7.png │ │ ├── fosdem_progressbar_indeterminate_holo8.png │ │ ├── fossasia_sponsor.png │ │ ├── fossasia_squarelogo.png │ │ ├── ic_access_time_grey600_18dp.png │ │ ├── ic_bookmark_grey600_24dp.png │ │ ├── ic_bookmark_outline_white_24dp.png │ │ ├── ic_bookmark_white_24dp.png │ │ ├── ic_delete_white_24dp.png │ │ ├── ic_directions_white_24dp.png │ │ ├── ic_event_add_white_24dp.png │ │ ├── ic_event_grey600_24dp.png │ │ ├── ic_filter_list_selected_white_24dp.png │ │ ├── ic_filter_list_white_24dp.png │ │ ├── ic_launcher.png │ │ ├── ic_local_offer_black_18dp.png │ │ ├── ic_local_offer_grey600_18dp.png │ │ ├── ic_map_grey600_24dp.png │ │ ├── ic_people_grey600_24dp.png │ │ ├── ic_place_grey600_18dp.png │ │ ├── ic_place_white_24dp.png │ │ ├── ic_place_white_wear.png │ │ ├── ic_play_circle_outline_grey600_24dp.png │ │ ├── ic_public_white_24dp.png │ │ ├── ic_search_white_24dp.png │ │ ├── ic_share_white_24dp.png │ │ ├── ic_stat_fosdem.png │ │ ├── ic_sync_white_24dp.png │ │ ├── list_focused_holo_dark.9.png │ │ ├── list_focused_holo_light.9.png │ │ ├── list_longpressed_holo_dark.9.png │ │ └── list_longpressed_holo_light.9.png │ │ ├── drawable-xxxhdpi │ │ └── ic_launcher.png │ │ ├── drawable │ │ ├── activated_background.xml │ │ ├── fab_background.xml │ │ ├── fab_background_highlighted.xml │ │ ├── fosdem_fastscroll_thumb_holo.xml │ │ ├── fosdem_progress_horizontal_holo_light.xml │ │ ├── fosdem_progress_indeterminate_horizontal_holo_light.xml │ │ ├── ic_sponsor_drawer.png │ │ ├── list_selector_background_transition_holo_dark.xml │ │ ├── list_selector_background_transition_holo_light.xml │ │ ├── opentech_app_logo.png │ │ ├── room_chavanne.xml │ │ ├── room_ferrer.xml │ │ ├── room_guillissen.xml │ │ ├── room_k3201.xml │ │ ├── room_k3401.xml │ │ ├── room_k3601.xml │ │ ├── room_k4201.xml │ │ ├── room_k4401.xml │ │ ├── room_k4601.xml │ │ └── room_lameere.xml │ │ ├── layout-sw600dp-land │ │ └── track_schedule.xml │ │ ├── layout │ │ ├── activity_maps.xml │ │ ├── activity_splash.xml │ │ ├── activity_track.xml │ │ ├── content.xml │ │ ├── content_extended_title.xml │ │ ├── footer_main_menu.xml │ │ ├── fragment_event_details.xml │ │ ├── fragment_live.xml │ │ ├── fragment_map.xml │ │ ├── fragment_schedule.xml │ │ ├── fragment_speaker.xml │ │ ├── fragment_tracks.xml │ │ ├── header_main_menu.xml │ │ ├── header_person_info.xml │ │ ├── item_event.xml │ │ ├── item_link.xml │ │ ├── item_main_menu.xml │ │ ├── item_schedule_event.xml │ │ ├── item_speaker.xml │ │ ├── item_sponsor.xml │ │ ├── list_divider.xml │ │ ├── list_tracks.xml │ │ ├── main.xml │ │ ├── track_schedule.xml │ │ ├── track_schedule_event.xml │ │ └── venue_dialog.xml │ │ ├── menu │ │ ├── action_mode_bookmarks.xml │ │ ├── bookmarks.xml │ │ ├── event.xml │ │ ├── main.xml │ │ ├── map.xml │ │ ├── menu_splash.xml │ │ ├── menu_track.xml │ │ ├── person.xml │ │ └── search.xml │ │ ├── values-sw600dp-land │ │ └── bools.xml │ │ ├── values-v11 │ │ └── styles.xml │ │ ├── values-v21 │ │ ├── dimens.xml │ │ └── styles.xml │ │ ├── values-w820dp │ │ └── dimens.xml │ │ ├── values │ │ ├── attrs.xml │ │ ├── bools.xml │ │ ├── colors.xml │ │ ├── dimens.xml │ │ ├── strings.xml │ │ ├── styles.xml │ │ ├── vpi__attrs.xml │ │ └── vpi__defaults.xml │ │ └── xml │ │ ├── main_searchable.xml │ │ └── settings.xml │ └── release │ └── res │ └── values │ └── google_maps_api.xml ├── build.gradle ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat └── settings.gradle /.gitignore: -------------------------------------------------------------------------------- 1 | # built application files 2 | *.apk 3 | 4 | # generated files 5 | build/ 6 | manifest-merger-release-report.txt 7 | 8 | # Local configuration file (sdk path, etc) 9 | local.properties 10 | 11 | # OS X thumbnail db 12 | .DS_Store 13 | 14 | # IDEA/Android Studio project files, because 15 | # the project can be imported from settings.gradle 16 | .idea 17 | *.iml 18 | 19 | # Gradle cache 20 | .gradle 21 | 22 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: android 2 | script: ./gradlew clean assembleDebug 3 | android: 4 | components: 5 | - platform-tools 6 | - tools 7 | - build-tools-21.1.2 8 | - android-21 9 | - extra-google-google_play_services 10 | - extra-google-m2repository 11 | - extra-android-m2repository 12 | - addon-google_apis-google-21 13 | - extra-android-support 14 | deploy: 15 | provider: releases 16 | skip_cleanup: true 17 | api_key: 18 | secure: UxQf5WQ08IJH30i1vLDY+V6TImk1qdUq15yJNFXtJX4/3r4gUuLUWJc7gLaYi3vi+guS1R4ndnsTjaF2yVvjAL7owsQrurx91LvqQ0P9q6ZB66j8QCTM2qBuZ97eC/UO7B57agi0mxKoySQS3PRBJ3iBlVMMEb0LploQ6BilnbE= 19 | file: app/build/outputs/apk/app-debug.apk 20 | on: 21 | tags: true 22 | all_branches: true 23 | -------------------------------------------------------------------------------- /Event to iCalendar convertor/Constants.java: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Created by Abhishek on 06/03/15. 4 | */ 5 | public class Constants { 6 | 7 | public final static int FIRST_NAME = 3; 8 | public final static int LAST_NAME = 4; 9 | public final static int TIME = 1; 10 | public final static int DATE = 0; 11 | public final static int ORGANIZATION = 5; 12 | public final static int EMAIL = 6; 13 | public final static int BLOG = 7; 14 | public final static int TWITTER = 12; 15 | public final static int TYPE_OF_PROPOSAL = 17; 16 | public final static int TOPIC_NAME = 18; 17 | public final static int TRACK = 19; 18 | public final static int ABSTRACT = 20; 19 | public final static int DESCRIPTION = 21; 20 | public final static int URL = 22; 21 | public final static int LINKEDIN = 23; 22 | 23 | 24 | } 25 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # OpenTech summit 2015 app based on FOSSASIA companion-android 2 | 3 | Advanced native Android schedule browser application for the [FOSSASIA](http://fossasia.org/) conference in Singapore. 4 | 5 | This is build upon the [FOSDEM Companion For android](https://github.com/cbeyls/fosdem-companion-android). It uses loaders and fragments extensively and is backward compatible up to Android 2.1 thanks to the support library. 6 | 7 | To get more information and install the app, look at the [Google Play Store](https://play.google.com/store/apps/details?id=be.digitalia.fosdem) page. 8 | 9 | ## How to build 10 | 11 | All dependencies are defined in ```app/build.gradle```. Import the project in Android Studio or use Gradle in command line: 12 | 13 | ``` 14 | ./gradlew assembleRelease 15 | ``` 16 | 17 | The result apk file will be placed in ```app/build/outputs/apk/```. 18 | 19 | ####Build status 20 | [![Build Status](https://travis-ci.org/fossasia/ots15-companion.svg?branch=master)](https://travis-ci.org/fossasia/ots15-companion) 21 | 22 | ## Pending Task 23 | * Download schedule in a background thread 24 | * Notification for Bookmarked Events/Talks 25 | * Integrate Google+ login or any other mechanism to fetch user email address [TBD](https://github.com/fossasia/fossasia-companion-android/issues/68) 26 | * Integrate Google Maps 27 | 28 | 29 | 30 | 31 | ## License 32 | 33 | [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0) 34 | 35 | ## Used libraries 36 | 37 | * [Android Support Library](http://developer.android.com/tools/support-library/) by The Android Open Source Project 38 | * [ViewPagerIndicator](http://viewpagerindicator.com/) by Jake Wharton 39 | * [PhotoView](https://github.com/chrisbanes/PhotoView) by Chris Banes 40 | * [Volley Library](https://android.googlesource.com/platform/frameworks/volley) 41 | * [Snackbar Library](https://github.com/nispok/snackbar) by nispok 42 | ## Contributors 43 | 44 | * Christophe Beyls 45 | * Abhishek Batra 46 | * Manan Wason 47 | * Pratik Todi 48 | * Mario Behling 49 | * Tymon Radzik 50 | * Arnav Gupta 51 | 52 | -------------------------------------------------------------------------------- /app/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.android.application' 2 | 3 | android { 4 | compileSdkVersion 21 5 | buildToolsVersion "21.1.2" 6 | defaultConfig { 7 | applicationId 'org.opentech' 8 | versionCode 14 9 | versionName "1.4" 10 | minSdkVersion 9 11 | targetSdkVersion 21 12 | } 13 | 14 | signingConfigs { 15 | debug { 16 | storeFile file('debug.jks') 17 | storePassword "open-event" 18 | keyAlias "open-event" 19 | keyPassword "open-event" 20 | } 21 | } 22 | buildTypes { 23 | debug { 24 | signingConfig signingConfigs.debug 25 | } 26 | release { 27 | minifyEnabled true 28 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 29 | } 30 | } 31 | productFlavors { 32 | } 33 | compileOptions { 34 | sourceCompatibility JavaVersion.VERSION_1_7 35 | targetCompatibility JavaVersion.VERSION_1_7 36 | } 37 | } 38 | 39 | dependencies { 40 | compile 'com.android.support:appcompat-v7:22.0.+' 41 | compile 'com.android.support:cardview-v7:22.0.0' 42 | compile 'com.google.android.gms:play-services:7.0.0' 43 | compile 'com.nispok:snackbar:2.10.+' 44 | } 45 | -------------------------------------------------------------------------------- /app/debug.jks: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/debug.jks -------------------------------------------------------------------------------- /app/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | 3 | # Action Views 4 | -keep class android.support.v7.widget.SearchView { public *; } -------------------------------------------------------------------------------- /app/src/debug/res/values/google_maps_api.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | AIzaSyDrQEIg2gXQ3GHdLgYT1XFD2pOLeUrT9AU 7 | 8 | -------------------------------------------------------------------------------- /app/src/main/java/com/android/volley/AuthFailureError.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2011 The Android Open Source Project 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package com.android.volley; 18 | 19 | import android.content.Intent; 20 | 21 | /** 22 | * Error indicating that there was an authentication failure when performing a Request. 23 | */ 24 | @SuppressWarnings("serial") 25 | public class AuthFailureError extends VolleyError { 26 | /** 27 | * An intent that can be used to resolve this exception. (Brings up the password dialog.) 28 | */ 29 | private Intent mResolutionIntent; 30 | 31 | public AuthFailureError() { 32 | } 33 | 34 | public AuthFailureError(Intent intent) { 35 | mResolutionIntent = intent; 36 | } 37 | 38 | public AuthFailureError(NetworkResponse response) { 39 | super(response); 40 | } 41 | 42 | public AuthFailureError(String message) { 43 | super(message); 44 | } 45 | 46 | public AuthFailureError(String message, Exception reason) { 47 | super(message, reason); 48 | } 49 | 50 | public Intent getResolutionIntent() { 51 | return mResolutionIntent; 52 | } 53 | 54 | @Override 55 | public String getMessage() { 56 | if (mResolutionIntent != null) { 57 | return "User needs to (re)enter credentials."; 58 | } 59 | return super.getMessage(); 60 | } 61 | } 62 | -------------------------------------------------------------------------------- /app/src/main/java/com/android/volley/Network.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2011 The Android Open Source Project 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package com.android.volley; 18 | 19 | /** 20 | * An interface for performing requests. 21 | */ 22 | public interface Network { 23 | /** 24 | * Performs the specified request. 25 | * 26 | * @param request Request to process 27 | * @return A {@link NetworkResponse} with data and caching metadata; will never be null 28 | * @throws VolleyError on errors 29 | */ 30 | public NetworkResponse performRequest(Request request) throws VolleyError; 31 | } 32 | -------------------------------------------------------------------------------- /app/src/main/java/com/android/volley/NetworkError.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2011 The Android Open Source Project 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package com.android.volley; 18 | 19 | /** 20 | * Indicates that there was a network error when performing a Volley request. 21 | */ 22 | @SuppressWarnings("serial") 23 | public class NetworkError extends VolleyError { 24 | public NetworkError() { 25 | super(); 26 | } 27 | 28 | public NetworkError(Throwable cause) { 29 | super(cause); 30 | } 31 | 32 | public NetworkError(NetworkResponse networkResponse) { 33 | super(networkResponse); 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /app/src/main/java/com/android/volley/NoConnectionError.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2011 The Android Open Source Project 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package com.android.volley; 18 | 19 | /** 20 | * Error indicating that no connection could be established when performing a Volley request. 21 | */ 22 | @SuppressWarnings("serial") 23 | public class NoConnectionError extends NetworkError { 24 | public NoConnectionError() { 25 | super(); 26 | } 27 | 28 | public NoConnectionError(Throwable reason) { 29 | super(reason); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /app/src/main/java/com/android/volley/ParseError.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2011 The Android Open Source Project 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package com.android.volley; 18 | 19 | /** 20 | * Indicates that the server's response could not be parsed. 21 | */ 22 | @SuppressWarnings("serial") 23 | public class ParseError extends VolleyError { 24 | public ParseError() { 25 | } 26 | 27 | public ParseError(NetworkResponse networkResponse) { 28 | super(networkResponse); 29 | } 30 | 31 | public ParseError(Throwable cause) { 32 | super(cause); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /app/src/main/java/com/android/volley/ResponseDelivery.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2011 The Android Open Source Project 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package com.android.volley; 18 | 19 | public interface ResponseDelivery { 20 | /** 21 | * Parses a response from the network or cache and delivers it. 22 | */ 23 | public void postResponse(Request request, Response response); 24 | 25 | /** 26 | * Parses a response from the network or cache and delivers it. The provided 27 | * Runnable will be executed after delivery. 28 | */ 29 | public void postResponse(Request request, Response response, Runnable runnable); 30 | 31 | /** 32 | * Posts an error for the given request. 33 | */ 34 | public void postError(Request request, VolleyError error); 35 | } 36 | -------------------------------------------------------------------------------- /app/src/main/java/com/android/volley/RetryPolicy.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2011 The Android Open Source Project 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package com.android.volley; 18 | 19 | /** 20 | * Retry policy for a request. 21 | */ 22 | public interface RetryPolicy { 23 | 24 | /** 25 | * Returns the current timeout (used for logging). 26 | */ 27 | public int getCurrentTimeout(); 28 | 29 | /** 30 | * Returns the current retry count (used for logging). 31 | */ 32 | public int getCurrentRetryCount(); 33 | 34 | /** 35 | * Prepares for the next retry by applying a backoff to the timeout. 36 | * 37 | * @param error The error code of the last attempt. 38 | * @throws VolleyError In the event that the retry could not be performed (for example if we 39 | * ran out of attempts), the passed in error is thrown. 40 | */ 41 | public void retry(VolleyError error) throws VolleyError; 42 | } 43 | -------------------------------------------------------------------------------- /app/src/main/java/com/android/volley/ServerError.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2011 The Android Open Source Project 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package com.android.volley; 18 | 19 | /** 20 | * Indicates that the server responded with an error response. 21 | */ 22 | @SuppressWarnings("serial") 23 | public class ServerError extends VolleyError { 24 | public ServerError(NetworkResponse networkResponse) { 25 | super(networkResponse); 26 | } 27 | 28 | public ServerError() { 29 | super(); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /app/src/main/java/com/android/volley/TimeoutError.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2011 The Android Open Source Project 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package com.android.volley; 18 | 19 | /** 20 | * Indicates that the connection or the socket timed out. 21 | */ 22 | @SuppressWarnings("serial") 23 | public class TimeoutError extends VolleyError { 24 | } 25 | -------------------------------------------------------------------------------- /app/src/main/java/com/android/volley/VolleyError.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2011 The Android Open Source Project 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package com.android.volley; 18 | 19 | /** 20 | * Exception style class encapsulating Volley errors 21 | */ 22 | @SuppressWarnings("serial") 23 | public class VolleyError extends Exception { 24 | public final NetworkResponse networkResponse; 25 | private long networkTimeMs; 26 | 27 | public VolleyError() { 28 | networkResponse = null; 29 | } 30 | 31 | public VolleyError(NetworkResponse response) { 32 | networkResponse = response; 33 | } 34 | 35 | public VolleyError(String exceptionMessage) { 36 | super(exceptionMessage); 37 | networkResponse = null; 38 | } 39 | 40 | public VolleyError(String exceptionMessage, Throwable reason) { 41 | super(exceptionMessage, reason); 42 | networkResponse = null; 43 | } 44 | 45 | public VolleyError(Throwable cause) { 46 | super(cause); 47 | networkResponse = null; 48 | } 49 | 50 | public long getNetworkTimeMs() { 51 | return networkTimeMs; 52 | } 53 | 54 | /* package */ void setNetworkTimeMs(long networkTimeMs) { 55 | this.networkTimeMs = networkTimeMs; 56 | } 57 | } 58 | -------------------------------------------------------------------------------- /app/src/main/java/com/android/volley/toolbox/Authenticator.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2011 The Android Open Source Project 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package com.android.volley.toolbox; 18 | 19 | import com.android.volley.AuthFailureError; 20 | 21 | /** 22 | * An interface for interacting with auth tokens. 23 | */ 24 | public interface Authenticator { 25 | /** 26 | * Synchronously retrieves an auth token. 27 | * 28 | * @throws AuthFailureError If authentication did not succeed 29 | */ 30 | public String getAuthToken() throws AuthFailureError; 31 | 32 | /** 33 | * Invalidates the provided auth token. 34 | */ 35 | public void invalidateAuthToken(String authToken); 36 | } 37 | -------------------------------------------------------------------------------- /app/src/main/java/com/android/volley/toolbox/ClearCacheRequest.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2011 The Android Open Source Project 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package com.android.volley.toolbox; 18 | 19 | import android.os.Handler; 20 | import android.os.Looper; 21 | 22 | import com.android.volley.Cache; 23 | import com.android.volley.NetworkResponse; 24 | import com.android.volley.Request; 25 | import com.android.volley.Response; 26 | 27 | /** 28 | * A synthetic request used for clearing the cache. 29 | */ 30 | public class ClearCacheRequest extends Request { 31 | private final Cache mCache; 32 | private final Runnable mCallback; 33 | 34 | /** 35 | * Creates a synthetic request for clearing the cache. 36 | * 37 | * @param cache Cache to clear 38 | * @param callback Callback to make on the main thread once the cache is clear, 39 | * or null for none 40 | */ 41 | public ClearCacheRequest(Cache cache, Runnable callback) { 42 | super(Method.GET, null, null); 43 | mCache = cache; 44 | mCallback = callback; 45 | } 46 | 47 | @Override 48 | public boolean isCanceled() { 49 | // This is a little bit of a hack, but hey, why not. 50 | mCache.clear(); 51 | if (mCallback != null) { 52 | Handler handler = new Handler(Looper.getMainLooper()); 53 | handler.postAtFrontOfQueue(mCallback); 54 | } 55 | return true; 56 | } 57 | 58 | @Override 59 | public Priority getPriority() { 60 | return Priority.IMMEDIATE; 61 | } 62 | 63 | @Override 64 | protected Response parseNetworkResponse(NetworkResponse response) { 65 | return null; 66 | } 67 | 68 | @Override 69 | protected void deliverResponse(Object response) { 70 | } 71 | } 72 | -------------------------------------------------------------------------------- /app/src/main/java/com/android/volley/toolbox/HttpStack.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2011 The Android Open Source Project 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package com.android.volley.toolbox; 18 | 19 | import com.android.volley.AuthFailureError; 20 | import com.android.volley.Request; 21 | 22 | import org.apache.http.HttpResponse; 23 | 24 | import java.io.IOException; 25 | import java.util.Map; 26 | 27 | /** 28 | * An HTTP stack abstraction. 29 | */ 30 | public interface HttpStack { 31 | /** 32 | * Performs an HTTP request with the given parameters. 33 | *

34 | *

A GET request is sent if request.getPostBody() == null. A POST request is sent otherwise, 35 | * and the Content-Type header is set to request.getPostBodyContentType().

36 | * 37 | * @param request the request to perform 38 | * @param additionalHeaders additional headers to be sent together with 39 | * {@link Request#getHeaders()} 40 | * @return the HTTP response 41 | */ 42 | public HttpResponse performRequest(Request request, Map additionalHeaders) 43 | throws IOException, AuthFailureError; 44 | 45 | } 46 | -------------------------------------------------------------------------------- /app/src/main/java/com/android/volley/toolbox/JsonArrayRequest.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2011 The Android Open Source Project 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package com.android.volley.toolbox; 18 | 19 | import com.android.volley.NetworkResponse; 20 | import com.android.volley.ParseError; 21 | import com.android.volley.Response; 22 | import com.android.volley.Response.ErrorListener; 23 | import com.android.volley.Response.Listener; 24 | 25 | import org.json.JSONArray; 26 | import org.json.JSONException; 27 | 28 | import java.io.UnsupportedEncodingException; 29 | 30 | /** 31 | * A request for retrieving a {@link org.json.JSONArray} response body at a given URL. 32 | */ 33 | public class JsonArrayRequest extends JsonRequest { 34 | 35 | /** 36 | * Creates a new request. 37 | * 38 | * @param url URL to fetch the JSON from 39 | * @param listener Listener to receive the JSON response 40 | * @param errorListener Error listener, or null to ignore errors. 41 | */ 42 | public JsonArrayRequest(String url, Listener listener, ErrorListener errorListener) { 43 | super(Method.GET, url, null, listener, errorListener); 44 | } 45 | 46 | @Override 47 | protected Response parseNetworkResponse(NetworkResponse response) { 48 | try { 49 | String jsonString = 50 | new String(response.data, HttpHeaderParser.parseCharset(response.headers)); 51 | return Response.success(new JSONArray(jsonString), 52 | HttpHeaderParser.parseCacheHeaders(response)); 53 | } catch (UnsupportedEncodingException e) { 54 | return Response.error(new ParseError(e)); 55 | } catch (JSONException je) { 56 | return Response.error(new ParseError(je)); 57 | } 58 | } 59 | } 60 | -------------------------------------------------------------------------------- /app/src/main/java/com/android/volley/toolbox/NoCache.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2011 The Android Open Source Project 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package com.android.volley.toolbox; 18 | 19 | import com.android.volley.Cache; 20 | 21 | /** 22 | * A cache that doesn't. 23 | */ 24 | public class NoCache implements Cache { 25 | @Override 26 | public void clear() { 27 | } 28 | 29 | @Override 30 | public Entry get(String key) { 31 | return null; 32 | } 33 | 34 | @Override 35 | public void put(String key, Entry entry) { 36 | } 37 | 38 | @Override 39 | public void invalidate(String key, boolean fullExpire) { 40 | } 41 | 42 | @Override 43 | public void remove(String key) { 44 | } 45 | 46 | @Override 47 | public void initialize() { 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /app/src/main/java/com/viewpagerindicator/PageIndicator.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2011 Patrik Akerfeldt 3 | * Copyright (C) 2011 Jake Wharton 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the License is distributed on an "AS IS" BASIS, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the License for the specific language governing permissions and 15 | * limitations under the License. 16 | */ 17 | 18 | package com.viewpagerindicator; 19 | 20 | import android.support.v4.view.ViewPager; 21 | 22 | /** 23 | * A PageIndicator is responsible to show an visual indicator on the total views 24 | * number and the current visible view. 25 | */ 26 | public interface PageIndicator extends ViewPager.OnPageChangeListener { 27 | /** 28 | * Bind the indicator to a ViewPager. 29 | * 30 | * @param view 31 | */ 32 | void setViewPager(ViewPager view); 33 | 34 | /** 35 | * Bind the indicator to a ViewPager. 36 | * 37 | * @param view 38 | * @param initialPosition 39 | */ 40 | void setViewPager(ViewPager view, int initialPosition); 41 | 42 | /** 43 | *

Set the current page of both the ViewPager and indicator.

44 | *

45 | *

This must be used if you need to set the page before 46 | * the views are drawn on screen (e.g., default start page).

47 | * 48 | * @param item 49 | */ 50 | void setCurrentItem(int item); 51 | 52 | /** 53 | * Set a page change listener which will receive forwarded events. 54 | * 55 | * @param listener 56 | */ 57 | void setOnPageChangeListener(ViewPager.OnPageChangeListener listener); 58 | 59 | /** 60 | * Notify the indicator that the fragment list has changed. 61 | */ 62 | void notifyDataSetChanged(); 63 | } 64 | -------------------------------------------------------------------------------- /app/src/main/java/org/opentech/ConnectionDetect.java: -------------------------------------------------------------------------------- 1 | package org.opentech; 2 | 3 | import android.content.Context; 4 | import android.net.ConnectivityManager; 5 | import android.net.NetworkInfo; 6 | 7 | /** 8 | * Created by manan on 12-05-2015. 9 | */ 10 | public class ConnectionDetect { 11 | private Context context; 12 | 13 | public ConnectionDetect(Context context) { 14 | this.context = context; 15 | } 16 | 17 | public boolean isConnecting() { 18 | ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); 19 | if (cm != null) { 20 | NetworkInfo[] info = cm.getAllNetworkInfo(); 21 | if (info != null) { 22 | for (int i = 0; i < info.length; i++) { 23 | if (info[i].getState() == NetworkInfo.State.CONNECTED) { 24 | return true; 25 | 26 | } 27 | 28 | } 29 | } 30 | 31 | } 32 | return false; 33 | } 34 | } 35 | 36 | -------------------------------------------------------------------------------- /app/src/main/java/org/opentech/FossasiaApplication.java: -------------------------------------------------------------------------------- 1 | package org.opentech; 2 | 3 | import android.app.Application; 4 | import android.preference.PreferenceManager; 5 | 6 | import org.opentech.alarms.FosdemAlarmManager; 7 | import org.opentech.db.DatabaseManager; 8 | 9 | public class FossasiaApplication extends Application { 10 | 11 | @Override 12 | public void onCreate() { 13 | super.onCreate(); 14 | 15 | DatabaseManager.init(this); 16 | // Initialize settings 17 | PreferenceManager.setDefaultValues(this, R.xml.settings, false); 18 | // Alarms (requires settings) 19 | FosdemAlarmManager.init(this); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /app/src/main/java/org/opentech/activities/PersonInfoActivity.java: -------------------------------------------------------------------------------- 1 | package org.opentech.activities; 2 | 3 | import android.os.Bundle; 4 | import android.support.v4.app.Fragment; 5 | import android.support.v7.app.ActionBar; 6 | import android.support.v7.app.ActionBarActivity; 7 | import android.view.MenuItem; 8 | 9 | import org.opentech.R; 10 | import org.opentech.fragments.PersonInfoListFragment; 11 | import org.opentech.model.Speaker; 12 | 13 | public class PersonInfoActivity extends ActionBarActivity { 14 | 15 | public static final String SPEAKER = "speaker"; 16 | 17 | @Override 18 | protected void onCreate(Bundle savedInstanceState) { 19 | super.onCreate(savedInstanceState); 20 | setContentView(R.layout.content_extended_title); 21 | Speaker person = getIntent().getParcelableExtra(SPEAKER); 22 | 23 | ActionBar bar = getSupportActionBar(); 24 | bar.setDisplayHomeAsUpEnabled(true); 25 | bar.setTitle(person.getName()); 26 | 27 | if (savedInstanceState == null) { 28 | Fragment f = PersonInfoListFragment.newInstance(person); 29 | getSupportFragmentManager().beginTransaction().add(R.id.content, f).addToBackStack(null).commit(); 30 | 31 | } 32 | } 33 | 34 | @Override 35 | public boolean onOptionsItemSelected(MenuItem item) { 36 | switch (item.getItemId()) { 37 | case android.R.id.home: 38 | finish(); 39 | return true; 40 | } 41 | return false; 42 | } 43 | 44 | @Override 45 | public void onBackPressed() { 46 | finish(); 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /app/src/main/java/org/opentech/activities/RoomImageDialogActivity.java: -------------------------------------------------------------------------------- 1 | package org.opentech.activities; 2 | 3 | import android.app.Activity; 4 | import android.content.Intent; 5 | import android.os.Bundle; 6 | import android.widget.ImageView; 7 | 8 | /** 9 | * A special Activity which is displayed like a dialog and shows a room image. Specify the room name and the room image id as Intent extras. 10 | * 11 | * @author Christophe Beyls 12 | */ 13 | public class RoomImageDialogActivity extends Activity { 14 | 15 | public static final String EXTRA_ROOM_NAME = "roomName"; 16 | public static final String EXTRA_ROOM_IMAGE_RESOURCE_ID = "imageResId"; 17 | 18 | @Override 19 | protected void onCreate(Bundle savedInstanceState) { 20 | super.onCreate(savedInstanceState); 21 | Intent intent = getIntent(); 22 | 23 | setTitle(intent.getStringExtra(EXTRA_ROOM_NAME)); 24 | 25 | ImageView imageView = new ImageView(this); 26 | imageView.setImageResource(intent.getIntExtra(EXTRA_ROOM_IMAGE_RESOURCE_ID, 0)); 27 | setContentView(imageView); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /app/src/main/java/org/opentech/activities/SettingsActivity.java: -------------------------------------------------------------------------------- 1 | package org.opentech.activities; 2 | 3 | import android.os.Bundle; 4 | import android.support.v7.app.ActionBarActivity; 5 | import android.view.MenuItem; 6 | 7 | import org.opentech.R; 8 | import org.opentech.fragments.SettingsFragment; 9 | 10 | public class SettingsActivity extends ActionBarActivity { 11 | 12 | @Override 13 | protected void onCreate(Bundle savedInstanceState) { 14 | super.onCreate(savedInstanceState); 15 | setContentView(R.layout.content); 16 | 17 | getSupportActionBar().setDisplayHomeAsUpEnabled(true); 18 | 19 | if (savedInstanceState == null) { 20 | SettingsFragment f = SettingsFragment.newInstance(); 21 | getSupportFragmentManager().beginTransaction().add(R.id.content, f).commit(); 22 | } 23 | } 24 | 25 | @Override 26 | public boolean onOptionsItemSelected(MenuItem item) { 27 | switch (item.getItemId()) { 28 | case android.R.id.home: 29 | onBackPressed(); 30 | return true; 31 | } 32 | return false; 33 | } 34 | 35 | @Override 36 | public void onBackPressed() { 37 | super.onBackPressed(); 38 | overridePendingTransition(R.anim.partial_zoom_in, R.anim.slide_out_right); 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /app/src/main/java/org/opentech/activities/SplashActivity.java: -------------------------------------------------------------------------------- 1 | package org.opentech.activities; 2 | 3 | import android.content.Intent; 4 | import android.os.Bundle; 5 | import android.support.v7.app.ActionBarActivity; 6 | 7 | import org.opentech.R; 8 | import org.opentech.db.JsonToDatabase; 9 | 10 | 11 | public class SplashActivity extends ActionBarActivity { 12 | 13 | @Override 14 | protected void onCreate(Bundle savedInstanceState) { 15 | super.onCreate(savedInstanceState); 16 | setContentView(R.layout.activity_splash); 17 | new Thread(new Runnable() { 18 | @Override 19 | public void run() { 20 | JsonToDatabase dataDownload = new JsonToDatabase(getApplicationContext()); 21 | dataDownload.setOnJsonToDatabaseCallback(new JsonToDatabase.JsonToDatabaseCallback() { 22 | @Override 23 | public void onDataLoaded() { 24 | startActivity(new Intent(getApplicationContext(), MainActivity.class)); 25 | finish(); 26 | } 27 | 28 | }); 29 | dataDownload.startDataDownload(); 30 | } 31 | }).start(); 32 | } 33 | 34 | } 35 | -------------------------------------------------------------------------------- /app/src/main/java/org/opentech/adapters/SponsorAdapter.java: -------------------------------------------------------------------------------- 1 | package org.opentech.adapters; 2 | 3 | import android.content.Context; 4 | import android.view.LayoutInflater; 5 | import android.view.View; 6 | import android.view.ViewGroup; 7 | import android.widget.BaseAdapter; 8 | import android.widget.TextView; 9 | 10 | import com.android.volley.toolbox.NetworkImageView; 11 | 12 | import org.opentech.R; 13 | import org.opentech.model.Sponsor; 14 | import org.opentech.utils.VolleySingleton; 15 | 16 | import java.util.ArrayList; 17 | 18 | /** 19 | * Created by manan on 25-03-2015. 20 | */ 21 | public class SponsorAdapter extends BaseAdapter { 22 | private ArrayList mSponsorList; 23 | private Context mContext; 24 | private LayoutInflater mInflater; 25 | 26 | public SponsorAdapter(Context context, ArrayList sponsorList) { 27 | this.mSponsorList = sponsorList; 28 | this.mContext = context; 29 | } 30 | 31 | @Override 32 | public int getCount() { 33 | return mSponsorList.size(); 34 | } 35 | 36 | @Override 37 | public Sponsor getItem(int position) { 38 | return mSponsorList.get(position); 39 | } 40 | 41 | @Override 42 | public long getItemId(int position) { 43 | return position; 44 | } 45 | 46 | @Override 47 | public View getView(final int position, View convertView, ViewGroup parent) { 48 | 49 | if (mInflater == null) { 50 | mInflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 51 | } 52 | View row; 53 | if (convertView == null) { 54 | row = mInflater.inflate(R.layout.item_sponsor, parent, false); 55 | } else { 56 | row = convertView; 57 | } 58 | 59 | SponsorHolder holder = new SponsorHolder(); 60 | holder.sponsorImage = (NetworkImageView) row.findViewById(R.id.imageView_sponsor); 61 | holder.sponsorImage.setDefaultImageResId(R.drawable.fossasia_sponsor); 62 | final Sponsor sponsor = getItem(position); 63 | String url = sponsor.getImg(); 64 | holder.sponsorImage.setImageUrl(url, VolleySingleton.getImageLoader(mContext)); 65 | row.setTag(sponsor); 66 | return row; 67 | } 68 | 69 | public static class SponsorHolder { 70 | TextView name; 71 | NetworkImageView sponsorImage; 72 | 73 | } 74 | } 75 | 76 | 77 | 78 | -------------------------------------------------------------------------------- /app/src/main/java/org/opentech/api/FossasiaUrls.java: -------------------------------------------------------------------------------- 1 | package org.opentech.api; 2 | 3 | /** 4 | * Created by Abhishek on 17/02/15. 5 | */ 6 | public class FossasiaUrls { 7 | 8 | 9 | 10 | public static final String PART_URL = "https://docs.google.com/spreadsheets/d/1NY3YC1AWC8xotzD2X0dMZuBSGS5ErjEtkYboGwKuZWc/gviz/tq?options=no_format&gid="; 11 | 12 | public static final String VERSION_TRACK_URL = PART_URL + "1847379562"; 13 | public static final String TRACKS_URL = PART_URL + "1057536595"; 14 | 15 | public static final String FIELD_URL = PART_URL + "1707242319"; 16 | 17 | 18 | public static final String SPONSOR_URL = PART_URL + "948384915"; 19 | 20 | 21 | 22 | } 23 | -------------------------------------------------------------------------------- /app/src/main/java/org/opentech/db/Constants.java: -------------------------------------------------------------------------------- 1 | package org.opentech.db; 2 | 3 | /** 4 | * Created by Abhishek on 06/03/15. 5 | */ 6 | public class Constants { 7 | 8 | public final static int FIRST_NAME = 3; 9 | public final static int LAST_NAME = 4; 10 | public final static int TIME = 1; 11 | public final static int DATE = 0; 12 | public final static int ORGANIZATION = 5; 13 | public final static int EMAIL = 6; 14 | public final static int BLOG = 7; 15 | public final static int TWITTER = 12; 16 | public final static int TYPE_OF_PROPOSAL = 17; 17 | public final static int TOPIC_NAME = 18; 18 | public final static int TRACK = 19; 19 | public final static int ABSTRACT = 20; 20 | public final static int DESCRIPTION = 21; 21 | public final static int URL = 22; 22 | public final static int LINKEDIN = 23; 23 | public final static int MODERATOR = 24; 24 | 25 | 26 | } 27 | -------------------------------------------------------------------------------- /app/src/main/java/org/opentech/fragments/KeySpeakerFragment.java: -------------------------------------------------------------------------------- 1 | package org.opentech.fragments; 2 | 3 | import android.content.Intent; 4 | import android.os.Bundle; 5 | import android.view.View; 6 | import android.widget.ListView; 7 | 8 | import org.opentech.activities.PersonInfoActivity; 9 | import org.opentech.adapters.SpeakerAdapter; 10 | import org.opentech.db.DatabaseManager; 11 | import org.opentech.model.Speaker; 12 | 13 | /** 14 | * Created by Abhishek on 14/02/15. 15 | */ 16 | public class KeySpeakerFragment extends SmoothListFragment { 17 | 18 | 19 | @Override 20 | public void onCreate(Bundle savedInstanceState) { 21 | super.onCreate(savedInstanceState); 22 | DatabaseManager dbManager = DatabaseManager.getInstance(); 23 | SpeakerAdapter adapter = new SpeakerAdapter(getActivity().getApplicationContext(), dbManager.getSpeakers(true)); 24 | setListAdapter(adapter); 25 | } 26 | 27 | @Override 28 | public void onListItemClick(ListView l, View v, int position, long id) { 29 | super.onListItemClick(l, v, position, id); 30 | Speaker speaker = (Speaker) v.getTag(); 31 | Intent intent = new Intent(getActivity().getApplicationContext(), PersonInfoActivity.class); 32 | intent.putExtra(PersonInfoActivity.SPEAKER, speaker); 33 | startActivity(intent); 34 | } 35 | } 36 | 37 | 38 | -------------------------------------------------------------------------------- /app/src/main/java/org/opentech/fragments/LiveFragment.java: -------------------------------------------------------------------------------- 1 | package org.opentech.fragments; 2 | 3 | import android.content.res.Resources; 4 | import android.os.Bundle; 5 | import android.support.v4.app.Fragment; 6 | import android.support.v4.app.FragmentManager; 7 | import android.support.v4.app.FragmentPagerAdapter; 8 | import android.view.LayoutInflater; 9 | import android.view.View; 10 | import android.view.ViewGroup; 11 | 12 | import org.opentech.R; 13 | 14 | public class LiveFragment extends Fragment { 15 | 16 | private LivePagerAdapter livePagerAdapter; 17 | 18 | @Override 19 | public void onCreate(Bundle savedInstanceState) { 20 | super.onCreate(savedInstanceState); 21 | livePagerAdapter = new LivePagerAdapter(getChildFragmentManager(), getResources()); 22 | } 23 | 24 | @Override 25 | public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 26 | View view = inflater.inflate(R.layout.fragment_live, container, false); 27 | // 28 | // ViewPager pager = (ViewPager) view.findViewById(R.id.pager); 29 | // pager.setAdapter(livePagerAdapter); 30 | // SlidingTabLayout slidingTabs = (SlidingTabLayout) view.findViewById(R.id.sliding_tabs); 31 | // slidingTabs.setViewPager(pager); 32 | 33 | return view; 34 | } 35 | 36 | private static class LivePagerAdapter extends FragmentPagerAdapter { 37 | 38 | private final Resources resources; 39 | 40 | public LivePagerAdapter(FragmentManager fm, Resources resources) { 41 | super(fm); 42 | this.resources = resources; 43 | } 44 | 45 | @Override 46 | public int getCount() { 47 | return 2; 48 | } 49 | 50 | @Override 51 | public Fragment getItem(int position) { 52 | return null; 53 | } 54 | 55 | @Override 56 | public CharSequence getPageTitle(int position) { 57 | switch (position) { 58 | case 0: 59 | return resources.getString(R.string.next); 60 | case 1: 61 | return resources.getString(R.string.now); 62 | } 63 | return null; 64 | } 65 | 66 | @Override 67 | public void setPrimaryItem(ViewGroup container, int position, Object object) { 68 | super.setPrimaryItem(container, position, object); 69 | // Hack to allow the non-primary fragments to start properly 70 | if (object != null) { 71 | ((Fragment) object).setUserVisibleHint(false); 72 | } 73 | } 74 | } 75 | } 76 | -------------------------------------------------------------------------------- /app/src/main/java/org/opentech/fragments/MessageDialogFragment.java: -------------------------------------------------------------------------------- 1 | package org.opentech.fragments; 2 | 3 | import android.app.AlertDialog; 4 | import android.app.Dialog; 5 | import android.os.Bundle; 6 | import android.support.annotation.NonNull; 7 | import android.support.annotation.StringRes; 8 | import android.support.v4.app.DialogFragment; 9 | import android.support.v4.app.FragmentManager; 10 | 11 | /** 12 | * A generic class to display a simple message in a dialog box. 13 | * 14 | * @author Christophe Beyls 15 | */ 16 | public class MessageDialogFragment extends DialogFragment { 17 | 18 | public static MessageDialogFragment newInstance(@StringRes int titleResId, @StringRes int messageResId) { 19 | MessageDialogFragment f = new MessageDialogFragment(); 20 | Bundle args = new Bundle(); 21 | args.putInt("titleResId", titleResId); 22 | args.putInt("messageResId", messageResId); 23 | f.setArguments(args); 24 | return f; 25 | } 26 | 27 | public static MessageDialogFragment newInstance(@StringRes int titleResId, CharSequence message) { 28 | MessageDialogFragment f = new MessageDialogFragment(); 29 | Bundle args = new Bundle(); 30 | args.putInt("titleResId", titleResId); 31 | args.putCharSequence("message", message); 32 | f.setArguments(args); 33 | return f; 34 | } 35 | 36 | public static MessageDialogFragment newInstance(CharSequence title, CharSequence message) { 37 | MessageDialogFragment f = new MessageDialogFragment(); 38 | Bundle args = new Bundle(); 39 | args.putCharSequence("title", title); 40 | args.putCharSequence("message", message); 41 | f.setArguments(args); 42 | return f; 43 | } 44 | 45 | @NonNull 46 | @Override 47 | public Dialog onCreateDialog(Bundle savedInstanceState) { 48 | Bundle args = getArguments(); 49 | int titleResId = args.getInt("titleResId", -1); 50 | CharSequence title = (titleResId != -1) ? getText(titleResId) : args.getCharSequence("title"); 51 | int messageResId = args.getInt("messageResId", -1); 52 | CharSequence message = (messageResId != -1) ? getText(messageResId) : args.getCharSequence("message"); 53 | 54 | return new AlertDialog.Builder(getActivity()).setTitle(title).setMessage(message).setPositiveButton(android.R.string.ok, null).create(); 55 | } 56 | 57 | public void show(FragmentManager manager) { 58 | show(manager, "message"); 59 | } 60 | } 61 | -------------------------------------------------------------------------------- /app/src/main/java/org/opentech/fragments/RoomImageDialogFragment.java: -------------------------------------------------------------------------------- 1 | package org.opentech.fragments; 2 | 3 | import android.app.AlertDialog; 4 | import android.app.Dialog; 5 | import android.os.Bundle; 6 | import android.support.annotation.DrawableRes; 7 | import android.support.annotation.NonNull; 8 | import android.support.v4.app.DialogFragment; 9 | import android.support.v4.app.FragmentManager; 10 | import android.widget.ImageView; 11 | 12 | import org.opentech.R; 13 | 14 | public class RoomImageDialogFragment extends DialogFragment { 15 | 16 | public static final String TAG = "room"; 17 | 18 | public static RoomImageDialogFragment newInstance(String roomName, @DrawableRes int imageResId) { 19 | RoomImageDialogFragment f = new RoomImageDialogFragment(); 20 | Bundle args = new Bundle(); 21 | args.putString("roomName", roomName); 22 | args.putInt("imageResId", imageResId); 23 | f.setArguments(args); 24 | return f; 25 | } 26 | 27 | @NonNull 28 | @Override 29 | public Dialog onCreateDialog(Bundle savedInstanceState) { 30 | Bundle args = getArguments(); 31 | 32 | ImageView imageView = new ImageView(getActivity()); 33 | imageView.setImageResource(args.getInt("imageResId")); 34 | 35 | Dialog dialog = new AlertDialog.Builder(getActivity()).setTitle(args.getString("roomName")).setView(imageView).create(); 36 | dialog.getWindow().getAttributes().windowAnimations = R.style.RoomImageDialogAnimations; 37 | return dialog; 38 | } 39 | 40 | public void show(FragmentManager manager) { 41 | show(manager, TAG); 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /app/src/main/java/org/opentech/fragments/SearchResultListFragment.java: -------------------------------------------------------------------------------- 1 | package org.opentech.fragments; 2 | 3 | import android.content.Context; 4 | import android.database.Cursor; 5 | import android.os.Bundle; 6 | import android.view.View; 7 | import android.widget.ListView; 8 | 9 | import org.opentech.R; 10 | import org.opentech.db.DatabaseManager; 11 | import org.opentech.loaders.SimpleCursorLoader; 12 | 13 | public class SearchResultListFragment extends SmoothListFragment { 14 | 15 | private static final int EVENTS_LOADER_ID = 1; 16 | private static final String ARG_QUERY = "query"; 17 | 18 | 19 | public static SearchResultListFragment newInstance(String query) { 20 | SearchResultListFragment f = new SearchResultListFragment(); 21 | Bundle args = new Bundle(); 22 | args.putString(ARG_QUERY, query); 23 | f.setArguments(args); 24 | return f; 25 | } 26 | 27 | @Override 28 | public void onCreate(Bundle savedInstanceState) { 29 | super.onCreate(savedInstanceState); 30 | } 31 | 32 | @Override 33 | public void onActivityCreated(Bundle savedInstanceState) { 34 | super.onActivityCreated(savedInstanceState); 35 | 36 | setEmptyText(getString(R.string.no_search_result)); 37 | setListShown(false); 38 | 39 | } 40 | 41 | @Override 42 | public void onListItemClick(ListView l, View v, int position, long id) { 43 | 44 | 45 | } 46 | 47 | private static class TextSearchLoader extends SimpleCursorLoader { 48 | 49 | private final String query; 50 | 51 | public TextSearchLoader(Context context, String query) { 52 | super(context); 53 | this.query = query; 54 | } 55 | 56 | @Override 57 | protected Cursor getCursor() { 58 | return DatabaseManager.getInstance().getSearchResults(query); 59 | } 60 | } 61 | } 62 | -------------------------------------------------------------------------------- /app/src/main/java/org/opentech/fragments/SmoothListFragment.java: -------------------------------------------------------------------------------- 1 | package org.opentech.fragments; 2 | 3 | import android.os.Build; 4 | import android.support.v4.app.ListFragment; 5 | 6 | /** 7 | * ListFragment which disables the fade animation under certain conditions for more smoothness. 8 | */ 9 | public class SmoothListFragment extends ListFragment { 10 | 11 | @Override 12 | public void setListShown(boolean shown) { 13 | if ((Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) && isResumed()) { 14 | super.setListShown(shown); 15 | } else { 16 | setListShownNoAnimation(shown); 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /app/src/main/java/org/opentech/fragments/SpeakerFragment.java: -------------------------------------------------------------------------------- 1 | package org.opentech.fragments; 2 | 3 | /** 4 | * Created by Abhishek on 01/03/15. 5 | */ 6 | 7 | import android.content.Intent; 8 | import android.os.Bundle; 9 | import android.view.View; 10 | import android.widget.ListView; 11 | 12 | import org.opentech.activities.PersonInfoActivity; 13 | import org.opentech.adapters.SpeakerAdapter; 14 | import org.opentech.db.DatabaseManager; 15 | import org.opentech.model.Speaker; 16 | 17 | public class SpeakerFragment extends SmoothListFragment { 18 | 19 | 20 | @Override 21 | public void onCreate(Bundle savedInstanceState) { 22 | super.onCreate(savedInstanceState); 23 | DatabaseManager dbManager = DatabaseManager.getInstance(); 24 | SpeakerAdapter adapter = new SpeakerAdapter(getActivity().getApplicationContext(), dbManager.getSpeakers(false)); 25 | setListAdapter(adapter); 26 | } 27 | 28 | @Override 29 | public void onListItemClick(ListView l, View v, int position, long id) { 30 | super.onListItemClick(l, v, position, id); 31 | Speaker speaker = (Speaker) v.getTag(); 32 | Intent intent = new Intent(getActivity().getApplicationContext(), PersonInfoActivity.class); 33 | intent.putExtra(PersonInfoActivity.SPEAKER, speaker); 34 | startActivity(intent); 35 | } 36 | } 37 | 38 | 39 | -------------------------------------------------------------------------------- /app/src/main/java/org/opentech/fragments/SponsorFragment.java: -------------------------------------------------------------------------------- 1 | package org.opentech.fragments; 2 | 3 | import android.content.Intent; 4 | import android.net.Uri; 5 | import android.os.Bundle; 6 | import android.view.View; 7 | import android.widget.ListView; 8 | 9 | import org.opentech.adapters.SponsorAdapter; 10 | import org.opentech.db.DatabaseManager; 11 | import org.opentech.model.Sponsor; 12 | 13 | /** 14 | * Created by manan on 25-03-2015. 15 | */ 16 | public class SponsorFragment extends SmoothListFragment { 17 | @Override 18 | public void onCreate(Bundle savedInstanceState) { 19 | super.onCreate(savedInstanceState); 20 | DatabaseManager dbManager = DatabaseManager.getInstance(); 21 | SponsorAdapter adapter = new SponsorAdapter(getActivity().getApplicationContext(), dbManager.getSponsors()); 22 | setListAdapter(adapter); 23 | } 24 | 25 | @Override 26 | public void onListItemClick(ListView l, View v, int position, long id) { 27 | super.onListItemClick(l, v, position, id); 28 | Sponsor sponser = (Sponsor) v.getTag(); 29 | Intent intent = new Intent(Intent.ACTION_VIEW); 30 | intent.setData(Uri.parse(sponser.getUrl())); 31 | startActivity(intent); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /app/src/main/java/org/opentech/fragments/TracksListFragment.java: -------------------------------------------------------------------------------- 1 | package org.opentech.fragments; 2 | 3 | import android.content.Intent; 4 | import android.os.Bundle; 5 | import android.support.v4.widget.SimpleCursorAdapter; 6 | import android.view.View; 7 | import android.widget.CursorAdapter; 8 | import android.widget.ListView; 9 | import android.widget.TextView; 10 | 11 | import org.opentech.R; 12 | import org.opentech.activities.TrackActivity; 13 | import org.opentech.db.DatabaseHelper; 14 | import org.opentech.db.DatabaseManager; 15 | 16 | 17 | /** 18 | * Created by Abhishek on 01/03/15. 19 | */ 20 | public class TracksListFragment extends SmoothListFragment { 21 | 22 | @Override 23 | public void onCreate(Bundle savedInstanceState) { 24 | super.onCreate(savedInstanceState); 25 | String[] columns = new String[]{DatabaseHelper.TABLE_COLUMN_NAME, DatabaseHelper.TABLE_COLOUMN_INFORMATION}; 26 | // THE XML DEFINED VIEWS WHICH THE DATA WILL BE BOUND TO 27 | int[] to = new int[]{R.id.textView_track_title, R.id.textView_track_information}; 28 | DatabaseManager db = DatabaseManager.getInstance(); 29 | SimpleCursorAdapter mAdapter = new SimpleCursorAdapter(getActivity(), R.layout.list_tracks, db.getTracks(), columns, to, CursorAdapter.NO_SELECTION); 30 | setListAdapter(mAdapter); 31 | 32 | } 33 | 34 | @Override 35 | public void onListItemClick(ListView l, View v, int position, long id) { 36 | super.onListItemClick(l, v, position, id); 37 | String text = ((TextView) v.findViewById(R.id.textView_track_title)).getText().toString(); 38 | Intent intent = new Intent(getActivity(), TrackActivity.class); 39 | intent.putExtra("TRACK", text); 40 | startActivity(intent); 41 | } 42 | 43 | @Override 44 | public void onViewCreated(View view, Bundle savedInstanceState) { 45 | super.onViewCreated(view, savedInstanceState); 46 | setEmptyText("No data present"); 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /app/src/main/java/org/opentech/loaders/LocalCacheLoader.java: -------------------------------------------------------------------------------- 1 | package org.opentech.loaders; 2 | 3 | import android.content.Context; 4 | import android.support.v4.content.AsyncTaskLoader; 5 | 6 | public abstract class LocalCacheLoader extends AsyncTaskLoader { 7 | 8 | private T mResult; 9 | 10 | public LocalCacheLoader(Context context) { 11 | super(context); 12 | } 13 | 14 | @Override 15 | protected void onStartLoading() { 16 | if (mResult != null) { 17 | // If we currently have a result available, deliver it 18 | // immediately. 19 | deliverResult(mResult); 20 | } 21 | 22 | if (takeContentChanged() || mResult == null) { 23 | // If the data has changed since the last time it was loaded 24 | // or is not currently available, start a load. 25 | forceLoad(); 26 | } 27 | } 28 | 29 | @Override 30 | protected void onStopLoading() { 31 | // Attempt to cancel the current load task if possible. 32 | cancelLoad(); 33 | } 34 | 35 | @Override 36 | protected void onReset() { 37 | super.onReset(); 38 | 39 | onStopLoading(); 40 | mResult = null; 41 | } 42 | 43 | @Override 44 | public void deliverResult(T data) { 45 | mResult = data; 46 | 47 | if (isStarted()) { 48 | // If the Loader is currently started, we can immediately 49 | // deliver its results. 50 | super.deliverResult(data); 51 | } 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /app/src/main/java/org/opentech/model/Building.java: -------------------------------------------------------------------------------- 1 | package org.opentech.model; 2 | 3 | import android.text.TextUtils; 4 | 5 | public enum Building { 6 | J, K, H, U, AW, Unknown; 7 | 8 | public static Building fromRoomName(String roomName) { 9 | if (!TextUtils.isEmpty(roomName)) { 10 | switch (Character.toUpperCase(roomName.charAt(0))) { 11 | case 'K': 12 | return K; 13 | case 'H': 14 | return H; 15 | case 'U': 16 | return U; 17 | } 18 | if (roomName.regionMatches(true, 0, "AW", 0, 1)) { 19 | return AW; 20 | } 21 | if ("Janson".equalsIgnoreCase(roomName)) { 22 | return J; 23 | } 24 | if ("Ferrer".equalsIgnoreCase(roomName)) { 25 | return H; 26 | } 27 | if ("Chavanne".equalsIgnoreCase(roomName) || "Lameere".equalsIgnoreCase(roomName) || "Guillissen".equalsIgnoreCase(roomName)) { 28 | return U; 29 | } 30 | } 31 | 32 | return Unknown; 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /app/src/main/java/org/opentech/model/Day.java: -------------------------------------------------------------------------------- 1 | package org.opentech.model; 2 | 3 | /** 4 | * Created by Abhishek on 08/03/15. 5 | */ 6 | public class Day { 7 | 8 | private int position; 9 | private String date; 10 | 11 | public Day(int position, String date) { 12 | this.position = position; 13 | this.date = date; 14 | } 15 | 16 | public int getPosition() { 17 | return position; 18 | } 19 | 20 | public void setPosition(int position) { 21 | this.position = position; 22 | } 23 | 24 | public String getDate() { 25 | return date; 26 | } 27 | 28 | public void setDate(String date) { 29 | this.date = date; 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /app/src/main/java/org/opentech/model/Field.java: -------------------------------------------------------------------------------- 1 | package org.opentech.model; 2 | 3 | import java.util.ArrayList; 4 | 5 | /** 6 | * Created by Abhishek on 12/04/15. 7 | */ 8 | public class Field { 9 | 10 | private String fieldName; 11 | private String type; 12 | private String defaultValue; 13 | 14 | public Field(String fieldName, String type, String defaultValue) { 15 | this.fieldName = fieldName; 16 | this.type = type; 17 | this.defaultValue = defaultValue; 18 | 19 | 20 | } 21 | 22 | public static String createDatabaseQuery(ArrayList fields, String tableName) { 23 | 24 | String intFormatter = "`%s` %s DEFAULT %s"; 25 | String stringFormatter = "`%s` %s DEFAULT '%s'"; 26 | 27 | String query = "CREATE TABLE " + tableName 28 | + " ("; 29 | for(Field field : fields) { 30 | String columnFormatted; 31 | 32 | if(field.type.equals("INTEGER")) { 33 | 34 | try { 35 | Integer.parseInt(field.defaultValue); 36 | columnFormatted = String.format(intFormatter, field.fieldName, field.type, field.defaultValue); 37 | } 38 | catch (NumberFormatException e) { 39 | columnFormatted = String.format(intFormatter, field.fieldName, field.type, 0); 40 | } 41 | 42 | } 43 | else { 44 | columnFormatted = String.format(stringFormatter, field.fieldName, field.type, field.defaultValue); 45 | } 46 | query = query + columnFormatted; 47 | 48 | if(fields.indexOf(field) != fields.size() - 1) { 49 | query = query + ", "; 50 | } 51 | 52 | } 53 | query = query + ");"; 54 | return query; 55 | 56 | } 57 | 58 | } 59 | -------------------------------------------------------------------------------- /app/src/main/java/org/opentech/model/KeySpeaker.java: -------------------------------------------------------------------------------- 1 | package org.opentech.model; 2 | 3 | import org.opentech.db.DatabaseHelper; 4 | 5 | /** 6 | * Created by Abhishek on 17/02/15. 7 | */ 8 | public class KeySpeaker { 9 | 10 | private int id; 11 | private String name; 12 | private String information; 13 | private String linkedInUrl; 14 | private String twitterHandle; 15 | private String designation; 16 | private String profilePicUrl; 17 | 18 | public KeySpeaker(int id, String name, String information, String linkedInUrl, String twitterHandle, String designation, String profilePicUrl) { 19 | this.id = id; 20 | this.name = name; 21 | this.information = information; 22 | this.linkedInUrl = linkedInUrl; 23 | this.twitterHandle = twitterHandle; 24 | this.designation = designation; 25 | this.profilePicUrl = profilePicUrl; 26 | } 27 | 28 | public String getProfilePicUrl() { 29 | return profilePicUrl; 30 | } 31 | 32 | public void setProfilePicUrl(String profilePicUrl) { 33 | this.profilePicUrl = profilePicUrl; 34 | } 35 | 36 | public int getId() { 37 | return id; 38 | } 39 | 40 | public void setId(int id) { 41 | this.id = id; 42 | } 43 | 44 | public String getName() { 45 | return name; 46 | } 47 | 48 | public void setName(String name) { 49 | this.name = name; 50 | } 51 | 52 | public String getInformation() { 53 | return information; 54 | } 55 | 56 | public void setInformation(String information) { 57 | this.information = information; 58 | } 59 | 60 | public String getLinkedInUrl() { 61 | return linkedInUrl; 62 | } 63 | 64 | public void setLinkedInUrl(String linkedInUrl) { 65 | this.linkedInUrl = linkedInUrl; 66 | } 67 | 68 | public String getTwitterHandle() { 69 | return twitterHandle; 70 | } 71 | 72 | public void setTwitterHandle(String twitterHandle) { 73 | this.twitterHandle = twitterHandle; 74 | } 75 | 76 | public String getDesignation() { 77 | return designation; 78 | } 79 | 80 | public void setDesignation(String designation) { 81 | this.designation = designation; 82 | } 83 | 84 | public String generateSqlQuery() { 85 | String query = String.format("INSERT INTO %s VALUES (%d, '%s', '%s', '%s', '%s', '%s', '%s');", DatabaseHelper.TABLE_NAME_KEY_SPEAKERS, id, name, designation, information, twitterHandle, linkedInUrl, profilePicUrl); 86 | return query; 87 | } 88 | } 89 | -------------------------------------------------------------------------------- /app/src/main/java/org/opentech/model/Link.java: -------------------------------------------------------------------------------- 1 | package org.opentech.model; 2 | 3 | import android.os.Parcel; 4 | import android.os.Parcelable; 5 | 6 | public class Link implements Parcelable { 7 | 8 | public static final Parcelable.Creator CREATOR = new Parcelable.Creator() { 9 | public Link createFromParcel(Parcel in) { 10 | return new Link(in); 11 | } 12 | 13 | public Link[] newArray(int size) { 14 | return new Link[size]; 15 | } 16 | }; 17 | private String url; 18 | private String description; 19 | 20 | public Link() { 21 | } 22 | 23 | private Link(Parcel in) { 24 | url = in.readString(); 25 | description = in.readString(); 26 | } 27 | 28 | public String getUrl() { 29 | return url; 30 | } 31 | 32 | public void setUrl(String url) { 33 | this.url = url; 34 | } 35 | 36 | public String getDescription() { 37 | return description; 38 | } 39 | 40 | public void setDescription(String description) { 41 | this.description = description; 42 | } 43 | 44 | @Override 45 | public String toString() { 46 | return description; 47 | } 48 | 49 | @Override 50 | public int hashCode() { 51 | return url.hashCode(); 52 | } 53 | 54 | @Override 55 | public boolean equals(Object obj) { 56 | if (this == obj) 57 | return true; 58 | if (obj == null) 59 | return false; 60 | Link other = (Link) obj; 61 | return url.equals(other.url); 62 | } 63 | 64 | @Override 65 | public int describeContents() { 66 | return 0; 67 | } 68 | 69 | @Override 70 | public void writeToParcel(Parcel out, int flags) { 71 | out.writeString(url); 72 | out.writeString(description); 73 | } 74 | } 75 | -------------------------------------------------------------------------------- /app/src/main/java/org/opentech/model/Person.java: -------------------------------------------------------------------------------- 1 | package org.opentech.model; 2 | 3 | import android.os.Parcel; 4 | import android.os.Parcelable; 5 | 6 | public class Person implements Parcelable { 7 | 8 | public static final Parcelable.Creator CREATOR = new Parcelable.Creator() { 9 | public Person createFromParcel(Parcel in) { 10 | return new Person(in); 11 | } 12 | 13 | public Person[] newArray(int size) { 14 | return new Person[size]; 15 | } 16 | }; 17 | private long id; 18 | private String name; 19 | 20 | public Person() { 21 | } 22 | 23 | private Person(Parcel in) { 24 | id = in.readLong(); 25 | name = in.readString(); 26 | } 27 | 28 | public long getId() { 29 | return id; 30 | } 31 | 32 | public void setId(long id) { 33 | this.id = id; 34 | } 35 | 36 | public String getName() { 37 | return name; 38 | } 39 | 40 | public void setName(String name) { 41 | this.name = name; 42 | } 43 | 44 | public String getUrl() { 45 | return null; 46 | } 47 | 48 | @Override 49 | public String toString() { 50 | return name; 51 | } 52 | 53 | @Override 54 | public int hashCode() { 55 | return (int) (id ^ (id >>> 32)); 56 | } 57 | 58 | @Override 59 | public boolean equals(Object obj) { 60 | if (this == obj) 61 | return true; 62 | if (obj == null) 63 | return false; 64 | if (getClass() != obj.getClass()) 65 | return false; 66 | Person other = (Person) obj; 67 | return (id == other.id); 68 | } 69 | 70 | @Override 71 | public int describeContents() { 72 | return 0; 73 | } 74 | 75 | @Override 76 | public void writeToParcel(Parcel out, int flags) { 77 | out.writeLong(id); 78 | out.writeString(name); 79 | } 80 | } 81 | -------------------------------------------------------------------------------- /app/src/main/java/org/opentech/model/Sponsor.java: -------------------------------------------------------------------------------- 1 | package org.opentech.model; 2 | 3 | import org.opentech.db.DatabaseHelper; 4 | import org.opentech.utils.StringUtils; 5 | 6 | /** 7 | * Created by manan on 25-03-2015. 8 | */ 9 | public class Sponsor { 10 | private int id; 11 | private String name; 12 | private String img; 13 | private String url; 14 | 15 | public Sponsor(int id, String name, String img, String url){ 16 | this.id = id; 17 | this.name = name; 18 | this.img = img; 19 | this.url =url; 20 | } 21 | 22 | public void setImg(String img) { 23 | this.img = img; 24 | } 25 | 26 | public String getImg() { 27 | return img; 28 | } 29 | 30 | public void setName(String name) { 31 | this.name = name; 32 | } 33 | 34 | public String getName() { 35 | return name; 36 | } 37 | 38 | public void setUrl(String url) { 39 | this.url = url; 40 | } 41 | 42 | public String getUrl() { 43 | return url; 44 | } 45 | 46 | public String generatesql(){ 47 | String query = "INSERT INTO %s VALUES ('%d', '%s', '%s', '%s')"; 48 | query = String.format(query, DatabaseHelper.TABLE_NAME_SPONSOR, id, StringUtils.replaceUnicode(name), StringUtils.replaceUnicode(img), StringUtils.replaceUnicode(url)); 49 | return query; 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /app/src/main/java/org/opentech/model/TrackUrlVenue.java: -------------------------------------------------------------------------------- 1 | package org.opentech.model; 2 | 3 | /** 4 | * Created by Abhishek on 06/03/15. 5 | */ 6 | public class TrackUrlVenue { 7 | 8 | private String url; 9 | private String version; 10 | private String venue; 11 | private String key; 12 | 13 | public TrackUrlVenue(String url, String version, String venue, String key) { 14 | this.url = url; 15 | this.version = version; 16 | this.venue = venue; 17 | this.key = key; 18 | } 19 | 20 | public String getUrl() { 21 | return url; 22 | } 23 | 24 | public void setUrl(String url) { 25 | this.url = url; 26 | } 27 | 28 | public String getVersion() { 29 | return version; 30 | } 31 | 32 | public void setVersion(String version) { 33 | this.version = version; 34 | } 35 | 36 | public String getVenue() { 37 | return venue; 38 | } 39 | 40 | public void setVenue(String venue) { 41 | this.venue = venue; 42 | } 43 | 44 | public String getKey() { 45 | return key; 46 | } 47 | 48 | public void setKey(String key) { 49 | this.key = key; 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /app/src/main/java/org/opentech/model/Venue.java: -------------------------------------------------------------------------------- 1 | package org.opentech.model; 2 | 3 | import org.opentech.db.DatabaseHelper; 4 | import org.opentech.utils.StringUtils; 5 | 6 | /** 7 | * Created by Abhishek on 12/03/15. 8 | */ 9 | public class Venue { 10 | 11 | private String track; 12 | private String venue; 13 | private String map; 14 | private String room; 15 | private String link; 16 | private String address; 17 | private String howToReach; 18 | 19 | public Venue(String track, String venue, String map, String room, String link, String address, String howToReach) { 20 | this.track = track; 21 | this.venue = venue; 22 | this.map = map; 23 | this.room = room; 24 | this.link = link; 25 | this.address = address; 26 | this.howToReach = howToReach; 27 | } 28 | 29 | public String getTrack() { 30 | return track; 31 | } 32 | 33 | public void setTrack(String track) { 34 | this.track = track; 35 | } 36 | 37 | public String getVenue() { 38 | return venue; 39 | } 40 | 41 | public void setVenue(String venue) { 42 | this.venue = venue; 43 | } 44 | 45 | public String getMap() { 46 | return map; 47 | } 48 | 49 | public void setMap(String map) { 50 | this.map = map; 51 | } 52 | 53 | public String getRoom() { 54 | return room; 55 | } 56 | 57 | public void setRoom(String room) { 58 | this.room = room; 59 | } 60 | 61 | public String getLink() { 62 | return link; 63 | } 64 | 65 | public void setLink(String link) { 66 | this.link = link; 67 | } 68 | 69 | public String getAddress() { 70 | return address; 71 | } 72 | 73 | public void setAddress(String address) { 74 | this.address = address; 75 | } 76 | 77 | public String getHowToReach() { 78 | return howToReach; 79 | } 80 | 81 | public void setHowToReach(String howToReach) { 82 | this.howToReach = howToReach; 83 | } 84 | 85 | public String generateSql() { 86 | 87 | //tract TEXT, venue TEXT, map TEXT, room TEXT, link TEXT, address TEXT, how_to_reach TEXT 88 | String query = "INSERT INTO %s VALUES ('%s', '%s', '%s', '%s', '%s', '%s', '%s')"; 89 | query = String.format(query, DatabaseHelper.TABLE_NAME_VENUE, StringUtils.replaceUnicode(track), StringUtils.replaceUnicode(venue), StringUtils.replaceUnicode(map), StringUtils.replaceUnicode(room), StringUtils.replaceUnicode(link), StringUtils.replaceUnicode(address), StringUtils.replaceUnicode(howToReach)); 90 | return query; 91 | } 92 | } 93 | -------------------------------------------------------------------------------- /app/src/main/java/org/opentech/providers/SearchSuggestionProvider.java: -------------------------------------------------------------------------------- 1 | package org.opentech.providers; 2 | 3 | import android.app.SearchManager; 4 | import android.content.ContentProvider; 5 | import android.content.ContentValues; 6 | import android.database.Cursor; 7 | import android.net.Uri; 8 | import android.text.TextUtils; 9 | 10 | import org.opentech.db.DatabaseManager; 11 | 12 | /** 13 | * Simple content provider responsible for search suggestions. 14 | * 15 | * @author Christophe Beyls 16 | */ 17 | public class SearchSuggestionProvider extends ContentProvider { 18 | 19 | private static final int MIN_QUERY_LENGTH = 3; 20 | private static final int DEFAULT_MAX_RESULTS = 5; 21 | 22 | @Override 23 | public boolean onCreate() { 24 | return true; 25 | } 26 | 27 | @Override 28 | public int delete(Uri uri, String selection, String[] selectionArgs) { 29 | throw new UnsupportedOperationException(); 30 | } 31 | 32 | @Override 33 | public Uri insert(Uri uri, ContentValues values) { 34 | throw new UnsupportedOperationException(); 35 | } 36 | 37 | @Override 38 | public int update(Uri uri, ContentValues values, String selection, String[] selectionArgs) { 39 | throw new UnsupportedOperationException(); 40 | } 41 | 42 | @Override 43 | public String getType(Uri uri) { 44 | return SearchManager.SUGGEST_MIME_TYPE; 45 | } 46 | 47 | @Override 48 | public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder) { 49 | String query = uri.getLastPathSegment(); 50 | // Ignore empty or too small queries 51 | if (query == null) { 52 | return null; 53 | } 54 | query = query.trim(); 55 | if ((query.length() < MIN_QUERY_LENGTH) || "search_suggest_query".equals(query)) { 56 | return null; 57 | } 58 | 59 | String limitParam = uri.getQueryParameter("limit"); 60 | int limit = TextUtils.isEmpty(limitParam) ? DEFAULT_MAX_RESULTS : Integer.parseInt(limitParam); 61 | 62 | return DatabaseManager.getInstance().getSearchSuggestionResults(query, limit); 63 | } 64 | } 65 | -------------------------------------------------------------------------------- /app/src/main/java/org/opentech/receivers/AlarmReceiver.java: -------------------------------------------------------------------------------- 1 | package org.opentech.receivers; 2 | 3 | import android.content.Context; 4 | import android.content.Intent; 5 | import android.support.v4.content.WakefulBroadcastReceiver; 6 | 7 | import org.opentech.alarms.FosdemAlarmManager; 8 | import org.opentech.services.AlarmIntentService; 9 | 10 | /** 11 | * Entry point for system-generated events: boot complete and alarms. 12 | * 13 | * @author Christophe Beyls 14 | */ 15 | public class AlarmReceiver extends WakefulBroadcastReceiver { 16 | 17 | public static final String ACTION_NOTIFY_EVENT = "be.digitalia.fosdem.action.NOTIFY_EVENT"; 18 | 19 | @Override 20 | public void onReceive(Context context, Intent intent) { 21 | String action = intent.getAction(); 22 | 23 | if (ACTION_NOTIFY_EVENT.equals(action)) { 24 | 25 | // Forward the intent to the AlarmIntentService for background processing of the notification 26 | Intent serviceIntent = new Intent(context, AlarmIntentService.class); 27 | serviceIntent.setAction(ACTION_NOTIFY_EVENT); 28 | serviceIntent.setData(intent.getData()); 29 | startWakefulService(context, serviceIntent); 30 | 31 | } else if (Intent.ACTION_BOOT_COMPLETED.equals(action)) { 32 | 33 | if (FosdemAlarmManager.getInstance().isEnabled()) { 34 | Intent serviceIntent = new Intent(context, AlarmIntentService.class); 35 | serviceIntent.setAction(AlarmIntentService.ACTION_UPDATE_ALARMS); 36 | serviceIntent.putExtra(AlarmIntentService.EXTRA_WITH_WAKE_LOCK, true); 37 | startWakefulService(context, serviceIntent); 38 | } 39 | } 40 | } 41 | 42 | } 43 | -------------------------------------------------------------------------------- /app/src/main/java/org/opentech/utils/ArrayUtils.java: -------------------------------------------------------------------------------- 1 | package org.opentech.utils; 2 | 3 | public class ArrayUtils { 4 | 5 | public static int indexOf(long[] array, long value) { 6 | for (int i = 0; i < array.length; ++i) { 7 | if (array[i] == value) { 8 | return i; 9 | } 10 | } 11 | return -1; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /app/src/main/java/org/opentech/utils/BitmapLruCache.java: -------------------------------------------------------------------------------- 1 | package org.opentech.utils; 2 | 3 | import android.content.Context; 4 | import android.graphics.Bitmap; 5 | import android.support.v4.util.LruCache; 6 | 7 | import com.android.volley.toolbox.ImageLoader.ImageCache; 8 | 9 | /** 10 | * Created by Abhishek on 14/02/15. 11 | */ 12 | public class BitmapLruCache extends LruCache implements 13 | ImageCache { 14 | public BitmapLruCache(Context context) { 15 | this(getDefaultLruCacheSize(context), context); 16 | } 17 | 18 | public BitmapLruCache(int sizeInKiloBytes, Context context) { 19 | super(sizeInKiloBytes); 20 | } 21 | 22 | public static int getDefaultLruCacheSize(Context context) { 23 | 24 | final int maxMemory = (int) (Runtime.getRuntime().maxMemory() / 25 | 1024); 26 | final int cacheSize = maxMemory / 2; 27 | 28 | return cacheSize; 29 | 30 | } 31 | 32 | @Override 33 | protected int sizeOf(String key, Bitmap value) { 34 | return value.getRowBytes() * value.getHeight() / 1024; 35 | } 36 | 37 | @Override 38 | public Bitmap getBitmap(String url) { 39 | return get(url); 40 | } 41 | 42 | @Override 43 | public void putBitmap(String url, Bitmap bitmap) { 44 | put(url, bitmap); 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /app/src/main/java/org/opentech/utils/ByteCountInputStream.java: -------------------------------------------------------------------------------- 1 | package org.opentech.utils; 2 | 3 | import android.support.annotation.NonNull; 4 | 5 | import java.io.FilterInputStream; 6 | import java.io.IOException; 7 | import java.io.InputStream; 8 | 9 | /** 10 | * An InputStream which counts the total number of bytes read and notifies a listener. 11 | * 12 | * @author Christophe Beyls 13 | */ 14 | public class ByteCountInputStream extends FilterInputStream { 15 | 16 | private final ByteCountListener listener; 17 | private final int interval; 18 | private int currentBytes = 0; 19 | private int nextStepBytes; 20 | 21 | public ByteCountInputStream(InputStream input, ByteCountListener listener, int interval) { 22 | super(input); 23 | if (listener == null) { 24 | throw new IllegalArgumentException("listener must not be null"); 25 | } 26 | if (interval <= 0) { 27 | throw new IllegalArgumentException("interval must be at least 1 byte"); 28 | } 29 | this.listener = listener; 30 | this.interval = interval; 31 | nextStepBytes = interval; 32 | listener.onNewCount(0); 33 | } 34 | 35 | @Override 36 | public int read() throws IOException { 37 | int b = super.read(); 38 | addBytes((b == -1) ? -1 : 1); 39 | return b; 40 | } 41 | 42 | @Override 43 | public int read(@NonNull byte[] buffer, int offset, int max) throws IOException { 44 | int count = super.read(buffer, offset, max); 45 | addBytes(count); 46 | return count; 47 | } 48 | 49 | @Override 50 | public boolean markSupported() { 51 | return false; 52 | } 53 | 54 | @Override 55 | public synchronized void mark(int readlimit) { 56 | throw new IllegalStateException(); 57 | } 58 | 59 | @Override 60 | public synchronized void reset() throws IOException { 61 | throw new IllegalStateException(); 62 | } 63 | 64 | @Override 65 | public long skip(long byteCount) throws IOException { 66 | long count = super.skip(byteCount); 67 | addBytes((int) count); 68 | return count; 69 | } 70 | 71 | private void addBytes(int count) { 72 | if (count != -1) { 73 | currentBytes += count; 74 | if (currentBytes < nextStepBytes) { 75 | return; 76 | } 77 | nextStepBytes = currentBytes + interval; 78 | } 79 | listener.onNewCount(currentBytes); 80 | } 81 | 82 | public interface ByteCountListener { 83 | void onNewCount(int byteCount); 84 | } 85 | } 86 | -------------------------------------------------------------------------------- /app/src/main/java/org/opentech/utils/DateUtils.java: -------------------------------------------------------------------------------- 1 | package org.opentech.utils; 2 | 3 | import java.text.DateFormat; 4 | import java.text.SimpleDateFormat; 5 | import java.util.Locale; 6 | import java.util.TimeZone; 7 | 8 | public class DateUtils { 9 | 10 | private static final TimeZone BELGIUM_TIME_ZONE = TimeZone.getTimeZone("GMT+1"); 11 | 12 | private static final DateFormat TIME_DATE_FORMAT = withBelgiumTimeZone(SimpleDateFormat.getTimeInstance(SimpleDateFormat.SHORT, Locale.getDefault())); 13 | 14 | public static TimeZone getBelgiumTimeZone() { 15 | return BELGIUM_TIME_ZONE; 16 | } 17 | 18 | public static DateFormat withBelgiumTimeZone(DateFormat format) { 19 | format.setTimeZone(BELGIUM_TIME_ZONE); 20 | return format; 21 | } 22 | 23 | public static DateFormat getTimeDateFormat() { 24 | return TIME_DATE_FORMAT; 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /app/src/main/java/org/opentech/utils/NfcReceiverUtils.java: -------------------------------------------------------------------------------- 1 | package org.opentech.utils; 2 | 3 | import android.annotation.TargetApi; 4 | import android.content.Intent; 5 | import android.nfc.NdefMessage; 6 | import android.nfc.NfcAdapter; 7 | import android.os.Build; 8 | import android.os.Parcelable; 9 | 10 | /** 11 | * NFC helper methods for receiving data sent by NfcSenderUtils. This class wraps API 10+ code. 12 | * 13 | * @author Christophe Beyls 14 | */ 15 | @TargetApi(Build.VERSION_CODES.GINGERBREAD_MR1) 16 | class NfcReceiverUtils { 17 | 18 | public static boolean hasAppData(Intent intent) { 19 | return NfcAdapter.ACTION_NDEF_DISCOVERED.equals(intent.getAction()); 20 | } 21 | 22 | public static byte[] extractAppData(Intent intent) { 23 | Parcelable[] rawMsgs = intent.getParcelableArrayExtra(NfcAdapter.EXTRA_NDEF_MESSAGES); 24 | NdefMessage msg = (NdefMessage) rawMsgs[0]; 25 | return msg.getRecords()[0].getPayload(); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /app/src/main/java/org/opentech/utils/NfcSenderUtils.java: -------------------------------------------------------------------------------- 1 | package org.opentech.utils; 2 | 3 | import android.annotation.TargetApi; 4 | import android.app.Activity; 5 | import android.nfc.NdefMessage; 6 | import android.nfc.NdefRecord; 7 | import android.nfc.NfcAdapter; 8 | import android.nfc.NfcAdapter.CreateNdefMessageCallback; 9 | import android.nfc.NfcEvent; 10 | import android.os.Build; 11 | 12 | import org.opentech.utils.NfcUtils.CreateNfcAppDataCallback; 13 | 14 | import java.nio.charset.Charset; 15 | 16 | /** 17 | * NFC helper methods for Android Beam foreground push. This class wraps API 14+ code. 18 | * 19 | * @author Christophe Beyls 20 | */ 21 | @TargetApi(Build.VERSION_CODES.ICE_CREAM_SANDWICH) 22 | class NfcSenderUtils { 23 | 24 | public static boolean setAppDataPushMessageCallbackIfAvailable(Activity activity, final CreateNfcAppDataCallback callback) { 25 | NfcAdapter adapter = NfcAdapter.getDefaultAdapter(activity); 26 | if (adapter == null) { 27 | return false; 28 | } 29 | final String packageName = activity.getPackageName(); 30 | adapter.setNdefPushMessageCallback(new CreateNdefMessageCallback() { 31 | 32 | @Override 33 | public NdefMessage createNdefMessage(NfcEvent event) { 34 | byte[] appData = callback.createNfcAppData(); 35 | if (appData == null) { 36 | return null; 37 | } 38 | NdefRecord[] records = new NdefRecord[]{createMimeRecord("application/" + packageName, appData), 39 | NdefRecord.createApplicationRecord(packageName)}; 40 | return new NdefMessage(records); 41 | } 42 | 43 | }, activity); 44 | return true; 45 | } 46 | 47 | private static NdefRecord createMimeRecord(String mimeType, byte[] payload) { 48 | byte[] mimeBytes = mimeType.getBytes(Charset.forName("US-ASCII")); 49 | return new NdefRecord(NdefRecord.TNF_MIME_MEDIA, mimeBytes, new byte[0], payload); 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /app/src/main/java/org/opentech/utils/NfcUtils.java: -------------------------------------------------------------------------------- 1 | package org.opentech.utils; 2 | 3 | import android.app.Activity; 4 | import android.content.Intent; 5 | import android.os.Build; 6 | 7 | /** 8 | * NFC helper methods compatible with all API levels. 9 | * 10 | * @author Christophe Beyls 11 | */ 12 | public class NfcUtils { 13 | 14 | /** 15 | * Call this method in an Activity, between onCreate() and onDestroy(), to make its content sharable using Android Beam if available. MIME type of the data 16 | * to share will be "application/" followed by the app's package name. Declare it in your Manifest's intent filters as the data type with an action of 17 | * android.nfc.action.NDEF_DISCOVERED to handle the NFC Intents on the receiver side. 18 | * 19 | * @param activity 20 | * @param callback 21 | * @return true if NFC is available and the content was made available, false if not. 22 | */ 23 | public static boolean setAppDataPushMessageCallbackIfAvailable(Activity activity, final CreateNfcAppDataCallback callback) { 24 | if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) { 25 | return NfcSenderUtils.setAppDataPushMessageCallbackIfAvailable(activity, callback); 26 | } 27 | return false; 28 | } 29 | 30 | /** 31 | * Determines if the intent contains NFC NDEF application-specific data to be extracted. 32 | * 33 | * @param intent 34 | * @return 35 | */ 36 | public static boolean hasAppData(Intent intent) { 37 | if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.GINGERBREAD_MR1) { 38 | return NfcReceiverUtils.hasAppData(intent); 39 | } 40 | return false; 41 | } 42 | 43 | /** 44 | * Extracts application-specific data sent through NFC from an intent. You must first ensure that the intent contains NFC data by calling hasAppData(). 45 | * 46 | * @param intent 47 | * @return The extracted data 48 | */ 49 | public static byte[] extractAppData(Intent intent) { 50 | if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.GINGERBREAD_MR1) { 51 | return NfcReceiverUtils.extractAppData(intent); 52 | } 53 | return null; 54 | } 55 | 56 | /** 57 | * Implement this interface to create application-specific data to be shared through Android Beam. 58 | */ 59 | public interface CreateNfcAppDataCallback { 60 | /** 61 | * @return The app data, or null if no data is currently available for sharing. 62 | */ 63 | public byte[] createNfcAppData(); 64 | } 65 | } 66 | -------------------------------------------------------------------------------- /app/src/main/java/org/opentech/utils/VolleySingleton.java: -------------------------------------------------------------------------------- 1 | package org.opentech.utils; 2 | 3 | import android.content.Context; 4 | 5 | import com.android.volley.RequestQueue; 6 | import com.android.volley.toolbox.ImageLoader; 7 | import com.android.volley.toolbox.Volley; 8 | 9 | /** 10 | * Created by Abhishek on 14/02/15. 11 | */ 12 | public class VolleySingleton { 13 | private static RequestQueue mQueue; 14 | private static ImageLoader mImageLoader; 15 | private static VolleySingleton mInstance = null; 16 | 17 | 18 | private VolleySingleton(Context mContext) { 19 | mQueue = Volley.newRequestQueue(mContext); 20 | } 21 | 22 | public static ImageLoader getImageLoader(Context context) { 23 | if (mImageLoader == null) { 24 | 25 | //mImageLoader = new ImageLoader(ImageUtil.getReqQueue(context), new DiskBitmapCache(context.getExternalCacheDir())); 26 | mImageLoader = new ImageLoader(VolleySingleton.getReqQueue(context), new BitmapLruCache(context)); 27 | 28 | } 29 | 30 | return mImageLoader; 31 | 32 | } 33 | 34 | public static VolleySingleton getInstance(Context context) { 35 | if (mInstance == null) { 36 | mInstance = new VolleySingleton(context); 37 | } 38 | return mInstance; 39 | } 40 | 41 | 42 | public static RequestQueue getReqQueue(Context context) { 43 | if (mQueue == null) 44 | mQueue = Volley.newRequestQueue(context); 45 | 46 | 47 | return mQueue; 48 | } 49 | 50 | 51 | } -------------------------------------------------------------------------------- /app/src/main/res/anim-v21/fab_elevation.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 10 | 11 | 12 | 18 | 19 | -------------------------------------------------------------------------------- /app/src/main/res/anim/partial_zoom_in.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 12 | 13 | 17 | 18 | -------------------------------------------------------------------------------- /app/src/main/res/anim/partial_zoom_out.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 12 | 13 | 17 | 18 | -------------------------------------------------------------------------------- /app/src/main/res/anim/partial_zoom_out_cum_total_fade.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 12 | 13 | 17 | 18 | -------------------------------------------------------------------------------- /app/src/main/res/anim/slide_in_right.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/anim/slide_out_right.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/anim/zoom_in.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 12 | 13 | 17 | 18 | -------------------------------------------------------------------------------- /app/src/main/res/anim/zoom_out.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 12 | 13 | 17 | 18 | -------------------------------------------------------------------------------- /app/src/main/res/color/tab_text.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi-v11/ic_stat_fosdem.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-hdpi-v11/ic_stat_fosdem.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/campusmap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-hdpi/campusmap.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/default_user.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-hdpi/default_user.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/drawer_shadow.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-hdpi/drawer_shadow.9.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/fosdem_fastscroll_thumb_default_holo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-hdpi/fosdem_fastscroll_thumb_default_holo.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/fosdem_fastscroll_thumb_pressed_holo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-hdpi/fosdem_fastscroll_thumb_pressed_holo.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/fosdem_progress_bg_holo_light.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-hdpi/fosdem_progress_bg_holo_light.9.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/fosdem_progress_primary_holo_light.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-hdpi/fosdem_progress_primary_holo_light.9.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/fosdem_progress_secondary_holo_light.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-hdpi/fosdem_progress_secondary_holo_light.9.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/fosdem_progressbar_indeterminate_holo1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-hdpi/fosdem_progressbar_indeterminate_holo1.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/fosdem_progressbar_indeterminate_holo2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-hdpi/fosdem_progressbar_indeterminate_holo2.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/fosdem_progressbar_indeterminate_holo3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-hdpi/fosdem_progressbar_indeterminate_holo3.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/fosdem_progressbar_indeterminate_holo4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-hdpi/fosdem_progressbar_indeterminate_holo4.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/fosdem_progressbar_indeterminate_holo5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-hdpi/fosdem_progressbar_indeterminate_holo5.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/fosdem_progressbar_indeterminate_holo6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-hdpi/fosdem_progressbar_indeterminate_holo6.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/fosdem_progressbar_indeterminate_holo7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-hdpi/fosdem_progressbar_indeterminate_holo7.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/fosdem_progressbar_indeterminate_holo8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-hdpi/fosdem_progressbar_indeterminate_holo8.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_access_time_grey600_18dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-hdpi/ic_access_time_grey600_18dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_bookmark_grey600_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-hdpi/ic_bookmark_grey600_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_bookmark_outline_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-hdpi/ic_bookmark_outline_white_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_bookmark_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-hdpi/ic_bookmark_white_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_delete_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-hdpi/ic_delete_white_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_directions_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-hdpi/ic_directions_white_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_event_add_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-hdpi/ic_event_add_white_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_event_grey600_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-hdpi/ic_event_grey600_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_filter_list_selected_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-hdpi/ic_filter_list_selected_white_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_filter_list_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-hdpi/ic_filter_list_white_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_local_offer_black_18dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-hdpi/ic_local_offer_black_18dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_local_offer_grey600_18dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-hdpi/ic_local_offer_grey600_18dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_map_grey600_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-hdpi/ic_map_grey600_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_people_grey600_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-hdpi/ic_people_grey600_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_place_grey600_18dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-hdpi/ic_place_grey600_18dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_place_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-hdpi/ic_place_white_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_place_white_wear.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-hdpi/ic_place_white_wear.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_play_circle_outline_grey600_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-hdpi/ic_play_circle_outline_grey600_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_public_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-hdpi/ic_public_white_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_search_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-hdpi/ic_search_white_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_share_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-hdpi/ic_share_white_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_stat_fosdem.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-hdpi/ic_stat_fosdem.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_sync_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-hdpi/ic_sync_white_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/linkedin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-hdpi/linkedin.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/list_focused_holo_dark.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-hdpi/list_focused_holo_dark.9.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/list_focused_holo_light.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-hdpi/list_focused_holo_light.9.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/list_longpressed_holo_dark.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-hdpi/list_longpressed_holo_dark.9.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/list_longpressed_holo_light.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-hdpi/list_longpressed_holo_light.9.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/opentech_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-hdpi/opentech_logo.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/opentech_logo_small: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-hdpi/opentech_logo_small -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/room_k1105.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-hdpi/room_k1105.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/room_k3x01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-hdpi/room_k3x01.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/room_k4x01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-hdpi/room_k4x01.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/twitter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-hdpi/twitter.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-ldpi/room_aw1105.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-ldpi/room_aw1105.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-ldpi/room_aw1115.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-ldpi/room_aw1115.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-ldpi/room_aw1117.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-ldpi/room_aw1117.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-ldpi/room_aw1120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-ldpi/room_aw1120.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-ldpi/room_aw1121.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-ldpi/room_aw1121.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-ldpi/room_aw1124.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-ldpi/room_aw1124.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-ldpi/room_aw1125.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-ldpi/room_aw1125.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-ldpi/room_aw1126.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-ldpi/room_aw1126.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-ldpi/room_ay.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-ldpi/room_ay.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-ldpi/room_h1301.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-ldpi/room_h1301.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-ldpi/room_h1302.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-ldpi/room_h1302.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-ldpi/room_h1308.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-ldpi/room_h1308.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-ldpi/room_h1309.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-ldpi/room_h1309.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-ldpi/room_h2213.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-ldpi/room_h2213.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-ldpi/room_h2214.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-ldpi/room_h2214.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-ldpi/room_h2215.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-ldpi/room_h2215.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-ldpi/room_janson.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-ldpi/room_janson.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-ldpi/room_ua2114.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-ldpi/room_ua2114.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-ldpi/room_ua2220.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-ldpi/room_ua2220.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-ldpi/room_ub2252.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-ldpi/room_ub2252.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-ldpi/room_ud2120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-ldpi/room_ud2120.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi-v11/ic_stat_fosdem.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-mdpi-v11/ic_stat_fosdem.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/drawer_shadow.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-mdpi/drawer_shadow.9.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/fosdem_fastscroll_thumb_default_holo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-mdpi/fosdem_fastscroll_thumb_default_holo.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/fosdem_fastscroll_thumb_pressed_holo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-mdpi/fosdem_fastscroll_thumb_pressed_holo.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/fosdem_progress_bg_holo_light.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-mdpi/fosdem_progress_bg_holo_light.9.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/fosdem_progress_primary_holo_light.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-mdpi/fosdem_progress_primary_holo_light.9.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/fosdem_progress_secondary_holo_light.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-mdpi/fosdem_progress_secondary_holo_light.9.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/fosdem_progressbar_indeterminate_holo1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-mdpi/fosdem_progressbar_indeterminate_holo1.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/fosdem_progressbar_indeterminate_holo2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-mdpi/fosdem_progressbar_indeterminate_holo2.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/fosdem_progressbar_indeterminate_holo3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-mdpi/fosdem_progressbar_indeterminate_holo3.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/fosdem_progressbar_indeterminate_holo4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-mdpi/fosdem_progressbar_indeterminate_holo4.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/fosdem_progressbar_indeterminate_holo5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-mdpi/fosdem_progressbar_indeterminate_holo5.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/fosdem_progressbar_indeterminate_holo6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-mdpi/fosdem_progressbar_indeterminate_holo6.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/fosdem_progressbar_indeterminate_holo7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-mdpi/fosdem_progressbar_indeterminate_holo7.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/fosdem_progressbar_indeterminate_holo8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-mdpi/fosdem_progressbar_indeterminate_holo8.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_access_time_grey600_18dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-mdpi/ic_access_time_grey600_18dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_bookmark_grey600_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-mdpi/ic_bookmark_grey600_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_bookmark_outline_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-mdpi/ic_bookmark_outline_white_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_bookmark_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-mdpi/ic_bookmark_white_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_delete_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-mdpi/ic_delete_white_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_directions_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-mdpi/ic_directions_white_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_event_add_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-mdpi/ic_event_add_white_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_event_grey600_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-mdpi/ic_event_grey600_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_filter_list_selected_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-mdpi/ic_filter_list_selected_white_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_filter_list_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-mdpi/ic_filter_list_white_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_local_offer_black_18dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-mdpi/ic_local_offer_black_18dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_local_offer_grey600_18dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-mdpi/ic_local_offer_grey600_18dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_map_grey600_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-mdpi/ic_map_grey600_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_people_grey600_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-mdpi/ic_people_grey600_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_place_grey600_18dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-mdpi/ic_place_grey600_18dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_place_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-mdpi/ic_place_white_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_place_white_wear.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-mdpi/ic_place_white_wear.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_play_circle_outline_grey600_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-mdpi/ic_play_circle_outline_grey600_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_public_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-mdpi/ic_public_white_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_search_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-mdpi/ic_search_white_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_share_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-mdpi/ic_share_white_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_stat_fosdem.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-mdpi/ic_stat_fosdem.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_sync_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-mdpi/ic_sync_white_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/list_focused_holo_dark.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-mdpi/list_focused_holo_dark.9.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/list_focused_holo_light.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-mdpi/list_focused_holo_light.9.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/list_longpressed_holo_dark.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-mdpi/list_longpressed_holo_dark.9.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/list_longpressed_holo_light.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-mdpi/list_longpressed_holo_light.9.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v21/fab_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi-v11/ic_stat_fosdem.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-xhdpi-v11/ic_stat_fosdem.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/drawer_shadow.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-xhdpi/drawer_shadow.9.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/fosdem_fastscroll_thumb_default_holo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-xhdpi/fosdem_fastscroll_thumb_default_holo.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/fosdem_fastscroll_thumb_pressed_holo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-xhdpi/fosdem_fastscroll_thumb_pressed_holo.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/fosdem_progress_bg_holo_light.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-xhdpi/fosdem_progress_bg_holo_light.9.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/fosdem_progress_primary_holo_light.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-xhdpi/fosdem_progress_primary_holo_light.9.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/fosdem_progress_secondary_holo_light.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-xhdpi/fosdem_progress_secondary_holo_light.9.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/fosdem_progressbar_indeterminate_holo1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-xhdpi/fosdem_progressbar_indeterminate_holo1.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/fosdem_progressbar_indeterminate_holo2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-xhdpi/fosdem_progressbar_indeterminate_holo2.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/fosdem_progressbar_indeterminate_holo3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-xhdpi/fosdem_progressbar_indeterminate_holo3.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/fosdem_progressbar_indeterminate_holo4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-xhdpi/fosdem_progressbar_indeterminate_holo4.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/fosdem_progressbar_indeterminate_holo5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-xhdpi/fosdem_progressbar_indeterminate_holo5.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/fosdem_progressbar_indeterminate_holo6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-xhdpi/fosdem_progressbar_indeterminate_holo6.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/fosdem_progressbar_indeterminate_holo7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-xhdpi/fosdem_progressbar_indeterminate_holo7.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/fosdem_progressbar_indeterminate_holo8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-xhdpi/fosdem_progressbar_indeterminate_holo8.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/fossasia.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-xhdpi/fossasia.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_access_time_grey600_18dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-xhdpi/ic_access_time_grey600_18dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_bookmark_grey600_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-xhdpi/ic_bookmark_grey600_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_bookmark_outline_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-xhdpi/ic_bookmark_outline_white_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_bookmark_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-xhdpi/ic_bookmark_white_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_delete_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-xhdpi/ic_delete_white_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_directions_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-xhdpi/ic_directions_white_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_event_add_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-xhdpi/ic_event_add_white_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_event_grey600_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-xhdpi/ic_event_grey600_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_filter_list_selected_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-xhdpi/ic_filter_list_selected_white_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_filter_list_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-xhdpi/ic_filter_list_white_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_local_offer_black_18dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-xhdpi/ic_local_offer_black_18dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_local_offer_grey600_18dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-xhdpi/ic_local_offer_grey600_18dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_map_grey600_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-xhdpi/ic_map_grey600_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_people_grey600_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-xhdpi/ic_people_grey600_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_place_grey600_18dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-xhdpi/ic_place_grey600_18dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_place_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-xhdpi/ic_place_white_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_place_white_wear.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-xhdpi/ic_place_white_wear.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_play_circle_outline_grey600_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-xhdpi/ic_play_circle_outline_grey600_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_public_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-xhdpi/ic_public_white_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_search_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-xhdpi/ic_search_white_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_share_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-xhdpi/ic_share_white_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_stat_fosdem.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-xhdpi/ic_stat_fosdem.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_sync_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-xhdpi/ic_sync_white_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/list_focused_holo_dark.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-xhdpi/list_focused_holo_dark.9.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/list_focused_holo_light.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-xhdpi/list_focused_holo_light.9.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/list_longpressed_holo_dark.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-xhdpi/list_longpressed_holo_dark.9.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/list_longpressed_holo_light.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-xhdpi/list_longpressed_holo_light.9.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi-v11/ic_stat_fosdem.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-xxhdpi-v11/ic_stat_fosdem.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/drawer_shadow.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-xxhdpi/drawer_shadow.9.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/fosdem_fastscroll_thumb_default_holo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-xxhdpi/fosdem_fastscroll_thumb_default_holo.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/fosdem_fastscroll_thumb_pressed_holo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-xxhdpi/fosdem_fastscroll_thumb_pressed_holo.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/fosdem_progress_bg_holo_light.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-xxhdpi/fosdem_progress_bg_holo_light.9.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/fosdem_progress_primary_holo_light.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-xxhdpi/fosdem_progress_primary_holo_light.9.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/fosdem_progress_secondary_holo_light.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-xxhdpi/fosdem_progress_secondary_holo_light.9.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/fosdem_progressbar_indeterminate_holo1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-xxhdpi/fosdem_progressbar_indeterminate_holo1.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/fosdem_progressbar_indeterminate_holo2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-xxhdpi/fosdem_progressbar_indeterminate_holo2.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/fosdem_progressbar_indeterminate_holo3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-xxhdpi/fosdem_progressbar_indeterminate_holo3.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/fosdem_progressbar_indeterminate_holo4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-xxhdpi/fosdem_progressbar_indeterminate_holo4.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/fosdem_progressbar_indeterminate_holo5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-xxhdpi/fosdem_progressbar_indeterminate_holo5.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/fosdem_progressbar_indeterminate_holo6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-xxhdpi/fosdem_progressbar_indeterminate_holo6.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/fosdem_progressbar_indeterminate_holo7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-xxhdpi/fosdem_progressbar_indeterminate_holo7.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/fosdem_progressbar_indeterminate_holo8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-xxhdpi/fosdem_progressbar_indeterminate_holo8.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/fossasia_sponsor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-xxhdpi/fossasia_sponsor.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/fossasia_squarelogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-xxhdpi/fossasia_squarelogo.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_access_time_grey600_18dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-xxhdpi/ic_access_time_grey600_18dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_bookmark_grey600_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-xxhdpi/ic_bookmark_grey600_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_bookmark_outline_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-xxhdpi/ic_bookmark_outline_white_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_bookmark_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-xxhdpi/ic_bookmark_white_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_delete_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-xxhdpi/ic_delete_white_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_directions_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-xxhdpi/ic_directions_white_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_event_add_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-xxhdpi/ic_event_add_white_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_event_grey600_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-xxhdpi/ic_event_grey600_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_filter_list_selected_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-xxhdpi/ic_filter_list_selected_white_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_filter_list_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-xxhdpi/ic_filter_list_white_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_local_offer_black_18dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-xxhdpi/ic_local_offer_black_18dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_local_offer_grey600_18dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-xxhdpi/ic_local_offer_grey600_18dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_map_grey600_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-xxhdpi/ic_map_grey600_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_people_grey600_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-xxhdpi/ic_people_grey600_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_place_grey600_18dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-xxhdpi/ic_place_grey600_18dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_place_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-xxhdpi/ic_place_white_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_place_white_wear.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-xxhdpi/ic_place_white_wear.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_play_circle_outline_grey600_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-xxhdpi/ic_play_circle_outline_grey600_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_public_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-xxhdpi/ic_public_white_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_search_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-xxhdpi/ic_search_white_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_share_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-xxhdpi/ic_share_white_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_stat_fosdem.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-xxhdpi/ic_stat_fosdem.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_sync_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-xxhdpi/ic_sync_white_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/list_focused_holo_dark.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-xxhdpi/list_focused_holo_dark.9.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/list_focused_holo_light.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-xxhdpi/list_focused_holo_light.9.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/list_longpressed_holo_dark.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-xxhdpi/list_longpressed_holo_dark.9.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/list_longpressed_holo_light.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-xxhdpi/list_longpressed_holo_light.9.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/activated_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/fab_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/fab_background_highlighted.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/fosdem_fastscroll_thumb_holo.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/fosdem_progress_horizontal_holo_light.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | 8 | 9 | 12 | 13 | 14 | 15 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/fosdem_progress_indeterminate_horizontal_holo_light.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 11 | 14 | 17 | 20 | 23 | 26 | 29 | 30 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_sponsor_drawer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable/ic_sponsor_drawer.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/list_selector_background_transition_holo_dark.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/list_selector_background_transition_holo_light.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/opentech_app_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/app/src/main/res/drawable/opentech_app_logo.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/room_chavanne.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/room_ferrer.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/room_guillissen.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/room_k3201.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/room_k3401.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/room_k3601.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/room_k4201.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/room_k4401.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/room_k4601.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/room_lameere.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | -------------------------------------------------------------------------------- /app/src/main/res/layout-sw600dp-land/track_schedule.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 11 | 12 | 19 | 20 | 26 | 27 | 28 | 37 | 38 | 45 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_maps.xml: -------------------------------------------------------------------------------- 1 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_splash.xml: -------------------------------------------------------------------------------- 1 | 11 | 12 | 13 | 20 | 21 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_track.xml: -------------------------------------------------------------------------------- 1 | 7 | 8 | 13 | 14 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /app/src/main/res/layout/content.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/src/main/res/layout/content_extended_title.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 13 | -------------------------------------------------------------------------------- /app/src/main/res/layout/footer_main_menu.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 11 | 12 | 17 | 18 | 23 | 24 | -------------------------------------------------------------------------------- /app/src/main/res/layout/fragment_live.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 16 | 17 | 22 | 23 | -------------------------------------------------------------------------------- /app/src/main/res/layout/fragment_map.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | -------------------------------------------------------------------------------- /app/src/main/res/layout/fragment_schedule.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 11 | 12 | 18 | 19 | 24 | 25 | 26 | 33 | 34 | -------------------------------------------------------------------------------- /app/src/main/res/layout/fragment_tracks.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 11 | 12 | 18 | 19 | 24 | 25 | 26 | 33 | 34 | -------------------------------------------------------------------------------- /app/src/main/res/layout/header_main_menu.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/layout/item_event.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 20 | 21 | 29 | 30 | 37 | 38 | -------------------------------------------------------------------------------- /app/src/main/res/layout/item_link.xml: -------------------------------------------------------------------------------- 1 | 2 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/layout/item_main_menu.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/layout/item_schedule_event.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 20 | 21 | 34 | 35 | -------------------------------------------------------------------------------- /app/src/main/res/layout/item_sponsor.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/layout/list_divider.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/layout/list_tracks.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 9 | 15 | 16 | 20 | -------------------------------------------------------------------------------- /app/src/main/res/layout/track_schedule.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 13 | 14 | 19 | -------------------------------------------------------------------------------- /app/src/main/res/layout/track_schedule_event.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 13 | 14 | 18 | 19 | 24 | 25 | -------------------------------------------------------------------------------- /app/src/main/res/menu/action_mode_bookmarks.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/menu/bookmarks.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 9 | 10 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /app/src/main/res/menu/event.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 10 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /app/src/main/res/menu/main.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 12 | 18 | 19 | -------------------------------------------------------------------------------- /app/src/main/res/menu/map.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/menu/menu_splash.xml: -------------------------------------------------------------------------------- 1 | 5 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/menu/menu_track.xml: -------------------------------------------------------------------------------- 1 | 5 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/menu/person.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/menu/search.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/values-sw600dp-land/bools.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | true 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/values-v11/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 13 | 14 | 20 | 21 | 24 | 25 | -------------------------------------------------------------------------------- /app/src/main/res/values-v21/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | @dimen/schedule_column_width 6 | 96dp 7 | 64dp 8 | 0dp 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/values-v21/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 9 | 10 | 16 | 17 | -------------------------------------------------------------------------------- /app/src/main/res/values-w820dp/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 64dp 6 | 7 | -------------------------------------------------------------------------------- /app/src/main/res/values/attrs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /app/src/main/res/values/bools.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | false 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | #f08130 5 | #F57C00 6 | #f08130 7 | #663479c4 8 | #323232 9 | #fffafafa 10 | #0c000000 11 | #29000000 12 | #000 13 | #d6000000 14 | #fff 15 | #797676 16 | -------------------------------------------------------------------------------- /app/src/main/res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 16dp 5 | 32dp 6 | 48dp 7 | 8dp 8 | 18sp 9 | 16sp 10 | 14sp 11 | 16dp 12 | 8dp 13 | 360dp 14 | 6dp 15 | 19 | 353dp 20 | 89dp 21 | 54dp 22 | -10dp 23 | 56dp 24 | 2dp 25 | 4dp 26 | 16dp 27 | 16dp 28 | 29 | 30 | 0dp 31 | 7dp 32 | 33 | -------------------------------------------------------------------------------- /app/src/main/res/values/vpi__attrs.xml: -------------------------------------------------------------------------------- 1 | 2 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | -------------------------------------------------------------------------------- /app/src/main/res/values/vpi__defaults.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | 20 | true 21 | 300 22 | 400 23 | @color/color_primary 24 | 25 | -------------------------------------------------------------------------------- /app/src/main/res/xml/main_searchable.xml: -------------------------------------------------------------------------------- 1 | 2 | 12 | 13 | -------------------------------------------------------------------------------- /app/src/main/res/xml/settings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 10 | 15 | 20 | 21 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /app/src/release/res/values/google_maps_api.xml: -------------------------------------------------------------------------------- 1 | 2 | 15 | AIzaSyCMc8QXJxhPiSow_x3UbWCchqMD-iw_qJ8 16 | 17 | -------------------------------------------------------------------------------- /build.gradle: -------------------------------------------------------------------------------- 1 | // Top-level build file where you can add configuration options common to all sub-projects/modules. 2 | buildscript { 3 | repositories { 4 | jcenter() 5 | } 6 | dependencies { 7 | classpath 'com.android.tools.build:gradle:1.1.0' 8 | } 9 | } 10 | 11 | allprojects { 12 | repositories { 13 | jcenter() 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpnTec/ots15-companion/1581adf64267337c68c664eb963bf1a8dfd7907c/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Wed Apr 10 15:27:10 PDT 2013 2 | distributionBase=GRADLE_USER_HOME 3 | distributionPath=wrapper/dists 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | distributionUrl=https\://services.gradle.org/distributions/gradle-2.2.1-all.zip 7 | -------------------------------------------------------------------------------- /settings.gradle: -------------------------------------------------------------------------------- 1 | include ':app' 2 | --------------------------------------------------------------------------------