├── app ├── .gitignore ├── libs │ ├── gnsdk.jar │ ├── gnsdk_helpers.jar │ └── jaudiotagger-2.2.4.jar ├── src │ ├── main │ │ ├── ic_launcher-web.png │ │ ├── jniLibs │ │ │ ├── x86 │ │ │ │ ├── libgabi++_shared.so │ │ │ │ ├── libgnmc_decoder.1.3.1.so │ │ │ │ └── libgnsdk_java_marshal.1.3.1.so │ │ │ ├── armeabi │ │ │ │ ├── libgabi++_shared.so │ │ │ │ ├── libgnmc_decoder.1.3.1.so │ │ │ │ └── libgnsdk_java_marshal.1.3.1.so │ │ │ ├── arm64-v8a │ │ │ │ ├── libgabi++_shared.so │ │ │ │ ├── libgnmc_decoder.1.3.1.so │ │ │ │ └── libgnsdk_java_marshal.1.3.1.so │ │ │ └── armeabi-v7a │ │ │ │ ├── libgabi++_shared.so │ │ │ │ ├── libgnmc_decoder.1.3.1.so │ │ │ │ └── libgnsdk_java_marshal.1.3.1.so │ │ ├── res │ │ │ ├── mipmap-hdpi │ │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-mdpi │ │ │ │ └── ic_launcher.png │ │ │ ├── drawable-hdpi │ │ │ │ └── ic_stat_name.png │ │ │ ├── drawable-mdpi │ │ │ │ └── ic_stat_name.png │ │ │ ├── mipmap-xhdpi │ │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-xxhdpi │ │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-xxxhdpi │ │ │ │ └── ic_launcher.png │ │ │ ├── drawable-xhdpi │ │ │ │ └── ic_stat_name.png │ │ │ ├── drawable-xxhdpi │ │ │ │ └── ic_stat_name.png │ │ │ ├── drawable │ │ │ │ ├── ic_stop_white_24dp.png │ │ │ │ ├── dark_background.xml │ │ │ │ ├── black_background.xml │ │ │ │ ├── background_custom_toast.xml │ │ │ │ ├── custom_scrollbar_thumb.xml │ │ │ │ ├── ic_stop_white_24px.xml │ │ │ │ ├── ic_play_arrow_white_24px.xml │ │ │ │ ├── tab_selector.xml │ │ │ │ ├── ic_done_white.xml │ │ │ │ ├── ic_stop_black_24dp.xml │ │ │ │ ├── ic_equalizer_white_24px.xml │ │ │ │ ├── ic_play_arrow_black_24dp.xml │ │ │ │ ├── ic_add_white_24px.xml │ │ │ │ ├── divider_item_listview.xml │ │ │ │ ├── ic_delete_white_24px.xml │ │ │ │ ├── ic_star_white.xml │ │ │ │ ├── ic_done_white_24px.xml │ │ │ │ ├── linear_gradient_black_to_transparent.xml │ │ │ │ ├── linear_gradient_dark_to_transparent.xml │ │ │ │ ├── linear_gradient_transparent_to_black.xml │ │ │ │ ├── linear_gradient_transparent_to_dark.xml │ │ │ │ ├── ic_music_note_white_24px.xml │ │ │ │ ├── ic_folder_white_24px.xml │ │ │ │ ├── ic_delete_white.xml │ │ │ │ ├── ic_photo_white_24px.xml │ │ │ │ ├── ic_star_white_24px.xml │ │ │ │ ├── ic_star_black_24dp.xml │ │ │ │ ├── ic_sd_storage_black_24px.xml │ │ │ │ ├── ic_sd_storage_white_24px.xml │ │ │ │ ├── ic_close_white_24px.xml │ │ │ │ ├── ic_folder_white.xml │ │ │ │ ├── ic_info_black_24dp.xml │ │ │ │ ├── tab_indicator_default.xml │ │ │ │ ├── tab_indicator_selected.xml │ │ │ │ ├── ic_check_box_white_24px.xml │ │ │ │ ├── ic_description_white.xml │ │ │ │ ├── ic_done_all_white.xml │ │ │ │ ├── ic_star_half_white.xml │ │ │ │ ├── ic_description_grey_24dp.xml │ │ │ │ ├── ic_edit_white_24px.xml │ │ │ │ ├── ic_queue_music_white_24px.xml │ │ │ │ ├── ic_photo_white.xml │ │ │ │ ├── ic_email_white_24px.xml │ │ │ │ ├── ic_insert_drive_file_white_24px.xml │ │ │ │ ├── ic_error_outline_white.xml │ │ │ │ ├── ic_add_to_photos_white_24px.xml │ │ │ │ ├── ic_photo_library_black_24dp.xml │ │ │ │ ├── background_splash.xml │ │ │ │ ├── ic_format_list_numbered_white_24px.xml │ │ │ │ ├── ic_build_white_24px.xml │ │ │ │ ├── ic_access_time_black_24dp.xml │ │ │ │ ├── ic_edit_white.xml │ │ │ │ ├── ic_star_border_white.xml │ │ │ │ ├── ic_description_white_24px.xml │ │ │ │ ├── ic_done_all_white_24px.xml │ │ │ │ ├── ic_star_border_white_24px.xml │ │ │ │ ├── ic_star_half_white_24px.xml │ │ │ │ ├── ic_date_range_white_24px.xml │ │ │ │ ├── ic_save_white_24px.xml │ │ │ │ ├── ic_refresh_white_24px.xml │ │ │ │ ├── ic_album_white_24px.xml │ │ │ │ ├── ic_album_white_48px.xml │ │ │ │ ├── ic_photo_library_white_24px.xml │ │ │ │ ├── ic_error_outline_white_24px.xml │ │ │ │ ├── ic_build_white.xml │ │ │ │ ├── ic_cloud_download_white_24px.xml │ │ │ │ ├── ic_search_white_24px.xml │ │ │ │ ├── ic_account_circle_white_24px.xml │ │ │ │ ├── ic_highlight_off_white_material.xml │ │ │ │ ├── ic_access_time_white_24px.xml │ │ │ │ ├── ic_photo_filter_white_24px.xml │ │ │ │ ├── ic_highlight_off_white_24px.xml │ │ │ │ ├── ic_high_quality_white_24px.xml │ │ │ │ ├── ic_library_music_white_24px.xml │ │ │ │ ├── ic_high_quality_black_24dp.xml │ │ │ │ ├── ic_speaker_white_24px.xml │ │ │ │ ├── ic_data_usage_white_24px.xml │ │ │ │ ├── ic_access_time_white.xml │ │ │ │ ├── ic_photo_size_select_large_white_24px.xml │ │ │ │ ├── ic_sentiment_very_satisfied_white_24px.xml │ │ │ │ ├── ic_public_white_24px.xml │ │ │ │ ├── ic_help_black_24dp.xml │ │ │ │ ├── ic_av_timer_black_24dp.xml │ │ │ │ ├── ic_av_timer_white_24px.xml │ │ │ │ ├── ic_sentiment_neutral_white_24px.xml │ │ │ │ ├── ic_surround_sound_white_24px.xml │ │ │ │ ├── ic_surround_sound_black_24dp.xml │ │ │ │ ├── ic_touch_app_white_24px.xml │ │ │ │ ├── ic_hearing_black_24dp.xml │ │ │ │ ├── ic_hearing_white_24px.xml │ │ │ │ ├── ic_magic_wand_auto_fix_button.xml │ │ │ │ ├── ic_android_white_24px.xml │ │ │ │ └── ic_settings_black_24dp.xml │ │ │ ├── drawable-hdpi-v11 │ │ │ │ └── ic_stat_name.png │ │ │ ├── drawable-hdpi-v9 │ │ │ │ └── ic_stat_name.png │ │ │ ├── drawable-mdpi-v11 │ │ │ │ └── ic_stat_name.png │ │ │ ├── drawable-mdpi-v9 │ │ │ │ └── ic_stat_name.png │ │ │ ├── drawable-v21 │ │ │ │ ├── ic_stop_white_24dp.png │ │ │ │ └── ic_menu_share.xml │ │ │ ├── drawable-xhdpi-v11 │ │ │ │ └── ic_stat_name.png │ │ │ ├── drawable-xhdpi-v9 │ │ │ │ └── ic_stat_name.png │ │ │ ├── drawable-xxhdpi-v9 │ │ │ │ └── ic_stat_name.png │ │ │ ├── values │ │ │ │ ├── drawables.xml │ │ │ │ ├── ids.xml │ │ │ │ ├── attrs.xml │ │ │ │ ├── colors.xml │ │ │ │ ├── dimens.xml │ │ │ │ └── styles.xml │ │ │ ├── drawable-xxhdpi-v11 │ │ │ │ └── ic_stat_name.png │ │ │ ├── xml │ │ │ │ ├── file_paths.xml │ │ │ │ ├── pref_headers.xml │ │ │ │ ├── pref_data_sync.xml │ │ │ │ └── pref_general.xml │ │ │ ├── layout │ │ │ │ ├── search_view_layout.xml │ │ │ │ ├── activity_fullscreen_viewer.xml │ │ │ │ ├── activity_main.xml │ │ │ │ ├── fragment_screen_slide_page3.xml │ │ │ │ ├── fragment_screen_slide_page2.xml │ │ │ │ ├── fragment_screen_slide_page4.xml │ │ │ │ ├── activity_questions.xml │ │ │ │ ├── fragment_screen_slide_page5.xml │ │ │ │ ├── nav_header_select_folder.xml │ │ │ │ ├── question_item.xml │ │ │ │ ├── content_main.xml │ │ │ │ ├── app_bar_select_folder.xml │ │ │ │ ├── fragment_screen_slide_page.xml │ │ │ │ ├── activity_scrolling_about.xml │ │ │ │ ├── activity_screen_slide.xml │ │ │ │ └── activity_transparent.xml │ │ │ ├── values-w820dp │ │ │ │ └── dimens.xml │ │ │ ├── anim │ │ │ │ └── blink.xml │ │ │ ├── menu │ │ │ │ ├── cab_menu.xml │ │ │ │ ├── menu_details_track_dialog.xml │ │ │ │ ├── activity_select_folder_drawer.xml │ │ │ │ └── menu_main_activity.xml │ │ │ ├── animator │ │ │ │ └── default_z_transformation_card_view.xml │ │ │ └── values-v21 │ │ │ │ └── styles.xml │ │ └── java │ │ │ └── mx │ │ │ └── dev │ │ │ └── franco │ │ │ └── automusictagfixer │ │ │ ├── utilities │ │ │ ├── RequiredPermissions.java │ │ │ ├── GnErrorCodes.java │ │ │ ├── MyGlideModule.java │ │ │ ├── StringUtilities.java │ │ │ ├── Settings.java │ │ │ ├── SimpleMediaPlayer.java │ │ │ ├── Constants.java │ │ │ └── FileSaver.java │ │ │ ├── ScreenSlidePageFragment.java │ │ │ ├── ScreenSlidePageFragment2.java │ │ │ ├── ScreenSlidePageFragment3.java │ │ │ ├── ScreenSlidePageFragment4.java │ │ │ ├── ScreenSlidePageFragment5.java │ │ │ ├── services │ │ │ ├── ConnectivityChangesDetector.java │ │ │ ├── ServiceHelper.java │ │ │ ├── ScheduleJobService.java │ │ │ ├── JobManager.java │ │ │ ├── Job.java │ │ │ └── DetectorRemovableMediaStorages.java │ │ │ ├── database │ │ │ └── TrackContract.java │ │ │ ├── FullscreenViewerActivity.java │ │ │ ├── list │ │ │ ├── QuestionItem.java │ │ │ └── FaqAdapter.java │ │ │ ├── receivers │ │ │ └── ResponseReceiver.java │ │ │ ├── transitions │ │ │ └── DetailsTransition.java │ │ │ ├── QuestionsActivity.java │ │ │ ├── SplashActivity.java │ │ │ ├── AutoMusicTagFixer.java │ │ │ ├── ScrollingAboutActivity.java │ │ │ ├── AppCompatPreferenceActivity.java │ │ │ └── TransparentActivity.java │ └── test │ │ └── java │ │ └── mx │ │ └── dev │ │ └── franco │ │ └── automusictagfixer │ │ └── ExampleUnitTest.java ├── fabric.properties └── proguard-rules.pro ├── _config.yml ├── settings.gradle ├── gradle.properties ├── gradlew.bat ├── README.md └── gradlew /app/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /_config.yml: -------------------------------------------------------------------------------- 1 | theme: jekyll-theme-slate -------------------------------------------------------------------------------- /settings.gradle: -------------------------------------------------------------------------------- 1 | include ':app' 2 | -------------------------------------------------------------------------------- /app/libs/gnsdk.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BitconFeng/AutoTagFixer/HEAD/app/libs/gnsdk.jar -------------------------------------------------------------------------------- /app/libs/gnsdk_helpers.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BitconFeng/AutoTagFixer/HEAD/app/libs/gnsdk_helpers.jar -------------------------------------------------------------------------------- /app/libs/jaudiotagger-2.2.4.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BitconFeng/AutoTagFixer/HEAD/app/libs/jaudiotagger-2.2.4.jar -------------------------------------------------------------------------------- /app/src/main/ic_launcher-web.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BitconFeng/AutoTagFixer/HEAD/app/src/main/ic_launcher-web.png -------------------------------------------------------------------------------- /app/src/main/jniLibs/x86/libgabi++_shared.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BitconFeng/AutoTagFixer/HEAD/app/src/main/jniLibs/x86/libgabi++_shared.so -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BitconFeng/AutoTagFixer/HEAD/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BitconFeng/AutoTagFixer/HEAD/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_stat_name.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BitconFeng/AutoTagFixer/HEAD/app/src/main/res/drawable-hdpi/ic_stat_name.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_stat_name.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BitconFeng/AutoTagFixer/HEAD/app/src/main/res/drawable-mdpi/ic_stat_name.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BitconFeng/AutoTagFixer/HEAD/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BitconFeng/AutoTagFixer/HEAD/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BitconFeng/AutoTagFixer/HEAD/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/jniLibs/armeabi/libgabi++_shared.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BitconFeng/AutoTagFixer/HEAD/app/src/main/jniLibs/armeabi/libgabi++_shared.so -------------------------------------------------------------------------------- /app/src/main/jniLibs/x86/libgnmc_decoder.1.3.1.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BitconFeng/AutoTagFixer/HEAD/app/src/main/jniLibs/x86/libgnmc_decoder.1.3.1.so -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_stat_name.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BitconFeng/AutoTagFixer/HEAD/app/src/main/res/drawable-xhdpi/ic_stat_name.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_stat_name.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BitconFeng/AutoTagFixer/HEAD/app/src/main/res/drawable-xxhdpi/ic_stat_name.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_stop_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BitconFeng/AutoTagFixer/HEAD/app/src/main/res/drawable/ic_stop_white_24dp.png -------------------------------------------------------------------------------- /app/src/main/jniLibs/arm64-v8a/libgabi++_shared.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BitconFeng/AutoTagFixer/HEAD/app/src/main/jniLibs/arm64-v8a/libgabi++_shared.so -------------------------------------------------------------------------------- /app/src/main/jniLibs/armeabi-v7a/libgabi++_shared.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BitconFeng/AutoTagFixer/HEAD/app/src/main/jniLibs/armeabi-v7a/libgabi++_shared.so -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi-v11/ic_stat_name.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BitconFeng/AutoTagFixer/HEAD/app/src/main/res/drawable-hdpi-v11/ic_stat_name.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi-v9/ic_stat_name.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BitconFeng/AutoTagFixer/HEAD/app/src/main/res/drawable-hdpi-v9/ic_stat_name.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi-v11/ic_stat_name.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BitconFeng/AutoTagFixer/HEAD/app/src/main/res/drawable-mdpi-v11/ic_stat_name.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi-v9/ic_stat_name.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BitconFeng/AutoTagFixer/HEAD/app/src/main/res/drawable-mdpi-v9/ic_stat_name.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v21/ic_stop_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BitconFeng/AutoTagFixer/HEAD/app/src/main/res/drawable-v21/ic_stop_white_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi-v11/ic_stat_name.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BitconFeng/AutoTagFixer/HEAD/app/src/main/res/drawable-xhdpi-v11/ic_stat_name.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi-v9/ic_stat_name.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BitconFeng/AutoTagFixer/HEAD/app/src/main/res/drawable-xhdpi-v9/ic_stat_name.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi-v9/ic_stat_name.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BitconFeng/AutoTagFixer/HEAD/app/src/main/res/drawable-xxhdpi-v9/ic_stat_name.png -------------------------------------------------------------------------------- /app/src/main/res/values/drawables.xml: -------------------------------------------------------------------------------- 1 | 2 | @android:drawable/ic_menu_share 3 | 4 | -------------------------------------------------------------------------------- /app/src/main/jniLibs/armeabi/libgnmc_decoder.1.3.1.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BitconFeng/AutoTagFixer/HEAD/app/src/main/jniLibs/armeabi/libgnmc_decoder.1.3.1.so -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi-v11/ic_stat_name.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BitconFeng/AutoTagFixer/HEAD/app/src/main/res/drawable-xxhdpi-v11/ic_stat_name.png -------------------------------------------------------------------------------- /app/src/main/jniLibs/arm64-v8a/libgnmc_decoder.1.3.1.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BitconFeng/AutoTagFixer/HEAD/app/src/main/jniLibs/arm64-v8a/libgnmc_decoder.1.3.1.so -------------------------------------------------------------------------------- /app/src/main/jniLibs/armeabi-v7a/libgnmc_decoder.1.3.1.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BitconFeng/AutoTagFixer/HEAD/app/src/main/jniLibs/armeabi-v7a/libgnmc_decoder.1.3.1.so -------------------------------------------------------------------------------- /app/src/main/jniLibs/x86/libgnsdk_java_marshal.1.3.1.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BitconFeng/AutoTagFixer/HEAD/app/src/main/jniLibs/x86/libgnsdk_java_marshal.1.3.1.so -------------------------------------------------------------------------------- /app/src/main/jniLibs/armeabi/libgnsdk_java_marshal.1.3.1.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BitconFeng/AutoTagFixer/HEAD/app/src/main/jniLibs/armeabi/libgnsdk_java_marshal.1.3.1.so -------------------------------------------------------------------------------- /app/src/main/jniLibs/arm64-v8a/libgnsdk_java_marshal.1.3.1.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BitconFeng/AutoTagFixer/HEAD/app/src/main/jniLibs/arm64-v8a/libgnsdk_java_marshal.1.3.1.so -------------------------------------------------------------------------------- /app/src/main/jniLibs/armeabi-v7a/libgnsdk_java_marshal.1.3.1.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BitconFeng/AutoTagFixer/HEAD/app/src/main/jniLibs/armeabi-v7a/libgnsdk_java_marshal.1.3.1.so -------------------------------------------------------------------------------- /app/src/main/res/values/ids.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/xml/file_paths.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/layout/search_view_layout.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/dark_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/black_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/background_custom_toast.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/fabric.properties: -------------------------------------------------------------------------------- 1 | #Contains API Secret used to validate your application. Commit to internal source control; avoid making secret public. 2 | #Tue Jan 09 19:18:07 CST 2018 3 | apiSecret=f327a25e69cb920705e1d97e5e80eee9e270cfa36533248f96cb223e38f7bfa7 4 | apiKey=3d4995f2cd3e5757faec4a2dadce6e00f2d0814e 5 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/custom_scrollbar_thumb.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_stop_white_24px.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_play_arrow_white_24px.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/tab_selector.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/values-w820dp/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_done_white.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_stop_black_24dp.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_equalizer_white_24px.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_play_arrow_black_24dp.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_add_white_24px.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/divider_item_listview.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_delete_white_24px.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_star_white.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/anim/blink.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_done_white_24px.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/linear_gradient_black_to_transparent.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/linear_gradient_dark_to_transparent.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/linear_gradient_transparent_to_black.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/linear_gradient_transparent_to_dark.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_music_note_white_24px.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_folder_white_24px.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/java/mx/dev/franco/automusictagfixer/utilities/RequiredPermissions.java: -------------------------------------------------------------------------------- 1 | package mx.dev.franco.automusictagfixer.utilities; 2 | 3 | /** 4 | * Created by franco on 23/03/17. 5 | */ 6 | 7 | public final class RequiredPermissions { 8 | public static final int WRITE_EXTERNAL_STORAGE_PERMISSION = 1; 9 | public static boolean ACCESS_GRANTED_FILES = false; 10 | public static final int REQUEST_PERMISSION_SAF = 1000; 11 | } 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_delete_white.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_photo_white_24px.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_star_white_24px.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_star_black_24dp.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_sd_storage_black_24px.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_sd_storage_white_24px.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_close_white_24px.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_folder_white.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_info_black_24dp.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/tab_indicator_default.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/tab_indicator_selected.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_check_box_white_24px.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_description_white.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_done_all_white.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_star_half_white.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_description_grey_24dp.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_edit_white_24px.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_queue_music_white_24px.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_photo_white.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_email_white_24px.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_insert_drive_file_white_24px.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_error_outline_white.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_add_to_photos_white_24px.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_photo_library_black_24dp.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/background_splash.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_format_list_numbered_white_24px.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_build_white_24px.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_access_time_black_24dp.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_edit_white.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_star_border_white.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_description_white_24px.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_done_all_white_24px.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_star_border_white_24px.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_star_half_white_24px.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_date_range_white_24px.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_save_white_24px.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_refresh_white_24px.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_album_white_24px.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_album_white_48px.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_photo_library_white_24px.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_error_outline_white_24px.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/test/java/mx/dev/franco/automusictagfixer/ExampleUnitTest.java: -------------------------------------------------------------------------------- 1 | package mx.dev.franco.automusictagfixer; 2 | 3 | import org.junit.Test; 4 | 5 | import static org.junit.Assert.assertEquals; 6 | 7 | /** 8 | * Example local unit test, which will execute on the development machine (host). 9 | * 10 | * @see Testing documentation 11 | */ 12 | public class ExampleUnitTest { 13 | @Test 14 | public void addition_isCorrect() throws Exception { 15 | assertEquals(4, 2 + 2); 16 | } 17 | } -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_build_white.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_cloud_download_white_24px.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_search_white_24px.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/values/attrs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/menu/cab_menu.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_account_circle_white_24px.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_highlight_off_white_material.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_access_time_white_24px.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_photo_filter_white_24px.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_highlight_off_white_24px.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_high_quality_white_24px.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_library_music_white_24px.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_high_quality_black_24dp.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_speaker_white_24px.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_data_usage_white_24px.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_access_time_white.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 12 | 13 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_photo_size_select_large_white_24px.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_sentiment_very_satisfied_white_24px.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_public_white_24px.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_help_black_24dp.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/xml/pref_headers.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 |
9 | 10 |
14 | 15 | 16 | -------------------------------------------------------------------------------- /app/src/main/java/mx/dev/franco/automusictagfixer/ScreenSlidePageFragment.java: -------------------------------------------------------------------------------- 1 | package mx.dev.franco.automusictagfixer; 2 | 3 | import android.os.Bundle; 4 | import android.support.v4.app.Fragment; 5 | import android.view.LayoutInflater; 6 | import android.view.View; 7 | import android.view.ViewGroup; 8 | 9 | /** 10 | * Created by franco on 10/11/16. 11 | */ 12 | 13 | public class ScreenSlidePageFragment extends Fragment { 14 | @Override 15 | public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){ 16 | ViewGroup rootView = (ViewGroup) inflater.inflate(R.layout.fragment_screen_slide_page, container, false); 17 | return rootView; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /app/src/main/java/mx/dev/franco/automusictagfixer/ScreenSlidePageFragment2.java: -------------------------------------------------------------------------------- 1 | package mx.dev.franco.automusictagfixer; 2 | 3 | import android.os.Bundle; 4 | import android.support.v4.app.Fragment; 5 | import android.view.LayoutInflater; 6 | import android.view.View; 7 | import android.view.ViewGroup; 8 | 9 | /** 10 | * Created by franco on 10/11/16. 11 | */ 12 | 13 | public class ScreenSlidePageFragment2 extends Fragment{ 14 | @Override 15 | public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){ 16 | ViewGroup rootView = (ViewGroup) inflater.inflate(R.layout.fragment_screen_slide_page2, container, false); 17 | return rootView; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /app/src/main/java/mx/dev/franco/automusictagfixer/ScreenSlidePageFragment3.java: -------------------------------------------------------------------------------- 1 | package mx.dev.franco.automusictagfixer; 2 | 3 | import android.os.Bundle; 4 | import android.support.v4.app.Fragment; 5 | import android.view.LayoutInflater; 6 | import android.view.View; 7 | import android.view.ViewGroup; 8 | 9 | /** 10 | * Created by franco on 10/11/16. 11 | */ 12 | 13 | public class ScreenSlidePageFragment3 extends Fragment{ 14 | @Override 15 | public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){ 16 | ViewGroup rootView = (ViewGroup) inflater.inflate(R.layout.fragment_screen_slide_page3, container, false); 17 | return rootView; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /app/src/main/java/mx/dev/franco/automusictagfixer/ScreenSlidePageFragment4.java: -------------------------------------------------------------------------------- 1 | package mx.dev.franco.automusictagfixer; 2 | 3 | import android.os.Bundle; 4 | import android.support.v4.app.Fragment; 5 | import android.view.LayoutInflater; 6 | import android.view.View; 7 | import android.view.ViewGroup; 8 | 9 | /** 10 | * Created by franco on 10/11/16. 11 | */ 12 | 13 | public class ScreenSlidePageFragment4 extends Fragment{ 14 | @Override 15 | public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){ 16 | ViewGroup rootView = (ViewGroup) inflater.inflate(R.layout.fragment_screen_slide_page4, container, false); 17 | return rootView; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /app/src/main/java/mx/dev/franco/automusictagfixer/ScreenSlidePageFragment5.java: -------------------------------------------------------------------------------- 1 | package mx.dev.franco.automusictagfixer; 2 | 3 | import android.os.Bundle; 4 | import android.support.v4.app.Fragment; 5 | import android.view.LayoutInflater; 6 | import android.view.View; 7 | import android.view.ViewGroup; 8 | 9 | /** 10 | * Created by franco on 10/11/16. 11 | */ 12 | 13 | public class ScreenSlidePageFragment5 extends Fragment{ 14 | @Override 15 | public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){ 16 | ViewGroup rootView = (ViewGroup) inflater.inflate(R.layout.fragment_screen_slide_page5, container, false); 17 | return rootView; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_av_timer_black_24dp.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_av_timer_white_24px.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | #fbc02d 7 | #fff263 8 | #c49000 9 | 10 | #000000 11 | #ffffff 12 | #4000 13 | #212121 14 | #424242 15 | 16 | #66000000 17 | 18 | 19 | -------------------------------------------------------------------------------- /app/src/main/res/xml/pref_data_sync.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /app/src/main/res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 16dp 4 | 5 | 6 | 7 | 0dp 8 | 8dp 9 | 24dp 10 | 55dp 11 | 105dp 12 | 155dp 13 | 205dp 14 | 48dp 15 | 180dp 16 | 16dp 17 | 18 | 19 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-v21/ic_menu_share.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_sentiment_neutral_white_24px.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/java/mx/dev/franco/automusictagfixer/services/ConnectivityChangesDetector.java: -------------------------------------------------------------------------------- 1 | package mx.dev.franco.automusictagfixer.services; 2 | 3 | import android.content.BroadcastReceiver; 4 | import android.content.Context; 5 | import android.content.Intent; 6 | import android.net.ConnectivityManager; 7 | 8 | /** 9 | * Created by franco on 26/12/17. 10 | */ 11 | 12 | public final class ConnectivityChangesDetector extends BroadcastReceiver { 13 | @Override 14 | public void onReceive(Context context, Intent intent) { 15 | String action = intent.getAction(); 16 | if(action != null && action.equals(ConnectivityManager.CONNECTIVITY_ACTION)){ 17 | ConnectivityDetector.withContext(context).startCheckingConnection(); 18 | } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /gradle.properties: -------------------------------------------------------------------------------- 1 | # Project-wide Gradle settings. 2 | 3 | # IDE (e.g. Android Studio) users: 4 | # Gradle settings configured through the IDE *will override* 5 | # any settings specified in this file. 6 | 7 | # For more details on how to configure your build environment visit 8 | # http://www.gradle.org/docs/current/userguide/build_environment.html 9 | 10 | # Specifies the JVM arguments used for the daemon process. 11 | # The setting is particularly useful for tweaking memory settings. 12 | org.gradle.jvmargs=-Xmx1536m 13 | 14 | # When configured, Gradle will run in incubating parallel mode. 15 | # This option should only be used with decoupled projects. More details, visit 16 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects 17 | # org.gradle.parallel=true 18 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_surround_sound_white_24px.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_surround_sound_black_24dp.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_touch_app_white_24px.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/java/mx/dev/franco/automusictagfixer/utilities/GnErrorCodes.java: -------------------------------------------------------------------------------- 1 | package mx.dev.franco.automusictagfixer.utilities; 2 | 3 | import android.content.Context; 4 | 5 | import mx.dev.franco.automusictagfixer.R; 6 | import mx.dev.franco.automusictagfixer.list.AudioItem; 7 | 8 | /** 9 | * Created by franco on 19/03/18. 10 | */ 11 | 12 | public class GnErrorCodes { 13 | public static String getMessage(Context context, long errorCode, String... params){ 14 | String msg = null; 15 | switch ((int) errorCode){ 16 | case 0x90820042: 17 | case 0x90b30042: 18 | msg = String.format(context.getString(R.string.file_already_added), AudioItem.getFilename(params[0])); 19 | break; 20 | 21 | } 22 | context = null; 23 | return msg; 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /app/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 14 | 15 | 18 | 19 | -------------------------------------------------------------------------------- /app/src/main/res/animator/default_z_transformation_card_view.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 12 | 13 | 14 | 15 | 16 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_hearing_black_24dp.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_hearing_white_24px.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_fullscreen_viewer.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 20 | 21 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_magic_wand_auto_fix_button.xml: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_android_white_24px.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/java/mx/dev/franco/automusictagfixer/utilities/MyGlideModule.java: -------------------------------------------------------------------------------- 1 | package mx.dev.franco.automusictagfixer.utilities; 2 | 3 | import android.content.Context; 4 | 5 | import com.bumptech.glide.GlideBuilder; 6 | import com.bumptech.glide.annotation.GlideModule; 7 | import com.bumptech.glide.load.engine.cache.LruResourceCache; 8 | import com.bumptech.glide.module.AppGlideModule; 9 | 10 | /** 11 | * Created by franco on 4/12/16. 12 | */ 13 | 14 | @GlideModule 15 | public final class MyGlideModule extends AppGlideModule { 16 | @Override 17 | public void applyOptions(Context context, GlideBuilder builder) { 18 | super.applyOptions(context, builder); 19 | setMemoryCache(context, builder); 20 | } 21 | 22 | public MyGlideModule() { 23 | super(); 24 | } 25 | public void setMemoryCache(Context context, GlideBuilder builder) { 26 | int memoryCacheSizeBytes = 1024 * 1024 * 20; // 20mb 27 | builder.setMemoryCache(new LruResourceCache(memoryCacheSizeBytes)); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /app/src/main/java/mx/dev/franco/automusictagfixer/database/TrackContract.java: -------------------------------------------------------------------------------- 1 | package mx.dev.franco.automusictagfixer.database; 2 | 3 | import android.provider.BaseColumns; 4 | 5 | /** 6 | * Created by franco on 7/03/17. 7 | */ 8 | 9 | public final class TrackContract { 10 | public TrackContract(){} 11 | 12 | public static class TrackData implements BaseColumns{ 13 | public static final String TABLE_NAME = "tracks_table"; 14 | public static final String MEDIASTORE_ID = "media_store_id"; 15 | public static final String TITLE = "title"; 16 | public static final String ARTIST = "artist"; 17 | public static final String ALBUM = "album"; 18 | public static final String DATA = "_data"; 19 | public static final String IS_PROCESSING = "is_processing"; 20 | public static final String IS_SELECTED = "is_selected"; 21 | public static final String STATUS = "status"; //P for "processed", I for "incomplete data", NA for "no data avaliable", N for "no processed" 22 | } 23 | 24 | } -------------------------------------------------------------------------------- /app/src/main/java/mx/dev/franco/automusictagfixer/FullscreenViewerActivity.java: -------------------------------------------------------------------------------- 1 | package mx.dev.franco.automusictagfixer; 2 | 3 | import android.content.Intent; 4 | import android.graphics.BitmapFactory; 5 | import android.os.Bundle; 6 | import android.support.v7.app.AppCompatActivity; 7 | import android.widget.ImageView; 8 | 9 | /** 10 | * An example full-screen activity that shows and hides the system UI (i.e. 11 | * status bar and navigation/system bar) with user interaction. 12 | */ 13 | public class FullscreenViewerActivity extends AppCompatActivity { 14 | 15 | 16 | 17 | @Override 18 | protected void onCreate(Bundle savedInstanceState) { 19 | super.onCreate(savedInstanceState); 20 | 21 | setContentView(R.layout.activity_fullscreen_viewer); 22 | Intent bundle = getIntent(); 23 | byte[] cover = bundle.getByteArrayExtra("cover"); 24 | ImageView imageView = findViewById(R.id.imageContainerViewer); 25 | imageView.setImageBitmap(BitmapFactory.decodeByteArray(cover,0,cover.length-1)); 26 | } 27 | 28 | } 29 | -------------------------------------------------------------------------------- /app/src/main/res/menu/menu_details_track_dialog.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 9 | 14 | 19 | 24 | 25 | -------------------------------------------------------------------------------- /app/src/main/java/mx/dev/franco/automusictagfixer/list/QuestionItem.java: -------------------------------------------------------------------------------- 1 | package mx.dev.franco.automusictagfixer.list; 2 | 3 | /** 4 | * Created by franco on 7/11/17. 5 | */ 6 | 7 | public final class QuestionItem { 8 | int mId = -1; 9 | private String mQuestion = ""; 10 | private String mAnswer = ""; 11 | private boolean mExpanded = false; 12 | 13 | 14 | public int getId() { 15 | return mId; 16 | } 17 | 18 | public void setId(int id) { 19 | this.mId = id; 20 | } 21 | 22 | public String getQuestion() { 23 | return mQuestion; 24 | } 25 | 26 | public void setQuestion(String question) { 27 | this.mQuestion = question; 28 | } 29 | 30 | public String getAnswer() { 31 | return mAnswer; 32 | } 33 | 34 | public void setAnswer(String answer) { 35 | this.mAnswer = answer; 36 | } 37 | 38 | public boolean isExpanded(){ 39 | return this.mExpanded; 40 | } 41 | 42 | public void setExpanded(boolean expanded){ 43 | this.mExpanded = expanded; 44 | } 45 | 46 | 47 | } 48 | -------------------------------------------------------------------------------- /app/src/main/java/mx/dev/franco/automusictagfixer/receivers/ResponseReceiver.java: -------------------------------------------------------------------------------- 1 | package mx.dev.franco.automusictagfixer.receivers; 2 | 3 | import android.content.BroadcastReceiver; 4 | import android.content.Context; 5 | import android.content.Intent; 6 | import android.os.Handler; 7 | 8 | /** 9 | * Created by franco on 23/03/18. 10 | */ 11 | 12 | public class ResponseReceiver extends BroadcastReceiver { 13 | private Handler mHandler; 14 | private OnResponse mCallback; 15 | 16 | public interface OnResponse{ 17 | void onResponse(Intent intent); 18 | } 19 | 20 | public ResponseReceiver(OnResponse callback, Handler handler){ 21 | mCallback = callback; 22 | mHandler = handler; 23 | } 24 | 25 | @Override 26 | public void onReceive(Context context, final Intent intent) { 27 | if(mCallback != null && mHandler != null){ 28 | mHandler.post(new Runnable() { 29 | @Override 30 | public void run() { 31 | mCallback.onResponse(intent); 32 | } 33 | }); 34 | } 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_main.xml: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 15 | 16 | 17 | 18 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_settings_black_24dp.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/java/mx/dev/franco/automusictagfixer/transitions/DetailsTransition.java: -------------------------------------------------------------------------------- 1 | package mx.dev.franco.automusictagfixer.transitions; 2 | 3 | import android.annotation.TargetApi; 4 | import android.content.Context; 5 | import android.os.Build; 6 | import android.transition.ChangeBounds; 7 | import android.transition.ChangeImageTransform; 8 | import android.transition.ChangeTransform; 9 | import android.transition.TransitionSet; 10 | import android.util.AttributeSet; 11 | 12 | /** 13 | * Transition that performs almost exactly like {@link android.transition.AutoTransition}, but has an 14 | * added {@link ChangeImageTransform} to support properly scaling up our gorgeous kittens. 15 | * 16 | * @author bherbst 17 | */ 18 | @TargetApi(Build.VERSION_CODES.LOLLIPOP) 19 | public class DetailsTransition extends TransitionSet { 20 | public DetailsTransition() { 21 | init(); 22 | } 23 | 24 | /** 25 | * This constructor allows us to use this transition in XML 26 | */ 27 | public DetailsTransition(Context context, AttributeSet attrs) { 28 | super(context, attrs); 29 | init(); 30 | } 31 | 32 | private void init() { 33 | setOrdering(ORDERING_TOGETHER); 34 | addTransition(new ChangeBounds()). 35 | addTransition(new ChangeTransform()). 36 | addTransition(new ChangeImageTransform()); 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /app/src/main/res/layout/fragment_screen_slide_page3.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 12 | 13 | 21 | 22 | 33 | 34 | -------------------------------------------------------------------------------- /app/src/main/res/menu/activity_select_folder_drawer.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 10 | 11 | 14 | 18 | 22 | 27 | 32 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /app/src/main/res/layout/fragment_screen_slide_page2.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 13 | 14 | 22 | 23 | 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /app/src/main/res/layout/fragment_screen_slide_page4.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 12 | 13 | 22 | 23 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /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/franco/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 | -dontwarn org.jaudiotagger.** 19 | -dontwarn com.google.android.gms.** 20 | -dontwarn com.crashlytics.** 21 | 22 | -keep class com.gracenote.** { *; } 23 | -keep class org.jaudiotagger.** { *; } 24 | -keep class android.support.v7.widget.SearchView { *; } 25 | -keep class com.google.** { *; } 26 | -keep class com.android.** { *; } 27 | #Fabric uses annotations internally 28 | -keepattributes *Annotation* 29 | #In order to provide the most meaningful crash reports 30 | -keepattributes SourceFile,LineNumberTable 31 | #Crashlytics will still function without this rule, but your crash reports will not include proper file names or line numbers. 32 | #if using custom exceptions: 33 | -keep public class * extends java.lang.Exception 34 | #To skip running ProGuard on Crashlytics 35 | -keep class com.crashlytics.** { *; } 36 | #Exclude R from ProGuard to enable the font addon auto detection 37 | -keep class .R 38 | -keep class **.R$* { 39 | ; 40 | } -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_questions.xml: -------------------------------------------------------------------------------- 1 | 2 | 10 | 13 | 14 | 19 | 20 | 21 | 22 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /app/src/main/res/layout/fragment_screen_slide_page5.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 12 | 13 | 22 | 23 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /app/src/main/res/layout/nav_header_select_folder.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 9 | 17 | 18 | 24 | 25 | 33 | 34 | 43 | 44 | 45 | 46 | -------------------------------------------------------------------------------- /app/src/main/res/layout/question_item.xml: -------------------------------------------------------------------------------- 1 | 2 | 11 | 17 | 27 | 28 | 39 | 40 | -------------------------------------------------------------------------------- /app/src/main/java/mx/dev/franco/automusictagfixer/services/ServiceHelper.java: -------------------------------------------------------------------------------- 1 | package mx.dev.franco.automusictagfixer.services; 2 | 3 | import android.app.ActivityManager; 4 | import android.content.Context; 5 | 6 | import static android.content.Context.ACTIVITY_SERVICE; 7 | 8 | /** 9 | * Created by franco on 30/10/17. 10 | */ 11 | 12 | public class ServiceHelper { 13 | private static ServiceHelper sServiceHelper; 14 | private String mService; 15 | private Context mContext; 16 | private ServiceHelper(Context context){ 17 | mContext = context.getApplicationContext(); 18 | } 19 | 20 | /** 21 | * Creates (if is not created) and return a single instance 22 | * of this helper 23 | * @param context 24 | * @return ServicerHelper singleton 25 | */ 26 | public static ServiceHelper withContext(Context context){ 27 | if(sServiceHelper == null) 28 | sServiceHelper = new ServiceHelper(context); 29 | return sServiceHelper; 30 | } 31 | 32 | /** 33 | * Service to verify if is running 34 | * @param service String name of service, regularly is the name returned by 35 | * YourServiceClass.class.getName() 36 | * @return ServicerHelper object 37 | */ 38 | public ServiceHelper withService(String service){ 39 | mService = service; 40 | return this; 41 | } 42 | 43 | /** 44 | * Check if service is running. 45 | * @return True if is running, false otherwise. 46 | */ 47 | public boolean isServiceRunning() { 48 | ActivityManager manager = (ActivityManager) mContext.getSystemService(ACTIVITY_SERVICE); 49 | for (ActivityManager.RunningServiceInfo service : manager.getRunningServices(Integer.MAX_VALUE)){ 50 | if(mService.equals(service.service.getClassName())) { 51 | return true; 52 | } 53 | } 54 | return false; 55 | } 56 | } 57 | -------------------------------------------------------------------------------- /app/src/main/res/layout/content_main.xml: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | 24 | 25 | 29 | 30 | 41 | 42 | 43 | 44 | 45 | -------------------------------------------------------------------------------- /app/src/main/java/mx/dev/franco/automusictagfixer/services/ScheduleJobService.java: -------------------------------------------------------------------------------- 1 | package mx.dev.franco.automusictagfixer.services; 2 | 3 | import android.app.job.JobParameters; 4 | import android.app.job.JobService; 5 | import android.util.Log; 6 | 7 | /** 8 | * Created by franco on 6/07/17. 9 | */ 10 | 11 | public class ScheduleJobService extends JobService { 12 | /** 13 | * Callback when service start, here is when we execute our 14 | * task in background, so an intensive task 15 | * needs to run in another thread because 16 | * this callback it executes on UI Thread 17 | * @param params Are the parameters with was built 18 | * the job 19 | * @return true for execute the code 20 | */ 21 | 22 | @Override 23 | public boolean onStartJob(final JobParameters params) { 24 | Log.d("ONSTART","onstart"); 25 | 26 | //We set context and initialize the GNSDK API if it was not before. 27 | boolean shouldInitialize = (ConnectivityDetector.sIsConnected && !GnService.sApiInitialized); 28 | if(shouldInitialize) { 29 | //GnService.API_INITIALIZED_AFTER_CONNECTED flag indicates 30 | //that service was not initialized from Splash. 31 | //is useful to inform to user in MainActivity 32 | //that API of GNSDK has been initialized 33 | GnService.withContext(getApplicationContext()).initializeAPI(GnService.API_INITIALIZED_AFTER_CONNECTED); 34 | } 35 | //if already should not initialize it, we finalize this job 36 | jobFinished(params, !shouldInitialize); 37 | return true; 38 | } 39 | 40 | /** 41 | * If case Job stops abruptly, we can handle here, if we 42 | * want to restart, we need to return true, false if not. 43 | * This callback it executes on UI Thread too 44 | * @param params Are the parameters with was built 45 | * the job 46 | * @return 47 | */ 48 | @Override 49 | public boolean onStopJob(JobParameters params) { 50 | Log.d("ONSTOP","onstop"); 51 | return true; 52 | } 53 | 54 | } 55 | -------------------------------------------------------------------------------- /app/src/main/res/layout/app_bar_select_folder.xml: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 16 | 17 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 38 | 47 | 48 | -------------------------------------------------------------------------------- /app/src/main/java/mx/dev/franco/automusictagfixer/services/JobManager.java: -------------------------------------------------------------------------------- 1 | package mx.dev.franco.automusictagfixer.services; 2 | 3 | import android.app.job.JobInfo; 4 | import android.app.job.JobScheduler; 5 | import android.content.Context; 6 | import android.util.SparseArray; 7 | 8 | /** 9 | * Created by franco on 12/01/18. 10 | * This simple JobManager helps us to 11 | * control jobs started and don't recreate it 12 | * again 13 | */ 14 | 15 | public final class JobManager { 16 | private SparseArray jobs = new SparseArray(); 17 | private static Context sContext; 18 | private static JobManager sJobManager = new JobManager(); 19 | 20 | private JobManager(){ 21 | 22 | } 23 | 24 | /** 25 | * Set conetext to use this JobManager 26 | * @param context 27 | * @return 28 | */ 29 | public static JobManager withContext(Context context){ 30 | if(sContext == null) 31 | sContext = context; 32 | return sJobManager; 33 | } 34 | 35 | /** 36 | * Adds JobInfo object to current 37 | * jobs list running 38 | * @param jobInfo 39 | */ 40 | public void addJob(JobInfo jobInfo ){ 41 | jobs.append(jobInfo.getId(), jobInfo); 42 | } 43 | 44 | /** 45 | * Cancel all jobs running and removes 46 | * from list 47 | */ 48 | public void cancelAllJobs(){ 49 | JobScheduler jobScheduler = (JobScheduler) sContext.getSystemService(Context.JOB_SCHEDULER_SERVICE); 50 | 51 | if (jobScheduler != null) { 52 | jobScheduler.cancelAll(); 53 | } 54 | 55 | if(hasJobs()) 56 | jobs.clear(); 57 | 58 | } 59 | 60 | /** 61 | * Check if there are jobs running 62 | * @return true if there are jobs running, false otherwise 63 | */ 64 | private boolean hasJobs(){ 65 | return (jobs.size() > 0); 66 | } 67 | 68 | /** 69 | * Check if any job with 70 | * the id provided is running 71 | * @param id job ID 72 | * @return JobInfo object, null if doesn't exist 73 | */ 74 | public JobInfo getJobById(int id) { 75 | if(!hasJobs()) 76 | return null; 77 | 78 | return (JobInfo) jobs.get(id); 79 | } 80 | } 81 | -------------------------------------------------------------------------------- /app/src/main/res/layout/fragment_screen_slide_page.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 12 | 13 | 22 | 23 | 36 | 37 | 50 | 51 | 52 | 53 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_scrolling_about.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 18 | 19 | 26 | 27 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 49 | 50 | 51 | -------------------------------------------------------------------------------- /app/src/main/java/mx/dev/franco/automusictagfixer/services/Job.java: -------------------------------------------------------------------------------- 1 | package mx.dev.franco.automusictagfixer.services; 2 | 3 | import android.app.job.JobInfo; 4 | import android.app.job.JobScheduler; 5 | import android.content.ComponentName; 6 | import android.content.Context; 7 | import android.os.Build; 8 | 9 | /** 10 | * Created by franco on 6/07/17. 11 | */ 12 | 13 | public class Job { 14 | public static final int ID_JOB = 1; 15 | /** 16 | * Here we schedule our task and constraints to execute, 17 | * in this case a periodic task, that will try to initialize the API 18 | * Gracenote 19 | * @param context 20 | */ 21 | public static void scheduleJob(Context context){ 22 | 23 | //Don't create a job if is running 24 | if(null != JobManager.withContext(context).getJobById(ID_JOB)) 25 | return; 26 | 27 | //Component we want to execute 28 | //we need to pass context and name of our extended JobService class 29 | //that will execute the task 30 | ComponentName serviceComponent = new ComponentName(context.getApplicationContext(), ScheduleJobService.class); 31 | //this builder object are the requirements 32 | //needed to execute our task, in this case, we need 33 | //that our task executes every 5 seconds 34 | JobInfo.Builder builder = new JobInfo.Builder(ID_JOB, serviceComponent); 35 | //Using setMinimumLatency with setOverrideDeadline together, 36 | //it makes something like minimum and maximum limit to execute the code, is useful 37 | //because minimum time for setPeriodic in Nougat are 15 minutes, so if you require 38 | //to execute your task in lower range of time is not going to work. 39 | if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { 40 | //minimum latency means the min limit in milliseconds JobScheduler has to wait to execute the code 41 | builder.setMinimumLatency(5000); 42 | //setOverrideDeadline means the max limit in milliseconds in which your code is 43 | //going to execute. 44 | builder.setOverrideDeadline(5000); 45 | } 46 | //For android <= M there is no problem in use setPeriodic (instead of two before), with less than 15 minutes 47 | else { 48 | builder.setPeriodic(5000); 49 | } 50 | 51 | //time to schedule task 52 | JobScheduler jobScheduler = (JobScheduler) context.getApplicationContext().getSystemService(Context.JOB_SCHEDULER_SERVICE); 53 | JobInfo job = builder.build(); 54 | JobManager.withContext(context).addJob(job); 55 | jobScheduler.schedule(job); 56 | } 57 | } 58 | -------------------------------------------------------------------------------- /gradlew.bat: -------------------------------------------------------------------------------- 1 | @if "%DEBUG%" == "" @echo off 2 | @rem ########################################################################## 3 | @rem 4 | @rem Gradle startup script for Windows 5 | @rem 6 | @rem ########################################################################## 7 | 8 | @rem Set local scope for the variables with windows NT shell 9 | if "%OS%"=="Windows_NT" setlocal 10 | 11 | @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. 12 | set DEFAULT_JVM_OPTS= 13 | 14 | set DIRNAME=%~dp0 15 | if "%DIRNAME%" == "" set DIRNAME=. 16 | set APP_BASE_NAME=%~n0 17 | set APP_HOME=%DIRNAME% 18 | 19 | @rem Find java.exe 20 | if defined JAVA_HOME goto findJavaFromJavaHome 21 | 22 | set JAVA_EXE=java.exe 23 | %JAVA_EXE% -version >NUL 2>&1 24 | if "%ERRORLEVEL%" == "0" goto init 25 | 26 | echo. 27 | echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 28 | echo. 29 | echo Please set the JAVA_HOME variable in your environment to match the 30 | echo location of your Java installation. 31 | 32 | goto fail 33 | 34 | :findJavaFromJavaHome 35 | set JAVA_HOME=%JAVA_HOME:"=% 36 | set JAVA_EXE=%JAVA_HOME%/bin/java.exe 37 | 38 | if exist "%JAVA_EXE%" goto init 39 | 40 | echo. 41 | echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 42 | echo. 43 | echo Please set the JAVA_HOME variable in your environment to match the 44 | echo location of your Java installation. 45 | 46 | goto fail 47 | 48 | :init 49 | @rem Get command-line arguments, handling Windowz variants 50 | 51 | if not "%OS%" == "Windows_NT" goto win9xME_args 52 | if "%@eval[2+2]" == "4" goto 4NT_args 53 | 54 | :win9xME_args 55 | @rem Slurp the command line arguments. 56 | set CMD_LINE_ARGS= 57 | set _SKIP=2 58 | 59 | :win9xME_args_slurp 60 | if "x%~1" == "x" goto execute 61 | 62 | set CMD_LINE_ARGS=%* 63 | goto execute 64 | 65 | :4NT_args 66 | @rem Get arguments from the 4NT Shell from JP Software 67 | set CMD_LINE_ARGS=%$ 68 | 69 | :execute 70 | @rem Setup the command line 71 | 72 | set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar 73 | 74 | @rem Execute Gradle 75 | "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% 76 | 77 | :end 78 | @rem End local scope for the variables with windows NT shell 79 | if "%ERRORLEVEL%"=="0" goto mainEnd 80 | 81 | :fail 82 | rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of 83 | rem the _cmd.exe /c_ return code! 84 | if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 85 | exit /b 1 86 | 87 | :mainEnd 88 | if "%OS%"=="Windows_NT" endlocal 89 | 90 | :omega 91 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_screen_slide.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 16 | 17 | 27 | 28 | 34 | 35 |