├── .gradle ├── 2.10 │ └── taskArtifacts │ │ ├── cache.properties │ │ ├── cache.properties.lock │ │ ├── fileHashes.bin │ │ ├── fileSnapshots.bin │ │ ├── outputFileStates.bin │ │ └── taskArtifacts.bin └── 2.14.1 │ ├── taskArtifacts │ ├── cache.properties │ ├── cache.properties.lock │ ├── fileHashes.bin │ ├── fileSnapshots.bin │ ├── fileSnapshotsToTreeSnapshotsIndex.bin │ └── taskArtifacts.bin │ └── tasks │ └── _app_compileDebugJavaWithJavac │ ├── localClassSetAnalysis │ ├── localClassSetAnalysis.bin │ └── localClassSetAnalysis.lock │ └── localJarClasspathSnapshot │ ├── localJarClasspathSnapshot.bin │ └── localJarClasspathSnapshot.lock ├── .idea ├── compiler.xml ├── copyright │ └── profiles_settings.xml ├── encodings.xml ├── gradle.xml ├── libraries │ ├── airmapview_1_3_0.xml │ ├── android_maps_utils_0_4.xml │ ├── animated_vector_drawable_23_3_0.xml │ ├── appcompat_v7_23_3_0.xml │ ├── butterknife_6_1_0.xml │ ├── cardview_v7_23_3_0.xml │ ├── design_23_3_0.xml │ ├── gson_2_4.xml │ ├── hamcrest_core_1_3.xml │ ├── junit_4_12.xml │ ├── library_1_0_19.xml │ ├── library_1_1_0.xml │ ├── mediarouter_v7_23_0_0.xml │ ├── play_services_8_4_0.xml │ ├── play_services_ads_8_4_0.xml │ ├── play_services_analytics_8_4_0.xml │ ├── play_services_appindexing_8_4_0.xml │ ├── play_services_appinvite_8_4_0.xml │ ├── play_services_appstate_8_4_0.xml │ ├── play_services_auth_8_4_0.xml │ ├── play_services_base_8_4_0.xml │ ├── play_services_basement_8_4_0.xml │ ├── play_services_cast_8_4_0.xml │ ├── play_services_drive_8_4_0.xml │ ├── play_services_fitness_8_4_0.xml │ ├── play_services_games_8_4_0.xml │ ├── play_services_gcm_8_4_0.xml │ ├── play_services_identity_8_4_0.xml │ ├── play_services_location_8_4_0.xml │ ├── play_services_maps_8_4_0.xml │ ├── play_services_measurement_8_4_0.xml │ ├── play_services_nearby_8_4_0.xml │ ├── play_services_panorama_8_4_0.xml │ ├── play_services_plus_8_4_0.xml │ ├── play_services_safetynet_8_4_0.xml │ ├── play_services_vision_8_4_0.xml │ ├── play_services_wallet_8_4_0.xml │ ├── play_services_wearable_8_4_0.xml │ ├── recyclerview_v7_23_3_0.xml │ ├── support_annotations_23_3_0.xml │ ├── support_v4_23_3_0.xml │ └── support_vector_drawable_23_3_0.xml ├── misc.xml ├── modules.xml ├── runConfigurations.xml ├── vcs.xml └── workspace.xml ├── Airbnb-Map-View.iml ├── AirbnbMapExample.iml ├── LICENSE ├── README.md ├── app ├── .gitignore ├── app-release.apk ├── app.iml ├── build.gradle ├── proguard-rules.pro ├── release.jks └── src │ ├── androidTest │ └── java │ │ └── com │ │ └── purvotara │ │ └── airbnbmapexample │ │ └── ApplicationTest.java │ ├── debug │ └── res │ │ └── values │ │ └── google_maps_api.xml │ ├── main │ ├── AndroidManifest.xml │ ├── java │ │ └── com │ │ │ └── purvotara │ │ │ └── airbnbmapexample │ │ │ ├── constants │ │ │ └── NetworkConstants.java │ │ │ ├── controller │ │ │ └── BaseInterface.java │ │ │ ├── model │ │ │ ├── AddressModel.java │ │ │ └── BaseModel.java │ │ │ ├── network │ │ │ ├── BaseNetwork.java │ │ │ └── util │ │ │ │ ├── CustomVolleyRequestQueue.java │ │ │ │ ├── NetworkUtil.java │ │ │ │ └── README │ │ │ └── ui │ │ │ ├── activity │ │ │ ├── ListViewActivity.java │ │ │ ├── MainActivity.java │ │ │ ├── MapsActivity.java │ │ │ ├── MovingMarkerActivity.java │ │ │ ├── RecyclerViewLiteModeMapActivity.java │ │ │ ├── SearchPlaceOnMapActivity.java │ │ │ └── ShowDirectionActivity.java │ │ │ ├── adapter │ │ │ ├── ListViewAdapter.java │ │ │ ├── MapAdapter.java │ │ │ ├── PlaceAutocompleteAdapter.java │ │ │ └── RecyclerViewLiteModeAdapter.java │ │ │ ├── fragment │ │ │ ├── MapFragment.java │ │ │ └── MySupportMapFragment.java │ │ │ ├── util │ │ │ ├── GoogleMapUtis.java │ │ │ ├── IconizedWindowAdapter.java │ │ │ ├── PermissionUtils.java │ │ │ └── Util.java │ │ │ └── widget │ │ │ ├── MyAnimationUtils.java │ │ │ └── TouchableWrapper.java │ └── res │ │ ├── drawable-hdpi │ │ ├── about_location_icon.png │ │ ├── ic_add_circle_outline_white_48dp.png │ │ ├── location.png │ │ ├── location_distance.png │ │ ├── location_icon.png │ │ ├── location_icon_active.png │ │ ├── location_icon_grey.png │ │ ├── my_favourites_icon.png │ │ ├── my_favourites_icon_active.png │ │ ├── navigate.png │ │ ├── navigation_icon.png │ │ ├── rating_icon.png │ │ ├── rating_icon_active.png │ │ ├── spa_white.png │ │ ├── star_gray_icon.png │ │ └── toolbar_close_icon.png │ │ ├── drawable-ldpi │ │ ├── about_location_icon.png │ │ ├── ic_add_circle_outline_white_48dp.png │ │ ├── location.png │ │ ├── location_distance.png │ │ ├── location_icon.png │ │ ├── location_icon_active.png │ │ ├── location_icon_grey.png │ │ ├── my_favourites_icon.png │ │ ├── my_favourites_icon_active.png │ │ ├── star_gray_icon.png │ │ ├── star_icon_white.png │ │ └── toolbar_close_icon.png │ │ ├── drawable-mdpi │ │ ├── about_location_icon.png │ │ ├── end_green.png │ │ ├── ic_add_circle_outline_white_48dp.png │ │ ├── ic_send_grey600_48dp.png │ │ ├── location.png │ │ ├── location_distance.png │ │ ├── location_icon.png │ │ ├── location_icon_active.png │ │ ├── location_icon_grey.png │ │ ├── my_favourites_icon.png │ │ ├── my_favourites_icon_active.png │ │ ├── pushpin.png │ │ ├── star_gray_icon.png │ │ ├── star_icon_white.png │ │ ├── start_blue.png │ │ └── toolbar_close_icon.png │ │ ├── drawable-xhdpi │ │ ├── about_location_icon.png │ │ ├── back_arrow_black.png │ │ ├── back_arrow_white.png │ │ ├── end_green.png │ │ ├── ic_add_circle_outline_white_48dp.png │ │ ├── ic_send_grey600_48dp.png │ │ ├── locality.png │ │ ├── location.png │ │ ├── location_distance.png │ │ ├── location_icon.png │ │ ├── location_icon_active.png │ │ ├── location_icon_grey.png │ │ ├── my_favourites_icon.png │ │ ├── my_favourites_icon_active.png │ │ ├── pushpin.png │ │ ├── rating_icon.png │ │ ├── rating_icon_active.png │ │ ├── star_gray_icon.png │ │ ├── star_white.png │ │ ├── star_white_icon.png │ │ ├── start_blue.png │ │ └── toolbar_close_icon.png │ │ ├── drawable-xxhdpi │ │ ├── about_location_icon.png │ │ ├── end_green.png │ │ ├── ic_add_circle_outline_white_48dp.png │ │ ├── ic_send_grey600_48dp.png │ │ ├── locality.png │ │ ├── location.png │ │ ├── location_distance.png │ │ ├── location_icon.png │ │ ├── location_icon_active.png │ │ ├── location_icon_grey.png │ │ ├── my_favourites_icon.png │ │ ├── my_favourites_icon_active.png │ │ ├── navigate.png │ │ ├── navigation_icon.png │ │ ├── pushpin.png │ │ ├── rating_icon.png │ │ ├── rating_icon_active.png │ │ ├── star_gray_icon.png │ │ ├── star_icon_white.png │ │ ├── star_white.png │ │ ├── star_white_icon.png │ │ ├── start_blue.png │ │ └── toolbar_close_icon.png │ │ ├── drawable-xxxhdpi │ │ ├── about_location_icon.png │ │ ├── end_green.png │ │ ├── ic_add_circle_outline_white_48dp.png │ │ ├── ic_send_grey600_48dp.png │ │ ├── locality.png │ │ ├── location.png │ │ ├── location_distance.png │ │ ├── location_icon.png │ │ ├── location_icon_active.png │ │ ├── location_icon_grey.png │ │ ├── my_favourites_icon.png │ │ ├── my_favourites_icon_active.png │ │ ├── navigate.png │ │ ├── navigation_icon.png │ │ ├── pushpin.png │ │ ├── rating_icon.png │ │ ├── rating_icon_active.png │ │ ├── star_gray_icon.png │ │ ├── star_icon_white.png │ │ ├── star_white.png │ │ ├── star_white_icon.png │ │ ├── start_blue.png │ │ └── toolbar_close_icon.png │ │ ├── drawable │ │ ├── Thumbs.db │ │ ├── blue_border_button.xml │ │ ├── blue_rounded_corners_bg.xml │ │ ├── car.png │ │ ├── car_small.png │ │ ├── car_small_red.png │ │ ├── dotted.xml │ │ ├── dotted_line.xml │ │ ├── line_divider.xml │ │ ├── location_distance.png │ │ ├── pin.png │ │ ├── placeholder.png │ │ ├── profile_img_bottomshadow.png │ │ ├── profile_img_topshadow.png │ │ ├── star_gray_icon.png │ │ └── star_icon_white.png │ │ ├── layout │ │ ├── activity_list_view.xml │ │ ├── activity_main.xml │ │ ├── activity_maps.xml │ │ ├── activity_moving_marker.xml │ │ ├── activity_recycler_view_lite_mode_map.xml │ │ ├── activity_search_place_on_map.xml │ │ ├── activity_show_direction.xml │ │ ├── deal_card_layout.xml │ │ ├── google_places_search_items.xml │ │ ├── item_lite_mode_layout.xml │ │ ├── map_marker_text.xml │ │ ├── map_marker_text_active.xml │ │ ├── map_view_item.xml │ │ └── marker_tooltip.xml │ │ ├── menu │ │ └── base.xml │ │ ├── mipmap-hdpi │ │ ├── deals_icon.png │ │ ├── deals_icon_active.png │ │ ├── ic_launcher.png │ │ ├── map_pin_green.png │ │ └── map_pin_white.png │ │ ├── mipmap-mdpi │ │ ├── deals_icon.png │ │ ├── deals_icon_active.png │ │ ├── ic_launcher.png │ │ ├── map_pin_green.png │ │ └── map_pin_white.png │ │ ├── mipmap-xhdpi │ │ ├── deals_icon.png │ │ ├── deals_icon_active.png │ │ ├── ic_launcher.png │ │ ├── map_pin_green.png │ │ └── map_pin_white.png │ │ ├── mipmap-xxhdpi │ │ ├── deals_icon.png │ │ ├── deals_icon_active.png │ │ ├── ic_launcher.png │ │ ├── map_pin_green.png │ │ └── map_pin_white.png │ │ ├── mipmap-xxxhdpi │ │ ├── deals_icon.png │ │ ├── deals_icon_active.png │ │ ├── ic_launcher.png │ │ ├── map_pin_green.png │ │ └── map_pin_white.png │ │ ├── values-w820dp │ │ └── dimens.xml │ │ └── values │ │ ├── colors.xml │ │ ├── dimens.xml │ │ ├── strings.xml │ │ └── styles.xml │ ├── release │ └── res │ │ └── values │ │ └── google_maps_api.xml │ └── test │ └── java │ └── com │ └── purvotara │ └── airbnbmapexample │ └── ExampleUnitTest.java ├── build.gradle ├── build ├── generated │ └── mockable-android-23.jar └── intermediates │ └── dex-cache │ └── cache.xml ├── gradle.properties ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── local.properties └── settings.gradle /.gradle/2.10/taskArtifacts/cache.properties: -------------------------------------------------------------------------------- 1 | #Fri Apr 15 17:03:06 IST 2016 2 | -------------------------------------------------------------------------------- /.gradle/2.10/taskArtifacts/cache.properties.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/.gradle/2.10/taskArtifacts/cache.properties.lock -------------------------------------------------------------------------------- /.gradle/2.10/taskArtifacts/fileHashes.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/.gradle/2.10/taskArtifacts/fileHashes.bin -------------------------------------------------------------------------------- /.gradle/2.10/taskArtifacts/fileSnapshots.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/.gradle/2.10/taskArtifacts/fileSnapshots.bin -------------------------------------------------------------------------------- /.gradle/2.10/taskArtifacts/outputFileStates.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/.gradle/2.10/taskArtifacts/outputFileStates.bin -------------------------------------------------------------------------------- /.gradle/2.10/taskArtifacts/taskArtifacts.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/.gradle/2.10/taskArtifacts/taskArtifacts.bin -------------------------------------------------------------------------------- /.gradle/2.14.1/taskArtifacts/cache.properties: -------------------------------------------------------------------------------- 1 | #Tue Oct 04 12:35:21 IST 2016 2 | -------------------------------------------------------------------------------- /.gradle/2.14.1/taskArtifacts/cache.properties.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/.gradle/2.14.1/taskArtifacts/cache.properties.lock -------------------------------------------------------------------------------- /.gradle/2.14.1/taskArtifacts/fileHashes.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/.gradle/2.14.1/taskArtifacts/fileHashes.bin -------------------------------------------------------------------------------- /.gradle/2.14.1/taskArtifacts/fileSnapshots.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/.gradle/2.14.1/taskArtifacts/fileSnapshots.bin -------------------------------------------------------------------------------- /.gradle/2.14.1/taskArtifacts/fileSnapshotsToTreeSnapshotsIndex.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/.gradle/2.14.1/taskArtifacts/fileSnapshotsToTreeSnapshotsIndex.bin -------------------------------------------------------------------------------- /.gradle/2.14.1/taskArtifacts/taskArtifacts.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/.gradle/2.14.1/taskArtifacts/taskArtifacts.bin -------------------------------------------------------------------------------- /.gradle/2.14.1/tasks/_app_compileDebugJavaWithJavac/localClassSetAnalysis/localClassSetAnalysis.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/.gradle/2.14.1/tasks/_app_compileDebugJavaWithJavac/localClassSetAnalysis/localClassSetAnalysis.bin -------------------------------------------------------------------------------- /.gradle/2.14.1/tasks/_app_compileDebugJavaWithJavac/localClassSetAnalysis/localClassSetAnalysis.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/.gradle/2.14.1/tasks/_app_compileDebugJavaWithJavac/localClassSetAnalysis/localClassSetAnalysis.lock -------------------------------------------------------------------------------- /.gradle/2.14.1/tasks/_app_compileDebugJavaWithJavac/localJarClasspathSnapshot/localJarClasspathSnapshot.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/.gradle/2.14.1/tasks/_app_compileDebugJavaWithJavac/localJarClasspathSnapshot/localJarClasspathSnapshot.bin -------------------------------------------------------------------------------- /.gradle/2.14.1/tasks/_app_compileDebugJavaWithJavac/localJarClasspathSnapshot/localJarClasspathSnapshot.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/.gradle/2.14.1/tasks/_app_compileDebugJavaWithJavac/localJarClasspathSnapshot/localJarClasspathSnapshot.lock -------------------------------------------------------------------------------- /.idea/compiler.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /.idea/copyright/profiles_settings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /.idea/encodings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /.idea/gradle.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 17 | 18 | -------------------------------------------------------------------------------- /.idea/libraries/airmapview_1_3_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /.idea/libraries/android_maps_utils_0_4.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /.idea/libraries/animated_vector_drawable_23_3_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /.idea/libraries/appcompat_v7_23_3_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /.idea/libraries/butterknife_6_1_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /.idea/libraries/cardview_v7_23_3_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /.idea/libraries/design_23_3_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /.idea/libraries/gson_2_4.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /.idea/libraries/hamcrest_core_1_3.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /.idea/libraries/junit_4_12.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /.idea/libraries/library_1_0_19.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /.idea/libraries/library_1_1_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /.idea/libraries/mediarouter_v7_23_0_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /.idea/libraries/play_services_8_4_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /.idea/libraries/play_services_ads_8_4_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /.idea/libraries/play_services_analytics_8_4_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /.idea/libraries/play_services_appindexing_8_4_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /.idea/libraries/play_services_appinvite_8_4_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /.idea/libraries/play_services_appstate_8_4_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /.idea/libraries/play_services_auth_8_4_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /.idea/libraries/play_services_base_8_4_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /.idea/libraries/play_services_basement_8_4_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /.idea/libraries/play_services_cast_8_4_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /.idea/libraries/play_services_drive_8_4_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /.idea/libraries/play_services_fitness_8_4_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /.idea/libraries/play_services_games_8_4_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /.idea/libraries/play_services_gcm_8_4_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /.idea/libraries/play_services_identity_8_4_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /.idea/libraries/play_services_location_8_4_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /.idea/libraries/play_services_maps_8_4_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /.idea/libraries/play_services_measurement_8_4_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /.idea/libraries/play_services_nearby_8_4_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /.idea/libraries/play_services_panorama_8_4_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /.idea/libraries/play_services_plus_8_4_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /.idea/libraries/play_services_safetynet_8_4_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /.idea/libraries/play_services_vision_8_4_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /.idea/libraries/play_services_wallet_8_4_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /.idea/libraries/play_services_wearable_8_4_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /.idea/libraries/recyclerview_v7_23_3_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /.idea/libraries/support_annotations_23_3_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /.idea/libraries/support_v4_23_3_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /.idea/libraries/support_vector_drawable_23_3_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /.idea/misc.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 19 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 46 | 47 | 48 | 49 | 50 | 1.8 51 | 52 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 68 | 69 | 70 | 71 | 72 | 73 | -------------------------------------------------------------------------------- /.idea/modules.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /.idea/runConfigurations.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 11 | 12 | -------------------------------------------------------------------------------- /.idea/vcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /Airbnb-Map-View.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /AirbnbMapExample.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2016 Akash Nidhi P S 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Airbnb-Map-View 2 | This is a sample Android Application which has Google Map view similar to what AirBnb Android Application. Moving Markers like Uber/Ola. Custom Google Search for places. Recycler view with Animations added. 3 | 4 | [New] Google maps in Recycler view (Lite mode) 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /app/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /app/app-release.apk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/app/app-release.apk -------------------------------------------------------------------------------- /app/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.android.application' 2 | 3 | android { 4 | compileSdkVersion 23 5 | buildToolsVersion "23.0.2" 6 | 7 | defaultConfig { 8 | applicationId "com.purvotara.airbnbmapexample" 9 | minSdkVersion 16 10 | targetSdkVersion 23 11 | versionCode 1 12 | versionName "1.0" 13 | } 14 | buildTypes { 15 | release { 16 | minifyEnabled false 17 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 18 | } 19 | } 20 | } 21 | 22 | dependencies { 23 | compile fileTree(dir: 'libs', include: ['*.jar']) 24 | testCompile 'junit:junit:4.12' 25 | compile 'com.android.support:appcompat-v7:23.3.0' 26 | compile 'com.airbnb.android:airmapview:1.3.0' 27 | compile 'com.google.maps.android:android-maps-utils:0.4' 28 | compile 'com.google.android.gms:play-services:8.4.0' 29 | compile 'com.google.code.gson:gson:2.4' 30 | compile 'com.android.support:design:23.3.0' 31 | compile 'com.android.support:cardview-v7:23.3.0' 32 | compile 'com.android.support:recyclerview-v7:23.3.0' 33 | compile 'com.mcxiaoke.volley:library:1.0.19' 34 | compile 'com.github.jd-alexander:library:1.1.0' 35 | compile 'com.jakewharton:butterknife:6.1.0' 36 | } 37 | -------------------------------------------------------------------------------- /app/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # By default, the flags in this file are appended to flags specified 3 | # in /home/akash/Android/Sdk/tools/proguard/proguard-android.txt 4 | # You can edit the include path and order by changing the proguardFiles 5 | # directive in build.gradle. 6 | # 7 | # For more details, see 8 | # http://developer.android.com/guide/developing/tools/proguard.html 9 | 10 | # Add any project specific keep options here: 11 | 12 | # If your project uses WebView with JS, uncomment the following 13 | # and specify the fully qualified class name to the JavaScript interface 14 | # class: 15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 16 | # public *; 17 | #} 18 | -------------------------------------------------------------------------------- /app/release.jks: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/app/release.jks -------------------------------------------------------------------------------- /app/src/androidTest/java/com/purvotara/airbnbmapexample/ApplicationTest.java: -------------------------------------------------------------------------------- 1 | package com.purvotara.airbnbmapexample; 2 | 3 | import android.app.Application; 4 | import android.test.ApplicationTestCase; 5 | 6 | /** 7 | * Testing Fundamentals 8 | */ 9 | public class ApplicationTest extends ApplicationTestCase { 10 | public ApplicationTest() { 11 | super(Application.class); 12 | } 13 | } -------------------------------------------------------------------------------- /app/src/debug/res/values/google_maps_api.xml: -------------------------------------------------------------------------------- 1 | 2 | 18 | 19 | AIzaSyBR06JQMaQrd_Fnqn643-IroL_vL_bg9LI 20 | 21 | 22 | -------------------------------------------------------------------------------- /app/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 10 | 11 | 12 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 33 | 36 | 37 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | -------------------------------------------------------------------------------- /app/src/main/java/com/purvotara/airbnbmapexample/constants/NetworkConstants.java: -------------------------------------------------------------------------------- 1 | package com.purvotara.airbnbmapexample.constants; 2 | 3 | /** 4 | * Created by skyrreasure on 15/4/16. 5 | */ 6 | public class NetworkConstants { 7 | 8 | public static final String ADDRESS_URL = "https://sky-firebase.firebaseapp.com/addresses.json"; 9 | 10 | public static final String ERROR_MESSAGE = "error_msg"; 11 | public static final String ADDRESS = "address"; 12 | public static final String LATITUDE = "latitude"; 13 | public static final String LONGITUDE = "longitude"; 14 | 15 | public static final int ADDRESS_REQUEST = 1; 16 | } 17 | -------------------------------------------------------------------------------- /app/src/main/java/com/purvotara/airbnbmapexample/controller/BaseInterface.java: -------------------------------------------------------------------------------- 1 | package com.purvotara.airbnbmapexample.controller; 2 | 3 | /** 4 | * Created by skytreasure on 06/03/16.
5 | *

6 | * This is the baseinterface, this should be implemented in all the Activities where network calls are made 7 | */ 8 | public interface BaseInterface { 9 | 10 | /** 11 | * @param object 12 | * @param requestCode 13 | */ 14 | void handleNetworkCall(Object object, int requestCode); 15 | 16 | } 17 | -------------------------------------------------------------------------------- /app/src/main/java/com/purvotara/airbnbmapexample/model/AddressModel.java: -------------------------------------------------------------------------------- 1 | package com.purvotara.airbnbmapexample.model; 2 | 3 | import android.content.Context; 4 | 5 | import com.android.volley.Request; 6 | import com.google.gson.Gson; 7 | import com.google.gson.annotations.Expose; 8 | import com.google.gson.annotations.SerializedName; 9 | import com.google.gson.reflect.TypeToken; 10 | import com.purvotara.airbnbmapexample.constants.NetworkConstants; 11 | import com.purvotara.airbnbmapexample.controller.BaseInterface; 12 | import com.purvotara.airbnbmapexample.network.BaseNetwork; 13 | 14 | import org.json.JSONArray; 15 | import org.json.JSONException; 16 | import org.json.JSONObject; 17 | 18 | import java.util.HashMap; 19 | import java.util.List; 20 | 21 | /** 22 | * Created by skytreasure on 15/4/16. 23 | */ 24 | public class AddressModel extends BaseModel { 25 | 26 | @SerializedName("address_id") 27 | @Expose 28 | private Integer addressId; 29 | @SerializedName("mPincode") 30 | @Expose 31 | private String mPincode; 32 | @SerializedName("city") 33 | @Expose 34 | private String city; 35 | @SerializedName("line_1") 36 | @Expose 37 | private String line1; 38 | @SerializedName("line_2") 39 | @Expose 40 | private String line2; 41 | @SerializedName("longitude") 42 | @Expose 43 | private String longitude; 44 | @SerializedName("latitude") 45 | @Expose 46 | private String latitude; 47 | @SerializedName("address_type") 48 | @Expose 49 | private String addressType; 50 | @SerializedName("default") 51 | @Expose 52 | private Boolean _default; 53 | @SerializedName("image") 54 | @Expose 55 | private String image; 56 | @SerializedName("rating") 57 | @Expose 58 | private String rating; 59 | @SerializedName("distance") 60 | @Expose 61 | private String distance; 62 | 63 | 64 | /** 65 | * Constructor for the base model 66 | * 67 | * @param context the application mContext 68 | * @param baseInterface it is the instance of baseinterface, 69 | */ 70 | public AddressModel(Context context, BaseInterface baseInterface) { 71 | super(context, baseInterface); 72 | } 73 | 74 | public void fetchAddressFromServer() { 75 | BaseNetwork baseNetwork = new BaseNetwork(mContext, this); 76 | baseNetwork.getJSONObjectForRequest(Request.Method.GET, NetworkConstants.ADDRESS_URL, null, NetworkConstants.ADDRESS_REQUEST); 77 | 78 | } 79 | 80 | @Override 81 | public void parseAndNotifyResponse(JSONObject response, int requestType) throws JSONException { 82 | try { 83 | // boolean error = response.getBoolean(NetworkConstants.ERROR); 84 | Gson gson = new Gson(); 85 | switch (requestType) { 86 | 87 | case NetworkConstants.ADDRESS_REQUEST: 88 | JSONArray addressArray = response.getJSONArray(NetworkConstants.ADDRESS); 89 | 90 | List addressList = gson.fromJson(addressArray.toString(), 91 | new TypeToken>() { 92 | }.getType()); 93 | 94 | mBaseInterface.handleNetworkCall(addressList, requestType); 95 | break; 96 | } 97 | } catch (Exception e) { 98 | mBaseInterface.handleNetworkCall(e.getMessage(), requestType); 99 | } 100 | 101 | } 102 | 103 | @Override 104 | public HashMap getRequestBodyObject(int requestType) { 105 | return null; 106 | } 107 | 108 | @Override 109 | public HashMap getRequestBodyString(int requestType) { 110 | return null; 111 | } 112 | 113 | public Integer getAddressId() { 114 | return addressId; 115 | } 116 | 117 | public void setAddressId(Integer addressId) { 118 | this.addressId = addressId; 119 | } 120 | 121 | public String getmPincode() { 122 | return mPincode; 123 | } 124 | 125 | public void setmPincode(String mPincode) { 126 | this.mPincode = mPincode; 127 | } 128 | 129 | public String getCity() { 130 | return city; 131 | } 132 | 133 | public void setCity(String city) { 134 | this.city = city; 135 | } 136 | 137 | public String getLine1() { 138 | return line1; 139 | } 140 | 141 | public void setLine1(String line1) { 142 | this.line1 = line1; 143 | } 144 | 145 | public String getLine2() { 146 | return line2; 147 | } 148 | 149 | public void setLine2(String line2) { 150 | this.line2 = line2; 151 | } 152 | 153 | public String getLongitude() { 154 | return longitude; 155 | } 156 | 157 | public void setLongitude(String longitude) { 158 | this.longitude = longitude; 159 | } 160 | 161 | public String getLatitude() { 162 | return latitude; 163 | } 164 | 165 | public void setLatitude(String latitude) { 166 | this.latitude = latitude; 167 | } 168 | 169 | public String getAddressType() { 170 | return addressType; 171 | } 172 | 173 | public void setAddressType(String addressType) { 174 | this.addressType = addressType; 175 | } 176 | 177 | public Boolean get_default() { 178 | return _default; 179 | } 180 | 181 | public void set_default(Boolean _default) { 182 | this._default = _default; 183 | } 184 | 185 | public String getImage() { 186 | return image; 187 | } 188 | 189 | public void setImage(String image) { 190 | this.image = image; 191 | } 192 | 193 | public String getRating() { 194 | return rating; 195 | } 196 | 197 | public void setRating(String rating) { 198 | this.rating = rating; 199 | } 200 | 201 | public String getDistance() { 202 | return distance; 203 | } 204 | 205 | public void setDistance(String distance) { 206 | this.distance = distance; 207 | } 208 | } 209 | -------------------------------------------------------------------------------- /app/src/main/java/com/purvotara/airbnbmapexample/model/BaseModel.java: -------------------------------------------------------------------------------- 1 | package com.purvotara.airbnbmapexample.model; 2 | 3 | import android.content.Context; 4 | 5 | import com.purvotara.airbnbmapexample.controller.BaseInterface; 6 | 7 | import org.json.JSONException; 8 | import org.json.JSONObject; 9 | 10 | import java.util.HashMap; 11 | 12 | /** 13 | * Created by skyrreasure on 6/3/16. 14 | */ 15 | public abstract class BaseModel { 16 | transient Context mContext; 17 | transient BaseInterface mBaseInterface; 18 | 19 | /** 20 | * Constructor for the base model 21 | * 22 | * @param context the application mContext 23 | * @param baseInterface it is the instance of baseinterface, 24 | * which is used for communication between model and the calling activity 25 | */ 26 | public BaseModel(Context context, BaseInterface baseInterface) { 27 | mBaseInterface = baseInterface; 28 | mContext = context; 29 | } 30 | 31 | 32 | /** 33 | * Parses the response(JSONObject) and notifies the calling object based on the type of request 34 | * 35 | * @param response Response received from the network call 36 | * @param requestType Type of request raised eg USER_SIGN_IN_REQUEST 37 | */ 38 | public abstract void parseAndNotifyResponse(JSONObject response, int requestType) throws JSONException; 39 | 40 | /** 41 | * It is used to get the request body for the network calls. 42 | * 43 | * @param requestType Type of request raised eg USER_SIGN_IN_REQUEST 44 | * @return HashMap returns the map 45 | */ 46 | public abstract HashMap getRequestBodyObject(int requestType); 47 | 48 | /** 49 | * It is used to get the request body for the network calls. 50 | * 51 | * @param requestType Type of request raised eg USER_SIGN_IN_REQUEST 52 | * @return HashMap returns the map 53 | */ 54 | public abstract HashMap getRequestBodyString(int requestType); 55 | 56 | } 57 | -------------------------------------------------------------------------------- /app/src/main/java/com/purvotara/airbnbmapexample/network/BaseNetwork.java: -------------------------------------------------------------------------------- 1 | package com.purvotara.airbnbmapexample.network; 2 | 3 | import android.content.Context; 4 | import android.util.Log; 5 | import android.widget.Toast; 6 | 7 | import com.android.volley.AuthFailureError; 8 | import com.android.volley.DefaultRetryPolicy; 9 | import com.android.volley.NetworkResponse; 10 | import com.android.volley.Response; 11 | import com.android.volley.Response.ErrorListener; 12 | import com.android.volley.RetryPolicy; 13 | import com.android.volley.VolleyError; 14 | import com.android.volley.toolbox.JsonObjectRequest; 15 | import com.android.volley.toolbox.StringRequest; 16 | import com.purvotara.airbnbmapexample.constants.NetworkConstants; 17 | import com.purvotara.airbnbmapexample.model.BaseModel; 18 | import com.purvotara.airbnbmapexample.network.util.CustomVolleyRequestQueue; 19 | import com.purvotara.airbnbmapexample.network.util.NetworkUtil; 20 | 21 | import org.json.JSONArray; 22 | import org.json.JSONException; 23 | import org.json.JSONObject; 24 | 25 | import java.util.Collections; 26 | import java.util.HashMap; 27 | import java.util.Map; 28 | 29 | /** 30 | * Created by SkyTreasure on 02-01-2016. 31 | */ 32 | public class BaseNetwork { 33 | private Context mContext; 34 | private BaseModel mBaseModel; 35 | 36 | public BaseNetwork(Context context, BaseModel baseModel) { 37 | mContext = context; 38 | mBaseModel = baseModel; 39 | } 40 | 41 | /** 42 | * Generates the generic request header 43 | * 44 | * @return RequestHeader HashMap 45 | */ 46 | public HashMap getRequestHeaderForAuthorization() { 47 | HashMap requestHeader = new HashMap<>(); 48 | requestHeader.put("Accept", "*/*"); 49 | return requestHeader; 50 | } 51 | 52 | /** 53 | * Handle response(JSONObject) as per requirement 54 | * 55 | * @param response The network call response in the form of JSONObject 56 | * @param requestType The network Request Type 57 | */ 58 | void handleResponse(JSONObject response, int requestType) throws JSONException { 59 | try { 60 | 61 | mBaseModel.parseAndNotifyResponse(response, requestType); 62 | 63 | } catch (Exception e) { 64 | //((BaseActivity) mContext).hideProgressDialog(); 65 | Toast.makeText(mContext, response.getString(NetworkConstants.ERROR_MESSAGE), Toast.LENGTH_LONG).show(); 66 | e.printStackTrace(); 67 | } 68 | } 69 | 70 | /** 71 | * Handle all errors 72 | * 73 | * @param error Error generated due to network call 74 | */ 75 | void handleError(VolleyError error) { 76 | 77 | // ((BaseActivity) mContext).hideProgressDialog(); 78 | String errorMessage = null; 79 | try { 80 | errorMessage = new String(error.networkResponse.data, "UTF-8"); 81 | JSONObject jsonObject = new JSONObject(errorMessage); 82 | JSONArray errorArray = new JSONArray(jsonObject.get("errors").toString()); 83 | JSONObject firstError = new JSONObject(errorArray.get(0).toString()); 84 | Log.d("Error", firstError.get("message").toString()); 85 | } catch (Exception e) { 86 | e.printStackTrace(); 87 | } 88 | // Toast.makeText(mContext, "Something went wrong", Toast.LENGTH_LONG).show(); 89 | 90 | } 91 | 92 | /** 93 | * For Post Method with parameters in the content body 94 | * 95 | * @param methodType Type of network call eg, GET,POST, etc. 96 | * @param url The url to hit 97 | * @param paramsObject JsonObject for POST request, null for GET request 98 | * @param requestType Type of Network request 99 | */ 100 | public void getJSONObjectForRequest(int methodType, String url, JSONObject paramsObject, final int requestType) { 101 | if (NetworkUtil.isInternetConnected(mContext)) { 102 | JsonObjectRequest jsObjRequest = new JsonObjectRequest 103 | (methodType, url, paramsObject, new Response.Listener() { 104 | 105 | @Override 106 | public void onResponse(JSONObject response) { 107 | try { 108 | handleResponse(response, requestType); 109 | } catch (JSONException e) { 110 | e.printStackTrace(); 111 | } 112 | } 113 | }, new ErrorListener() { 114 | @Override 115 | public void onErrorResponse(VolleyError error) { 116 | handleError(error); 117 | } 118 | }) { 119 | 120 | @Override 121 | public String getBodyContentType() { 122 | return "application/x-www-form-urlencoded; charset=UTF-8"; 123 | } 124 | 125 | 126 | @Override 127 | public Map getHeaders() throws AuthFailureError { 128 | return getRequestHeaderForAuthorization(); 129 | } 130 | 131 | @Override 132 | protected Map getParams() throws AuthFailureError { 133 | Map params = new HashMap(); 134 | return params; 135 | } 136 | }; 137 | int socketTimeout = 5000;//30 seconds - change to what you want 138 | RetryPolicy policy = new DefaultRetryPolicy(socketTimeout, 2, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT); 139 | jsObjRequest.setRetryPolicy(policy); 140 | CustomVolleyRequestQueue.getInstance(mContext).getRequestQueue().add(jsObjRequest); 141 | } 142 | } 143 | 144 | /** 145 | * For Post Method with parameters as form data 146 | * 147 | * @param methodType 148 | * @param url 149 | * @param paramsObject 150 | * @param requestType 151 | */ 152 | public void getHashMapForRequest(int methodType, String url, final HashMap paramsObject, final int requestType) { 153 | if (NetworkUtil.isInternetConnected(mContext)) { 154 | StringRequest jsonObjRequest = new StringRequest(methodType, url, 155 | new Response.Listener() { 156 | @Override 157 | public void onResponse(String response) { 158 | try { 159 | handleResponse(new JSONObject(response), requestType); 160 | } catch (JSONException e) { 161 | e.printStackTrace(); 162 | } 163 | } 164 | }, new ErrorListener() { 165 | 166 | @Override 167 | public void onErrorResponse(VolleyError error) { 168 | handleError(error); 169 | } 170 | }) { 171 | 172 | @Override 173 | public String getBodyContentType() { 174 | return "application/x-www-form-urlencoded; charset=UTF-8"; 175 | 176 | } 177 | 178 | @Override 179 | protected Map getParams() throws AuthFailureError { 180 | 181 | return paramsObject; 182 | } 183 | 184 | @Override 185 | public Map getHeaders() throws AuthFailureError { 186 | return getRequestHeaderForAuthorization(); 187 | } 188 | 189 | @Override 190 | protected Response parseNetworkResponse(NetworkResponse response) { 191 | if (response.headers == null) { 192 | // cant just set a new empty map because the member is final. 193 | response = new NetworkResponse( 194 | response.statusCode, 195 | response.data, 196 | Collections.emptyMap(), // this is the important line, set an empty but non-null map. 197 | response.notModified, 198 | response.networkTimeMs); 199 | 200 | 201 | } 202 | 203 | return super.parseNetworkResponse(response); 204 | } 205 | 206 | }; 207 | int socketTimeout = 5000;//30 seconds - change to what you want 208 | RetryPolicy policy = new DefaultRetryPolicy(socketTimeout, 2, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT); 209 | jsonObjRequest.setRetryPolicy(policy); 210 | CustomVolleyRequestQueue.getInstance(mContext).getRequestQueue().add(jsonObjRequest); 211 | } 212 | } 213 | 214 | } 215 | -------------------------------------------------------------------------------- /app/src/main/java/com/purvotara/airbnbmapexample/network/util/CustomVolleyRequestQueue.java: -------------------------------------------------------------------------------- 1 | package com.purvotara.airbnbmapexample.network.util; 2 | 3 | import android.content.Context; 4 | import android.graphics.Bitmap; 5 | import android.util.LruCache; 6 | 7 | import com.android.volley.Cache; 8 | import com.android.volley.Network; 9 | import com.android.volley.RequestQueue; 10 | import com.android.volley.toolbox.BasicNetwork; 11 | import com.android.volley.toolbox.DiskBasedCache; 12 | import com.android.volley.toolbox.HurlStack; 13 | import com.android.volley.toolbox.ImageLoader; 14 | 15 | /** 16 | * Created by skytreasure on 30/12/15.
17 | *

18 | * Custom implementation of Volley Request Queue 19 | */ 20 | public class CustomVolleyRequestQueue { 21 | private static CustomVolleyRequestQueue mInstance; 22 | private static Context mCtx; 23 | private RequestQueue mRequestQueue; 24 | private ImageLoader mImageLoader; 25 | 26 | 27 | private CustomVolleyRequestQueue(Context context) { 28 | mCtx = context; 29 | 30 | mRequestQueue = getRequestQueue(); 31 | 32 | mImageLoader = new ImageLoader(mRequestQueue, 33 | new ImageLoader.ImageCache() { 34 | private final LruCache 35 | cache = new LruCache(20); 36 | 37 | @Override 38 | public Bitmap getBitmap(String url) { 39 | return cache.get(url); 40 | } 41 | 42 | @Override 43 | public void putBitmap(String url, Bitmap bitmap) { 44 | cache.put(url, bitmap); 45 | } 46 | }); 47 | } 48 | 49 | public static synchronized CustomVolleyRequestQueue getInstance(Context context) { 50 | if (mInstance == null) { 51 | mInstance = new CustomVolleyRequestQueue(context); 52 | } 53 | return mInstance; 54 | } 55 | 56 | public RequestQueue getRequestQueue() { 57 | if (mRequestQueue == null) { 58 | Cache cache = new DiskBasedCache(mCtx.getCacheDir(), 10 * 1024 * 1024); 59 | Network network = new BasicNetwork(new HurlStack()); 60 | mRequestQueue = new RequestQueue(cache, network); 61 | // Don't forget to start the volley request queue 62 | mRequestQueue.start(); 63 | } 64 | return mRequestQueue; 65 | } 66 | 67 | public ImageLoader getImageLoader() { 68 | return mImageLoader; 69 | } 70 | } 71 | -------------------------------------------------------------------------------- /app/src/main/java/com/purvotara/airbnbmapexample/network/util/NetworkUtil.java: -------------------------------------------------------------------------------- 1 | package com.purvotara.airbnbmapexample.network.util; 2 | 3 | import android.content.Context; 4 | import android.net.ConnectivityManager; 5 | import android.net.NetworkInfo; 6 | 7 | import com.android.volley.NetworkError; 8 | 9 | /** 10 | * Created by skytreasure on 30/12/15.
11 | *

12 | * Network Utility methods goes in this class 13 | */ 14 | public class NetworkUtil { 15 | /** 16 | * Gives internet connection status - true if internet is connected 17 | * 18 | * @param context The context of the calling object 19 | * @return boolean isInternetConnected 20 | */ 21 | public static boolean isInternetConnected(Context context) { 22 | final ConnectivityManager conMgr = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); 23 | final NetworkInfo activeNetwork = conMgr.getActiveNetworkInfo(); 24 | if (activeNetwork != null && activeNetwork.isConnected()) { 25 | return true; 26 | } else { 27 | return false; 28 | } 29 | } 30 | 31 | /** 32 | * Checks if there's any network problem 33 | * 34 | * @param error 35 | * @return 36 | */ 37 | public static boolean isNetworkProblem(Object error) { 38 | return (error instanceof NetworkError); 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /app/src/main/java/com/purvotara/airbnbmapexample/network/util/README: -------------------------------------------------------------------------------- 1 | All network util files -------------------------------------------------------------------------------- /app/src/main/java/com/purvotara/airbnbmapexample/ui/activity/ListViewActivity.java: -------------------------------------------------------------------------------- 1 | package com.purvotara.airbnbmapexample.ui.activity; 2 | 3 | import android.graphics.Color; 4 | import android.graphics.PorterDuff; 5 | import android.support.v4.widget.SwipeRefreshLayout; 6 | import android.support.v7.app.AppCompatActivity; 7 | import android.os.Bundle; 8 | import android.support.v7.widget.LinearLayoutManager; 9 | import android.support.v7.widget.RecyclerView; 10 | import android.support.v7.widget.Toolbar; 11 | import android.view.View; 12 | import android.widget.ImageView; 13 | import android.widget.ProgressBar; 14 | import android.widget.RelativeLayout; 15 | import android.widget.TextView; 16 | import android.widget.Toast; 17 | 18 | import com.purvotara.airbnbmapexample.R; 19 | import com.purvotara.airbnbmapexample.constants.NetworkConstants; 20 | import com.purvotara.airbnbmapexample.controller.BaseInterface; 21 | import com.purvotara.airbnbmapexample.model.AddressModel; 22 | import com.purvotara.airbnbmapexample.ui.adapter.ListViewAdapter; 23 | 24 | import java.util.ArrayList; 25 | import java.util.List; 26 | 27 | public class ListViewActivity extends AppCompatActivity { 28 | 29 | ProgressBar mLoadingMoreDataProgress; 30 | private RecyclerView mRecyclerView; 31 | private ListViewAdapter mAdapter; 32 | private LinearLayoutManager mLayoutManager; 33 | // private Places mPlaces; 34 | private AddressModel mAddressModel; 35 | private int mPageNumber = 1; 36 | private boolean mHasMore = true; 37 | private List mAddressList = new ArrayList(); 38 | private SwipeRefreshLayout mSwipeLayout; 39 | 40 | 41 | 42 | 43 | @Override 44 | protected void onCreate(Bundle savedInstanceState) { 45 | super.onCreate(savedInstanceState); 46 | setContentView(R.layout.activity_list_view); 47 | 48 | getSupportActionBar().setTitle("List View"); 49 | mSwipeLayout = (SwipeRefreshLayout) findViewById(R.id.swipe_container); 50 | mRecyclerView = (RecyclerView) findViewById(R.id.rv_lisiting); 51 | 52 | mLoadingMoreDataProgress = (ProgressBar) findViewById(R.id.loading_progress); 53 | 54 | 55 | mLoadingMoreDataProgress.getIndeterminateDrawable().setColorFilter(0xff00b1c7, PorterDuff.Mode.MULTIPLY); 56 | mLoadingMoreDataProgress.setVisibility(View.GONE); 57 | 58 | 59 | mRecyclerView.setHasFixedSize(false); 60 | mLayoutManager = new LinearLayoutManager(this); 61 | mRecyclerView.setLayoutManager(mLayoutManager); 62 | mAdapter = new ListViewAdapter(mAddressList, this); 63 | mRecyclerView.setAdapter(mAdapter); 64 | mRecyclerView.requestLayout(); 65 | 66 | mSwipeLayout.setColorSchemeResources(R.color.gomalan_bule_bg); 67 | 68 | mAddressModel=new AddressModel(this, new BaseInterface() { 69 | @Override 70 | public void handleNetworkCall(Object object, int requestCode) { 71 | if (requestCode == NetworkConstants.ADDRESS_REQUEST) { 72 | if (object instanceof ArrayList) { 73 | mAddressList = new ArrayList<>(); 74 | mAddressList = (ArrayList) object; 75 | mAdapter = new ListViewAdapter(mAddressList, ListViewActivity.this); 76 | mRecyclerView.setAdapter(mAdapter); 77 | mAdapter.notifyDataSetChanged(); 78 | } 79 | else{ 80 | Toast.makeText(ListViewActivity.this, (String)object,Toast.LENGTH_LONG).show(); 81 | } 82 | } 83 | } 84 | }); 85 | 86 | 87 | 88 | mAddressModel.fetchAddressFromServer(); 89 | 90 | } 91 | } 92 | -------------------------------------------------------------------------------- /app/src/main/java/com/purvotara/airbnbmapexample/ui/activity/MapsActivity.java: -------------------------------------------------------------------------------- 1 | package com.purvotara.airbnbmapexample.ui.activity; 2 | 3 | import android.os.Bundle; 4 | import android.support.v4.app.FragmentActivity; 5 | 6 | import com.google.android.gms.maps.CameraUpdateFactory; 7 | import com.google.android.gms.maps.GoogleMap; 8 | import com.google.android.gms.maps.OnMapReadyCallback; 9 | import com.google.android.gms.maps.SupportMapFragment; 10 | import com.google.android.gms.maps.model.LatLng; 11 | import com.google.android.gms.maps.model.MarkerOptions; 12 | import com.purvotara.airbnbmapexample.R; 13 | /** 14 | * Created by skyrreasure on 12/5/16. 15 | */ 16 | public class MapsActivity extends FragmentActivity implements OnMapReadyCallback { 17 | 18 | private GoogleMap mMap; 19 | 20 | @Override 21 | protected void onCreate(Bundle savedInstanceState) { 22 | super.onCreate(savedInstanceState); 23 | setContentView(R.layout.activity_maps); 24 | // Obtain the SupportMapFragment and get notified when the map is ready to be used. 25 | SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager() 26 | .findFragmentById(R.id.map); 27 | mapFragment.getMapAsync(this); 28 | } 29 | 30 | 31 | /** 32 | * Manipulates the map once available. 33 | * This callback is triggered when the map is ready to be used. 34 | * This is where we can add markers or lines, add listeners or move the camera. In this case, 35 | * we just add a marker near Sydney, Australia. 36 | * If Google Play services is not installed on the device, the user will be prompted to install 37 | * it inside the SupportMapFragment. This method will only be triggered once the user has 38 | * installed Google Play services and returned to the app. 39 | */ 40 | @Override 41 | public void onMapReady(GoogleMap googleMap) { 42 | mMap = googleMap; 43 | 44 | // Add a marker in Sydney and move the camera 45 | LatLng sydney = new LatLng(-34, 151); 46 | mMap.addMarker(new MarkerOptions().position(sydney).title("Marker in Sydney")); 47 | mMap.moveCamera(CameraUpdateFactory.newLatLng(sydney)); 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /app/src/main/java/com/purvotara/airbnbmapexample/ui/activity/RecyclerViewLiteModeMapActivity.java: -------------------------------------------------------------------------------- 1 | package com.purvotara.airbnbmapexample.ui.activity; 2 | 3 | import android.support.v4.widget.SwipeRefreshLayout; 4 | import android.support.v7.app.AppCompatActivity; 5 | import android.os.Bundle; 6 | import android.support.v7.widget.LinearLayoutManager; 7 | import android.support.v7.widget.RecyclerView; 8 | import android.widget.Toast; 9 | 10 | import com.purvotara.airbnbmapexample.R; 11 | import com.purvotara.airbnbmapexample.constants.NetworkConstants; 12 | import com.purvotara.airbnbmapexample.controller.BaseInterface; 13 | import com.purvotara.airbnbmapexample.model.AddressModel; 14 | import com.purvotara.airbnbmapexample.ui.adapter.ListViewAdapter; 15 | import com.purvotara.airbnbmapexample.ui.adapter.RecyclerViewLiteModeAdapter; 16 | 17 | import java.util.ArrayList; 18 | import java.util.List; 19 | 20 | public class RecyclerViewLiteModeMapActivity extends AppCompatActivity { 21 | 22 | private RecyclerView mRecyclerView; 23 | private LinearLayoutManager mLayoutManager; 24 | private RecyclerViewLiteModeAdapter mAdapter; 25 | private List addresses = new ArrayList(); 26 | private AddressModel mAddressModel; 27 | 28 | @Override 29 | protected void onCreate(Bundle savedInstanceState) { 30 | super.onCreate(savedInstanceState); 31 | setContentView(R.layout.activity_recycler_view_lite_mode_map); 32 | getSupportActionBar().setTitle("Map View Lite Mode"); 33 | 34 | mRecyclerView = (RecyclerView) findViewById(R.id.rv_list); 35 | mRecyclerView.setHasFixedSize(false); 36 | mLayoutManager = new LinearLayoutManager(this); 37 | mRecyclerView.setLayoutManager(mLayoutManager); 38 | 39 | mAdapter = new RecyclerViewLiteModeAdapter(addresses, this); 40 | mRecyclerView.setAdapter(mAdapter); 41 | mRecyclerView.requestLayout(); 42 | 43 | 44 | mAddressModel=new AddressModel(this, new BaseInterface() { 45 | @Override 46 | public void handleNetworkCall(Object object, int requestCode) { 47 | if (requestCode == NetworkConstants.ADDRESS_REQUEST) { 48 | if (object instanceof ArrayList) { 49 | addresses = new ArrayList<>(); 50 | addresses = (ArrayList) object; 51 | mAdapter = new RecyclerViewLiteModeAdapter(addresses, RecyclerViewLiteModeMapActivity.this); 52 | mRecyclerView.setAdapter(mAdapter); 53 | mAdapter.notifyDataSetChanged(); 54 | mRecyclerView.requestLayout(); 55 | } 56 | else{ 57 | Toast.makeText(RecyclerViewLiteModeMapActivity.this, (String)object,Toast.LENGTH_LONG).show(); 58 | } 59 | } 60 | } 61 | }); 62 | 63 | mAddressModel.fetchAddressFromServer(); 64 | } 65 | } 66 | -------------------------------------------------------------------------------- /app/src/main/java/com/purvotara/airbnbmapexample/ui/adapter/ListViewAdapter.java: -------------------------------------------------------------------------------- 1 | package com.purvotara.airbnbmapexample.ui.adapter; 2 | 3 | import android.app.Activity; 4 | import android.content.Context; 5 | import android.support.v7.widget.RecyclerView; 6 | import android.view.LayoutInflater; 7 | import android.view.View; 8 | import android.view.ViewGroup; 9 | import android.view.animation.Animation; 10 | import android.view.animation.AnimationUtils; 11 | import android.widget.Button; 12 | import android.widget.ImageView; 13 | import android.widget.LinearLayout; 14 | import android.widget.TextView; 15 | 16 | import com.android.volley.toolbox.ImageLoader; 17 | import com.purvotara.airbnbmapexample.R; 18 | import com.purvotara.airbnbmapexample.constants.NetworkConstants; 19 | import com.purvotara.airbnbmapexample.model.AddressModel; 20 | import com.purvotara.airbnbmapexample.network.util.CustomVolleyRequestQueue; 21 | import com.purvotara.airbnbmapexample.ui.widget.MyAnimationUtils; 22 | 23 | import java.util.List; 24 | 25 | /** 26 | * Created by akash on 15/5/16. 27 | */ 28 | public class ListViewAdapter extends RecyclerView.Adapter { 29 | public static Context mContext; 30 | private static ImageLoader mImageLoader; 31 | private static AddressModel mPlaceModel; 32 | LayoutInflater layoutinflater; 33 | private List mPlaceList; 34 | private Activity mActivity; 35 | private ImageView mImageView; 36 | private int lastPosition = -1; 37 | int previousPosition=0; 38 | 39 | public ListViewAdapter(List places, Context context) { 40 | mContext = context; 41 | this.mPlaceList = places; 42 | layoutinflater = LayoutInflater.from(context); 43 | mActivity = (Activity) context; 44 | } 45 | 46 | @Override 47 | public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { 48 | final View itemLayoutView = LayoutInflater.from(parent.getContext()).inflate(R.layout.deal_card_layout, parent, false); 49 | ViewHolder viewHolder = new ViewHolder(itemLayoutView); 50 | return viewHolder; 51 | } 52 | 53 | @Override 54 | public void onBindViewHolder(ViewHolder holder, int position) { 55 | mPlaceModel = mPlaceList.get(position); 56 | mImageLoader = CustomVolleyRequestQueue.getInstance(mActivity).getImageLoader(); 57 | 58 | holder.tvTitle.setText(mPlaceList.get(position).getLine1()); 59 | holder.tvCategories.setText(mPlaceList.get(position).getLine2()); 60 | holder.tvOffers.setText(mPlaceList.get(position).getCity()); 61 | holder.tvDistanceInKm.setText(mPlaceList.get(position).getDistance()); 62 | holder.tvRating.setText(mPlaceList.get(position).getRating()); 63 | 64 | setImageViewFromUrl( mPlaceList.get(position).getImage(), holder.ivMain); 65 | 66 | if(position>previousPosition){ 67 | new MyAnimationUtils().animate(holder,true); 68 | }else{ 69 | new MyAnimationUtils().animate(holder,false); 70 | } 71 | 72 | previousPosition=position; 73 | } 74 | 75 | public void setImageViewFromUrl(String url, ImageView imageView) { 76 | mImageLoader.get(url, ImageLoader.getImageListener(imageView, 0, 0)); 77 | imageView.setVisibility(View.VISIBLE); 78 | 79 | } 80 | 81 | @Override 82 | public int getItemCount() { 83 | return mPlaceList == null ? 0 : mPlaceList.size(); 84 | } 85 | 86 | 87 | public static class ViewHolder extends RecyclerView.ViewHolder { 88 | 89 | public TextView tvTitle, tvRating, tvDistanceInKm, tvOffers, tvLocation, tvCategories; 90 | public ImageView ivMain; 91 | public Button mBook, mPay; 92 | private LinearLayout mItemLayout; 93 | 94 | 95 | public ViewHolder(View itemLayoutView) { 96 | super(itemLayoutView); 97 | 98 | tvTitle = (TextView) itemLayoutView.findViewById(R.id.tv_title); 99 | tvLocation = (TextView) itemLayoutView.findViewById(R.id.tv_location); 100 | tvCategories = (TextView) itemLayoutView.findViewById(R.id.tv_categories); 101 | tvRating = (TextView) itemLayoutView.findViewById(R.id.tv_rating); 102 | tvDistanceInKm = (TextView) itemLayoutView.findViewById(R.id.tv_distanceinkm); 103 | tvOffers = (TextView) itemLayoutView.findViewById(R.id.tv_offers); 104 | ivMain = (ImageView) itemLayoutView.findViewById(R.id.iv_main); 105 | mBook = (Button) itemLayoutView.findViewById(R.id.btn_book); 106 | mPay = (Button) itemLayoutView.findViewById(R.id.btn_pay); 107 | 108 | 109 | 110 | } 111 | 112 | 113 | } 114 | } 115 | -------------------------------------------------------------------------------- /app/src/main/java/com/purvotara/airbnbmapexample/ui/adapter/MapAdapter.java: -------------------------------------------------------------------------------- 1 | package com.purvotara.airbnbmapexample.ui.adapter; 2 | 3 | import android.content.Context; 4 | import android.support.v4.app.Fragment; 5 | import android.support.v4.app.FragmentManager; 6 | import android.support.v4.app.FragmentPagerAdapter; 7 | import android.view.LayoutInflater; 8 | 9 | import com.purvotara.airbnbmapexample.model.AddressModel; 10 | import com.purvotara.airbnbmapexample.ui.fragment.MapFragment; 11 | 12 | import java.util.List; 13 | 14 | /** 15 | * Created by skyrreasure on 14/3/16. 16 | */ 17 | public class MapAdapter extends FragmentPagerAdapter { 18 | LayoutInflater layoutInflater; 19 | List deals; 20 | Context mContext; 21 | 22 | public MapAdapter(FragmentManager fm, List deals, Context context) { 23 | super(fm); 24 | layoutInflater = LayoutInflater.from(context); 25 | this.deals = deals; 26 | this.mContext = context; 27 | } 28 | 29 | @Override 30 | public Fragment getItem(int position) { 31 | return new MapFragment(position, deals.get(position)); 32 | } 33 | 34 | @Override 35 | public int getCount() { 36 | return this.deals.size(); 37 | } 38 | 39 | @Override 40 | public float getPageWidth(int position) { 41 | return 0.95f; 42 | } 43 | } 44 | 45 | -------------------------------------------------------------------------------- /app/src/main/java/com/purvotara/airbnbmapexample/ui/adapter/RecyclerViewLiteModeAdapter.java: -------------------------------------------------------------------------------- 1 | package com.purvotara.airbnbmapexample.ui.adapter; 2 | 3 | import android.annotation.SuppressLint; 4 | import android.app.Activity; 5 | import android.content.Context; 6 | import android.os.Build; 7 | import android.support.v7.widget.RecyclerView; 8 | import android.util.Log; 9 | import android.view.LayoutInflater; 10 | import android.view.View; 11 | import android.view.ViewGroup; 12 | import android.view.ViewTreeObserver; 13 | import android.widget.Button; 14 | import android.widget.ImageView; 15 | import android.widget.LinearLayout; 16 | import android.widget.TextView; 17 | 18 | import com.android.volley.toolbox.ImageLoader; 19 | import com.google.android.gms.maps.CameraUpdateFactory; 20 | import com.google.android.gms.maps.GoogleMap; 21 | import com.google.android.gms.maps.MapView; 22 | import com.google.android.gms.maps.MapsInitializer; 23 | import com.google.android.gms.maps.OnMapReadyCallback; 24 | import com.google.android.gms.maps.model.LatLng; 25 | import com.google.android.gms.maps.model.MarkerOptions; 26 | import com.purvotara.airbnbmapexample.R; 27 | import com.purvotara.airbnbmapexample.model.AddressModel; 28 | import com.purvotara.airbnbmapexample.network.util.CustomVolleyRequestQueue; 29 | import com.purvotara.airbnbmapexample.ui.widget.MyAnimationUtils; 30 | 31 | import java.util.ArrayList; 32 | import java.util.List; 33 | 34 | /** 35 | * Created by akash on 28/12/16. 36 | */ 37 | 38 | public class RecyclerViewLiteModeAdapter extends RecyclerView.Adapter { 39 | 40 | public static Context mContext; 41 | LayoutInflater layoutinflater; 42 | private List addressModels=new ArrayList<>(); 43 | private Activity mActivity; 44 | private int lastPosition = -1; 45 | private AddressModel mAddressModel; 46 | private static ViewHolder lastSelectedViewHolder; 47 | int previousPosition=0; 48 | 49 | public RecyclerViewLiteModeAdapter(List addressModelList, Context context) { 50 | mContext = context; 51 | this.addressModels = addressModelList; 52 | layoutinflater = LayoutInflater.from(context); 53 | mActivity = (Activity) context; 54 | } 55 | 56 | @Override 57 | public RecyclerViewLiteModeAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { 58 | final View itemLayoutView = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_lite_mode_layout, parent, false); 59 | RecyclerViewLiteModeAdapter.ViewHolder viewHolder = new RecyclerViewLiteModeAdapter.ViewHolder(itemLayoutView); 60 | return viewHolder; 61 | } 62 | 63 | @Override 64 | public void onBindViewHolder(ViewHolder holder, int position) { 65 | 66 | holder.initializeMapView(position,addressModels.get(position)); 67 | 68 | holder.tvTitle.setText(addressModels.get(position).getLine1()); 69 | holder.tvCategories.setText(addressModels.get(position).getLine2()); 70 | holder.tvOffers.setText(addressModels.get(position).getCity()); 71 | holder.tvDistanceInKm.setText(addressModels.get(position).getDistance()); 72 | holder.tvRating.setText(addressModels.get(position).getRating()); 73 | 74 | if(position>previousPosition){ 75 | new MyAnimationUtils().animate(holder,true); 76 | }else{ 77 | new MyAnimationUtils().animate(holder,false); 78 | } 79 | 80 | previousPosition=position; 81 | } 82 | 83 | 84 | 85 | @Override 86 | public int getItemCount() { 87 | return addressModels == null ? 0 : addressModels.size(); 88 | } 89 | 90 | 91 | public static class ViewHolder extends RecyclerView.ViewHolder implements OnMapReadyCallback 92 | 93 | { 94 | 95 | public TextView tvTitle, tvRating, tvDistanceInKm, tvOffers, tvLocation, tvCategories; 96 | public ImageView ivMain; 97 | public Button mBook, mPay; 98 | private LinearLayout mItemLayout; 99 | 100 | GoogleMap map; 101 | MapView mapView; 102 | boolean isMapReady=false; 103 | ViewHolder.MapInterface mapInterface; 104 | int position; 105 | AddressModel addressModel; 106 | 107 | 108 | public ViewHolder(View itemLayoutView) { 109 | super(itemLayoutView); 110 | mapView=(MapView) itemLayoutView.findViewById(R.id.lite_map); 111 | tvTitle = (TextView) itemLayoutView.findViewById(R.id.tv_title); 112 | tvLocation = (TextView) itemLayoutView.findViewById(R.id.tv_location); 113 | tvCategories = (TextView) itemLayoutView.findViewById(R.id.tv_categories); 114 | tvRating = (TextView) itemLayoutView.findViewById(R.id.tv_rating); 115 | tvDistanceInKm = (TextView) itemLayoutView.findViewById(R.id.tv_distanceinkm); 116 | tvOffers = (TextView) itemLayoutView.findViewById(R.id.tv_offers); 117 | ivMain = (ImageView) itemLayoutView.findViewById(R.id.iv_main); 118 | mBook = (Button) itemLayoutView.findViewById(R.id.btn_book); 119 | mPay = (Button) itemLayoutView.findViewById(R.id.btn_pay); 120 | } 121 | 122 | @Override 123 | public void onMapReady(GoogleMap googleMap) { 124 | MapsInitializer.initialize(mContext); 125 | map = googleMap; 126 | isMapReady=true; 127 | map.getUiSettings().setMapToolbarEnabled(false); 128 | 129 | if (mapView.getViewTreeObserver().isAlive()) { 130 | mapView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { 131 | @SuppressWarnings("deprecation") // We use the new method when supported 132 | @SuppressLint("NewApi") // We check which build version we are using. 133 | @Override 134 | public void onGlobalLayout() { 135 | if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN) { 136 | mapView.getViewTreeObserver().removeGlobalOnLayoutListener(this); 137 | } else { 138 | mapView.getViewTreeObserver().removeOnGlobalLayoutListener(this); 139 | } 140 | // showBoth(null); 141 | } 142 | }); 143 | } 144 | try{ 145 | setMapData(new LatLng(Double.parseDouble(addressModel.getLatitude()),Double.parseDouble(addressModel.getLongitude()))); 146 | }catch(Exception e){ 147 | e.printStackTrace(); 148 | } 149 | 150 | 151 | // mapInterface.mapIsReadyToSet(this,position); 152 | } 153 | 154 | public void setMapData(LatLng newLatLng){ 155 | if(map!=null){ 156 | map.moveCamera(CameraUpdateFactory.newLatLngZoom(newLatLng, 13f)); 157 | map.addMarker(new MarkerOptions().position(newLatLng)); 158 | map.setMapType(GoogleMap.MAP_TYPE_NORMAL); 159 | }else{ 160 | Log.e("Map","Map null"); 161 | } 162 | } 163 | 164 | public void initializeMapView(int pos,AddressModel address) { 165 | try{ 166 | position=pos; 167 | addressModel=address; 168 | if (mapView != null) { 169 | // Initialise the MapView 170 | mapView.onCreate(null); 171 | // Set the map ready callback to receive the GoogleMap object 172 | mapView.getMapAsync(this); 173 | 174 | }else{ 175 | Log.e("Map","Mapview null"); 176 | } 177 | }catch (Exception e){ 178 | e.printStackTrace(); 179 | } 180 | 181 | } 182 | 183 | public interface MapInterface{ 184 | public void mapIsReadyToSet(ViewHolder holder, int pos); 185 | } 186 | 187 | } 188 | } 189 | -------------------------------------------------------------------------------- /app/src/main/java/com/purvotara/airbnbmapexample/ui/fragment/MapFragment.java: -------------------------------------------------------------------------------- 1 | package com.purvotara.airbnbmapexample.ui.fragment; 2 | 3 | import android.annotation.SuppressLint; 4 | import android.os.Bundle; 5 | import android.support.v4.app.Fragment; 6 | import android.view.LayoutInflater; 7 | import android.view.View; 8 | import android.view.ViewGroup; 9 | import android.widget.Button; 10 | import android.widget.ImageView; 11 | import android.widget.LinearLayout; 12 | import android.widget.TextView; 13 | 14 | import com.android.volley.toolbox.ImageLoader; 15 | import com.purvotara.airbnbmapexample.R; 16 | import com.purvotara.airbnbmapexample.model.AddressModel; 17 | import com.purvotara.airbnbmapexample.network.util.CustomVolleyRequestQueue; 18 | 19 | 20 | /** 21 | * Created by skyrreasure on 14/3/16. 22 | */ 23 | public class MapFragment extends Fragment { 24 | 25 | private static ImageLoader mImageLoader; 26 | int page_position; 27 | TextView tvTitle, tvLocation, tvCategory, tvRating, tvOffer, tvDistanceInKm, tvDescription, tvPhone; 28 | Button btnNavigate, btnBook; 29 | LinearLayout layoutItem; 30 | ImageView ivMain; 31 | private AddressModel dealModel; 32 | 33 | public MapFragment() { 34 | 35 | } 36 | 37 | @SuppressLint("ValidFragment") 38 | public MapFragment(int position, AddressModel placemodel) { 39 | this.page_position = position; 40 | this.dealModel = placemodel; 41 | } 42 | 43 | public AddressModel getDealModel() { 44 | return dealModel; 45 | } 46 | 47 | 48 | @Override 49 | public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 50 | ViewGroup rootView = (ViewGroup) inflater.inflate(R.layout.map_view_item, container, false); 51 | try { 52 | mImageLoader = CustomVolleyRequestQueue.getInstance(getActivity()).getImageLoader(); 53 | 54 | tvTitle = (TextView) rootView.findViewById(R.id.tv_title); 55 | tvDescription = (TextView) rootView.findViewById(R.id.tv_categories); 56 | tvLocation=(TextView)rootView.findViewById(R.id.tv_offers); 57 | tvRating=(TextView)rootView.findViewById(R.id.tv_rating); 58 | tvDistanceInKm=(TextView)rootView.findViewById(R.id.tv_distanceinkm); 59 | 60 | tvTitle.setText(getDealModel().getLine1()); 61 | tvDescription.setText(getDealModel().getLine2()); 62 | tvLocation.setText(getDealModel().getCity()); 63 | tvDistanceInKm.setText(getDealModel().getDistance()); 64 | tvRating.setText(getDealModel().getRating()); 65 | 66 | return rootView; 67 | 68 | } catch (Exception e) { 69 | e.printStackTrace(); 70 | throw new RuntimeException("PlacesMapFragment:" + e.getStackTrace()); 71 | } 72 | 73 | } 74 | 75 | } 76 | -------------------------------------------------------------------------------- /app/src/main/java/com/purvotara/airbnbmapexample/ui/fragment/MySupportMapFragment.java: -------------------------------------------------------------------------------- 1 | package com.purvotara.airbnbmapexample.ui.fragment; 2 | 3 | import android.os.Bundle; 4 | import android.view.LayoutInflater; 5 | import android.view.View; 6 | import android.view.ViewGroup; 7 | 8 | import com.google.android.gms.maps.SupportMapFragment; 9 | import com.purvotara.airbnbmapexample.ui.widget.TouchableWrapper; 10 | 11 | /** 12 | * Created by skyrreasure on 5/4/16. 13 | */ 14 | public class MySupportMapFragment extends SupportMapFragment { 15 | public View mOriginalContentView; 16 | public TouchableWrapper mTouchView; 17 | 18 | @Override 19 | public View onCreateView(LayoutInflater inflater, ViewGroup parent, Bundle savedInstanceState) { 20 | mOriginalContentView = super.onCreateView(inflater, parent, savedInstanceState); 21 | mTouchView = new TouchableWrapper(getActivity()); 22 | mTouchView.addView(mOriginalContentView); 23 | return mTouchView; 24 | } 25 | 26 | @Override 27 | public View getView() { 28 | return mOriginalContentView; 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /app/src/main/java/com/purvotara/airbnbmapexample/ui/util/GoogleMapUtis.java: -------------------------------------------------------------------------------- 1 | package com.purvotara.airbnbmapexample.ui.util; 2 | 3 | import java.util.ArrayList; 4 | import java.util.List; 5 | 6 | import android.location.Location; 7 | 8 | import com.google.android.gms.maps.CameraUpdateFactory; 9 | import com.google.android.gms.maps.GoogleMap; 10 | import com.google.android.gms.maps.model.LatLng; 11 | import com.google.android.gms.maps.model.LatLngBounds; 12 | import com.google.android.gms.maps.model.Marker; 13 | 14 | public class GoogleMapUtis { 15 | 16 | public static void toggleStyle(GoogleMap googleMap) { 17 | if (GoogleMap.MAP_TYPE_NORMAL == googleMap.getMapType()) { 18 | googleMap.setMapType(GoogleMap.MAP_TYPE_SATELLITE); 19 | } else { 20 | googleMap.setMapType(GoogleMap.MAP_TYPE_NORMAL); 21 | } 22 | } 23 | 24 | public static Location convertLatLngToLocation(LatLng latLng) { 25 | Location loc = new Location("someLoc"); 26 | loc.setLatitude(latLng.latitude); 27 | loc.setLongitude(latLng.longitude); 28 | return loc; 29 | } 30 | 31 | public static float bearingBetweenLatLngs(LatLng begin,LatLng end) { 32 | Location beginL= convertLatLngToLocation(begin); 33 | Location endL= convertLatLngToLocation(end); 34 | return beginL.bearingTo(endL); 35 | } 36 | 37 | public static String encodeMarkerForDirection(Marker marker) { 38 | return marker.getPosition().latitude + "," + marker.getPosition().longitude; 39 | } 40 | 41 | public static void fixZoomForLatLngs(GoogleMap googleMap, List latLngs) { 42 | if (latLngs!=null && latLngs.size() > 0) { 43 | LatLngBounds.Builder bc = new LatLngBounds.Builder(); 44 | 45 | for (LatLng latLng: latLngs) { 46 | bc.include(latLng); 47 | } 48 | 49 | googleMap.animateCamera(CameraUpdateFactory.newLatLngBounds(bc.build(), 50),4000,null); 50 | } 51 | } 52 | 53 | public static void fixZoomForMarkers(GoogleMap googleMap, List markers) { 54 | if (markers!=null && markers.size() > 0) { 55 | LatLngBounds.Builder bc = new LatLngBounds.Builder(); 56 | 57 | for (Marker marker : markers) { 58 | bc.include(marker.getPosition()); 59 | } 60 | 61 | googleMap.animateCamera(CameraUpdateFactory.newLatLngBounds(bc.build(), 50),4000,null); 62 | } 63 | } 64 | 65 | public static List getSampleLatLngs() { 66 | List latLngs = new ArrayList(); 67 | latLngs.add(new LatLng(50.961813797827055,3.5168474167585373)); 68 | latLngs.add(new LatLng(50.96085423274633,3.517405651509762)); 69 | latLngs.add(new LatLng(50.96020550146382,3.5177918896079063)); 70 | latLngs.add(new LatLng(50.95936754348453,3.518972061574459)); 71 | latLngs.add(new LatLng(50.95877285446026,3.5199161991477013)); 72 | latLngs.add(new LatLng(50.958179213755905,3.520646095275879)); 73 | latLngs.add(new LatLng(50.95901719316589,3.5222768783569336)); 74 | latLngs.add(new LatLng(50.95954430150347,3.523542881011963)); 75 | latLngs.add(new LatLng(50.95873336312275,3.5244011878967285)); 76 | latLngs.add(new LatLng(50.95955781702322,3.525688648223877)); 77 | latLngs.add(new LatLng(50.958855004782116,3.5269761085510254)); 78 | return latLngs; 79 | } 80 | } 81 | -------------------------------------------------------------------------------- /app/src/main/java/com/purvotara/airbnbmapexample/ui/util/IconizedWindowAdapter.java: -------------------------------------------------------------------------------- 1 | package com.purvotara.airbnbmapexample.ui.util; 2 | 3 | import android.view.LayoutInflater; 4 | import android.view.View; 5 | import android.widget.TextView; 6 | 7 | import com.google.android.gms.maps.GoogleMap.InfoWindowAdapter; 8 | import com.google.android.gms.maps.model.Marker; 9 | import com.purvotara.airbnbmapexample.R; 10 | 11 | public class IconizedWindowAdapter implements InfoWindowAdapter { 12 | LayoutInflater inflater=null; 13 | 14 | public IconizedWindowAdapter(LayoutInflater inflater) { 15 | this.inflater=inflater; 16 | } 17 | 18 | @Override 19 | public View getInfoWindow(Marker marker) { 20 | return(null); 21 | } 22 | 23 | @Override 24 | public View getInfoContents(Marker marker) { 25 | View popup=inflater.inflate(R.layout.marker_tooltip, null); 26 | 27 | TextView tv=(TextView)popup.findViewById(R.id.title); 28 | 29 | tv.setText(marker.getTitle()); 30 | tv=(TextView)popup.findViewById(R.id.snippet); 31 | tv.setText(marker.getSnippet()); 32 | 33 | return(popup); 34 | } 35 | } -------------------------------------------------------------------------------- /app/src/main/java/com/purvotara/airbnbmapexample/ui/util/PermissionUtils.java: -------------------------------------------------------------------------------- 1 | package com.purvotara.airbnbmapexample.ui.util; 2 | 3 | import android.Manifest; 4 | import android.app.AlertDialog; 5 | import android.app.Dialog; 6 | import android.content.DialogInterface; 7 | import android.content.pm.PackageManager; 8 | import android.os.Bundle; 9 | import android.support.v4.app.ActivityCompat; 10 | import android.support.v4.app.DialogFragment; 11 | import android.support.v7.app.AppCompatActivity; 12 | import android.widget.Toast; 13 | 14 | import com.purvotara.airbnbmapexample.R; 15 | 16 | 17 | /** 18 | * Created by skyrreasure on 1/4/16. 19 | */ 20 | public abstract class PermissionUtils { 21 | 22 | /** 23 | * Requests the fine location permission. If a rationale with an additional explanation should 24 | * be shown to the user, displays a dialog that triggers the request. 25 | */ 26 | public static void requestPermission(AppCompatActivity activity, int requestId, 27 | String permission, boolean finishActivity) { 28 | if (ActivityCompat.shouldShowRequestPermissionRationale(activity, permission)) { 29 | // Display a dialog with rationale. 30 | PermissionUtils.RationaleDialog.newInstance(requestId, finishActivity) 31 | .show(activity.getSupportFragmentManager(), "dialog"); 32 | } else { 33 | // Location permission has not been granted yet, request it. 34 | ActivityCompat.requestPermissions(activity, new String[]{permission}, requestId); 35 | 36 | } 37 | } 38 | 39 | /** 40 | * Checks if the result contains a {@link PackageManager#PERMISSION_GRANTED} result for a 41 | * permission from a runtime permissions request. 42 | * 43 | * @see android.support.v4.app.ActivityCompat.OnRequestPermissionsResultCallback 44 | */ 45 | public static boolean isPermissionGranted(String[] grantPermissions, int[] grantResults, 46 | String permission) { 47 | for (int i = 0; i < grantPermissions.length; i++) { 48 | if (permission.equals(grantPermissions[i])) { 49 | return grantResults[i] == PackageManager.PERMISSION_GRANTED; 50 | } 51 | } 52 | return false; 53 | } 54 | 55 | /** 56 | * A dialog that displays a permission denied message. 57 | */ 58 | public static class PermissionDeniedDialog extends DialogFragment { 59 | 60 | private static final String ARGUMENT_FINISH_ACTIVITY = "finish"; 61 | 62 | private boolean mFinishActivity = false; 63 | 64 | /** 65 | * Creates a new instance of this dialog and optionally finishes the calling Activity 66 | * when the 'Ok' button is clicked. 67 | */ 68 | public static PermissionDeniedDialog newInstance(boolean finishActivity) { 69 | Bundle arguments = new Bundle(); 70 | arguments.putBoolean(ARGUMENT_FINISH_ACTIVITY, finishActivity); 71 | 72 | PermissionDeniedDialog dialog = new PermissionDeniedDialog(); 73 | dialog.setArguments(arguments); 74 | return dialog; 75 | } 76 | 77 | @Override 78 | public Dialog onCreateDialog(Bundle savedInstanceState) { 79 | mFinishActivity = getArguments().getBoolean(ARGUMENT_FINISH_ACTIVITY); 80 | 81 | return new AlertDialog.Builder(getActivity()) 82 | .setMessage(R.string.location_permission_denied) 83 | .setPositiveButton(android.R.string.ok, null) 84 | .create(); 85 | } 86 | 87 | @Override 88 | public void onDismiss(DialogInterface dialog) { 89 | super.onDismiss(dialog); 90 | if (mFinishActivity) { 91 | Toast.makeText(getActivity(), R.string.permission_required_toast, 92 | Toast.LENGTH_SHORT).show(); 93 | getActivity().finish(); 94 | } 95 | } 96 | } 97 | 98 | /** 99 | * A dialog that explains the use of the location permission and requests the necessary 100 | * permission. 101 | *

102 | * The activity should implement 103 | * {@link android.support.v4.app.ActivityCompat.OnRequestPermissionsResultCallback} 104 | * to handle permit or denial of this permission request. 105 | */ 106 | public static class RationaleDialog extends DialogFragment { 107 | 108 | private static final String ARGUMENT_PERMISSION_REQUEST_CODE = "requestCode"; 109 | 110 | private static final String ARGUMENT_FINISH_ACTIVITY = "finish"; 111 | 112 | private boolean mFinishActivity = false; 113 | 114 | /** 115 | * Creates a new instance of a dialog displaying the rationale for the use of the location 116 | * permission. 117 | *

118 | * The permission is requested after clicking 'ok'. 119 | * 120 | * @param requestCode Id of the request that is used to request the permission. It is 121 | * returned to the 122 | * {@link android.support.v4.app.ActivityCompat.OnRequestPermissionsResultCallback}. 123 | * @param finishActivity Whether the calling Activity should be finished if the dialog is 124 | * cancelled. 125 | */ 126 | public static RationaleDialog newInstance(int requestCode, boolean finishActivity) { 127 | Bundle arguments = new Bundle(); 128 | arguments.putInt(ARGUMENT_PERMISSION_REQUEST_CODE, requestCode); 129 | arguments.putBoolean(ARGUMENT_FINISH_ACTIVITY, finishActivity); 130 | RationaleDialog dialog = new RationaleDialog(); 131 | dialog.setArguments(arguments); 132 | return dialog; 133 | } 134 | 135 | @Override 136 | public Dialog onCreateDialog(Bundle savedInstanceState) { 137 | Bundle arguments = getArguments(); 138 | final int requestCode = arguments.getInt(ARGUMENT_PERMISSION_REQUEST_CODE); 139 | mFinishActivity = arguments.getBoolean(ARGUMENT_FINISH_ACTIVITY); 140 | 141 | return new AlertDialog.Builder(getActivity()) 142 | .setMessage(R.string.permission_rationale_location) 143 | .setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() { 144 | @Override 145 | public void onClick(DialogInterface dialog, int which) { 146 | // After click on Ok, request the permission. 147 | ActivityCompat.requestPermissions(getActivity(), 148 | new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, 149 | requestCode); 150 | // Do not finish the Activity while requesting permission. 151 | mFinishActivity = false; 152 | } 153 | }) 154 | .setNegativeButton(android.R.string.cancel, null) 155 | .create(); 156 | } 157 | 158 | @Override 159 | public void onDismiss(DialogInterface dialog) { 160 | super.onDismiss(dialog); 161 | if (mFinishActivity) { 162 | Toast.makeText(getActivity(), 163 | R.string.permission_required_toast, 164 | Toast.LENGTH_SHORT) 165 | .show(); 166 | getActivity().finish(); 167 | } 168 | } 169 | } 170 | } 171 | -------------------------------------------------------------------------------- /app/src/main/java/com/purvotara/airbnbmapexample/ui/util/Util.java: -------------------------------------------------------------------------------- 1 | package com.purvotara.airbnbmapexample.ui.util; 2 | 3 | import android.content.Context; 4 | import android.net.ConnectivityManager; 5 | import android.net.NetworkInfo; 6 | 7 | /** 8 | * Created by skyrreasure on 12/5/16. 9 | */ 10 | public class Util { 11 | public static final class Operations { 12 | private Operations() throws InstantiationException { 13 | throw new InstantiationException("This class is not for instantiation"); 14 | } 15 | /** 16 | * Checks to see if the device is online before carrying out any operations. 17 | * 18 | * @return 19 | */ 20 | public static boolean isOnline(Context context) { 21 | ConnectivityManager cm = 22 | (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); 23 | NetworkInfo netInfo = cm.getActiveNetworkInfo(); 24 | if (netInfo != null && netInfo.isConnectedOrConnecting()) { 25 | return true; 26 | } 27 | return false; 28 | } 29 | } 30 | private Util() throws InstantiationException { 31 | throw new InstantiationException("This class is not for instantiation"); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /app/src/main/java/com/purvotara/airbnbmapexample/ui/widget/MyAnimationUtils.java: -------------------------------------------------------------------------------- 1 | package com.purvotara.airbnbmapexample.ui.widget; 2 | 3 | import android.animation.AnimatorSet; 4 | import android.animation.ObjectAnimator; 5 | import android.support.v7.widget.RecyclerView; 6 | 7 | 8 | public class MyAnimationUtils { 9 | 10 | 11 | public static void animate(RecyclerView.ViewHolder holder , boolean goesDown){ 12 | 13 | slidingAnimation(holder, goesDown); 14 | 15 | // slidingWithBounce(holder, goesDown); 16 | 17 | } 18 | 19 | private static void slidingAnimation(RecyclerView.ViewHolder holder, boolean goesDown){ 20 | 21 | ObjectAnimator animatorTranslateY = ObjectAnimator.ofFloat(holder.itemView, "translationY", goesDown ? 200 : -200, 0); 22 | 23 | animatorTranslateY.setDuration(1000); 24 | 25 | animatorTranslateY.start(); 26 | 27 | } 28 | 29 | 30 | private static void slidingWithBounce(RecyclerView.ViewHolder holder, boolean goesDown){ 31 | 32 | AnimatorSet animatorSet = new AnimatorSet(); 33 | 34 | ObjectAnimator animatorTranslateY = ObjectAnimator.ofFloat(holder.itemView, "translationY", goesDown? 200 : -200, 0); 35 | ObjectAnimator animatorTranslateX = ObjectAnimator.ofFloat(holder.itemView,"translationX",-30,30,-20,20,-5,5,0); 36 | 37 | animatorTranslateX.setDuration(1000); 38 | animatorTranslateY.setDuration(1000); 39 | 40 | animatorSet.playTogether ( animatorTranslateX, animatorTranslateY); 41 | animatorSet.start(); 42 | 43 | } 44 | 45 | } 46 | -------------------------------------------------------------------------------- /app/src/main/java/com/purvotara/airbnbmapexample/ui/widget/TouchableWrapper.java: -------------------------------------------------------------------------------- 1 | package com.purvotara.airbnbmapexample.ui.widget; 2 | 3 | import android.content.Context; 4 | import android.os.SystemClock; 5 | import android.view.MotionEvent; 6 | import android.widget.FrameLayout; 7 | 8 | import com.purvotara.airbnbmapexample.ui.activity.SearchPlaceOnMapActivity; 9 | 10 | 11 | /** 12 | * Created by skyrreasure on 1/4/16. 13 | */ 14 | public class TouchableWrapper extends FrameLayout { 15 | private static final long SCROLL_TIME = 200L; // 200 Milliseconds, but you can adjust that to your liking 16 | private long lastTouched = 0; 17 | private UpdateMapAfterUserInterection updateMapAfterUserInterection; 18 | 19 | public TouchableWrapper(Context context) { 20 | super(context); 21 | // Force the host activity to implement the UpdateMapAfterUserInterection Interface 22 | try { 23 | updateMapAfterUserInterection = (SearchPlaceOnMapActivity) context; 24 | } catch (ClassCastException e) { 25 | throw new ClassCastException(context.toString() + " must implement UpdateMapAfterUserInterection"); 26 | } 27 | } 28 | 29 | @Override 30 | public boolean dispatchTouchEvent(MotionEvent ev) { 31 | switch (ev.getAction()) { 32 | case MotionEvent.ACTION_DOWN: 33 | lastTouched = SystemClock.uptimeMillis(); 34 | break; 35 | case MotionEvent.ACTION_UP: 36 | final long now = SystemClock.uptimeMillis(); 37 | if (now - lastTouched > SCROLL_TIME) { 38 | // Update the map 39 | updateMapAfterUserInterection.onUpdateMapAfterUserInterection(); 40 | } 41 | break; 42 | } 43 | return super.dispatchTouchEvent(ev); 44 | } 45 | 46 | // Map Activity must implement this interface 47 | public interface UpdateMapAfterUserInterection { 48 | public void onUpdateMapAfterUserInterection(); 49 | } 50 | 51 | } 52 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/about_location_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/app/src/main/res/drawable-hdpi/about_location_icon.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_add_circle_outline_white_48dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/app/src/main/res/drawable-hdpi/ic_add_circle_outline_white_48dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/location.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/app/src/main/res/drawable-hdpi/location.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/location_distance.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/app/src/main/res/drawable-hdpi/location_distance.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/location_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/app/src/main/res/drawable-hdpi/location_icon.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/location_icon_active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/app/src/main/res/drawable-hdpi/location_icon_active.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/location_icon_grey.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/app/src/main/res/drawable-hdpi/location_icon_grey.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/my_favourites_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/app/src/main/res/drawable-hdpi/my_favourites_icon.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/my_favourites_icon_active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/app/src/main/res/drawable-hdpi/my_favourites_icon_active.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/navigate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/app/src/main/res/drawable-hdpi/navigate.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/navigation_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/app/src/main/res/drawable-hdpi/navigation_icon.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/rating_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/app/src/main/res/drawable-hdpi/rating_icon.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/rating_icon_active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/app/src/main/res/drawable-hdpi/rating_icon_active.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/spa_white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/app/src/main/res/drawable-hdpi/spa_white.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/star_gray_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/app/src/main/res/drawable-hdpi/star_gray_icon.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/toolbar_close_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/app/src/main/res/drawable-hdpi/toolbar_close_icon.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-ldpi/about_location_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/app/src/main/res/drawable-ldpi/about_location_icon.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-ldpi/ic_add_circle_outline_white_48dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/app/src/main/res/drawable-ldpi/ic_add_circle_outline_white_48dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-ldpi/location.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/app/src/main/res/drawable-ldpi/location.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-ldpi/location_distance.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/app/src/main/res/drawable-ldpi/location_distance.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-ldpi/location_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/app/src/main/res/drawable-ldpi/location_icon.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-ldpi/location_icon_active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/app/src/main/res/drawable-ldpi/location_icon_active.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-ldpi/location_icon_grey.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/app/src/main/res/drawable-ldpi/location_icon_grey.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-ldpi/my_favourites_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/app/src/main/res/drawable-ldpi/my_favourites_icon.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-ldpi/my_favourites_icon_active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/app/src/main/res/drawable-ldpi/my_favourites_icon_active.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-ldpi/star_gray_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/app/src/main/res/drawable-ldpi/star_gray_icon.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-ldpi/star_icon_white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/app/src/main/res/drawable-ldpi/star_icon_white.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-ldpi/toolbar_close_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/app/src/main/res/drawable-ldpi/toolbar_close_icon.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/about_location_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/app/src/main/res/drawable-mdpi/about_location_icon.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/end_green.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/app/src/main/res/drawable-mdpi/end_green.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_add_circle_outline_white_48dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/app/src/main/res/drawable-mdpi/ic_add_circle_outline_white_48dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_send_grey600_48dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/app/src/main/res/drawable-mdpi/ic_send_grey600_48dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/location.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/app/src/main/res/drawable-mdpi/location.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/location_distance.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/app/src/main/res/drawable-mdpi/location_distance.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/location_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/app/src/main/res/drawable-mdpi/location_icon.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/location_icon_active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/app/src/main/res/drawable-mdpi/location_icon_active.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/location_icon_grey.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/app/src/main/res/drawable-mdpi/location_icon_grey.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/my_favourites_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/app/src/main/res/drawable-mdpi/my_favourites_icon.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/my_favourites_icon_active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/app/src/main/res/drawable-mdpi/my_favourites_icon_active.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/pushpin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/app/src/main/res/drawable-mdpi/pushpin.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/star_gray_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/app/src/main/res/drawable-mdpi/star_gray_icon.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/star_icon_white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/app/src/main/res/drawable-mdpi/star_icon_white.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/start_blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/app/src/main/res/drawable-mdpi/start_blue.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/toolbar_close_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/app/src/main/res/drawable-mdpi/toolbar_close_icon.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/about_location_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/app/src/main/res/drawable-xhdpi/about_location_icon.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/back_arrow_black.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/app/src/main/res/drawable-xhdpi/back_arrow_black.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/back_arrow_white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/app/src/main/res/drawable-xhdpi/back_arrow_white.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/end_green.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/app/src/main/res/drawable-xhdpi/end_green.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_add_circle_outline_white_48dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/app/src/main/res/drawable-xhdpi/ic_add_circle_outline_white_48dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_send_grey600_48dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/app/src/main/res/drawable-xhdpi/ic_send_grey600_48dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/locality.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/app/src/main/res/drawable-xhdpi/locality.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/location.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/app/src/main/res/drawable-xhdpi/location.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/location_distance.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/app/src/main/res/drawable-xhdpi/location_distance.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/location_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/app/src/main/res/drawable-xhdpi/location_icon.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/location_icon_active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/app/src/main/res/drawable-xhdpi/location_icon_active.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/location_icon_grey.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/app/src/main/res/drawable-xhdpi/location_icon_grey.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/my_favourites_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/app/src/main/res/drawable-xhdpi/my_favourites_icon.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/my_favourites_icon_active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/app/src/main/res/drawable-xhdpi/my_favourites_icon_active.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/pushpin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/app/src/main/res/drawable-xhdpi/pushpin.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/rating_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/app/src/main/res/drawable-xhdpi/rating_icon.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/rating_icon_active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/app/src/main/res/drawable-xhdpi/rating_icon_active.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/star_gray_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/app/src/main/res/drawable-xhdpi/star_gray_icon.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/star_white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/app/src/main/res/drawable-xhdpi/star_white.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/star_white_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/app/src/main/res/drawable-xhdpi/star_white_icon.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/start_blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/app/src/main/res/drawable-xhdpi/start_blue.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/toolbar_close_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/app/src/main/res/drawable-xhdpi/toolbar_close_icon.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/about_location_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/app/src/main/res/drawable-xxhdpi/about_location_icon.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/end_green.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/app/src/main/res/drawable-xxhdpi/end_green.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_add_circle_outline_white_48dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/app/src/main/res/drawable-xxhdpi/ic_add_circle_outline_white_48dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_send_grey600_48dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/app/src/main/res/drawable-xxhdpi/ic_send_grey600_48dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/locality.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/app/src/main/res/drawable-xxhdpi/locality.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/location.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/app/src/main/res/drawable-xxhdpi/location.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/location_distance.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/app/src/main/res/drawable-xxhdpi/location_distance.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/location_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/app/src/main/res/drawable-xxhdpi/location_icon.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/location_icon_active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/app/src/main/res/drawable-xxhdpi/location_icon_active.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/location_icon_grey.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/app/src/main/res/drawable-xxhdpi/location_icon_grey.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/my_favourites_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/app/src/main/res/drawable-xxhdpi/my_favourites_icon.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/my_favourites_icon_active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/app/src/main/res/drawable-xxhdpi/my_favourites_icon_active.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/navigate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/app/src/main/res/drawable-xxhdpi/navigate.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/navigation_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/app/src/main/res/drawable-xxhdpi/navigation_icon.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/pushpin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/app/src/main/res/drawable-xxhdpi/pushpin.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/rating_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/app/src/main/res/drawable-xxhdpi/rating_icon.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/rating_icon_active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/app/src/main/res/drawable-xxhdpi/rating_icon_active.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/star_gray_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/app/src/main/res/drawable-xxhdpi/star_gray_icon.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/star_icon_white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/app/src/main/res/drawable-xxhdpi/star_icon_white.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/star_white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/app/src/main/res/drawable-xxhdpi/star_white.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/star_white_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/app/src/main/res/drawable-xxhdpi/star_white_icon.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/start_blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/app/src/main/res/drawable-xxhdpi/start_blue.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/toolbar_close_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/app/src/main/res/drawable-xxhdpi/toolbar_close_icon.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/about_location_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/app/src/main/res/drawable-xxxhdpi/about_location_icon.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/end_green.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/app/src/main/res/drawable-xxxhdpi/end_green.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/ic_add_circle_outline_white_48dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/app/src/main/res/drawable-xxxhdpi/ic_add_circle_outline_white_48dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/ic_send_grey600_48dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/app/src/main/res/drawable-xxxhdpi/ic_send_grey600_48dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/locality.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/app/src/main/res/drawable-xxxhdpi/locality.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/location.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/app/src/main/res/drawable-xxxhdpi/location.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/location_distance.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/app/src/main/res/drawable-xxxhdpi/location_distance.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/location_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/app/src/main/res/drawable-xxxhdpi/location_icon.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/location_icon_active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/app/src/main/res/drawable-xxxhdpi/location_icon_active.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/location_icon_grey.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/app/src/main/res/drawable-xxxhdpi/location_icon_grey.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/my_favourites_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/app/src/main/res/drawable-xxxhdpi/my_favourites_icon.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/my_favourites_icon_active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/app/src/main/res/drawable-xxxhdpi/my_favourites_icon_active.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/navigate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/app/src/main/res/drawable-xxxhdpi/navigate.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/navigation_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/app/src/main/res/drawable-xxxhdpi/navigation_icon.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/pushpin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/app/src/main/res/drawable-xxxhdpi/pushpin.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/rating_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/app/src/main/res/drawable-xxxhdpi/rating_icon.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/rating_icon_active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/app/src/main/res/drawable-xxxhdpi/rating_icon_active.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/star_gray_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/app/src/main/res/drawable-xxxhdpi/star_gray_icon.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/star_icon_white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/app/src/main/res/drawable-xxxhdpi/star_icon_white.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/star_white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/app/src/main/res/drawable-xxxhdpi/star_white.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/star_white_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/app/src/main/res/drawable-xxxhdpi/star_white_icon.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/start_blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/app/src/main/res/drawable-xxxhdpi/start_blue.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/toolbar_close_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/app/src/main/res/drawable-xxxhdpi/toolbar_close_icon.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/Thumbs.db: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/app/src/main/res/drawable/Thumbs.db -------------------------------------------------------------------------------- /app/src/main/res/drawable/blue_border_button.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/blue_rounded_corners_bg.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 8 | 9 | 14 | 15 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/car.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/app/src/main/res/drawable/car.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/car_small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/app/src/main/res/drawable/car_small.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/car_small_red.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/app/src/main/res/drawable/car_small_red.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/dotted.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 9 | 14 | 15 | 16 | 17 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/dotted_line.xml: -------------------------------------------------------------------------------- 1 | 3 | 4 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/line_divider.xml: -------------------------------------------------------------------------------- 1 | 3 | 4 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/location_distance.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/app/src/main/res/drawable/location_distance.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/pin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/app/src/main/res/drawable/pin.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/placeholder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/app/src/main/res/drawable/placeholder.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/profile_img_bottomshadow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/app/src/main/res/drawable/profile_img_bottomshadow.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/profile_img_topshadow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/app/src/main/res/drawable/profile_img_topshadow.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/star_gray_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/app/src/main/res/drawable/star_gray_icon.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/star_icon_white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkyTreasure/Airbnb-Android-Google-Map-View/3383393ee4caf03408560a0d4283ca5626146544/app/src/main/res/drawable/star_icon_white.png -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_list_view.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 15 | 16 | 21 | 22 | 23 | 24 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_main.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 10 | 13 | 14 | 21 | 22 | 23 | 32 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_maps.xml: -------------------------------------------------------------------------------- 1 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_moving_marker.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 13 | 14 | 25 | 26 | 30 | 31 | 37 | 38 | 46 | 47 | 54 | 55 | 62 | 63 | 71 | 72 | 73 | 74 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_recycler_view_lite_mode_map.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 11 | 12 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_search_place_on_map.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 10 | 11 | 26 | 27 | 28 | 29 | 33 | 34 | 41 | 42 | 49 | 50 | 57 | 58 | 59 | 60 | 61 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_show_direction.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 13 | 14 | 25 | 26 | 30 | 31 | 37 | 38 | 46 | 47 | 54 | 55 | 62 | 63 | 71 | 72 | 73 | 74 | -------------------------------------------------------------------------------- /app/src/main/res/layout/google_places_search_items.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 18 | 19 | -------------------------------------------------------------------------------- /app/src/main/res/layout/map_marker_text.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 10 | 11 | 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /app/src/main/res/layout/map_marker_text_active.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 10 | 11 | 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /app/src/main/res/layout/map_view_item.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 19 | 20 | 25 | 26 | 27 | 34 | 35 | 50 | 51 | 62 | 63 | 79 | 80 | 88 | 89 | 100 | 101 | 114 | 115 | 116 | 130 | 131 | 132 | 137 | 138 | 153 | 154 |