From 8c27e4eba629211dc70470109ba71309c4c6b8e0 Mon Sep 17 00:00:00 2001 From: Naveen Date: Tue, 12 Dec 2023 19:46:44 +0530 Subject: [PATCH 1/8] Rename package names --- app/proguard-rules.pro | 4 +- app/src/main/AndroidManifest.xml | 14 +- .../pro/dialogs/GrantAllFilesDialog.kt | 23 ---- .../gallery/pro/extensions/FileDirItem.kt | 5 - .../gallery/pro/extensions/Int.kt | 5 - .../gallery/pro/models/ThumbnailItem.kt | 3 - .../pro => org/fossify/gallery}/App.kt | 4 +- .../gallery}/activities/EditActivity.kt | 91 +++++++------ .../activities/ExcludedFoldersActivity.kt | 22 ++-- .../activities/HiddenFoldersActivity.kt | 28 ++-- .../activities/IncludedFoldersActivity.kt | 20 +-- .../gallery}/activities/MainActivity.kt | 93 +++++++------- .../gallery}/activities/MediaActivity.kt | 76 +++++------ .../activities/PanoramaPhotoActivity.kt | 20 +-- .../activities/PanoramaVideoActivity.kt | 32 ++--- .../gallery}/activities/PhotoActivity.kt | 2 +- .../gallery}/activities/PhotoVideoActivity.kt | 34 ++--- .../gallery}/activities/SearchActivity.kt | 48 +++---- .../activities/SetWallpaperActivity.kt | 24 ++-- .../gallery}/activities/SettingsActivity.kt | 64 +++++----- .../gallery}/activities/SimpleActivity.kt | 24 ++-- .../gallery}/activities/SplashActivity.kt | 16 +-- .../gallery}/activities/VideoActivity.kt | 2 +- .../activities/VideoPlayerActivity.kt | 22 ++-- .../gallery}/activities/ViewPagerActivity.kt | 98 +++++++------- .../activities/WidgetConfigureActivity.kt | 28 ++-- .../gallery}/adapters/DirectoryAdapter.kt | 70 +++++----- .../gallery}/adapters/DirectoryItemBinding.kt | 10 +- .../gallery}/adapters/FiltersAdapter.kt | 8 +- .../gallery}/adapters/ManageFoldersAdapter.kt | 26 ++-- .../adapters/ManageHiddenFoldersAdapter.kt | 22 ++-- .../fossify/gallery}/adapters/MediaAdapter.kt | 52 ++++---- .../gallery}/adapters/MediaItemBinding.kt | 14 +- .../gallery}/adapters/MyPagerAdapter.kt | 16 +-- .../adapters/PortraitPhotosAdapter.kt | 8 +- .../gallery}/asynctasks/GetMediaAsynctask.kt | 20 +-- .../gallery}/databases/GalleryDatabase.kt | 6 +- .../dialogs/AllFilesPermissionDialog.kt | 12 +- .../dialogs/ChangeFileThumbnailStyleDialog.kt | 20 +-- .../ChangeFolderThumbnailStyleDialog.kt | 26 ++-- .../gallery}/dialogs/ChangeGroupingDialog.kt | 22 ++-- .../gallery}/dialogs/ChangeSortingDialog.kt | 22 ++-- .../gallery}/dialogs/ChangeViewTypeDialog.kt | 24 ++-- .../dialogs/ConfirmDeleteFolderDialog.kt | 12 +- .../dialogs/CustomAspectRatioDialog.kt | 18 +-- .../dialogs/DeleteWithRememberDialog.kt | 14 +- .../gallery}/dialogs/ExcludeFolderDialog.kt | 22 ++-- .../gallery}/dialogs/ExportFavoritesDialog.kt | 26 ++-- .../gallery}/dialogs/FilterMediaDialog.kt | 20 +-- .../gallery/dialogs/GrantAllFilesDialog.kt | 23 ++++ .../dialogs/ManageBottomActionsDialog.kt | 18 +-- .../dialogs/ManageExtendedDetailsDialog.kt | 18 +-- .../dialogs/OtherAspectRatioDialog.kt | 12 +- .../gallery}/dialogs/PickDirectoryDialog.kt | 42 +++--- .../gallery}/dialogs/PickMediumDialog.kt | 42 +++--- .../fossify/gallery}/dialogs/ResizeDialog.kt | 14 +- .../dialogs/ResizeMultipleImagesDialog.kt | 24 ++-- .../gallery}/dialogs/ResizeWithPathDialog.kt | 28 ++-- .../fossify/gallery}/dialogs/SaveAsDialog.kt | 28 ++-- .../gallery}/dialogs/SlideshowDialog.kt | 36 +++--- .../fossify/gallery}/extensions/Activity.kt | 88 ++++++------- .../fossify/gallery}/extensions/ArrayList.kt | 6 +- .../fossify/gallery}/extensions/Context.kt | 76 ++++++----- .../gallery}/extensions/ExifInterface.kt | 2 +- .../fossify/gallery/extensions/FileDirItem.kt | 5 + .../org/fossify/gallery/extensions/Int.kt | 5 + .../fossify/gallery}/extensions/Resources.kt | 2 +- .../fossify/gallery}/extensions/String.kt | 13 +- .../fossify/gallery}/extensions/View.kt | 2 +- .../gallery}/fragments/PhotoFragment.kt | 49 +++---- .../gallery}/fragments/VideoFragment.kt | 32 ++--- .../gallery}/fragments/ViewPagerFragment.kt | 30 ++--- .../fossify/gallery}/helpers/Config.kt | 31 ++--- .../fossify/gallery}/helpers/Constants.kt | 4 +- .../helpers/DefaultPageTransformer.kt | 2 +- .../gallery}/helpers/FadePageTransformer.kt | 2 +- .../helpers/FilterThumbnailsManager.kt | 4 +- .../helpers/GridSpacingItemDecoration.kt | 6 +- .../fossify/gallery}/helpers/IsoTypeReader.kt | 2 +- .../fossify/gallery}/helpers/MediaFetcher.kt | 40 +++--- .../gallery}/helpers/MyGlideImageDecoder.kt | 2 +- .../gallery}/helpers/MyWidgetProvider.kt | 26 ++-- .../gallery}/helpers/PicassoRegionDecoder.kt | 2 +- .../PicassoRoundedCornersTransformation.kt | 2 +- .../gallery}/helpers/RotateTransformation.kt | 2 +- .../gallery}/interfaces/DateTakensDao.kt | 4 +- .../gallery}/interfaces/DirectoryDao.kt | 6 +- .../interfaces/DirectoryOperationsListener.kt | 4 +- .../gallery}/interfaces/FavoritesDao.kt | 4 +- .../interfaces/MediaOperationsListener.kt | 6 +- .../fossify/gallery}/interfaces/MediumDao.kt | 4 +- .../fossify/gallery}/interfaces/WidgetsDao.kt | 4 +- .../fossify/gallery}/jobs/NewPhotoFetcher.kt | 12 +- .../fossify/gallery}/models/AlbumCover.kt | 2 +- .../fossify/gallery}/models/DateTaken.kt | 2 +- .../fossify/gallery}/models/Directory.kt | 10 +- .../fossify/gallery}/models/Favorite.kt | 2 +- .../fossify/gallery}/models/FilterItem.kt | 2 +- .../fossify/gallery}/models/Medium.kt | 14 +- .../fossify/gallery}/models/PaintOptions.kt | 2 +- .../fossify/gallery/models/ThumbnailItem.kt | 3 + .../gallery}/models/ThumbnailSection.kt | 2 +- .../fossify/gallery}/models/Widget.kt | 2 +- .../receivers/BootCompletedReceiver.kt | 8 +- .../receivers/RefreshMediaReceiver.kt | 6 +- .../fossify/gallery}/svg/SvgDecoder.kt | 4 +- .../gallery}/svg/SvgDrawableTranscoder.kt | 4 +- .../fossify/gallery}/svg/SvgModule.kt | 2 +- .../gallery}/svg/SvgSoftwareLayerSetter.kt | 2 +- .../gallery}/views/EditorDrawCanvas.kt | 8 +- .../gallery}/views/InstantItemSwitch.kt | 8 +- .../fossify/gallery}/views/MediaSideScroll.kt | 10 +- app/src/main/res/layout/activity_edit.xml | 2 +- app/src/main/res/layout/activity_main.xml | 12 +- .../res/layout/activity_manage_folders.xml | 6 +- app/src/main/res/layout/activity_media.xml | 10 +- app/src/main/res/layout/activity_medium.xml | 2 +- app/src/main/res/layout/activity_search.xml | 8 +- app/src/main/res/layout/activity_settings.xml | 120 +++++++++--------- .../main/res/layout/activity_video_player.xml | 4 +- .../res/layout/activity_widget_config.xml | 12 +- .../layout/bottom_editor_actions_filter.xml | 7 +- .../res/layout/bottom_editor_draw_actions.xml | 13 +- .../res/layout/bottom_video_time_holder.xml | 2 +- .../dialog_change_file_thumbnail_style.xml | 12 +- .../dialog_change_folder_thumbnail_style.xml | 12 +- .../res/layout/dialog_change_grouping.xml | 26 ++-- .../main/res/layout/dialog_change_sorting.xml | 24 ++-- .../res/layout/dialog_change_view_type.xml | 8 +- .../layout/dialog_confirm_delete_folder.xml | 2 +- .../res/layout/dialog_custom_aspect_ratio.xml | 10 +- .../layout/dialog_delete_with_remember.xml | 6 +- .../res/layout/dialog_directory_picker.xml | 10 +- .../main/res/layout/dialog_exclude_folder.xml | 4 +- .../res/layout/dialog_export_favorites.xml | 8 +- .../main/res/layout/dialog_filter_media.xml | 12 +- .../res/layout/dialog_grant_all_files.xml | 2 +- .../layout/dialog_manage_bottom_actions.xml | 63 +++++---- .../layout/dialog_manage_extended_details.xml | 39 +++--- .../main/res/layout/dialog_medium_picker.xml | 4 +- .../res/layout/dialog_other_aspect_ratio.xml | 26 ++-- .../main/res/layout/dialog_resize_image.xml | 12 +- .../layout/dialog_resize_image_with_path.xml | 22 ++-- .../layout/dialog_resize_multiple_images.xml | 4 +- app/src/main/res/layout/dialog_save_as.xml | 12 +- app/src/main/res/layout/dialog_slideshow.xml | 20 +-- .../directory_item_grid_rounded_corners.xml | 2 +- .../res/layout/directory_item_grid_square.xml | 2 +- .../main/res/layout/directory_item_list.xml | 2 +- .../main/res/layout/item_manage_folder.xml | 2 +- app/src/main/res/layout/pager_photo_item.xml | 8 +- app/src/main/res/layout/pager_video_item.xml | 4 +- app/src/main/res/layout/photo_item_grid.xml | 6 +- app/src/main/res/layout/photo_item_list.xml | 2 +- app/src/main/res/layout/thumbnail_section.xml | 5 +- app/src/main/res/layout/video_item_grid.xml | 2 +- app/src/main/res/layout/video_item_list.xml | 6 +- app/src/main/res/values/donottranslate.xml | 2 +- app/src/main/res/xml/widget_info.xml | 2 +- .../pro/activities/NewPhotoEditActivity.kt | 30 ++--- .../pro/activities/NewVideoEditActivity.kt | 24 ++-- fastlane/Appfile | 2 +- gradle/libs.versions.toml | 4 +- settings.gradle.kts | 2 +- 164 files changed, 1405 insertions(+), 1387 deletions(-) delete mode 100644 app/src/main/kotlin/com/simplemobiletools/gallery/pro/dialogs/GrantAllFilesDialog.kt delete mode 100644 app/src/main/kotlin/com/simplemobiletools/gallery/pro/extensions/FileDirItem.kt delete mode 100644 app/src/main/kotlin/com/simplemobiletools/gallery/pro/extensions/Int.kt delete mode 100644 app/src/main/kotlin/com/simplemobiletools/gallery/pro/models/ThumbnailItem.kt rename app/src/main/kotlin/{com/simplemobiletools/gallery/pro => org/fossify/gallery}/App.kt (84%) rename app/src/main/kotlin/{com/simplemobiletools/gallery/pro => org/fossify/gallery}/activities/EditActivity.kt (92%) rename app/src/main/kotlin/{com/simplemobiletools/gallery/pro => org/fossify/gallery}/activities/ExcludedFoldersActivity.kt (76%) rename app/src/main/kotlin/{com/simplemobiletools/gallery/pro => org/fossify/gallery}/activities/HiddenFoldersActivity.kt (70%) rename app/src/main/kotlin/{com/simplemobiletools/gallery/pro => org/fossify/gallery}/activities/IncludedFoldersActivity.kt (75%) rename app/src/main/kotlin/{com/simplemobiletools/gallery/pro => org/fossify/gallery}/activities/MainActivity.kt (94%) rename app/src/main/kotlin/{com/simplemobiletools/gallery/pro => org/fossify/gallery}/activities/MediaActivity.kt (92%) rename app/src/main/kotlin/{com/simplemobiletools/gallery/pro => org/fossify/gallery}/activities/PanoramaPhotoActivity.kt (91%) rename app/src/main/kotlin/{com/simplemobiletools/gallery/pro => org/fossify/gallery}/activities/PanoramaVideoActivity.kt (91%) rename app/src/main/kotlin/{com/simplemobiletools/gallery/pro => org/fossify/gallery}/activities/PhotoActivity.kt (79%) rename app/src/main/kotlin/{com/simplemobiletools/gallery/pro => org/fossify/gallery}/activities/PhotoVideoActivity.kt (93%) rename app/src/main/kotlin/{com/simplemobiletools/gallery/pro => org/fossify/gallery}/activities/SearchActivity.kt (84%) rename app/src/main/kotlin/{com/simplemobiletools/gallery/pro => org/fossify/gallery}/activities/SetWallpaperActivity.kt (88%) rename app/src/main/kotlin/{com/simplemobiletools/gallery/pro => org/fossify/gallery}/activities/SettingsActivity.kt (94%) rename app/src/main/kotlin/{com/simplemobiletools/gallery/pro => org/fossify/gallery}/activities/SimpleActivity.kt (79%) rename app/src/main/kotlin/{com/simplemobiletools/gallery/pro => org/fossify/gallery}/activities/SplashActivity.kt (70%) rename app/src/main/kotlin/{com/simplemobiletools/gallery/pro => org/fossify/gallery}/activities/VideoActivity.kt (79%) rename app/src/main/kotlin/{com/simplemobiletools/gallery/pro => org/fossify/gallery}/activities/VideoPlayerActivity.kt (97%) rename app/src/main/kotlin/{com/simplemobiletools/gallery/pro => org/fossify/gallery}/activities/ViewPagerActivity.kt (93%) rename app/src/main/kotlin/{com/simplemobiletools/gallery/pro => org/fossify/gallery}/activities/WidgetConfigureActivity.kt (86%) rename app/src/main/kotlin/{com/simplemobiletools/gallery/pro => org/fossify/gallery}/adapters/DirectoryAdapter.kt (93%) rename app/src/main/kotlin/{com/simplemobiletools/gallery/pro => org/fossify/gallery}/adapters/DirectoryItemBinding.kt (89%) rename app/src/main/kotlin/{com/simplemobiletools/gallery/pro => org/fossify/gallery}/adapters/FiltersAdapter.kt (89%) rename app/src/main/kotlin/{com/simplemobiletools/gallery/pro => org/fossify/gallery}/adapters/ManageFoldersAdapter.kt (80%) rename app/src/main/kotlin/{com/simplemobiletools/gallery/pro => org/fossify/gallery}/adapters/ManageHiddenFoldersAdapter.kt (81%) rename app/src/main/kotlin/{com/simplemobiletools/gallery/pro => org/fossify/gallery}/adapters/MediaAdapter.kt (93%) rename app/src/main/kotlin/{com/simplemobiletools/gallery/pro => org/fossify/gallery}/adapters/MediaItemBinding.kt (86%) rename app/src/main/kotlin/{com/simplemobiletools/gallery/pro => org/fossify/gallery}/adapters/MyPagerAdapter.kt (80%) rename app/src/main/kotlin/{com/simplemobiletools/gallery/pro => org/fossify/gallery}/adapters/PortraitPhotosAdapter.kt (93%) rename app/src/main/kotlin/{com/simplemobiletools/gallery/pro => org/fossify/gallery}/asynctasks/GetMediaAsynctask.kt (82%) rename app/src/main/kotlin/{com/simplemobiletools/gallery/pro => org/fossify/gallery}/databases/GalleryDatabase.kt (96%) rename app/src/main/kotlin/{com/simplemobiletools/gallery/pro => org/fossify/gallery}/dialogs/AllFilesPermissionDialog.kt (67%) rename app/src/main/kotlin/{com/simplemobiletools/gallery/pro => org/fossify/gallery}/dialogs/ChangeFileThumbnailStyleDialog.kt (79%) rename app/src/main/kotlin/{com/simplemobiletools/gallery/pro => org/fossify/gallery}/dialogs/ChangeFolderThumbnailStyleDialog.kt (83%) rename app/src/main/kotlin/{com/simplemobiletools/gallery/pro => org/fossify/gallery}/dialogs/ChangeGroupingDialog.kt (83%) rename app/src/main/kotlin/{com/simplemobiletools/gallery/pro => org/fossify/gallery}/dialogs/ChangeSortingDialog.kt (86%) rename app/src/main/kotlin/{com/simplemobiletools/gallery/pro => org/fossify/gallery}/dialogs/ChangeViewTypeDialog.kt (73%) rename app/src/main/kotlin/{com/simplemobiletools/gallery/pro => org/fossify/gallery}/dialogs/ConfirmDeleteFolderDialog.kt (61%) rename app/src/main/kotlin/{com/simplemobiletools/gallery/pro => org/fossify/gallery}/dialogs/CustomAspectRatioDialog.kt (68%) rename app/src/main/kotlin/{com/simplemobiletools/gallery/pro => org/fossify/gallery}/dialogs/DeleteWithRememberDialog.kt (65%) rename app/src/main/kotlin/{com/simplemobiletools/gallery/pro => org/fossify/gallery}/dialogs/ExcludeFolderDialog.kt (73%) rename app/src/main/kotlin/{com/simplemobiletools/gallery/pro => org/fossify/gallery}/dialogs/ExportFavoritesDialog.kt (73%) rename app/src/main/kotlin/{com/simplemobiletools/gallery/pro => org/fossify/gallery}/dialogs/FilterMediaDialog.kt (71%) create mode 100644 app/src/main/kotlin/org/fossify/gallery/dialogs/GrantAllFilesDialog.kt rename app/src/main/kotlin/{com/simplemobiletools/gallery/pro => org/fossify/gallery}/dialogs/ManageBottomActionsDialog.kt (84%) rename app/src/main/kotlin/{com/simplemobiletools/gallery/pro => org/fossify/gallery}/dialogs/ManageExtendedDetailsDialog.kt (77%) rename app/src/main/kotlin/{com/simplemobiletools/gallery/pro => org/fossify/gallery}/dialogs/OtherAspectRatioDialog.kt (88%) rename app/src/main/kotlin/{com/simplemobiletools/gallery/pro => org/fossify/gallery}/dialogs/PickDirectoryDialog.kt (84%) rename app/src/main/kotlin/{com/simplemobiletools/gallery/pro => org/fossify/gallery}/dialogs/PickMediumDialog.kt (71%) rename app/src/main/kotlin/{com/simplemobiletools/gallery/pro => org/fossify/gallery}/dialogs/ResizeDialog.kt (84%) rename app/src/main/kotlin/{com/simplemobiletools/gallery/pro => org/fossify/gallery}/dialogs/ResizeMultipleImagesDialog.kt (83%) rename app/src/main/kotlin/{com/simplemobiletools/gallery/pro => org/fossify/gallery}/dialogs/ResizeWithPathDialog.kt (80%) rename app/src/main/kotlin/{com/simplemobiletools/gallery/pro => org/fossify/gallery}/dialogs/SaveAsDialog.kt (76%) rename app/src/main/kotlin/{com/simplemobiletools/gallery/pro => org/fossify/gallery}/dialogs/SlideshowDialog.kt (77%) rename app/src/main/kotlin/{com/simplemobiletools/gallery/pro => org/fossify/gallery}/extensions/Activity.kt (89%) rename app/src/main/kotlin/{com/simplemobiletools/gallery/pro => org/fossify/gallery}/extensions/ArrayList.kt (75%) rename app/src/main/kotlin/{com/simplemobiletools/gallery/pro => org/fossify/gallery}/extensions/Context.kt (93%) rename app/src/main/kotlin/{com/simplemobiletools/gallery/pro => org/fossify/gallery}/extensions/ExifInterface.kt (97%) create mode 100644 app/src/main/kotlin/org/fossify/gallery/extensions/FileDirItem.kt create mode 100644 app/src/main/kotlin/org/fossify/gallery/extensions/Int.kt rename app/src/main/kotlin/{com/simplemobiletools/gallery/pro => org/fossify/gallery}/extensions/Resources.kt (93%) rename app/src/main/kotlin/{com/simplemobiletools/gallery/pro => org/fossify/gallery}/extensions/String.kt (91%) rename app/src/main/kotlin/{com/simplemobiletools/gallery/pro => org/fossify/gallery}/extensions/View.kt (87%) rename app/src/main/kotlin/{com/simplemobiletools/gallery/pro => org/fossify/gallery}/fragments/PhotoFragment.kt (95%) rename app/src/main/kotlin/{com/simplemobiletools/gallery/pro => org/fossify/gallery}/fragments/VideoFragment.kt (95%) rename app/src/main/kotlin/{com/simplemobiletools/gallery/pro => org/fossify/gallery}/fragments/ViewPagerFragment.kt (87%) rename app/src/main/kotlin/{com/simplemobiletools/gallery/pro => org/fossify/gallery}/helpers/Config.kt (96%) rename app/src/main/kotlin/{com/simplemobiletools/gallery/pro => org/fossify/gallery}/helpers/Constants.kt (99%) rename app/src/main/kotlin/{com/simplemobiletools/gallery/pro => org/fossify/gallery}/helpers/DefaultPageTransformer.kt (79%) rename app/src/main/kotlin/{com/simplemobiletools/gallery/pro => org/fossify/gallery}/helpers/FadePageTransformer.kt (89%) rename app/src/main/kotlin/{com/simplemobiletools/gallery/pro => org/fossify/gallery}/helpers/FilterThumbnailsManager.kt (86%) rename app/src/main/kotlin/{com/simplemobiletools/gallery/pro => org/fossify/gallery}/helpers/GridSpacingItemDecoration.kt (93%) rename app/src/main/kotlin/{com/simplemobiletools/gallery/pro => org/fossify/gallery}/helpers/IsoTypeReader.kt (93%) rename app/src/main/kotlin/{com/simplemobiletools/gallery/pro => org/fossify/gallery}/helpers/MediaFetcher.kt (95%) rename app/src/main/kotlin/{com/simplemobiletools/gallery/pro => org/fossify/gallery}/helpers/MyGlideImageDecoder.kt (95%) rename app/src/main/kotlin/{com/simplemobiletools/gallery/pro => org/fossify/gallery}/helpers/MyWidgetProvider.kt (82%) rename app/src/main/kotlin/{com/simplemobiletools/gallery/pro => org/fossify/gallery}/helpers/PicassoRegionDecoder.kt (97%) rename app/src/main/kotlin/{com/simplemobiletools/gallery/pro => org/fossify/gallery}/helpers/PicassoRoundedCornersTransformation.kt (95%) rename app/src/main/kotlin/{com/simplemobiletools/gallery/pro => org/fossify/gallery}/helpers/RotateTransformation.kt (93%) rename app/src/main/kotlin/{com/simplemobiletools/gallery/pro => org/fossify/gallery}/interfaces/DateTakensDao.kt (84%) rename app/src/main/kotlin/{com/simplemobiletools/gallery/pro => org/fossify/gallery}/interfaces/DirectoryDao.kt (89%) rename app/src/main/kotlin/{com/simplemobiletools/gallery/pro => org/fossify/gallery}/interfaces/DirectoryOperationsListener.kt (67%) rename app/src/main/kotlin/{com/simplemobiletools/gallery/pro => org/fossify/gallery}/interfaces/FavoritesDao.kt (90%) rename app/src/main/kotlin/{com/simplemobiletools/gallery/pro => org/fossify/gallery}/interfaces/MediaOperationsListener.kt (60%) rename app/src/main/kotlin/{com/simplemobiletools/gallery/pro => org/fossify/gallery}/interfaces/MediumDao.kt (95%) rename app/src/main/kotlin/{com/simplemobiletools/gallery/pro => org/fossify/gallery}/interfaces/WidgetsDao.kt (79%) rename app/src/main/kotlin/{com/simplemobiletools/gallery/pro => org/fossify/gallery}/jobs/NewPhotoFetcher.kt (92%) rename app/src/main/kotlin/{com/simplemobiletools/gallery/pro => org/fossify/gallery}/models/AlbumCover.kt (54%) rename app/src/main/kotlin/{com/simplemobiletools/gallery/pro => org/fossify/gallery}/models/DateTaken.kt (94%) rename app/src/main/kotlin/{com/simplemobiletools/gallery/pro => org/fossify/gallery}/models/Directory.kt (86%) rename app/src/main/kotlin/{com/simplemobiletools/gallery/pro => org/fossify/gallery}/models/Favorite.kt (90%) rename app/src/main/kotlin/{com/simplemobiletools/gallery/pro => org/fossify/gallery}/models/FilterItem.kt (75%) rename app/src/main/kotlin/{com/simplemobiletools/gallery/pro => org/fossify/gallery}/models/Medium.kt (90%) rename app/src/main/kotlin/{com/simplemobiletools/gallery/pro => org/fossify/gallery}/models/PaintOptions.kt (70%) create mode 100644 app/src/main/kotlin/org/fossify/gallery/models/ThumbnailItem.kt rename app/src/main/kotlin/{com/simplemobiletools/gallery/pro => org/fossify/gallery}/models/ThumbnailSection.kt (57%) rename app/src/main/kotlin/{com/simplemobiletools/gallery/pro => org/fossify/gallery}/models/Widget.kt (89%) rename app/src/main/kotlin/{com/simplemobiletools/gallery/pro => org/fossify/gallery}/receivers/BootCompletedReceiver.kt (60%) rename app/src/main/kotlin/{com/simplemobiletools/gallery/pro => org/fossify/gallery}/receivers/RefreshMediaReceiver.kt (65%) rename app/src/main/kotlin/{com/simplemobiletools/gallery/pro => org/fossify/gallery}/svg/SvgDecoder.kt (89%) rename app/src/main/kotlin/{com/simplemobiletools/gallery/pro => org/fossify/gallery}/svg/SvgDrawableTranscoder.kt (87%) rename app/src/main/kotlin/{com/simplemobiletools/gallery/pro => org/fossify/gallery}/svg/SvgModule.kt (93%) rename app/src/main/kotlin/{com/simplemobiletools/gallery/pro => org/fossify/gallery}/svg/SvgSoftwareLayerSetter.kt (95%) rename app/src/main/kotlin/{com/simplemobiletools/gallery/pro => org/fossify/gallery}/views/EditorDrawCanvas.kt (94%) rename app/src/main/kotlin/{com/simplemobiletools/gallery/pro => org/fossify/gallery}/views/InstantItemSwitch.kt (90%) rename app/src/main/kotlin/{com/simplemobiletools/gallery/pro => org/fossify/gallery}/views/MediaSideScroll.kt (96%) diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro index 24dd56d45..23230d57f 100644 --- a/app/proguard-rules.pro +++ b/app/proguard-rules.pro @@ -1,6 +1,6 @@ --keep class com.simplemobiletools.** { *; } +-keep class org.fossify.** { *; } -dontwarn android.graphics.Canvas --dontwarn com.simplemobiletools.** +-dontwarn org.fossify.** -dontwarn org.apache.** # Picasso diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 698161e19..bfc4e026b 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -34,8 +34,8 @@ - - + + @@ -294,7 +294,7 @@ android:name=".receivers.RefreshMediaReceiver" android:exported="true"> - + diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/dialogs/GrantAllFilesDialog.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/dialogs/GrantAllFilesDialog.kt deleted file mode 100644 index 32ab21194..000000000 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/dialogs/GrantAllFilesDialog.kt +++ /dev/null @@ -1,23 +0,0 @@ -package com.simplemobiletools.gallery.pro.dialogs - -import com.simplemobiletools.commons.activities.BaseSimpleActivity -import com.simplemobiletools.commons.extensions.applyColorFilter -import com.simplemobiletools.commons.extensions.getAlertDialogBuilder -import com.simplemobiletools.commons.extensions.getProperTextColor -import com.simplemobiletools.commons.extensions.setupDialogStuff -import com.simplemobiletools.gallery.pro.databinding.DialogGrantAllFilesBinding -import com.simplemobiletools.gallery.pro.extensions.launchGrantAllFilesIntent - -class GrantAllFilesDialog(val activity: BaseSimpleActivity) { - init { - val binding = DialogGrantAllFilesBinding.inflate(activity.layoutInflater) - binding.grantAllFilesImage.applyColorFilter(activity.getProperTextColor()) - - activity.getAlertDialogBuilder() - .setPositiveButton(com.simplemobiletools.commons.R.string.ok) { dialog, which -> activity.launchGrantAllFilesIntent() } - .setNegativeButton(com.simplemobiletools.commons.R.string.cancel, null) - .apply { - activity.setupDialogStuff(binding.root, this) { alertDialog -> } - } - } -} diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/extensions/FileDirItem.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/extensions/FileDirItem.kt deleted file mode 100644 index c67eebabb..000000000 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/extensions/FileDirItem.kt +++ /dev/null @@ -1,5 +0,0 @@ -package com.simplemobiletools.gallery.pro.extensions - -import com.simplemobiletools.commons.models.FileDirItem - -fun FileDirItem.isDownloadsFolder() = path.isDownloadsFolder() diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/extensions/Int.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/extensions/Int.kt deleted file mode 100644 index 7792ef112..000000000 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/extensions/Int.kt +++ /dev/null @@ -1,5 +0,0 @@ -package com.simplemobiletools.gallery.pro.extensions - -import com.simplemobiletools.commons.helpers.SORT_DESCENDING - -fun Int.isSortingAscending() = this and SORT_DESCENDING == 0 diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/models/ThumbnailItem.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/models/ThumbnailItem.kt deleted file mode 100644 index 4d2deaa31..000000000 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/models/ThumbnailItem.kt +++ /dev/null @@ -1,3 +0,0 @@ -package com.simplemobiletools.gallery.pro.models - -open class ThumbnailItem diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/App.kt b/app/src/main/kotlin/org/fossify/gallery/App.kt similarity index 84% rename from app/src/main/kotlin/com/simplemobiletools/gallery/pro/App.kt rename to app/src/main/kotlin/org/fossify/gallery/App.kt index ef2768318..2f61925ff 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/App.kt +++ b/app/src/main/kotlin/org/fossify/gallery/App.kt @@ -1,12 +1,12 @@ -package com.simplemobiletools.gallery.pro +package org.fossify.gallery import android.app.Application import com.github.ajalt.reprint.core.Reprint -import com.simplemobiletools.commons.extensions.checkUseEnglish import com.squareup.picasso.Downloader import com.squareup.picasso.Picasso import okhttp3.Request import okhttp3.Response +import org.fossify.commons.extensions.checkUseEnglish class App : Application() { override fun onCreate() { diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/EditActivity.kt b/app/src/main/kotlin/org/fossify/gallery/activities/EditActivity.kt similarity index 92% rename from app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/EditActivity.kt rename to app/src/main/kotlin/org/fossify/gallery/activities/EditActivity.kt index ffea6d0cd..c881f8a45 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/EditActivity.kt +++ b/app/src/main/kotlin/org/fossify/gallery/activities/EditActivity.kt @@ -1,4 +1,4 @@ -package com.simplemobiletools.gallery.pro.activities +package org.fossify.gallery.activities import android.annotation.TargetApi import android.app.Activity @@ -25,29 +25,29 @@ import com.bumptech.glide.request.RequestListener import com.bumptech.glide.request.RequestOptions import com.bumptech.glide.request.target.Target import com.canhub.cropper.CropImageView -import com.simplemobiletools.commons.dialogs.ColorPickerDialog -import com.simplemobiletools.commons.dialogs.ConfirmationDialog -import com.simplemobiletools.commons.extensions.* -import com.simplemobiletools.commons.helpers.NavigationIcon -import com.simplemobiletools.commons.helpers.REAL_FILE_PATH -import com.simplemobiletools.commons.helpers.ensureBackgroundThread -import com.simplemobiletools.commons.helpers.isNougatPlus -import com.simplemobiletools.commons.models.FileDirItem -import com.simplemobiletools.gallery.pro.BuildConfig -import com.simplemobiletools.gallery.pro.R -import com.simplemobiletools.gallery.pro.adapters.FiltersAdapter -import com.simplemobiletools.gallery.pro.databinding.ActivityEditBinding -import com.simplemobiletools.gallery.pro.dialogs.OtherAspectRatioDialog -import com.simplemobiletools.gallery.pro.dialogs.ResizeDialog -import com.simplemobiletools.gallery.pro.dialogs.SaveAsDialog -import com.simplemobiletools.gallery.pro.extensions.config -import com.simplemobiletools.gallery.pro.extensions.copyNonDimensionAttributesTo -import com.simplemobiletools.gallery.pro.extensions.fixDateTaken -import com.simplemobiletools.gallery.pro.extensions.openEditor -import com.simplemobiletools.gallery.pro.helpers.* -import com.simplemobiletools.gallery.pro.models.FilterItem import com.zomato.photofilters.FilterPack import com.zomato.photofilters.imageprocessors.Filter +import org.fossify.commons.dialogs.ColorPickerDialog +import org.fossify.commons.dialogs.ConfirmationDialog +import org.fossify.commons.extensions.* +import org.fossify.commons.helpers.NavigationIcon +import org.fossify.commons.helpers.REAL_FILE_PATH +import org.fossify.commons.helpers.ensureBackgroundThread +import org.fossify.commons.helpers.isNougatPlus +import org.fossify.commons.models.FileDirItem +import org.fossify.gallery.BuildConfig +import org.fossify.gallery.R +import org.fossify.gallery.adapters.FiltersAdapter +import org.fossify.gallery.databinding.ActivityEditBinding +import org.fossify.gallery.dialogs.OtherAspectRatioDialog +import org.fossify.gallery.dialogs.ResizeDialog +import org.fossify.gallery.dialogs.SaveAsDialog +import org.fossify.gallery.extensions.config +import org.fossify.gallery.extensions.copyNonDimensionAttributesTo +import org.fossify.gallery.extensions.fixDateTaken +import org.fossify.gallery.extensions.openEditor +import org.fossify.gallery.helpers.* +import org.fossify.gallery.models.FilterItem import java.io.* import kotlin.math.max @@ -79,8 +79,10 @@ class EditActivity : SimpleActivity(), CropImageView.OnCropImageCompleteListener private var resizeHeight = 0 private var drawColor = 0 private var lastOtherAspectRatio: Pair? = null - private var currPrimaryAction = PRIMARY_ACTION_NONE - private var currCropRotateAction = CROP_ROTATE_ASPECT_RATIO + private var currPrimaryAction = + PRIMARY_ACTION_NONE + private var currCropRotateAction = + CROP_ROTATE_ASPECT_RATIO private var currAspectRatio = ASPECT_RATIO_FREE private var isCropIntent = false private var isEditingWithThirdParty = false @@ -102,7 +104,7 @@ class EditActivity : SimpleActivity(), CropImageView.OnCropImageCompleteListener setupOptionsMenu() handlePermission(getPermissionToRequest()) { if (!it) { - toast(com.simplemobiletools.commons.R.string.no_storage_permissions) + toast(org.fossify.commons.R.string.no_storage_permissions) finish() } initEditActivity() @@ -230,7 +232,7 @@ class EditActivity : SimpleActivity(), CropImageView.OnCropImageCompleteListener bottomCropRotateClicked() } - if (filterInitialBitmap != null && currentFilter != null && currentFilter.filter.name != getString(com.simplemobiletools.commons.R.string.none)) { + if (filterInitialBitmap != null && currentFilter != null && currentFilter.filter.name != getString(org.fossify.commons.R.string.none)) { binding.defaultImageView.onGlobalLayout { applyFilter(currentFilter) } @@ -333,7 +335,7 @@ class EditActivity : SimpleActivity(), CropImageView.OnCropImageCompleteListener val currentFilter = getFiltersAdapter()?.getCurrentFilter() ?: return val filePathGetter = getNewFilePath() SaveAsDialog(this, filePathGetter.first, filePathGetter.second) { - toast(com.simplemobiletools.commons.R.string.saving) + toast(org.fossify.commons.R.string.saving) // clean up everything to free as much memory as possible binding.defaultImageView.setImageResource(0) @@ -347,7 +349,7 @@ class EditActivity : SimpleActivity(), CropImageView.OnCropImageCompleteListener currentFilter.filter.processFilter(originalBitmap) saveBitmapToFile(originalBitmap, it, false) } catch (e: OutOfMemoryError) { - toast(com.simplemobiletools.commons.R.string.out_of_memory_error) + toast(org.fossify.commons.R.string.out_of_memory_error) } } } @@ -374,7 +376,7 @@ class EditActivity : SimpleActivity(), CropImageView.OnCropImageCompleteListener binding.defaultImageView.isVisible() -> { val currentFilter = getFiltersAdapter()?.getCurrentFilter() if (currentFilter == null) { - toast(com.simplemobiletools.commons.R.string.unknown_error_occurred) + toast(org.fossify.commons.R.string.unknown_error_occurred) return@ensureBackgroundThread } @@ -399,7 +401,10 @@ class EditActivity : SimpleActivity(), CropImageView.OnCropImageCompleteListener val bytes = ByteArrayOutputStream() bitmap.compress(CompressFormat.PNG, 0, bytes) - val folder = File(cacheDir, TEMP_FOLDER_NAME) + val folder = File( + cacheDir, + TEMP_FOLDER_NAME + ) if (!folder.exists()) { if (!folder.mkdir()) { callback(null) @@ -430,7 +435,7 @@ class EditActivity : SimpleActivity(), CropImageView.OnCropImageCompleteListener if (it != null) { sharePathIntent(it, BuildConfig.APPLICATION_ID) } else { - toast(com.simplemobiletools.commons.R.string.unknown_error_occurred) + toast(org.fossify.commons.R.string.unknown_error_occurred) } } } @@ -655,7 +660,7 @@ class EditActivity : SimpleActivity(), CropImageView.OnCropImageCompleteListener val filterThumbnailsManager = FilterThumbnailsManager() filterThumbnailsManager.clearThumbs() - val noFilter = Filter(getString(com.simplemobiletools.commons.R.string.none)) + val noFilter = Filter(getString(org.fossify.commons.R.string.none)) filterThumbnailsManager.addThumb(FilterItem(bitmap, noFilter)) FilterPack.getFilterPack(this).forEach { @@ -683,7 +688,8 @@ class EditActivity : SimpleActivity(), CropImageView.OnCropImageCompleteListener if (currPrimaryAction != PRIMARY_ACTION_CROP_ROTATE) { binding.bottomAspectRatios.root.beGone() - currCropRotateAction = CROP_ROTATE_NONE + currCropRotateAction = + CROP_ROTATE_NONE } updateCropRotateActionButtons() } @@ -759,7 +765,7 @@ class EditActivity : SimpleActivity(), CropImageView.OnCropImageCompleteListener private fun resizeImage() { val point = getAreaSize() if (point == null) { - toast(com.simplemobiletools.commons.R.string.unknown_error_occurred) + toast(org.fossify.commons.R.string.unknown_error_occurred) return } @@ -772,8 +778,13 @@ class EditActivity : SimpleActivity(), CropImageView.OnCropImageCompleteListener private fun shouldCropSquare(): Boolean { val extras = intent.extras - return if (extras != null && extras.containsKey(ASPECT_X) && extras.containsKey(ASPECT_Y)) { - extras.getInt(ASPECT_X) == extras.getInt(ASPECT_Y) + return if (extras != null && extras.containsKey(ASPECT_X) && extras.containsKey( + ASPECT_Y + ) + ) { + extras.getInt(ASPECT_X) == extras.getInt( + ASPECT_Y + ) } else { false } @@ -875,7 +886,7 @@ class EditActivity : SimpleActivity(), CropImageView.OnCropImageCompleteListener val label = "sknahT .moc.slootelibomelpmis.www morf eno lanigiro eht daolnwod ytefas nwo ruoy roF .ppa eht fo noisrev ekaf a gnisu era uoY".reversed() runOnUiThread { - ConfirmationDialog(this, label, positive = com.simplemobiletools.commons.R.string.ok, negative = 0) { + ConfirmationDialog(this, label, positive = org.fossify.commons.R.string.ok, negative = 0) { launchViewIntent("6629852208836920709=di?ved/sppa/erots/moc.elgoog.yalp//:sptth".reversed()) } } @@ -903,14 +914,14 @@ class EditActivity : SimpleActivity(), CropImageView.OnCropImageCompleteListener } catch (e: Exception) { showErrorToast(e) } catch (e: OutOfMemoryError) { - toast(com.simplemobiletools.commons.R.string.out_of_memory_error) + toast(org.fossify.commons.R.string.out_of_memory_error) } } @TargetApi(Build.VERSION_CODES.N) private fun saveBitmap(file: File, bitmap: Bitmap, out: OutputStream, showSavingToast: Boolean) { if (showSavingToast) { - toast(com.simplemobiletools.commons.R.string.saving) + toast(org.fossify.commons.R.string.saving) } if (resizeWidth > 0 && resizeHeight > 0) { @@ -943,7 +954,7 @@ class EditActivity : SimpleActivity(), CropImageView.OnCropImageCompleteListener rescanPaths(paths) { fixDateTaken(paths, false) setResult(Activity.RESULT_OK, intent) - toast(com.simplemobiletools.commons.R.string.file_saved) + toast(org.fossify.commons.R.string.file_saved) finish() } } diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/ExcludedFoldersActivity.kt b/app/src/main/kotlin/org/fossify/gallery/activities/ExcludedFoldersActivity.kt similarity index 76% rename from app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/ExcludedFoldersActivity.kt rename to app/src/main/kotlin/org/fossify/gallery/activities/ExcludedFoldersActivity.kt index 11127c368..c8aca6cd4 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/ExcludedFoldersActivity.kt +++ b/app/src/main/kotlin/org/fossify/gallery/activities/ExcludedFoldersActivity.kt @@ -1,15 +1,15 @@ -package com.simplemobiletools.gallery.pro.activities +package org.fossify.gallery.activities import android.os.Bundle -import com.simplemobiletools.commons.dialogs.FilePickerDialog -import com.simplemobiletools.commons.extensions.* -import com.simplemobiletools.commons.helpers.NavigationIcon -import com.simplemobiletools.commons.helpers.isRPlus -import com.simplemobiletools.commons.interfaces.RefreshRecyclerViewListener -import com.simplemobiletools.gallery.pro.R -import com.simplemobiletools.gallery.pro.adapters.ManageFoldersAdapter -import com.simplemobiletools.gallery.pro.databinding.ActivityManageFoldersBinding -import com.simplemobiletools.gallery.pro.extensions.config +import org.fossify.commons.dialogs.FilePickerDialog +import org.fossify.commons.extensions.* +import org.fossify.commons.helpers.NavigationIcon +import org.fossify.commons.helpers.isRPlus +import org.fossify.commons.interfaces.RefreshRecyclerViewListener +import org.fossify.gallery.R +import org.fossify.gallery.adapters.ManageFoldersAdapter +import org.fossify.gallery.databinding.ActivityManageFoldersBinding +import org.fossify.gallery.extensions.config class ExcludedFoldersActivity : SimpleActivity(), RefreshRecyclerViewListener { @@ -21,7 +21,7 @@ class ExcludedFoldersActivity : SimpleActivity(), RefreshRecyclerViewListener { setContentView(binding.root) updateFolders() setupOptionsMenu() - binding.manageFoldersToolbar.title = getString(com.simplemobiletools.commons.R.string.excluded_folders) + binding.manageFoldersToolbar.title = getString(org.fossify.commons.R.string.excluded_folders) updateMaterialActivityViews(binding.manageFoldersCoordinator, binding.manageFoldersList, useTransparentNavigation = true, useTopSearchMenu = false) setupMaterialScrollListener(binding.manageFoldersList, binding.manageFoldersToolbar) diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/HiddenFoldersActivity.kt b/app/src/main/kotlin/org/fossify/gallery/activities/HiddenFoldersActivity.kt similarity index 70% rename from app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/HiddenFoldersActivity.kt rename to app/src/main/kotlin/org/fossify/gallery/activities/HiddenFoldersActivity.kt index 028815ae1..9ec2ac27b 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/HiddenFoldersActivity.kt +++ b/app/src/main/kotlin/org/fossify/gallery/activities/HiddenFoldersActivity.kt @@ -1,19 +1,19 @@ -package com.simplemobiletools.gallery.pro.activities +package org.fossify.gallery.activities import android.os.Bundle -import com.simplemobiletools.commons.dialogs.FilePickerDialog -import com.simplemobiletools.commons.extensions.beVisibleIf -import com.simplemobiletools.commons.extensions.getProperTextColor -import com.simplemobiletools.commons.extensions.viewBinding -import com.simplemobiletools.commons.helpers.NavigationIcon -import com.simplemobiletools.commons.helpers.ensureBackgroundThread -import com.simplemobiletools.commons.interfaces.RefreshRecyclerViewListener -import com.simplemobiletools.gallery.pro.R -import com.simplemobiletools.gallery.pro.adapters.ManageHiddenFoldersAdapter -import com.simplemobiletools.gallery.pro.databinding.ActivityManageFoldersBinding -import com.simplemobiletools.gallery.pro.extensions.addNoMedia -import com.simplemobiletools.gallery.pro.extensions.config -import com.simplemobiletools.gallery.pro.extensions.getNoMediaFolders +import org.fossify.commons.dialogs.FilePickerDialog +import org.fossify.commons.extensions.beVisibleIf +import org.fossify.commons.extensions.getProperTextColor +import org.fossify.commons.extensions.viewBinding +import org.fossify.commons.helpers.NavigationIcon +import org.fossify.commons.helpers.ensureBackgroundThread +import org.fossify.commons.interfaces.RefreshRecyclerViewListener +import org.fossify.gallery.R +import org.fossify.gallery.adapters.ManageHiddenFoldersAdapter +import org.fossify.gallery.databinding.ActivityManageFoldersBinding +import org.fossify.gallery.extensions.addNoMedia +import org.fossify.gallery.extensions.config +import org.fossify.gallery.extensions.getNoMediaFolders class HiddenFoldersActivity : SimpleActivity(), RefreshRecyclerViewListener { diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/IncludedFoldersActivity.kt b/app/src/main/kotlin/org/fossify/gallery/activities/IncludedFoldersActivity.kt similarity index 75% rename from app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/IncludedFoldersActivity.kt rename to app/src/main/kotlin/org/fossify/gallery/activities/IncludedFoldersActivity.kt index 5c54c2c57..9569ac8b3 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/IncludedFoldersActivity.kt +++ b/app/src/main/kotlin/org/fossify/gallery/activities/IncludedFoldersActivity.kt @@ -1,15 +1,15 @@ -package com.simplemobiletools.gallery.pro.activities +package org.fossify.gallery.activities import android.os.Bundle -import com.simplemobiletools.commons.extensions.beVisibleIf -import com.simplemobiletools.commons.extensions.getProperTextColor -import com.simplemobiletools.commons.extensions.viewBinding -import com.simplemobiletools.commons.helpers.NavigationIcon -import com.simplemobiletools.commons.interfaces.RefreshRecyclerViewListener -import com.simplemobiletools.gallery.pro.R -import com.simplemobiletools.gallery.pro.adapters.ManageFoldersAdapter -import com.simplemobiletools.gallery.pro.databinding.ActivityManageFoldersBinding -import com.simplemobiletools.gallery.pro.extensions.config +import org.fossify.commons.extensions.beVisibleIf +import org.fossify.commons.extensions.getProperTextColor +import org.fossify.commons.extensions.viewBinding +import org.fossify.commons.helpers.NavigationIcon +import org.fossify.commons.interfaces.RefreshRecyclerViewListener +import org.fossify.gallery.R +import org.fossify.gallery.adapters.ManageFoldersAdapter +import org.fossify.gallery.databinding.ActivityManageFoldersBinding +import org.fossify.gallery.extensions.config class IncludedFoldersActivity : SimpleActivity(), RefreshRecyclerViewListener { diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/MainActivity.kt b/app/src/main/kotlin/org/fossify/gallery/activities/MainActivity.kt similarity index 94% rename from app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/MainActivity.kt rename to app/src/main/kotlin/org/fossify/gallery/activities/MainActivity.kt index b52bd673e..f357de76f 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/MainActivity.kt +++ b/app/src/main/kotlin/org/fossify/gallery/activities/MainActivity.kt @@ -1,4 +1,4 @@ -package com.simplemobiletools.gallery.pro.activities +package org.fossify.gallery.activities import android.app.Activity import android.content.ClipData @@ -13,32 +13,32 @@ import android.view.ViewGroup import android.widget.RelativeLayout import android.widget.Toast import androidx.recyclerview.widget.RecyclerView -import com.simplemobiletools.commons.dialogs.ConfirmationDialog -import com.simplemobiletools.commons.dialogs.CreateNewFolderDialog -import com.simplemobiletools.commons.dialogs.FilePickerDialog -import com.simplemobiletools.commons.dialogs.RadioGroupDialog -import com.simplemobiletools.commons.extensions.* -import com.simplemobiletools.commons.helpers.* -import com.simplemobiletools.commons.models.FileDirItem -import com.simplemobiletools.commons.models.RadioItem -import com.simplemobiletools.commons.models.Release -import com.simplemobiletools.commons.views.MyGridLayoutManager -import com.simplemobiletools.commons.views.MyRecyclerView -import com.simplemobiletools.gallery.pro.BuildConfig -import com.simplemobiletools.gallery.pro.R -import com.simplemobiletools.gallery.pro.adapters.DirectoryAdapter -import com.simplemobiletools.gallery.pro.databases.GalleryDatabase -import com.simplemobiletools.gallery.pro.databinding.ActivityMainBinding -import com.simplemobiletools.gallery.pro.dialogs.ChangeSortingDialog -import com.simplemobiletools.gallery.pro.dialogs.ChangeViewTypeDialog -import com.simplemobiletools.gallery.pro.dialogs.FilterMediaDialog -import com.simplemobiletools.gallery.pro.dialogs.GrantAllFilesDialog -import com.simplemobiletools.gallery.pro.extensions.* -import com.simplemobiletools.gallery.pro.helpers.* -import com.simplemobiletools.gallery.pro.interfaces.DirectoryOperationsListener -import com.simplemobiletools.gallery.pro.jobs.NewPhotoFetcher -import com.simplemobiletools.gallery.pro.models.Directory -import com.simplemobiletools.gallery.pro.models.Medium +import org.fossify.commons.dialogs.ConfirmationDialog +import org.fossify.commons.dialogs.CreateNewFolderDialog +import org.fossify.commons.dialogs.FilePickerDialog +import org.fossify.commons.dialogs.RadioGroupDialog +import org.fossify.commons.extensions.* +import org.fossify.commons.helpers.* +import org.fossify.commons.models.FileDirItem +import org.fossify.commons.models.RadioItem +import org.fossify.commons.models.Release +import org.fossify.commons.views.MyGridLayoutManager +import org.fossify.commons.views.MyRecyclerView +import org.fossify.gallery.BuildConfig +import org.fossify.gallery.R +import org.fossify.gallery.adapters.DirectoryAdapter +import org.fossify.gallery.databases.GalleryDatabase +import org.fossify.gallery.databinding.ActivityMainBinding +import org.fossify.gallery.dialogs.ChangeSortingDialog +import org.fossify.gallery.dialogs.ChangeViewTypeDialog +import org.fossify.gallery.dialogs.FilterMediaDialog +import org.fossify.gallery.dialogs.GrantAllFilesDialog +import org.fossify.gallery.extensions.* +import org.fossify.gallery.helpers.* +import org.fossify.gallery.interfaces.DirectoryOperationsListener +import org.fossify.gallery.jobs.NewPhotoFetcher +import org.fossify.gallery.models.Directory +import org.fossify.gallery.models.Medium import java.io.* class MainActivity : SimpleActivity(), DirectoryOperationsListener { @@ -161,7 +161,7 @@ class MainActivity : SimpleActivity(), DirectoryOperationsListener { // just request the permission, tryLoadGallery will then trigger in onResume handleMediaPermissions { success -> if (!success) { - toast(com.simplemobiletools.commons.R.string.no_storage_permissions) + toast(org.fossify.commons.R.string.no_storage_permissions) finish() } } @@ -257,9 +257,9 @@ class MainActivity : SimpleActivity(), DirectoryOperationsListener { } if (config.searchAllFilesByDefault) { - binding.mainMenu.updateHintText(getString(com.simplemobiletools.commons.R.string.search_files)) + binding.mainMenu.updateHintText(getString(org.fossify.commons.R.string.search_files)) } else { - binding.mainMenu.updateHintText(getString(com.simplemobiletools.commons.R.string.search_folders)) + binding.mainMenu.updateHintText(getString(org.fossify.commons.R.string.search_folders)) } } @@ -357,7 +357,7 @@ class MainActivity : SimpleActivity(), DirectoryOperationsListener { findItem(R.id.column_count).isVisible = config.viewTypeFolders == VIEW_TYPE_GRID findItem(R.id.set_as_default_folder).isVisible = !config.defaultFolder.isEmpty() findItem(R.id.open_recycle_bin).isVisible = config.useRecycleBin && !config.showRecycleBinAtFolders - findItem(R.id.more_apps_from_us).isVisible = !resources.getBoolean(com.simplemobiletools.commons.R.bool.hide_google_relations) + findItem(R.id.more_apps_from_us).isVisible = !resources.getBoolean(org.fossify.commons.R.bool.hide_google_relations) } } @@ -459,7 +459,7 @@ class MainActivity : SimpleActivity(), DirectoryOperationsListener { val newFolder = File(config.tempFolderPath) if (getDoesFilePathExist(newFolder.absolutePath) && newFolder.isDirectory) { if (newFolder.getProperSize(true) == 0L && newFolder.getFileCount(true) == 0 && newFolder.list()?.isEmpty() == true) { - toast(String.format(getString(com.simplemobiletools.commons.R.string.deleting_folder), config.tempFolderPath), Toast.LENGTH_LONG) + toast(String.format(getString(org.fossify.commons.R.string.deleting_folder), config.tempFolderPath), Toast.LENGTH_LONG) tryDeleteFileDirItem(newFolder.toFileDirItem(applicationContext), true, true) } } @@ -510,12 +510,12 @@ class MainActivity : SimpleActivity(), DirectoryOperationsListener { mWasDefaultFolderChecked = true } - if (isPackageInstalled("com.simplemobiletools.gallery")) { + if (isPackageInstalled("org.fossify.gallery")) { ConfirmationDialog( this, "", - com.simplemobiletools.commons.R.string.upgraded_from_free_gallery, - com.simplemobiletools.commons.R.string.ok, + org.fossify.commons.R.string.upgraded_from_free_gallery, + org.fossify.commons.R.string.ok, 0, false ) {} @@ -532,7 +532,7 @@ class MainActivity : SimpleActivity(), DirectoryOperationsListener { setupLayoutManager() } else { - toast(com.simplemobiletools.commons.R.string.no_storage_permissions) + toast(org.fossify.commons.R.string.no_storage_permissions) finish() } } @@ -659,7 +659,7 @@ class MainActivity : SimpleActivity(), DirectoryOperationsListener { fileDirItems.isEmpty() -> return fileDirItems.size == 1 -> { try { - toast(String.format(getString(com.simplemobiletools.commons.R.string.deleting_folder), fileDirItems.first().name)) + toast(String.format(getString(org.fossify.commons.R.string.deleting_folder), fileDirItems.first().name)) } catch (e: Exception) { showErrorToast(e) } @@ -667,7 +667,7 @@ class MainActivity : SimpleActivity(), DirectoryOperationsListener { else -> { val baseString = - if (config.useRecycleBin && !config.tempSkipRecycleBin) com.simplemobiletools.commons.R.plurals.moving_items_into_bin else com.simplemobiletools.commons.R.plurals.delete_items + if (config.useRecycleBin && !config.tempSkipRecycleBin) org.fossify.commons.R.plurals.moving_items_into_bin else org.fossify.commons.R.plurals.delete_items val deletingItems = resources.getQuantityString(baseString, fileDirItems.size, fileDirItems.size) toast(deletingItems) } @@ -696,7 +696,7 @@ class MainActivity : SimpleActivity(), DirectoryOperationsListener { if (it) { deleteFilteredFileDirItems(itemsToDelete, folders) } else { - toast(com.simplemobiletools.commons.R.string.unknown_error_occurred) + toast(org.fossify.commons.R.string.unknown_error_occurred) } } } else { @@ -796,7 +796,7 @@ class MainActivity : SimpleActivity(), DirectoryOperationsListener { private fun changeColumnCount() { val items = ArrayList() for (i in 1..MAX_COLUMN_COUNT) { - items.add(RadioItem(i, resources.getQuantityString(com.simplemobiletools.commons.R.plurals.column_counts, i, i))) + items.add(RadioItem(i, resources.getQuantityString(org.fossify.commons.R.plurals.column_counts, i, i))) } val currentColumnCount = (binding.directoriesGrid.layoutManager as MyGridLayoutManager).spanCount @@ -971,7 +971,7 @@ class MainActivity : SimpleActivity(), DirectoryOperationsListener { if (mediaDB.getDeletedMediaCount() > 0) { val recycleBin = Directory().apply { path = RECYCLE_BIN - name = getString(com.simplemobiletools.commons.R.string.recycle_bin) + name = getString(org.fossify.commons.R.string.recycle_bin) location = LOCATION_INTERNAL } @@ -985,7 +985,7 @@ class MainActivity : SimpleActivity(), DirectoryOperationsListener { if (mediaDB.getFavoritesCount() > 0) { val favorites = Directory().apply { path = FAVORITES - name = getString(com.simplemobiletools.commons.R.string.favorites) + name = getString(org.fossify.commons.R.string.favorites) location = LOCATION_INTERNAL } @@ -1174,10 +1174,7 @@ class MainActivity : SimpleActivity(), DirectoryOperationsListener { // do not add excluded folders and their subfolders at everShownFolders dirs.filter { dir -> - if (excludedFolders.any { dir.path.startsWith(it) }) { - return@filter false - } - return@filter true + return@filter !excludedFolders.any { dir.path.startsWith(it) } }.mapTo(everShownFolders) { it.path } try { @@ -1223,11 +1220,11 @@ class MainActivity : SimpleActivity(), DirectoryOperationsListener { binding.directoriesEmptyPlaceholder2.beVisibleIf(dirs.isEmpty() && mLoadedInitialPhotos) if (binding.mainMenu.isSearchOpen) { - binding.directoriesEmptyPlaceholder.text = getString(com.simplemobiletools.commons.R.string.no_items_found) + binding.directoriesEmptyPlaceholder.text = getString(org.fossify.commons.R.string.no_items_found) binding.directoriesEmptyPlaceholder2.beGone() } else if (dirs.isEmpty() && config.filterMedia == getDefaultFileFilter()) { if (isRPlus() && !isExternalStorageManager()) { - binding.directoriesEmptyPlaceholder.text = getString(com.simplemobiletools.commons.R.string.no_items_found) + binding.directoriesEmptyPlaceholder.text = getString(org.fossify.commons.R.string.no_items_found) binding.directoriesEmptyPlaceholder2.beGone() } else { binding.directoriesEmptyPlaceholder.text = getString(R.string.no_media_add_included) diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/MediaActivity.kt b/app/src/main/kotlin/org/fossify/gallery/activities/MediaActivity.kt similarity index 92% rename from app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/MediaActivity.kt rename to app/src/main/kotlin/org/fossify/gallery/activities/MediaActivity.kt index 281c745b0..e7ee8654c 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/MediaActivity.kt +++ b/app/src/main/kotlin/org/fossify/gallery/activities/MediaActivity.kt @@ -1,4 +1,4 @@ -package com.simplemobiletools.gallery.pro.activities +package org.fossify.gallery.activities import android.app.Activity import android.app.WallpaperManager @@ -15,27 +15,27 @@ import com.bumptech.glide.Glide import com.bumptech.glide.request.RequestOptions import com.bumptech.glide.request.target.SimpleTarget import com.bumptech.glide.request.transition.Transition -import com.simplemobiletools.commons.dialogs.ConfirmationDialog -import com.simplemobiletools.commons.dialogs.CreateNewFolderDialog -import com.simplemobiletools.commons.dialogs.RadioGroupDialog -import com.simplemobiletools.commons.extensions.* -import com.simplemobiletools.commons.helpers.* -import com.simplemobiletools.commons.models.FileDirItem -import com.simplemobiletools.commons.models.RadioItem -import com.simplemobiletools.commons.views.MyGridLayoutManager -import com.simplemobiletools.commons.views.MyRecyclerView -import com.simplemobiletools.gallery.pro.R -import com.simplemobiletools.gallery.pro.adapters.MediaAdapter -import com.simplemobiletools.gallery.pro.asynctasks.GetMediaAsynctask -import com.simplemobiletools.gallery.pro.databases.GalleryDatabase -import com.simplemobiletools.gallery.pro.databinding.ActivityMediaBinding -import com.simplemobiletools.gallery.pro.dialogs.* -import com.simplemobiletools.gallery.pro.extensions.* -import com.simplemobiletools.gallery.pro.helpers.* -import com.simplemobiletools.gallery.pro.interfaces.MediaOperationsListener -import com.simplemobiletools.gallery.pro.models.Medium -import com.simplemobiletools.gallery.pro.models.ThumbnailItem -import com.simplemobiletools.gallery.pro.models.ThumbnailSection +import org.fossify.commons.dialogs.ConfirmationDialog +import org.fossify.commons.dialogs.CreateNewFolderDialog +import org.fossify.commons.dialogs.RadioGroupDialog +import org.fossify.commons.extensions.* +import org.fossify.commons.helpers.* +import org.fossify.commons.models.FileDirItem +import org.fossify.commons.models.RadioItem +import org.fossify.commons.views.MyGridLayoutManager +import org.fossify.commons.views.MyRecyclerView +import org.fossify.gallery.R +import org.fossify.gallery.adapters.MediaAdapter +import org.fossify.gallery.asynctasks.GetMediaAsynctask +import org.fossify.gallery.databases.GalleryDatabase +import org.fossify.gallery.databinding.ActivityMediaBinding +import org.fossify.gallery.dialogs.* +import org.fossify.gallery.extensions.* +import org.fossify.gallery.helpers.* +import org.fossify.gallery.interfaces.MediaOperationsListener +import org.fossify.gallery.models.Medium +import org.fossify.gallery.models.ThumbnailItem +import org.fossify.gallery.models.ThumbnailSection import java.io.File import java.io.IOException @@ -105,12 +105,12 @@ class MediaActivity : SimpleActivity(), MediaOperationsListener { if (mShowAll) { registerFileUpdateListener() - if (isPackageInstalled("com.simplemobiletools.gallery")) { + if (isPackageInstalled("org.fossify.gallery")) { ConfirmationDialog( this, "", - com.simplemobiletools.commons.R.string.upgraded_from_free_gallery, - com.simplemobiletools.commons.R.string.ok, + org.fossify.commons.R.string.upgraded_from_free_gallery, + org.fossify.commons.R.string.ok, 0, false ) {} @@ -364,7 +364,7 @@ class MediaActivity : SimpleActivity(), MediaOperationsListener { val grouped = MediaFetcher(applicationContext).groupMedia(filtered as ArrayList, mPath) runOnUiThread { if (grouped.isEmpty()) { - binding.mediaEmptyTextPlaceholder.text = getString(com.simplemobiletools.commons.R.string.no_items_found) + binding.mediaEmptyTextPlaceholder.text = getString(org.fossify.commons.R.string.no_items_found) binding.mediaEmptyTextPlaceholder.beVisible() binding.mediaFastscroller.beGone() } else { @@ -384,16 +384,16 @@ class MediaActivity : SimpleActivity(), MediaOperationsListener { handlePermission(getPermissionToRequest()) { if (it) { val dirName = when { - mPath == FAVORITES -> getString(com.simplemobiletools.commons.R.string.favorites) - mPath == RECYCLE_BIN -> getString(com.simplemobiletools.commons.R.string.recycle_bin) - mPath == config.OTGPath -> getString(com.simplemobiletools.commons.R.string.usb) + mPath == FAVORITES -> getString(org.fossify.commons.R.string.favorites) + mPath == RECYCLE_BIN -> getString(org.fossify.commons.R.string.recycle_bin) + mPath == config.OTGPath -> getString(org.fossify.commons.R.string.usb) else -> getHumanizedFilename(mPath) } val searchHint = if (mShowAll) { - getString(com.simplemobiletools.commons.R.string.search_files) + getString(org.fossify.commons.R.string.search_files) } else { - getString(com.simplemobiletools.commons.R.string.search_in_placeholder, dirName) + getString(org.fossify.commons.R.string.search_in_placeholder, dirName) } binding.mediaMenu.updateHintText(searchHint) @@ -407,7 +407,7 @@ class MediaActivity : SimpleActivity(), MediaOperationsListener { getMedia() setupLayoutManager() } else { - toast(com.simplemobiletools.commons.R.string.no_storage_permissions) + toast(org.fossify.commons.R.string.no_storage_permissions) finish() } } @@ -631,7 +631,7 @@ class MediaActivity : SimpleActivity(), MediaOperationsListener { } if (mPath == RECYCLE_BIN) { - binding.mediaEmptyTextPlaceholder.setText(com.simplemobiletools.commons.R.string.no_items_found) + binding.mediaEmptyTextPlaceholder.setText(org.fossify.commons.R.string.no_items_found) binding.mediaEmptyTextPlaceholder.beVisible() binding.mediaEmptyTextPlaceholder2.beGone() } else { @@ -770,7 +770,7 @@ class MediaActivity : SimpleActivity(), MediaOperationsListener { private fun changeColumnCount() { val items = ArrayList() for (i in 1..MAX_COLUMN_COUNT) { - items.add(RadioItem(i, resources.getQuantityString(com.simplemobiletools.commons.R.plurals.column_counts, i, i))) + items.add(RadioItem(i, resources.getQuantityString(org.fossify.commons.R.plurals.column_counts, i, i))) } val currentColumnCount = (binding.mediaGrid.layoutManager as MyGridLayoutManager).spanCount @@ -903,18 +903,18 @@ class MediaActivity : SimpleActivity(), MediaOperationsListener { } if (config.useRecycleBin && !skipRecycleBin && !filtered.first().path.startsWith(recycleBinPath)) { - val movingItems = resources.getQuantityString(com.simplemobiletools.commons.R.plurals.moving_items_into_bin, filtered.size, filtered.size) + val movingItems = resources.getQuantityString(org.fossify.commons.R.plurals.moving_items_into_bin, filtered.size, filtered.size) toast(movingItems) movePathsInRecycleBin(filtered.map { it.path } as ArrayList) { if (it) { deleteFilteredFiles(filtered) } else { - toast(com.simplemobiletools.commons.R.string.unknown_error_occurred) + toast(org.fossify.commons.R.string.unknown_error_occurred) } } } else { - val deletingItems = resources.getQuantityString(com.simplemobiletools.commons.R.plurals.deleting_items, filtered.size, filtered.size) + val deletingItems = resources.getQuantityString(org.fossify.commons.R.plurals.deleting_items, filtered.size, filtered.size) toast(deletingItems) deleteFilteredFiles(filtered) } @@ -925,7 +925,7 @@ class MediaActivity : SimpleActivity(), MediaOperationsListener { private fun deleteFilteredFiles(filtered: ArrayList) { deleteFiles(filtered) { if (!it) { - toast(com.simplemobiletools.commons.R.string.unknown_error_occurred) + toast(org.fossify.commons.R.string.unknown_error_occurred) return@deleteFiles } diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/PanoramaPhotoActivity.kt b/app/src/main/kotlin/org/fossify/gallery/activities/PanoramaPhotoActivity.kt similarity index 91% rename from app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/PanoramaPhotoActivity.kt rename to app/src/main/kotlin/org/fossify/gallery/activities/PanoramaPhotoActivity.kt index d4e66c4b5..420e8a711 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/PanoramaPhotoActivity.kt +++ b/app/src/main/kotlin/org/fossify/gallery/activities/PanoramaPhotoActivity.kt @@ -1,4 +1,4 @@ -package com.simplemobiletools.gallery.pro.activities +package org.fossify.gallery.activities import android.content.res.Configuration import android.graphics.Bitmap @@ -12,15 +12,15 @@ import android.view.WindowInsetsController import android.widget.RelativeLayout import com.google.vr.sdk.widgets.pano.VrPanoramaEventListener import com.google.vr.sdk.widgets.pano.VrPanoramaView -import com.simplemobiletools.commons.extensions.* -import com.simplemobiletools.commons.helpers.ensureBackgroundThread -import com.simplemobiletools.commons.helpers.isRPlus -import com.simplemobiletools.gallery.pro.R -import com.simplemobiletools.gallery.pro.databinding.ActivityPanoramaPhotoBinding -import com.simplemobiletools.gallery.pro.extensions.config -import com.simplemobiletools.gallery.pro.extensions.hideSystemUI -import com.simplemobiletools.gallery.pro.extensions.showSystemUI -import com.simplemobiletools.gallery.pro.helpers.PATH +import org.fossify.commons.extensions.* +import org.fossify.commons.helpers.ensureBackgroundThread +import org.fossify.commons.helpers.isRPlus +import org.fossify.gallery.R +import org.fossify.gallery.databinding.ActivityPanoramaPhotoBinding +import org.fossify.gallery.extensions.config +import org.fossify.gallery.extensions.hideSystemUI +import org.fossify.gallery.extensions.showSystemUI +import org.fossify.gallery.helpers.PATH open class PanoramaPhotoActivity : SimpleActivity() { private val CARDBOARD_DISPLAY_MODE = 3 diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/PanoramaVideoActivity.kt b/app/src/main/kotlin/org/fossify/gallery/activities/PanoramaVideoActivity.kt similarity index 91% rename from app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/PanoramaVideoActivity.kt rename to app/src/main/kotlin/org/fossify/gallery/activities/PanoramaVideoActivity.kt index 028fd557d..8ba7d997e 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/PanoramaVideoActivity.kt +++ b/app/src/main/kotlin/org/fossify/gallery/activities/PanoramaVideoActivity.kt @@ -1,4 +1,4 @@ -package com.simplemobiletools.gallery.pro.activities +package org.fossify.gallery.activities import android.content.res.Configuration import android.graphics.Color @@ -13,16 +13,16 @@ import android.widget.RelativeLayout import android.widget.SeekBar import com.google.vr.sdk.widgets.video.VrVideoEventListener import com.google.vr.sdk.widgets.video.VrVideoView -import com.simplemobiletools.commons.extensions.* -import com.simplemobiletools.commons.helpers.isRPlus -import com.simplemobiletools.gallery.pro.R -import com.simplemobiletools.gallery.pro.databinding.ActivityPanoramaVideoBinding -import com.simplemobiletools.gallery.pro.extensions.config -import com.simplemobiletools.gallery.pro.extensions.hasNavBar -import com.simplemobiletools.gallery.pro.extensions.hideSystemUI -import com.simplemobiletools.gallery.pro.extensions.showSystemUI -import com.simplemobiletools.gallery.pro.helpers.MIN_SKIP_LENGTH -import com.simplemobiletools.gallery.pro.helpers.PATH +import org.fossify.commons.extensions.* +import org.fossify.commons.helpers.isRPlus +import org.fossify.gallery.R +import org.fossify.gallery.databinding.ActivityPanoramaVideoBinding +import org.fossify.gallery.extensions.config +import org.fossify.gallery.extensions.hasNavBar +import org.fossify.gallery.extensions.hideSystemUI +import org.fossify.gallery.extensions.showSystemUI +import org.fossify.gallery.helpers.MIN_SKIP_LENGTH +import org.fossify.gallery.helpers.PATH import java.io.File open class PanoramaVideoActivity : SimpleActivity(), SeekBar.OnSeekBarChangeListener { @@ -149,7 +149,7 @@ open class PanoramaVideoActivity : SimpleActivity(), SeekBar.OnSeekBarChangeList mIsPlaying = true resumeVideo() } else { - binding.bottomVideoTimeHolder.videoTogglePlayPause.setImageResource(com.simplemobiletools.commons.R.drawable.ic_play_outline_vector) + binding.bottomVideoTimeHolder.videoTogglePlayPause.setImageResource(org.fossify.commons.R.drawable.ic_play_outline_vector) } binding.bottomVideoTimeHolder.videoTogglePlayPause.beVisible() } @@ -204,7 +204,7 @@ open class PanoramaVideoActivity : SimpleActivity(), SeekBar.OnSeekBarChangeList } private fun resumeVideo() { - binding.bottomVideoTimeHolder.videoTogglePlayPause.setImageResource(com.simplemobiletools.commons.R.drawable.ic_pause_outline_vector) + binding.bottomVideoTimeHolder.videoTogglePlayPause.setImageResource(org.fossify.commons.R.drawable.ic_pause_outline_vector) if (mCurrTime == mDuration) { setVideoProgress(0) mPlayOnReady = true @@ -217,7 +217,7 @@ open class PanoramaVideoActivity : SimpleActivity(), SeekBar.OnSeekBarChangeList private fun pauseVideo() { binding.vrVideoView.pauseVideo() - binding.bottomVideoTimeHolder.videoTogglePlayPause.setImageResource(com.simplemobiletools.commons.R.drawable.ic_play_outline_vector) + binding.bottomVideoTimeHolder.videoTogglePlayPause.setImageResource(org.fossify.commons.R.drawable.ic_play_outline_vector) window.clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON) } @@ -253,7 +253,7 @@ open class PanoramaVideoActivity : SimpleActivity(), SeekBar.OnSeekBarChangeList binding.bottomVideoTimeHolder.root.background = resources.getDrawable(R.drawable.gradient_background) binding.bottomVideoTimeHolder.root.onGlobalLayout { val newBottomMargin = binding.bottomVideoTimeHolder.root.height - resources.getDimension(R.dimen.video_player_play_pause_size) - .toInt() - resources.getDimension(com.simplemobiletools.commons.R.dimen.activity_margin).toInt() + .toInt() - resources.getDimension(org.fossify.commons.R.dimen.activity_margin).toInt() (binding.explore.layoutParams as RelativeLayout.LayoutParams).bottomMargin = newBottomMargin (binding.cardboard.layoutParams as RelativeLayout.LayoutParams).apply { @@ -262,7 +262,7 @@ open class PanoramaVideoActivity : SimpleActivity(), SeekBar.OnSeekBarChangeList } binding.explore.requestLayout() } - binding.bottomVideoTimeHolder.videoTogglePlayPause.setImageResource(com.simplemobiletools.commons.R.drawable.ic_play_outline_vector) + binding.bottomVideoTimeHolder.videoTogglePlayPause.setImageResource(org.fossify.commons.R.drawable.ic_play_outline_vector) binding.cardboard.setOnClickListener { binding.vrVideoView.displayMode = CARDBOARD_DISPLAY_MODE diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/PhotoActivity.kt b/app/src/main/kotlin/org/fossify/gallery/activities/PhotoActivity.kt similarity index 79% rename from app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/PhotoActivity.kt rename to app/src/main/kotlin/org/fossify/gallery/activities/PhotoActivity.kt index 95c439d3a..84d4940ef 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/PhotoActivity.kt +++ b/app/src/main/kotlin/org/fossify/gallery/activities/PhotoActivity.kt @@ -1,4 +1,4 @@ -package com.simplemobiletools.gallery.pro.activities +package org.fossify.gallery.activities import android.os.Bundle diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/PhotoVideoActivity.kt b/app/src/main/kotlin/org/fossify/gallery/activities/PhotoVideoActivity.kt similarity index 93% rename from app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/PhotoVideoActivity.kt rename to app/src/main/kotlin/org/fossify/gallery/activities/PhotoVideoActivity.kt index 6e9b2a0d7..69c737674 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/PhotoVideoActivity.kt +++ b/app/src/main/kotlin/org/fossify/gallery/activities/PhotoVideoActivity.kt @@ -1,4 +1,4 @@ -package com.simplemobiletools.gallery.pro.activities +package org.fossify.gallery.activities import android.content.Intent import android.content.res.Configuration @@ -10,18 +10,18 @@ import android.provider.MediaStore import android.text.Html import android.view.View import android.widget.RelativeLayout -import com.simplemobiletools.commons.dialogs.PropertiesDialog -import com.simplemobiletools.commons.extensions.* -import com.simplemobiletools.commons.helpers.* -import com.simplemobiletools.gallery.pro.BuildConfig -import com.simplemobiletools.gallery.pro.R -import com.simplemobiletools.gallery.pro.databinding.FragmentHolderBinding -import com.simplemobiletools.gallery.pro.extensions.* -import com.simplemobiletools.gallery.pro.fragments.PhotoFragment -import com.simplemobiletools.gallery.pro.fragments.VideoFragment -import com.simplemobiletools.gallery.pro.fragments.ViewPagerFragment -import com.simplemobiletools.gallery.pro.helpers.* -import com.simplemobiletools.gallery.pro.models.Medium +import org.fossify.commons.dialogs.PropertiesDialog +import org.fossify.commons.extensions.* +import org.fossify.commons.helpers.* +import org.fossify.gallery.BuildConfig +import org.fossify.gallery.R +import org.fossify.gallery.databinding.FragmentHolderBinding +import org.fossify.gallery.extensions.* +import org.fossify.gallery.fragments.PhotoFragment +import org.fossify.gallery.fragments.VideoFragment +import org.fossify.gallery.fragments.ViewPagerFragment +import org.fossify.gallery.helpers.* +import org.fossify.gallery.models.Medium import java.io.File import java.io.FileInputStream @@ -51,7 +51,7 @@ open class PhotoVideoActivity : SimpleActivity(), ViewPagerFragment.FragmentList if (it) { checkIntent(savedInstanceState) } else { - toast(com.simplemobiletools.commons.R.string.no_storage_permissions) + toast(org.fossify.commons.R.string.no_storage_permissions) finish() } } @@ -100,8 +100,8 @@ open class PhotoVideoActivity : SimpleActivity(), ViewPagerFragment.FragmentList (binding.fragmentViewerAppbar.layoutParams as RelativeLayout.LayoutParams).topMargin = statusBarHeight binding.fragmentViewerToolbar.apply { setTitleTextColor(Color.WHITE) - overflowIcon = resources.getColoredDrawableWithColor(com.simplemobiletools.commons.R.drawable.ic_three_dots_vector, Color.WHITE) - navigationIcon = resources.getColoredDrawableWithColor(com.simplemobiletools.commons.R.drawable.ic_arrow_left_vector, Color.WHITE) + overflowIcon = resources.getColoredDrawableWithColor(org.fossify.commons.R.drawable.ic_three_dots_vector, Color.WHITE) + navigationIcon = resources.getColoredDrawableWithColor(org.fossify.commons.R.drawable.ic_arrow_left_vector, Color.WHITE) } updateMenuItemColors(binding.fragmentViewerToolbar.menu, forceWhiteIcons = true) @@ -254,7 +254,7 @@ open class PhotoVideoActivity : SimpleActivity(), ViewPagerFragment.FragmentList private fun launchVideoPlayer() { val newUri = getFinalUriFromPath(mUri.toString(), BuildConfig.APPLICATION_ID) if (newUri == null) { - toast(com.simplemobiletools.commons.R.string.unknown_error_occurred) + toast(org.fossify.commons.R.string.unknown_error_occurred) return } diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/SearchActivity.kt b/app/src/main/kotlin/org/fossify/gallery/activities/SearchActivity.kt similarity index 84% rename from app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/SearchActivity.kt rename to app/src/main/kotlin/org/fossify/gallery/activities/SearchActivity.kt index ed0fbc636..d0665d595 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/SearchActivity.kt +++ b/app/src/main/kotlin/org/fossify/gallery/activities/SearchActivity.kt @@ -1,4 +1,4 @@ -package com.simplemobiletools.gallery.pro.activities +package org.fossify.gallery.activities import android.content.Intent import android.os.Bundle @@ -6,23 +6,23 @@ import android.view.ViewGroup import android.widget.RelativeLayout import androidx.recyclerview.widget.GridLayoutManager import androidx.recyclerview.widget.RecyclerView -import com.simplemobiletools.commons.extensions.* -import com.simplemobiletools.commons.helpers.VIEW_TYPE_GRID -import com.simplemobiletools.commons.helpers.ensureBackgroundThread -import com.simplemobiletools.commons.models.FileDirItem -import com.simplemobiletools.commons.views.MyGridLayoutManager -import com.simplemobiletools.gallery.pro.R -import com.simplemobiletools.gallery.pro.adapters.MediaAdapter -import com.simplemobiletools.gallery.pro.asynctasks.GetMediaAsynctask -import com.simplemobiletools.gallery.pro.databinding.ActivitySearchBinding -import com.simplemobiletools.gallery.pro.extensions.* -import com.simplemobiletools.gallery.pro.helpers.GridSpacingItemDecoration -import com.simplemobiletools.gallery.pro.helpers.MediaFetcher -import com.simplemobiletools.gallery.pro.helpers.PATH -import com.simplemobiletools.gallery.pro.helpers.SHOW_ALL -import com.simplemobiletools.gallery.pro.interfaces.MediaOperationsListener -import com.simplemobiletools.gallery.pro.models.Medium -import com.simplemobiletools.gallery.pro.models.ThumbnailItem +import org.fossify.commons.extensions.* +import org.fossify.commons.helpers.VIEW_TYPE_GRID +import org.fossify.commons.helpers.ensureBackgroundThread +import org.fossify.commons.models.FileDirItem +import org.fossify.commons.views.MyGridLayoutManager +import org.fossify.gallery.R +import org.fossify.gallery.adapters.MediaAdapter +import org.fossify.gallery.asynctasks.GetMediaAsynctask +import org.fossify.gallery.databinding.ActivitySearchBinding +import org.fossify.gallery.extensions.* +import org.fossify.gallery.helpers.GridSpacingItemDecoration +import org.fossify.gallery.helpers.MediaFetcher +import org.fossify.gallery.helpers.PATH +import org.fossify.gallery.helpers.SHOW_ALL +import org.fossify.gallery.interfaces.MediaOperationsListener +import org.fossify.gallery.models.Medium +import org.fossify.gallery.models.ThumbnailItem import java.io.File class SearchActivity : SimpleActivity(), MediaOperationsListener { @@ -60,7 +60,7 @@ class SearchActivity : SimpleActivity(), MediaOperationsListener { binding.searchMenu.setupMenu() binding.searchMenu.toggleForceArrowBackIcon(true) binding.searchMenu.focusView() - binding.searchMenu.updateHintText(getString(com.simplemobiletools.commons.R.string.search_files)) + binding.searchMenu.updateHintText(getString(org.fossify.commons.R.string.search_files)) binding.searchMenu.onNavigateBackClickListener = { if (binding.searchMenu.getCurrentQuery().isEmpty()) { @@ -97,7 +97,7 @@ class SearchActivity : SimpleActivity(), MediaOperationsListener { val grouped = MediaFetcher(applicationContext).groupMedia(filtered as ArrayList, "") runOnUiThread { if (grouped.isEmpty()) { - binding.searchEmptyTextPlaceholder.text = getString(com.simplemobiletools.commons.R.string.no_items_found) + binding.searchEmptyTextPlaceholder.text = getString(org.fossify.commons.R.string.no_items_found) binding.searchEmptyTextPlaceholder.beVisible() } else { binding.searchEmptyTextPlaceholder.beGone() @@ -246,18 +246,18 @@ class SearchActivity : SimpleActivity(), MediaOperationsListener { } if (config.useRecycleBin && !skipRecycleBin && !filtered.first().path.startsWith(recycleBinPath)) { - val movingItems = resources.getQuantityString(com.simplemobiletools.commons.R.plurals.moving_items_into_bin, filtered.size, filtered.size) + val movingItems = resources.getQuantityString(org.fossify.commons.R.plurals.moving_items_into_bin, filtered.size, filtered.size) toast(movingItems) movePathsInRecycleBin(filtered.map { it.path } as ArrayList) { if (it) { deleteFilteredFiles(filtered) } else { - toast(com.simplemobiletools.commons.R.string.unknown_error_occurred) + toast(org.fossify.commons.R.string.unknown_error_occurred) } } } else { - val deletingItems = resources.getQuantityString(com.simplemobiletools.commons.R.plurals.deleting_items, filtered.size, filtered.size) + val deletingItems = resources.getQuantityString(org.fossify.commons.R.plurals.deleting_items, filtered.size, filtered.size) toast(deletingItems) deleteFilteredFiles(filtered) } @@ -266,7 +266,7 @@ class SearchActivity : SimpleActivity(), MediaOperationsListener { private fun deleteFilteredFiles(filtered: ArrayList) { deleteFiles(filtered) { if (!it) { - toast(com.simplemobiletools.commons.R.string.unknown_error_occurred) + toast(org.fossify.commons.R.string.unknown_error_occurred) return@deleteFiles } diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/SetWallpaperActivity.kt b/app/src/main/kotlin/org/fossify/gallery/activities/SetWallpaperActivity.kt similarity index 88% rename from app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/SetWallpaperActivity.kt rename to app/src/main/kotlin/org/fossify/gallery/activities/SetWallpaperActivity.kt index f03bddbfd..102d9c2a6 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/SetWallpaperActivity.kt +++ b/app/src/main/kotlin/org/fossify/gallery/activities/SetWallpaperActivity.kt @@ -1,4 +1,4 @@ -package com.simplemobiletools.gallery.pro.activities +package org.fossify.gallery.activities import android.app.Activity import android.app.WallpaperManager @@ -7,16 +7,16 @@ import android.graphics.Bitmap import android.net.Uri import android.os.Bundle import com.canhub.cropper.CropImageView -import com.simplemobiletools.commons.dialogs.RadioGroupDialog -import com.simplemobiletools.commons.extensions.checkAppSideloading -import com.simplemobiletools.commons.extensions.toast -import com.simplemobiletools.commons.extensions.viewBinding -import com.simplemobiletools.commons.helpers.NavigationIcon -import com.simplemobiletools.commons.helpers.ensureBackgroundThread -import com.simplemobiletools.commons.helpers.isNougatPlus -import com.simplemobiletools.commons.models.RadioItem -import com.simplemobiletools.gallery.pro.R -import com.simplemobiletools.gallery.pro.databinding.ActivitySetWallpaperBinding +import org.fossify.commons.dialogs.RadioGroupDialog +import org.fossify.commons.extensions.checkAppSideloading +import org.fossify.commons.extensions.toast +import org.fossify.commons.extensions.viewBinding +import org.fossify.commons.helpers.NavigationIcon +import org.fossify.commons.helpers.ensureBackgroundThread +import org.fossify.commons.helpers.isNougatPlus +import org.fossify.commons.models.RadioItem +import org.fossify.gallery.R +import org.fossify.gallery.databinding.ActivitySetWallpaperBinding class SetWallpaperActivity : SimpleActivity(), CropImageView.OnCropImageCompleteListener { private val RATIO_PORTRAIT = 0 @@ -163,7 +163,7 @@ class SetWallpaperActivity : SimpleActivity(), CropImageView.OnCropImageComplete } setResult(Activity.RESULT_OK) } catch (e: OutOfMemoryError) { - toast(com.simplemobiletools.commons.R.string.out_of_memory_error) + toast(org.fossify.commons.R.string.out_of_memory_error) setResult(Activity.RESULT_CANCELED) } finish() diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/SettingsActivity.kt b/app/src/main/kotlin/org/fossify/gallery/activities/SettingsActivity.kt similarity index 94% rename from app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/SettingsActivity.kt rename to app/src/main/kotlin/org/fossify/gallery/activities/SettingsActivity.kt index ead9601c3..26f96ee6d 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/SettingsActivity.kt +++ b/app/src/main/kotlin/org/fossify/gallery/activities/SettingsActivity.kt @@ -1,4 +1,4 @@ -package com.simplemobiletools.gallery.pro.activities +package org.fossify.gallery.activities import android.app.Activity import android.content.ActivityNotFoundException @@ -8,16 +8,16 @@ import android.text.TextUtils import android.widget.Toast import com.google.gson.Gson import com.google.gson.reflect.TypeToken -import com.simplemobiletools.commons.dialogs.* -import com.simplemobiletools.commons.extensions.* -import com.simplemobiletools.commons.helpers.* -import com.simplemobiletools.commons.models.RadioItem -import com.simplemobiletools.gallery.pro.R -import com.simplemobiletools.gallery.pro.databinding.ActivitySettingsBinding -import com.simplemobiletools.gallery.pro.dialogs.* -import com.simplemobiletools.gallery.pro.extensions.* -import com.simplemobiletools.gallery.pro.helpers.* -import com.simplemobiletools.gallery.pro.models.AlbumCover +import org.fossify.commons.dialogs.* +import org.fossify.commons.extensions.* +import org.fossify.commons.helpers.* +import org.fossify.commons.models.RadioItem +import org.fossify.gallery.R +import org.fossify.gallery.databinding.ActivitySettingsBinding +import org.fossify.gallery.dialogs.* +import org.fossify.gallery.extensions.* +import org.fossify.gallery.helpers.* +import org.fossify.gallery.models.AlbumCover import java.io.File import java.io.InputStream import java.io.OutputStream @@ -197,7 +197,7 @@ class SettingsActivity : SimpleActivity() { private fun setupManageIncludedFolders() { if (isRPlus() && !isExternalStorageManager()) { binding.settingsManageIncludedFolders.text = - "${getString(R.string.manage_included_folders)} (${getString(com.simplemobiletools.commons.R.string.no_permission)})" + "${getString(R.string.manage_included_folders)} (${getString(org.fossify.commons.R.string.no_permission)})" } else { binding.settingsManageIncludedFolders.setText(R.string.manage_included_folders) } @@ -231,9 +231,9 @@ class SettingsActivity : SimpleActivity() { private fun setupShowHiddenItems() { if (isRPlus() && !isExternalStorageManager()) { binding.settingsShowHiddenItems.text = - "${getString(com.simplemobiletools.commons.R.string.show_hidden_items)} (${getString(com.simplemobiletools.commons.R.string.no_permission)})" + "${getString(org.fossify.commons.R.string.show_hidden_items)} (${getString(org.fossify.commons.R.string.no_permission)})" } else { - binding.settingsShowHiddenItems.setText(com.simplemobiletools.commons.R.string.show_hidden_items) + binding.settingsShowHiddenItems.setText(org.fossify.commons.R.string.show_hidden_items) } binding.settingsShowHiddenItems.isChecked = config.showHiddenMedia @@ -363,8 +363,8 @@ class SettingsActivity : SimpleActivity() { if (config.isHiddenPasswordProtectionOn) { val confirmationTextId = if (config.hiddenProtectionType == PROTECTION_FINGERPRINT) - com.simplemobiletools.commons.R.string.fingerprint_setup_successfully else com.simplemobiletools.commons.R.string.protection_setup_successfully - ConfirmationDialog(this, "", confirmationTextId, com.simplemobiletools.commons.R.string.ok, 0) { } + org.fossify.commons.R.string.fingerprint_setup_successfully else org.fossify.commons.R.string.protection_setup_successfully + ConfirmationDialog(this, "", confirmationTextId, org.fossify.commons.R.string.ok, 0) { } } } } @@ -386,8 +386,8 @@ class SettingsActivity : SimpleActivity() { if (config.isExcludedPasswordProtectionOn) { val confirmationTextId = if (config.excludedProtectionType == PROTECTION_FINGERPRINT) - com.simplemobiletools.commons.R.string.fingerprint_setup_successfully else com.simplemobiletools.commons.R.string.protection_setup_successfully - ConfirmationDialog(this, "", confirmationTextId, com.simplemobiletools.commons.R.string.ok, 0) { } + org.fossify.commons.R.string.fingerprint_setup_successfully else org.fossify.commons.R.string.protection_setup_successfully + ConfirmationDialog(this, "", confirmationTextId, org.fossify.commons.R.string.ok, 0) { } } } } @@ -408,8 +408,8 @@ class SettingsActivity : SimpleActivity() { if (config.isAppPasswordProtectionOn) { val confirmationTextId = if (config.appProtectionType == PROTECTION_FINGERPRINT) - com.simplemobiletools.commons.R.string.fingerprint_setup_successfully else com.simplemobiletools.commons.R.string.protection_setup_successfully - ConfirmationDialog(this, "", confirmationTextId, com.simplemobiletools.commons.R.string.ok, 0) { } + org.fossify.commons.R.string.fingerprint_setup_successfully else org.fossify.commons.R.string.protection_setup_successfully + ConfirmationDialog(this, "", confirmationTextId, org.fossify.commons.R.string.ok, 0) { } } } } @@ -430,8 +430,8 @@ class SettingsActivity : SimpleActivity() { if (config.isDeletePasswordProtectionOn) { val confirmationTextId = if (config.deleteProtectionType == PROTECTION_FINGERPRINT) - com.simplemobiletools.commons.R.string.fingerprint_setup_successfully else com.simplemobiletools.commons.R.string.protection_setup_successfully - ConfirmationDialog(this, "", confirmationTextId, com.simplemobiletools.commons.R.string.ok, 0) { } + org.fossify.commons.R.string.fingerprint_setup_successfully else org.fossify.commons.R.string.protection_setup_successfully + ConfirmationDialog(this, "", confirmationTextId, org.fossify.commons.R.string.ok, 0) { } } } } @@ -712,7 +712,7 @@ class SettingsActivity : SimpleActivity() { binding.settingsEmptyRecycleBinHolder.setOnClickListener { if (mRecycleBinContentSize == 0L) { - toast(com.simplemobiletools.commons.R.string.recycle_bin_empty) + toast(org.fossify.commons.R.string.recycle_bin_empty) } else { showRecycleBinEmptyingDialog { emptyTheRecycleBin() @@ -753,7 +753,7 @@ class SettingsActivity : SimpleActivity() { try { startActivityForResult(this, SELECT_EXPORT_FAVORITES_FILE_INTENT) } catch (e: ActivityNotFoundException) { - toast(com.simplemobiletools.commons.R.string.system_service_disabled, Toast.LENGTH_LONG) + toast(org.fossify.commons.R.string.system_service_disabled, Toast.LENGTH_LONG) } catch (e: Exception) { showErrorToast(e) } @@ -776,7 +776,7 @@ class SettingsActivity : SimpleActivity() { private fun exportFavoritesTo(outputStream: OutputStream?) { if (outputStream == null) { - toast(com.simplemobiletools.commons.R.string.unknown_error_occurred) + toast(org.fossify.commons.R.string.unknown_error_occurred) return } @@ -789,15 +789,15 @@ class SettingsActivity : SimpleActivity() { } } - toast(com.simplemobiletools.commons.R.string.exporting_successful) + toast(org.fossify.commons.R.string.exporting_successful) } else { - toast(com.simplemobiletools.commons.R.string.no_items_found) + toast(org.fossify.commons.R.string.no_items_found) } } } private fun getExportFavoritesFilename(): String { - val appName = baseConfig.appId.removeSuffix(".debug").removeSuffix(".pro").removePrefix("com.simplemobiletools.") + val appName = baseConfig.appId.removeSuffix(".debug").removeSuffix(".pro").removePrefix("org.fossify.") return "$appName-favorites_${getCurrentFormattedDateTime()}" } @@ -825,7 +825,7 @@ class SettingsActivity : SimpleActivity() { private fun importFavorites(inputStream: InputStream?) { if (inputStream == null) { - toast(com.simplemobiletools.commons.R.string.unknown_error_occurred) + toast(org.fossify.commons.R.string.unknown_error_occurred) return } @@ -846,7 +846,7 @@ class SettingsActivity : SimpleActivity() { } } - toast(if (importedItems > 0) com.simplemobiletools.commons.R.string.importing_successful else com.simplemobiletools.commons.R.string.no_entries_for_importing) + toast(if (importedItems > 0) org.fossify.commons.R.string.importing_successful else org.fossify.commons.R.string.no_entries_for_importing) } } @@ -968,7 +968,7 @@ class SettingsActivity : SimpleActivity() { private fun parseFile(inputStream: InputStream?) { if (inputStream == null) { - toast(com.simplemobiletools.commons.R.string.unknown_error_occurred) + toast(org.fossify.commons.R.string.unknown_error_occurred) return } @@ -1096,7 +1096,7 @@ class SettingsActivity : SimpleActivity() { } } - toast(if (configValues.size > 0) com.simplemobiletools.commons.R.string.settings_imported_successfully else com.simplemobiletools.commons.R.string.no_entries_for_importing) + toast(if (configValues.size > 0) org.fossify.commons.R.string.settings_imported_successfully else org.fossify.commons.R.string.no_entries_for_importing) runOnUiThread { setupSettingItems() } diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/SimpleActivity.kt b/app/src/main/kotlin/org/fossify/gallery/activities/SimpleActivity.kt similarity index 79% rename from app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/SimpleActivity.kt rename to app/src/main/kotlin/org/fossify/gallery/activities/SimpleActivity.kt index 6d02ad838..84a2cf5e9 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/SimpleActivity.kt +++ b/app/src/main/kotlin/org/fossify/gallery/activities/SimpleActivity.kt @@ -1,21 +1,21 @@ -package com.simplemobiletools.gallery.pro.activities +package org.fossify.gallery.activities import android.database.ContentObserver import android.net.Uri import android.provider.MediaStore.Images import android.provider.MediaStore.Video import android.view.WindowManager -import com.simplemobiletools.commons.activities.BaseSimpleActivity -import com.simplemobiletools.commons.dialogs.FilePickerDialog -import com.simplemobiletools.commons.extensions.getParentPath -import com.simplemobiletools.commons.extensions.getRealPathFromURI -import com.simplemobiletools.commons.extensions.scanPathRecursively -import com.simplemobiletools.commons.helpers.ensureBackgroundThread -import com.simplemobiletools.commons.helpers.isPiePlus -import com.simplemobiletools.gallery.pro.R -import com.simplemobiletools.gallery.pro.extensions.addPathToDB -import com.simplemobiletools.gallery.pro.extensions.config -import com.simplemobiletools.gallery.pro.extensions.updateDirectoryPath +import org.fossify.commons.activities.BaseSimpleActivity +import org.fossify.commons.dialogs.FilePickerDialog +import org.fossify.commons.extensions.getParentPath +import org.fossify.commons.extensions.getRealPathFromURI +import org.fossify.commons.extensions.scanPathRecursively +import org.fossify.commons.helpers.ensureBackgroundThread +import org.fossify.commons.helpers.isPiePlus +import org.fossify.gallery.R +import org.fossify.gallery.extensions.addPathToDB +import org.fossify.gallery.extensions.config +import org.fossify.gallery.extensions.updateDirectoryPath open class SimpleActivity : BaseSimpleActivity() { val observer = object : ContentObserver(null) { diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/SplashActivity.kt b/app/src/main/kotlin/org/fossify/gallery/activities/SplashActivity.kt similarity index 70% rename from app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/SplashActivity.kt rename to app/src/main/kotlin/org/fossify/gallery/activities/SplashActivity.kt index e09840bd4..857806763 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/SplashActivity.kt +++ b/app/src/main/kotlin/org/fossify/gallery/activities/SplashActivity.kt @@ -1,13 +1,13 @@ -package com.simplemobiletools.gallery.pro.activities +package org.fossify.gallery.activities import android.content.Intent -import com.simplemobiletools.commons.activities.BaseSplashActivity -import com.simplemobiletools.commons.helpers.ensureBackgroundThread -import com.simplemobiletools.gallery.pro.extensions.config -import com.simplemobiletools.gallery.pro.extensions.favoritesDB -import com.simplemobiletools.gallery.pro.extensions.getFavoriteFromPath -import com.simplemobiletools.gallery.pro.extensions.mediaDB -import com.simplemobiletools.gallery.pro.models.Favorite +import org.fossify.commons.activities.BaseSplashActivity +import org.fossify.commons.helpers.ensureBackgroundThread +import org.fossify.gallery.extensions.config +import org.fossify.gallery.extensions.favoritesDB +import org.fossify.gallery.extensions.getFavoriteFromPath +import org.fossify.gallery.extensions.mediaDB +import org.fossify.gallery.models.Favorite class SplashActivity : BaseSplashActivity() { override fun initActivity() { diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/VideoActivity.kt b/app/src/main/kotlin/org/fossify/gallery/activities/VideoActivity.kt similarity index 79% rename from app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/VideoActivity.kt rename to app/src/main/kotlin/org/fossify/gallery/activities/VideoActivity.kt index 78fa61955..23f703264 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/VideoActivity.kt +++ b/app/src/main/kotlin/org/fossify/gallery/activities/VideoActivity.kt @@ -1,4 +1,4 @@ -package com.simplemobiletools.gallery.pro.activities +package org.fossify.gallery.activities import android.os.Bundle diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/VideoPlayerActivity.kt b/app/src/main/kotlin/org/fossify/gallery/activities/VideoPlayerActivity.kt similarity index 97% rename from app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/VideoPlayerActivity.kt rename to app/src/main/kotlin/org/fossify/gallery/activities/VideoPlayerActivity.kt index 81715f88c..72f35e957 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/VideoPlayerActivity.kt +++ b/app/src/main/kotlin/org/fossify/gallery/activities/VideoPlayerActivity.kt @@ -1,4 +1,4 @@ -package com.simplemobiletools.gallery.pro.activities +package org.fossify.gallery.activities import android.app.Activity import android.content.Intent @@ -25,11 +25,11 @@ import androidx.media3.exoplayer.SeekParameters import androidx.media3.exoplayer.source.DefaultMediaSourceFactory import androidx.media3.exoplayer.source.MediaSource import androidx.media3.exoplayer.source.ProgressiveMediaSource -import com.simplemobiletools.commons.extensions.* -import com.simplemobiletools.gallery.pro.R -import com.simplemobiletools.gallery.pro.databinding.ActivityVideoPlayerBinding -import com.simplemobiletools.gallery.pro.extensions.* -import com.simplemobiletools.gallery.pro.helpers.* +import org.fossify.commons.extensions.* +import org.fossify.gallery.R +import org.fossify.gallery.databinding.ActivityVideoPlayerBinding +import org.fossify.gallery.extensions.* +import org.fossify.gallery.helpers.* @UnstableApi open class VideoPlayerActivity : SimpleActivity(), SeekBar.OnSeekBarChangeListener, TextureView.SurfaceTextureListener { @@ -119,8 +119,8 @@ open class VideoPlayerActivity : SimpleActivity(), SeekBar.OnSeekBarChangeListen (binding.videoAppbar.layoutParams as RelativeLayout.LayoutParams).topMargin = statusBarHeight binding.videoToolbar.apply { setTitleTextColor(Color.WHITE) - overflowIcon = resources.getColoredDrawableWithColor(com.simplemobiletools.commons.R.drawable.ic_three_dots_vector, Color.WHITE) - navigationIcon = resources.getColoredDrawableWithColor(com.simplemobiletools.commons.R.drawable.ic_arrow_left_vector, Color.WHITE) + overflowIcon = resources.getColoredDrawableWithColor(org.fossify.commons.R.drawable.ic_three_dots_vector, Color.WHITE) + navigationIcon = resources.getColoredDrawableWithColor(org.fossify.commons.R.drawable.ic_arrow_left_vector, Color.WHITE) } updateMenuItemColors(binding.videoToolbar.menu, forceWhiteIcons = true) @@ -304,7 +304,7 @@ open class VideoPlayerActivity : SimpleActivity(), SeekBar.OnSeekBarChangeListen if (config.autoplayVideos) { resumeVideo() } else { - binding.bottomVideoTimeHolder.videoTogglePlayPause.setImageResource(com.simplemobiletools.commons.R.drawable.ic_play_outline_vector) + binding.bottomVideoTimeHolder.videoTogglePlayPause.setImageResource(org.fossify.commons.R.drawable.ic_play_outline_vector) } } } @@ -319,7 +319,7 @@ open class VideoPlayerActivity : SimpleActivity(), SeekBar.OnSeekBarChangeListen } private fun resumeVideo() { - binding.bottomVideoTimeHolder.videoTogglePlayPause.setImageResource(com.simplemobiletools.commons.R.drawable.ic_pause_outline_vector) + binding.bottomVideoTimeHolder.videoTogglePlayPause.setImageResource(org.fossify.commons.R.drawable.ic_pause_outline_vector) if (mExoPlayer == null) { return } @@ -336,7 +336,7 @@ open class VideoPlayerActivity : SimpleActivity(), SeekBar.OnSeekBarChangeListen } private fun pauseVideo() { - binding.bottomVideoTimeHolder.videoTogglePlayPause.setImageResource(com.simplemobiletools.commons.R.drawable.ic_play_outline_vector) + binding.bottomVideoTimeHolder.videoTogglePlayPause.setImageResource(org.fossify.commons.R.drawable.ic_play_outline_vector) if (mExoPlayer == null) { return } diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/ViewPagerActivity.kt b/app/src/main/kotlin/org/fossify/gallery/activities/ViewPagerActivity.kt similarity index 93% rename from app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/ViewPagerActivity.kt rename to app/src/main/kotlin/org/fossify/gallery/activities/ViewPagerActivity.kt index e898823c0..550f79590 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/ViewPagerActivity.kt +++ b/app/src/main/kotlin/org/fossify/gallery/activities/ViewPagerActivity.kt @@ -1,4 +1,4 @@ -package com.simplemobiletools.gallery.pro.activities +package org.fossify.gallery.activities import android.animation.Animator import android.animation.ValueAnimator @@ -34,26 +34,26 @@ import com.bumptech.glide.load.engine.GlideException import com.bumptech.glide.request.RequestListener import com.bumptech.glide.request.RequestOptions import com.bumptech.glide.request.target.Target -import com.simplemobiletools.commons.dialogs.PropertiesDialog -import com.simplemobiletools.commons.dialogs.RenameItemDialog -import com.simplemobiletools.commons.extensions.* -import com.simplemobiletools.commons.helpers.* -import com.simplemobiletools.commons.models.FileDirItem -import com.simplemobiletools.gallery.pro.BuildConfig -import com.simplemobiletools.gallery.pro.R -import com.simplemobiletools.gallery.pro.adapters.MyPagerAdapter -import com.simplemobiletools.gallery.pro.asynctasks.GetMediaAsynctask -import com.simplemobiletools.gallery.pro.databinding.ActivityMediumBinding -import com.simplemobiletools.gallery.pro.dialogs.DeleteWithRememberDialog -import com.simplemobiletools.gallery.pro.dialogs.SaveAsDialog -import com.simplemobiletools.gallery.pro.dialogs.SlideshowDialog -import com.simplemobiletools.gallery.pro.extensions.* -import com.simplemobiletools.gallery.pro.fragments.PhotoFragment -import com.simplemobiletools.gallery.pro.fragments.VideoFragment -import com.simplemobiletools.gallery.pro.fragments.ViewPagerFragment -import com.simplemobiletools.gallery.pro.helpers.* -import com.simplemobiletools.gallery.pro.models.Medium -import com.simplemobiletools.gallery.pro.models.ThumbnailItem +import org.fossify.commons.dialogs.PropertiesDialog +import org.fossify.commons.dialogs.RenameItemDialog +import org.fossify.commons.extensions.* +import org.fossify.commons.helpers.* +import org.fossify.commons.models.FileDirItem +import org.fossify.gallery.BuildConfig +import org.fossify.gallery.R +import org.fossify.gallery.adapters.MyPagerAdapter +import org.fossify.gallery.asynctasks.GetMediaAsynctask +import org.fossify.gallery.databinding.ActivityMediumBinding +import org.fossify.gallery.dialogs.DeleteWithRememberDialog +import org.fossify.gallery.dialogs.SaveAsDialog +import org.fossify.gallery.dialogs.SlideshowDialog +import org.fossify.gallery.extensions.* +import org.fossify.gallery.fragments.PhotoFragment +import org.fossify.gallery.fragments.VideoFragment +import org.fossify.gallery.fragments.ViewPagerFragment +import org.fossify.gallery.helpers.* +import org.fossify.gallery.models.Medium +import org.fossify.gallery.models.ThumbnailItem import java.io.File import kotlin.math.min @@ -100,7 +100,7 @@ class ViewPagerActivity : SimpleActivity(), ViewPager.OnPageChangeListener, View if (it) { initViewPager() } else { - toast(com.simplemobiletools.commons.R.string.no_storage_permissions) + toast(org.fossify.commons.R.string.no_storage_permissions) finish() } } @@ -213,8 +213,8 @@ class ViewPagerActivity : SimpleActivity(), ViewPager.OnPageChangeListener, View (binding.mediumViewerAppbar.layoutParams as RelativeLayout.LayoutParams).topMargin = statusBarHeight binding.mediumViewerToolbar.apply { setTitleTextColor(Color.WHITE) - overflowIcon = resources.getColoredDrawableWithColor(com.simplemobiletools.commons.R.drawable.ic_three_dots_vector, Color.WHITE) - navigationIcon = resources.getColoredDrawableWithColor(com.simplemobiletools.commons.R.drawable.ic_arrow_left_vector, Color.WHITE) + overflowIcon = resources.getColoredDrawableWithColor(org.fossify.commons.R.drawable.ic_three_dots_vector, Color.WHITE) + navigationIcon = resources.getColoredDrawableWithColor(org.fossify.commons.R.drawable.ic_arrow_left_vector, Color.WHITE) } updateMenuItemColors(binding.mediumViewerToolbar.menu, forceWhiteIcons = true) @@ -315,7 +315,7 @@ class ViewPagerActivity : SimpleActivity(), ViewPager.OnPageChangeListener, View } if (mPath.isEmpty()) { - toast(com.simplemobiletools.commons.R.string.unknown_error_occurred) + toast(org.fossify.commons.R.string.unknown_error_occurred) finish() return } @@ -560,7 +560,7 @@ class ViewPagerActivity : SimpleActivity(), ViewPager.OnPageChangeListener, View animator.addUpdateListener(object : ValueAnimator.AnimatorUpdateListener { var oldDragPosition = 0 override fun onAnimationUpdate(animation: ValueAnimator) { - if (binding.viewPager?.isFakeDragging == true) { + if (binding.viewPager.isFakeDragging == true) { val dragPosition = animation.animatedValue as Int val dragOffset = dragPosition - oldDragPosition oldDragPosition = dragPosition @@ -666,7 +666,7 @@ class ViewPagerActivity : SimpleActivity(), ViewPager.OnPageChangeListener, View private fun copyMoveTo(isCopyOperation: Boolean) { val currPath = getCurrentPath() if (!isCopyOperation && currPath.startsWith(recycleBinPath)) { - toast(com.simplemobiletools.commons.R.string.moving_recycle_bin_items_disabled, Toast.LENGTH_LONG) + toast(org.fossify.commons.R.string.moving_recycle_bin_items_disabled, Toast.LENGTH_LONG) return } @@ -728,12 +728,12 @@ class ViewPagerActivity : SimpleActivity(), ViewPager.OnPageChangeListener, View private fun getChangeOrientationIcon(): Int { return if (mIsOrientationLocked) { if (requestedOrientation == ActivityInfo.SCREEN_ORIENTATION_PORTRAIT) { - com.simplemobiletools.commons.R.drawable.ic_orientation_portrait_vector + org.fossify.commons.R.drawable.ic_orientation_portrait_vector } else { - com.simplemobiletools.commons.R.drawable.ic_orientation_landscape_vector + org.fossify.commons.R.drawable.ic_orientation_landscape_vector } } else { - com.simplemobiletools.commons.R.drawable.ic_orientation_auto_vector + org.fossify.commons.R.drawable.ic_orientation_auto_vector } } @@ -746,11 +746,11 @@ class ViewPagerActivity : SimpleActivity(), ViewPager.OnPageChangeListener, View return@handleSAFDialog } - toast(com.simplemobiletools.commons.R.string.saving) + toast(org.fossify.commons.R.string.saving) ensureBackgroundThread { val photoFragment = getCurrentPhotoFragment() ?: return@ensureBackgroundThread saveRotatedImageToFile(currPath, newPath, photoFragment.mCurrentRotationDegrees, true) { - toast(com.simplemobiletools.commons.R.string.file_saved) + toast(org.fossify.commons.R.string.file_saved) getCurrentPhotoFragment()?.mCurrentRotationDegrees = 0 refreshMenuItems() } @@ -854,13 +854,13 @@ class ViewPagerActivity : SimpleActivity(), ViewPager.OnPageChangeListener, View } binding.bottomActions.bottomShare.beVisibleIf(visibleBottomActions and BOTTOM_ACTION_SHARE != 0) - binding.bottomActions.bottomShare.setOnLongClickListener { toast(com.simplemobiletools.commons.R.string.share); true } + binding.bottomActions.bottomShare.setOnLongClickListener { toast(org.fossify.commons.R.string.share); true } binding.bottomActions.bottomShare.setOnClickListener { shareMediumPath(getCurrentPath()) } binding.bottomActions.bottomDelete.beVisibleIf(visibleBottomActions and BOTTOM_ACTION_DELETE != 0) - binding.bottomActions.bottomDelete.setOnLongClickListener { toast(com.simplemobiletools.commons.R.string.delete); true } + binding.bottomActions.bottomDelete.setOnLongClickListener { toast(org.fossify.commons.R.string.delete); true } binding.bottomActions.bottomDelete.setOnClickListener { checkDeleteConfirmation() } @@ -873,7 +873,7 @@ class ViewPagerActivity : SimpleActivity(), ViewPager.OnPageChangeListener, View binding.bottomActions.bottomProperties.applyColorFilter(Color.WHITE) binding.bottomActions.bottomProperties.beVisibleIf(visibleBottomActions and BOTTOM_ACTION_PROPERTIES != 0) - binding.bottomActions.bottomProperties.setOnLongClickListener { toast(com.simplemobiletools.commons.R.string.properties); true } + binding.bottomActions.bottomProperties.setOnLongClickListener { toast(org.fossify.commons.R.string.properties); true } binding.bottomActions.bottomProperties.setOnClickListener { showProperties() } @@ -904,7 +904,7 @@ class ViewPagerActivity : SimpleActivity(), ViewPager.OnPageChangeListener, View binding.bottomActions.bottomToggleFileVisibility.beVisibleIf(visibleBottomActions and BOTTOM_ACTION_TOGGLE_VISIBILITY != 0) binding.bottomActions.bottomToggleFileVisibility.setOnLongClickListener { - toast(if (currentMedium?.isHidden() == true) com.simplemobiletools.commons.R.string.unhide else com.simplemobiletools.commons.R.string.hide); true + toast(if (currentMedium?.isHidden() == true) org.fossify.commons.R.string.unhide else org.fossify.commons.R.string.hide); true } binding.bottomActions.bottomToggleFileVisibility.setOnClickListener { @@ -916,31 +916,31 @@ class ViewPagerActivity : SimpleActivity(), ViewPager.OnPageChangeListener, View } binding.bottomActions.bottomRename.beVisibleIf(visibleBottomActions and BOTTOM_ACTION_RENAME != 0 && currentMedium?.getIsInRecycleBin() == false) - binding.bottomActions.bottomRename.setOnLongClickListener { toast(com.simplemobiletools.commons.R.string.rename); true } + binding.bottomActions.bottomRename.setOnLongClickListener { toast(org.fossify.commons.R.string.rename); true } binding.bottomActions.bottomRename.setOnClickListener { checkMediaManagementAndRename() } binding.bottomActions.bottomSetAs.beVisibleIf(visibleBottomActions and BOTTOM_ACTION_SET_AS != 0) - binding.bottomActions.bottomSetAs.setOnLongClickListener { toast(com.simplemobiletools.commons.R.string.set_as); true } + binding.bottomActions.bottomSetAs.setOnLongClickListener { toast(org.fossify.commons.R.string.set_as); true } binding.bottomActions.bottomSetAs.setOnClickListener { setAs(getCurrentPath()) } binding.bottomActions.bottomCopy.beVisibleIf(visibleBottomActions and BOTTOM_ACTION_COPY != 0) - binding.bottomActions.bottomCopy.setOnLongClickListener { toast(com.simplemobiletools.commons.R.string.copy); true } + binding.bottomActions.bottomCopy.setOnLongClickListener { toast(org.fossify.commons.R.string.copy); true } binding.bottomActions.bottomCopy.setOnClickListener { checkMediaManagementAndCopy(true) } binding.bottomActions.bottomMove.beVisibleIf(visibleBottomActions and BOTTOM_ACTION_MOVE != 0) - binding.bottomActions.bottomMove.setOnLongClickListener { toast(com.simplemobiletools.commons.R.string.move); true } + binding.bottomActions.bottomMove.setOnLongClickListener { toast(org.fossify.commons.R.string.move); true } binding.bottomActions.bottomMove.setOnClickListener { moveFileTo() } binding.bottomActions.bottomResize.beVisibleIf(visibleBottomActions and BOTTOM_ACTION_RESIZE != 0 && currentMedium?.isImage() == true) - binding.bottomActions.bottomResize.setOnLongClickListener { toast(com.simplemobiletools.commons.R.string.resize); true } + binding.bottomActions.bottomResize.setOnLongClickListener { toast(org.fossify.commons.R.string.resize); true } binding.bottomActions.bottomResize.setOnClickListener { resizeImage() } @@ -952,11 +952,11 @@ class ViewPagerActivity : SimpleActivity(), ViewPager.OnPageChangeListener, View } val favoriteIcon = - if (medium.isFavorite) com.simplemobiletools.commons.R.drawable.ic_star_vector else com.simplemobiletools.commons.R.drawable.ic_star_outline_vector + if (medium.isFavorite) org.fossify.commons.R.drawable.ic_star_vector else org.fossify.commons.R.drawable.ic_star_outline_vector binding.bottomActions.bottomFavorite.setImageResource(favoriteIcon) val hideIcon = - if (medium.isHidden()) com.simplemobiletools.commons.R.drawable.ic_unhide_vector else com.simplemobiletools.commons.R.drawable.ic_hide_vector + if (medium.isHidden()) org.fossify.commons.R.drawable.ic_unhide_vector else org.fossify.commons.R.drawable.ic_hide_vector binding.bottomActions.bottomToggleFileVisibility.setImageResource(hideIcon) binding.bottomActions.bottomRotate.beVisibleIf(config.visibleBottomActions and BOTTOM_ACTION_ROTATE != 0 && getCurrentMedium()?.isImage() == true) @@ -992,7 +992,7 @@ class ViewPagerActivity : SimpleActivity(), ViewPager.OnPageChangeListener, View try { val resolution = path.getImageResolution(this) if (resolution == null) { - toast(com.simplemobiletools.commons.R.string.unknown_error_occurred) + toast(org.fossify.commons.R.string.unknown_error_occurred) return } @@ -1073,9 +1073,9 @@ class ViewPagerActivity : SimpleActivity(), ViewPager.OnPageChangeListener, View val isInRecycleBin = getCurrentMedium()!!.getIsInRecycleBin() val baseString = if (config.useRecycleBin && !config.tempSkipRecycleBin && !isInRecycleBin) { - com.simplemobiletools.commons.R.string.move_to_recycle_bin_confirmation + org.fossify.commons.R.string.move_to_recycle_bin_confirmation } else { - com.simplemobiletools.commons.R.string.deletion_confirmation + org.fossify.commons.R.string.deletion_confirmation } val message = String.format(resources.getString(baseString), filenameAndSize) @@ -1128,7 +1128,7 @@ class ViewPagerActivity : SimpleActivity(), ViewPager.OnPageChangeListener, View } } } else { - toast(com.simplemobiletools.commons.R.string.unknown_error_occurred) + toast(org.fossify.commons.R.string.unknown_error_occurred) } } } @@ -1186,7 +1186,7 @@ class ViewPagerActivity : SimpleActivity(), ViewPager.OnPageChangeListener, View val isSDOrOtgRootFolder = isAStorageRootFolder(oldPath.getParentPath()) && !oldPath.startsWith(internalStoragePath) if (isRPlus() && isSDOrOtgRootFolder && !isExternalStorageManager()) { - toast(com.simplemobiletools.commons.R.string.rename_in_sd_card_system_restriction, Toast.LENGTH_LONG) + toast(org.fossify.commons.R.string.rename_in_sd_card_system_restriction, Toast.LENGTH_LONG) return } @@ -1347,7 +1347,7 @@ class ViewPagerActivity : SimpleActivity(), ViewPager.OnPageChangeListener, View startActivityForResult(this, REQUEST_VIEW_VIDEO) } catch (e: ActivityNotFoundException) { if (!tryGenericMimeType(this, mimeType, newUri)) { - toast(com.simplemobiletools.commons.R.string.no_app_found) + toast(org.fossify.commons.R.string.no_app_found) } } catch (e: Exception) { showErrorToast(e) diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/WidgetConfigureActivity.kt b/app/src/main/kotlin/org/fossify/gallery/activities/WidgetConfigureActivity.kt similarity index 86% rename from app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/WidgetConfigureActivity.kt rename to app/src/main/kotlin/org/fossify/gallery/activities/WidgetConfigureActivity.kt index 7e93849f3..c29d5892e 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/WidgetConfigureActivity.kt +++ b/app/src/main/kotlin/org/fossify/gallery/activities/WidgetConfigureActivity.kt @@ -1,4 +1,4 @@ -package com.simplemobiletools.gallery.pro.activities +package org.fossify.gallery.activities import android.app.Activity import android.appwidget.AppWidgetManager @@ -9,17 +9,17 @@ import android.graphics.drawable.ColorDrawable import android.os.Bundle import android.widget.RemoteViews import com.bumptech.glide.signature.ObjectKey -import com.simplemobiletools.commons.dialogs.ColorPickerDialog -import com.simplemobiletools.commons.extensions.* -import com.simplemobiletools.commons.helpers.ensureBackgroundThread -import com.simplemobiletools.gallery.pro.R -import com.simplemobiletools.gallery.pro.databinding.ActivityWidgetConfigBinding -import com.simplemobiletools.gallery.pro.dialogs.PickDirectoryDialog -import com.simplemobiletools.gallery.pro.extensions.* -import com.simplemobiletools.gallery.pro.helpers.MyWidgetProvider -import com.simplemobiletools.gallery.pro.helpers.ROUNDED_CORNERS_NONE -import com.simplemobiletools.gallery.pro.models.Directory -import com.simplemobiletools.gallery.pro.models.Widget +import org.fossify.commons.dialogs.ColorPickerDialog +import org.fossify.commons.extensions.* +import org.fossify.commons.helpers.ensureBackgroundThread +import org.fossify.gallery.R +import org.fossify.gallery.databinding.ActivityWidgetConfigBinding +import org.fossify.gallery.dialogs.PickDirectoryDialog +import org.fossify.gallery.extensions.* +import org.fossify.gallery.helpers.MyWidgetProvider +import org.fossify.gallery.helpers.ROUNDED_CORNERS_NONE +import org.fossify.gallery.models.Directory +import org.fossify.gallery.models.Widget class WidgetConfigureActivity : SimpleActivity() { private var mBgAlpha = 0f @@ -88,8 +88,8 @@ class WidgetConfigureActivity : SimpleActivity() { updateBackgroundColor() mTextColor = config.widgetTextColor - if (mTextColor == resources.getColor(com.simplemobiletools.commons.R.color.default_widget_text_color) && config.isUsingSystemTheme) { - mTextColor = resources.getColor(com.simplemobiletools.commons.R.color.you_primary_color, theme) + if (mTextColor == resources.getColor(org.fossify.commons.R.color.default_widget_text_color) && config.isUsingSystemTheme) { + mTextColor = resources.getColor(org.fossify.commons.R.color.you_primary_color, theme) } updateTextColor() diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/adapters/DirectoryAdapter.kt b/app/src/main/kotlin/org/fossify/gallery/adapters/DirectoryAdapter.kt similarity index 93% rename from app/src/main/kotlin/com/simplemobiletools/gallery/pro/adapters/DirectoryAdapter.kt rename to app/src/main/kotlin/org/fossify/gallery/adapters/DirectoryAdapter.kt index 80809b34d..3810c0e28 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/adapters/DirectoryAdapter.kt +++ b/app/src/main/kotlin/org/fossify/gallery/adapters/DirectoryAdapter.kt @@ -1,4 +1,4 @@ -package com.simplemobiletools.gallery.pro.adapters +package org.fossify.gallery.adapters import android.content.Intent import android.content.pm.ShortcutInfo @@ -19,31 +19,31 @@ import androidx.swiperefreshlayout.widget.SwipeRefreshLayout import com.bumptech.glide.Glide import com.google.gson.Gson import com.qtalk.recyclerviewfastscroller.RecyclerViewFastScroller -import com.simplemobiletools.commons.activities.BaseSimpleActivity -import com.simplemobiletools.commons.adapters.MyRecyclerViewAdapter -import com.simplemobiletools.commons.dialogs.* -import com.simplemobiletools.commons.extensions.* -import com.simplemobiletools.commons.helpers.* -import com.simplemobiletools.commons.interfaces.ItemMoveCallback -import com.simplemobiletools.commons.interfaces.ItemTouchHelperContract -import com.simplemobiletools.commons.interfaces.StartReorderDragListener -import com.simplemobiletools.commons.models.FileDirItem -import com.simplemobiletools.commons.views.MyRecyclerView -import com.simplemobiletools.gallery.pro.R -import com.simplemobiletools.gallery.pro.activities.MediaActivity -import com.simplemobiletools.gallery.pro.databinding.DirectoryItemGridRoundedCornersBinding -import com.simplemobiletools.gallery.pro.databinding.DirectoryItemGridSquareBinding -import com.simplemobiletools.gallery.pro.databinding.DirectoryItemListBinding -import com.simplemobiletools.gallery.pro.dialogs.ConfirmDeleteFolderDialog -import com.simplemobiletools.gallery.pro.dialogs.ExcludeFolderDialog -import com.simplemobiletools.gallery.pro.dialogs.PickMediumDialog -import com.simplemobiletools.gallery.pro.extensions.* -import com.simplemobiletools.gallery.pro.helpers.* -import com.simplemobiletools.gallery.pro.interfaces.DirectoryOperationsListener -import com.simplemobiletools.gallery.pro.models.AlbumCover -import com.simplemobiletools.gallery.pro.models.Directory +import org.fossify.commons.activities.BaseSimpleActivity +import org.fossify.commons.adapters.MyRecyclerViewAdapter +import org.fossify.commons.dialogs.* +import org.fossify.commons.extensions.* +import org.fossify.commons.helpers.* +import org.fossify.commons.interfaces.ItemMoveCallback +import org.fossify.commons.interfaces.ItemTouchHelperContract +import org.fossify.commons.interfaces.StartReorderDragListener +import org.fossify.commons.models.FileDirItem +import org.fossify.commons.views.MyRecyclerView +import org.fossify.gallery.R +import org.fossify.gallery.activities.MediaActivity +import org.fossify.gallery.databinding.DirectoryItemGridRoundedCornersBinding +import org.fossify.gallery.databinding.DirectoryItemGridSquareBinding +import org.fossify.gallery.databinding.DirectoryItemListBinding +import org.fossify.gallery.dialogs.ConfirmDeleteFolderDialog +import org.fossify.gallery.dialogs.ExcludeFolderDialog +import org.fossify.gallery.dialogs.PickMediumDialog +import org.fossify.gallery.extensions.* +import org.fossify.gallery.helpers.* +import org.fossify.gallery.interfaces.DirectoryOperationsListener +import org.fossify.gallery.models.AlbumCover +import org.fossify.gallery.models.Directory import java.io.File -import java.util.* +import java.util.Collections class DirectoryAdapter( activity: BaseSimpleActivity, var dirs: ArrayList, val listener: DirectoryOperationsListener?, recyclerView: MyRecyclerView, @@ -242,7 +242,7 @@ class DirectoryAdapter( val sourcePath = firstDir.path val dir = File(sourcePath) if (activity.isAStorageRootFolder(dir.absolutePath)) { - activity.toast(com.simplemobiletools.commons.R.string.rename_folder_root) + activity.toast(org.fossify.commons.R.string.rename_folder_root) return } @@ -297,7 +297,7 @@ class DirectoryAdapter( } } else { if (selectedPaths.any { it.isThisOrParentFolderHidden() }) { - ConfirmationDialog(activity, "", R.string.cant_unhide_folder, com.simplemobiletools.commons.R.string.ok, 0) {} + ConfirmationDialog(activity, "", R.string.cant_unhide_folder, org.fossify.commons.R.string.ok, 0) {} return } @@ -596,9 +596,9 @@ class DirectoryAdapter( ConfirmationDialog( activity, "", - com.simplemobiletools.commons.R.string.empty_recycle_bin_confirmation, - com.simplemobiletools.commons.R.string.yes, - com.simplemobiletools.commons.R.string.no + org.fossify.commons.R.string.empty_recycle_bin_confirmation, + org.fossify.commons.R.string.yes, + org.fossify.commons.R.string.no ) { deleteFolders() } @@ -609,18 +609,18 @@ class DirectoryAdapter( val folder = getSelectedPaths().first().getFilenameFromPath() "\"$folder\"" } else { - resources.getQuantityString(com.simplemobiletools.commons.R.plurals.delete_items, itemsCnt, itemsCnt) + resources.getQuantityString(org.fossify.commons.R.plurals.delete_items, itemsCnt, itemsCnt) } val fileDirItem = getFirstSelectedItem() ?: return val baseString = if (!config.useRecycleBin || config.tempSkipRecycleBin || (isOneItemSelected() && fileDirItem.areFavorites())) { - com.simplemobiletools.commons.R.string.deletion_confirmation + org.fossify.commons.R.string.deletion_confirmation } else { - com.simplemobiletools.commons.R.string.move_to_recycle_bin_confirmation + org.fossify.commons.R.string.move_to_recycle_bin_confirmation } val question = String.format(resources.getString(baseString), items) - val warning = resources.getQuantityString(com.simplemobiletools.commons.R.plurals.delete_warning, itemsCnt, itemsCnt) + val warning = resources.getQuantityString(org.fossify.commons.R.plurals.delete_warning, itemsCnt, itemsCnt) ConfirmDeleteFolderDialog(activity, question, warning) { deleteFolders() } @@ -834,7 +834,7 @@ class DirectoryAdapter( dirPin.beVisibleIf(pinnedFolders.contains(directory.path)) dirLocation.beVisibleIf(directory.location != LOCATION_INTERNAL) if (dirLocation.isVisible()) { - dirLocation.setImageResource(if (directory.location == LOCATION_SD) com.simplemobiletools.commons.R.drawable.ic_sd_card_vector else com.simplemobiletools.commons.R.drawable.ic_usb_vector) + dirLocation.setImageResource(if (directory.location == LOCATION_SD) org.fossify.commons.R.drawable.ic_sd_card_vector else org.fossify.commons.R.drawable.ic_usb_vector) } photoCnt.text = directory.subfoldersMediaCount.toString() diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/adapters/DirectoryItemBinding.kt b/app/src/main/kotlin/org/fossify/gallery/adapters/DirectoryItemBinding.kt similarity index 89% rename from app/src/main/kotlin/com/simplemobiletools/gallery/pro/adapters/DirectoryItemBinding.kt rename to app/src/main/kotlin/org/fossify/gallery/adapters/DirectoryItemBinding.kt index bd91efdf6..b0fb7f665 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/adapters/DirectoryItemBinding.kt +++ b/app/src/main/kotlin/org/fossify/gallery/adapters/DirectoryItemBinding.kt @@ -1,12 +1,12 @@ -package com.simplemobiletools.gallery.pro.adapters +package org.fossify.gallery.adapters import android.view.ViewGroup import android.widget.ImageView import android.widget.TextView -import com.simplemobiletools.commons.views.MySquareImageView -import com.simplemobiletools.gallery.pro.databinding.DirectoryItemGridRoundedCornersBinding -import com.simplemobiletools.gallery.pro.databinding.DirectoryItemGridSquareBinding -import com.simplemobiletools.gallery.pro.databinding.DirectoryItemListBinding +import org.fossify.commons.views.MySquareImageView +import org.fossify.gallery.databinding.DirectoryItemGridRoundedCornersBinding +import org.fossify.gallery.databinding.DirectoryItemGridSquareBinding +import org.fossify.gallery.databinding.DirectoryItemListBinding interface DirectoryItemBinding { val root: ViewGroup diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/adapters/FiltersAdapter.kt b/app/src/main/kotlin/org/fossify/gallery/adapters/FiltersAdapter.kt similarity index 89% rename from app/src/main/kotlin/com/simplemobiletools/gallery/pro/adapters/FiltersAdapter.kt rename to app/src/main/kotlin/org/fossify/gallery/adapters/FiltersAdapter.kt index e32bccea5..8c26459f8 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/adapters/FiltersAdapter.kt +++ b/app/src/main/kotlin/org/fossify/gallery/adapters/FiltersAdapter.kt @@ -1,13 +1,13 @@ -package com.simplemobiletools.gallery.pro.adapters +package org.fossify.gallery.adapters import android.content.Context import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import androidx.recyclerview.widget.RecyclerView -import com.simplemobiletools.gallery.pro.R -import com.simplemobiletools.gallery.pro.databinding.EditorFilterItemBinding -import com.simplemobiletools.gallery.pro.models.FilterItem +import org.fossify.gallery.R +import org.fossify.gallery.databinding.EditorFilterItemBinding +import org.fossify.gallery.models.FilterItem class FiltersAdapter(val context: Context, val filterItems: ArrayList, val itemClick: (Int) -> Unit) : RecyclerView.Adapter() { diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/adapters/ManageFoldersAdapter.kt b/app/src/main/kotlin/org/fossify/gallery/adapters/ManageFoldersAdapter.kt similarity index 80% rename from app/src/main/kotlin/com/simplemobiletools/gallery/pro/adapters/ManageFoldersAdapter.kt rename to app/src/main/kotlin/org/fossify/gallery/adapters/ManageFoldersAdapter.kt index d83cb288d..31e0a6457 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/adapters/ManageFoldersAdapter.kt +++ b/app/src/main/kotlin/org/fossify/gallery/adapters/ManageFoldersAdapter.kt @@ -1,16 +1,16 @@ -package com.simplemobiletools.gallery.pro.adapters +package org.fossify.gallery.adapters import android.view.* import android.widget.PopupMenu -import com.simplemobiletools.commons.activities.BaseSimpleActivity -import com.simplemobiletools.commons.adapters.MyRecyclerViewAdapter -import com.simplemobiletools.commons.extensions.getPopupMenuTheme -import com.simplemobiletools.commons.extensions.getProperTextColor -import com.simplemobiletools.commons.extensions.setupViewBackground -import com.simplemobiletools.commons.interfaces.RefreshRecyclerViewListener -import com.simplemobiletools.commons.views.MyRecyclerView -import com.simplemobiletools.gallery.pro.databinding.ItemManageFolderBinding -import com.simplemobiletools.gallery.pro.extensions.config +import org.fossify.commons.activities.BaseSimpleActivity +import org.fossify.commons.adapters.MyRecyclerViewAdapter +import org.fossify.commons.extensions.getPopupMenuTheme +import org.fossify.commons.extensions.getProperTextColor +import org.fossify.commons.extensions.setupViewBackground +import org.fossify.commons.interfaces.RefreshRecyclerViewListener +import org.fossify.commons.views.MyRecyclerView +import org.fossify.gallery.databinding.ItemManageFolderBinding +import org.fossify.gallery.extensions.config class ManageFoldersAdapter( activity: BaseSimpleActivity, var folders: ArrayList, val isShowingExcludedFolders: Boolean, val listener: RefreshRecyclerViewListener?, @@ -23,13 +23,13 @@ class ManageFoldersAdapter( setupDragListener(true) } - override fun getActionMenuId() = com.simplemobiletools.commons.R.menu.cab_remove_only + override fun getActionMenuId() = org.fossify.commons.R.menu.cab_remove_only override fun prepareActionMode(menu: Menu) {} override fun actionItemPressed(id: Int) { when (id) { - com.simplemobiletools.commons.R.id.cab_remove -> removeSelection() + org.fossify.commons.R.id.cab_remove -> removeSelection() } } @@ -91,7 +91,7 @@ class ManageFoldersAdapter( setOnMenuItemClickListener { item -> val eventTypeId = folder.hashCode() when (item.itemId) { - com.simplemobiletools.commons.R.id.cab_remove -> { + org.fossify.commons.R.id.cab_remove -> { executeItemMenuOperation(eventTypeId) { removeSelection() } diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/adapters/ManageHiddenFoldersAdapter.kt b/app/src/main/kotlin/org/fossify/gallery/adapters/ManageHiddenFoldersAdapter.kt similarity index 81% rename from app/src/main/kotlin/com/simplemobiletools/gallery/pro/adapters/ManageHiddenFoldersAdapter.kt rename to app/src/main/kotlin/org/fossify/gallery/adapters/ManageHiddenFoldersAdapter.kt index 41e10fe44..04c6fe32e 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/adapters/ManageHiddenFoldersAdapter.kt +++ b/app/src/main/kotlin/org/fossify/gallery/adapters/ManageHiddenFoldersAdapter.kt @@ -1,18 +1,18 @@ -package com.simplemobiletools.gallery.pro.adapters +package org.fossify.gallery.adapters import android.view.Menu import android.view.View import android.view.ViewGroup -import com.simplemobiletools.commons.activities.BaseSimpleActivity -import com.simplemobiletools.commons.adapters.MyRecyclerViewAdapter -import com.simplemobiletools.commons.extensions.getProperTextColor -import com.simplemobiletools.commons.extensions.isPathOnSD -import com.simplemobiletools.commons.extensions.setupViewBackground -import com.simplemobiletools.commons.interfaces.RefreshRecyclerViewListener -import com.simplemobiletools.commons.views.MyRecyclerView -import com.simplemobiletools.gallery.pro.R -import com.simplemobiletools.gallery.pro.databinding.ItemManageFolderBinding -import com.simplemobiletools.gallery.pro.extensions.removeNoMedia +import org.fossify.commons.activities.BaseSimpleActivity +import org.fossify.commons.adapters.MyRecyclerViewAdapter +import org.fossify.commons.extensions.getProperTextColor +import org.fossify.commons.extensions.isPathOnSD +import org.fossify.commons.extensions.setupViewBackground +import org.fossify.commons.interfaces.RefreshRecyclerViewListener +import org.fossify.commons.views.MyRecyclerView +import org.fossify.gallery.R +import org.fossify.gallery.databinding.ItemManageFolderBinding +import org.fossify.gallery.extensions.removeNoMedia class ManageHiddenFoldersAdapter( activity: BaseSimpleActivity, var folders: ArrayList, val listener: RefreshRecyclerViewListener?, diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/adapters/MediaAdapter.kt b/app/src/main/kotlin/org/fossify/gallery/adapters/MediaAdapter.kt similarity index 93% rename from app/src/main/kotlin/com/simplemobiletools/gallery/pro/adapters/MediaAdapter.kt rename to app/src/main/kotlin/org/fossify/gallery/adapters/MediaAdapter.kt index 5e4adefb9..07f7f91b8 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/adapters/MediaAdapter.kt +++ b/app/src/main/kotlin/org/fossify/gallery/adapters/MediaAdapter.kt @@ -1,4 +1,4 @@ -package com.simplemobiletools.gallery.pro.adapters +package org.fossify.gallery.adapters import android.content.Intent import android.content.pm.ShortcutInfo @@ -13,25 +13,25 @@ import android.widget.Toast import androidx.core.view.allViews import com.bumptech.glide.Glide import com.qtalk.recyclerviewfastscroller.RecyclerViewFastScroller -import com.simplemobiletools.commons.activities.BaseSimpleActivity -import com.simplemobiletools.commons.adapters.MyRecyclerViewAdapter -import com.simplemobiletools.commons.dialogs.PropertiesDialog -import com.simplemobiletools.commons.dialogs.RenameDialog -import com.simplemobiletools.commons.dialogs.RenameItemDialog -import com.simplemobiletools.commons.extensions.* -import com.simplemobiletools.commons.helpers.* -import com.simplemobiletools.commons.models.FileDirItem -import com.simplemobiletools.commons.views.MyRecyclerView -import com.simplemobiletools.gallery.pro.R -import com.simplemobiletools.gallery.pro.activities.ViewPagerActivity -import com.simplemobiletools.gallery.pro.databinding.* -import com.simplemobiletools.gallery.pro.dialogs.DeleteWithRememberDialog -import com.simplemobiletools.gallery.pro.extensions.* -import com.simplemobiletools.gallery.pro.helpers.* -import com.simplemobiletools.gallery.pro.interfaces.MediaOperationsListener -import com.simplemobiletools.gallery.pro.models.Medium -import com.simplemobiletools.gallery.pro.models.ThumbnailItem -import com.simplemobiletools.gallery.pro.models.ThumbnailSection +import org.fossify.commons.activities.BaseSimpleActivity +import org.fossify.commons.adapters.MyRecyclerViewAdapter +import org.fossify.commons.dialogs.PropertiesDialog +import org.fossify.commons.dialogs.RenameDialog +import org.fossify.commons.dialogs.RenameItemDialog +import org.fossify.commons.extensions.* +import org.fossify.commons.helpers.* +import org.fossify.commons.models.FileDirItem +import org.fossify.commons.views.MyRecyclerView +import org.fossify.gallery.R +import org.fossify.gallery.activities.ViewPagerActivity +import org.fossify.gallery.databinding.* +import org.fossify.gallery.dialogs.DeleteWithRememberDialog +import org.fossify.gallery.extensions.* +import org.fossify.gallery.helpers.* +import org.fossify.gallery.interfaces.MediaOperationsListener +import org.fossify.gallery.models.Medium +import org.fossify.gallery.models.ThumbnailItem +import org.fossify.gallery.models.ThumbnailSection class MediaAdapter( activity: BaseSimpleActivity, var media: ArrayList, val listener: MediaOperationsListener?, val isAGetIntent: Boolean, @@ -241,7 +241,7 @@ class MediaAdapter( val isSDOrOtgRootFolder = activity.isAStorageRootFolder(firstPath.getParentPath()) && !firstPath.startsWith(activity.internalStoragePath) if (isRPlus() && isSDOrOtgRootFolder && !isExternalStorageManager()) { - activity.toast(com.simplemobiletools.commons.R.string.rename_in_sd_card_system_restriction, Toast.LENGTH_LONG) + activity.toast(org.fossify.commons.R.string.rename_in_sd_card_system_restriction, Toast.LENGTH_LONG) finishActMode() return } @@ -353,7 +353,7 @@ class MediaAdapter( private fun handleRotate(paths: List, degrees: Int) { var fileCnt = paths.size rotatedImagePaths.clear() - activity.toast(com.simplemobiletools.commons.R.string.saving) + activity.toast(org.fossify.commons.R.string.saving) ensureBackgroundThread { paths.forEach { rotatedImagePaths.add(it) @@ -405,7 +405,7 @@ class MediaAdapter( }.toMutableList() as ArrayList if (!isCopyOperation && paths.any { it.startsWith(recycleBinPath) }) { - activity.toast(com.simplemobiletools.commons.R.string.moving_recycle_bin_items_disabled, Toast.LENGTH_LONG) + activity.toast(org.fossify.commons.R.string.moving_recycle_bin_items_disabled, Toast.LENGTH_LONG) } if (fileDirItems.isEmpty()) { @@ -499,13 +499,13 @@ class MediaAdapter( fileDirItems.add(curFileDirItem) } val fileSize = fileDirItems.sumByLong { it.getProperSize(activity, countHidden = true) }.formatSize() - val deleteItemsString = resources.getQuantityString(com.simplemobiletools.commons.R.plurals.delete_items, itemsCnt, itemsCnt) + val deleteItemsString = resources.getQuantityString(org.fossify.commons.R.plurals.delete_items, itemsCnt, itemsCnt) "$deleteItemsString ($fileSize)" } val isRecycleBin = firstPath.startsWith(activity.recycleBinPath) val baseString = - if (config.useRecycleBin && !config.tempSkipRecycleBin && !isRecycleBin) com.simplemobiletools.commons.R.string.move_to_recycle_bin_confirmation else com.simplemobiletools.commons.R.string.deletion_confirmation + if (config.useRecycleBin && !config.tempSkipRecycleBin && !isRecycleBin) org.fossify.commons.R.string.move_to_recycle_bin_confirmation else org.fossify.commons.R.string.deletion_confirmation val question = String.format(resources.getString(baseString), itemsAndSize) val showSkipRecycleBinOption = config.useRecycleBin && !isRecycleBin @@ -619,7 +619,7 @@ class MediaAdapter( playPortraitOutline?.beVisibleIf(medium.isVideo() || medium.isPortrait()) if (medium.isVideo()) { - playPortraitOutline?.setImageResource(com.simplemobiletools.commons.R.drawable.ic_play_outline_vector) + playPortraitOutline?.setImageResource(org.fossify.commons.R.drawable.ic_play_outline_vector) playPortraitOutline?.beVisible() } else if (medium.isPortrait()) { playPortraitOutline?.setImageResource(R.drawable.ic_portrait_photo_vector) diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/adapters/MediaItemBinding.kt b/app/src/main/kotlin/org/fossify/gallery/adapters/MediaItemBinding.kt similarity index 86% rename from app/src/main/kotlin/com/simplemobiletools/gallery/pro/adapters/MediaItemBinding.kt rename to app/src/main/kotlin/org/fossify/gallery/adapters/MediaItemBinding.kt index 6f3db6b27..56866e711 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/adapters/MediaItemBinding.kt +++ b/app/src/main/kotlin/org/fossify/gallery/adapters/MediaItemBinding.kt @@ -1,13 +1,13 @@ -package com.simplemobiletools.gallery.pro.adapters +package org.fossify.gallery.adapters import android.view.ViewGroup import android.widget.ImageView import android.widget.TextView -import com.simplemobiletools.commons.views.MySquareImageView -import com.simplemobiletools.gallery.pro.databinding.PhotoItemGridBinding -import com.simplemobiletools.gallery.pro.databinding.PhotoItemListBinding -import com.simplemobiletools.gallery.pro.databinding.VideoItemGridBinding -import com.simplemobiletools.gallery.pro.databinding.VideoItemListBinding +import org.fossify.commons.views.MySquareImageView +import org.fossify.gallery.databinding.PhotoItemGridBinding +import org.fossify.gallery.databinding.PhotoItemListBinding +import org.fossify.gallery.databinding.VideoItemGridBinding +import org.fossify.gallery.databinding.VideoItemListBinding interface MediaItemBinding { val root: ViewGroup @@ -53,7 +53,7 @@ class VideoListMediaItemBinding(val binding: VideoItemListBinding) : MediaItemBi override val root: ViewGroup = binding.root override val mediaItemHolder: ViewGroup = binding.mediaItemHolder override val favorite: ImageView = binding.favorite - override val playPortraitOutline: ImageView? = binding.playPortraitOutline + override val playPortraitOutline: ImageView = binding.playPortraitOutline override val fileType: TextView? = null override val mediumName: TextView = binding.mediumName override val videoDuration: TextView = binding.videoDuration diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/adapters/MyPagerAdapter.kt b/app/src/main/kotlin/org/fossify/gallery/adapters/MyPagerAdapter.kt similarity index 80% rename from app/src/main/kotlin/com/simplemobiletools/gallery/pro/adapters/MyPagerAdapter.kt rename to app/src/main/kotlin/org/fossify/gallery/adapters/MyPagerAdapter.kt index 02be99de0..b95564e52 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/adapters/MyPagerAdapter.kt +++ b/app/src/main/kotlin/org/fossify/gallery/adapters/MyPagerAdapter.kt @@ -1,4 +1,4 @@ -package com.simplemobiletools.gallery.pro.adapters +package org.fossify.gallery.adapters import android.os.Bundle import android.os.Parcelable @@ -7,13 +7,13 @@ import androidx.fragment.app.Fragment import androidx.fragment.app.FragmentManager import androidx.fragment.app.FragmentStatePagerAdapter import androidx.viewpager.widget.PagerAdapter -import com.simplemobiletools.gallery.pro.activities.ViewPagerActivity -import com.simplemobiletools.gallery.pro.fragments.PhotoFragment -import com.simplemobiletools.gallery.pro.fragments.VideoFragment -import com.simplemobiletools.gallery.pro.fragments.ViewPagerFragment -import com.simplemobiletools.gallery.pro.helpers.MEDIUM -import com.simplemobiletools.gallery.pro.helpers.SHOULD_INIT_FRAGMENT -import com.simplemobiletools.gallery.pro.models.Medium +import org.fossify.gallery.activities.ViewPagerActivity +import org.fossify.gallery.fragments.PhotoFragment +import org.fossify.gallery.fragments.VideoFragment +import org.fossify.gallery.fragments.ViewPagerFragment +import org.fossify.gallery.helpers.MEDIUM +import org.fossify.gallery.helpers.SHOULD_INIT_FRAGMENT +import org.fossify.gallery.models.Medium class MyPagerAdapter(val activity: ViewPagerActivity, fm: FragmentManager, val media: MutableList) : FragmentStatePagerAdapter(fm) { private val fragments = HashMap() diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/adapters/PortraitPhotosAdapter.kt b/app/src/main/kotlin/org/fossify/gallery/adapters/PortraitPhotosAdapter.kt similarity index 93% rename from app/src/main/kotlin/com/simplemobiletools/gallery/pro/adapters/PortraitPhotosAdapter.kt rename to app/src/main/kotlin/org/fossify/gallery/adapters/PortraitPhotosAdapter.kt index f626a69b1..b20a07615 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/adapters/PortraitPhotosAdapter.kt +++ b/app/src/main/kotlin/org/fossify/gallery/adapters/PortraitPhotosAdapter.kt @@ -1,4 +1,4 @@ -package com.simplemobiletools.gallery.pro.adapters +package org.fossify.gallery.adapters import android.content.Context import android.view.LayoutInflater @@ -10,9 +10,9 @@ import com.bumptech.glide.load.engine.DiskCacheStrategy import com.bumptech.glide.load.resource.drawable.DrawableTransitionOptions import com.bumptech.glide.request.RequestOptions import com.bumptech.glide.signature.ObjectKey -import com.simplemobiletools.commons.extensions.getFileKey -import com.simplemobiletools.gallery.pro.R -import com.simplemobiletools.gallery.pro.databinding.PortraitPhotoItemBinding +import org.fossify.commons.extensions.getFileKey +import org.fossify.gallery.R +import org.fossify.gallery.databinding.PortraitPhotoItemBinding class PortraitPhotosAdapter(val context: Context, val photos: ArrayList, val sideElementWidth: Int, val itemClick: (Int, Int) -> Unit) : RecyclerView.Adapter() { diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/asynctasks/GetMediaAsynctask.kt b/app/src/main/kotlin/org/fossify/gallery/asynctasks/GetMediaAsynctask.kt similarity index 82% rename from app/src/main/kotlin/com/simplemobiletools/gallery/pro/asynctasks/GetMediaAsynctask.kt rename to app/src/main/kotlin/org/fossify/gallery/asynctasks/GetMediaAsynctask.kt index bac04000f..dab4202b0 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/asynctasks/GetMediaAsynctask.kt +++ b/app/src/main/kotlin/org/fossify/gallery/asynctasks/GetMediaAsynctask.kt @@ -1,16 +1,16 @@ -package com.simplemobiletools.gallery.pro.asynctasks +package org.fossify.gallery.asynctasks import android.content.Context import android.os.AsyncTask -import com.simplemobiletools.commons.helpers.FAVORITES -import com.simplemobiletools.commons.helpers.SORT_BY_DATE_MODIFIED -import com.simplemobiletools.commons.helpers.SORT_BY_DATE_TAKEN -import com.simplemobiletools.commons.helpers.SORT_BY_SIZE -import com.simplemobiletools.gallery.pro.extensions.config -import com.simplemobiletools.gallery.pro.extensions.getFavoritePaths -import com.simplemobiletools.gallery.pro.helpers.* -import com.simplemobiletools.gallery.pro.models.Medium -import com.simplemobiletools.gallery.pro.models.ThumbnailItem +import org.fossify.commons.helpers.FAVORITES +import org.fossify.commons.helpers.SORT_BY_DATE_MODIFIED +import org.fossify.commons.helpers.SORT_BY_DATE_TAKEN +import org.fossify.commons.helpers.SORT_BY_SIZE +import org.fossify.gallery.extensions.config +import org.fossify.gallery.extensions.getFavoritePaths +import org.fossify.gallery.helpers.* +import org.fossify.gallery.models.Medium +import org.fossify.gallery.models.ThumbnailItem class GetMediaAsynctask( val context: Context, val mPath: String, val isPickImage: Boolean = false, val isPickVideo: Boolean = false, diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/databases/GalleryDatabase.kt b/app/src/main/kotlin/org/fossify/gallery/databases/GalleryDatabase.kt similarity index 96% rename from app/src/main/kotlin/com/simplemobiletools/gallery/pro/databases/GalleryDatabase.kt rename to app/src/main/kotlin/org/fossify/gallery/databases/GalleryDatabase.kt index 18a7d7a7d..80a10ecd6 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/databases/GalleryDatabase.kt +++ b/app/src/main/kotlin/org/fossify/gallery/databases/GalleryDatabase.kt @@ -1,4 +1,4 @@ -package com.simplemobiletools.gallery.pro.databases +package org.fossify.gallery.databases import android.content.Context import androidx.room.Database @@ -6,8 +6,8 @@ import androidx.room.Room import androidx.room.RoomDatabase import androidx.room.migration.Migration import androidx.sqlite.db.SupportSQLiteDatabase -import com.simplemobiletools.gallery.pro.interfaces.* -import com.simplemobiletools.gallery.pro.models.* +import org.fossify.gallery.interfaces.* +import org.fossify.gallery.models.* @Database(entities = [Directory::class, Medium::class, Widget::class, DateTaken::class, Favorite::class], version = 10) abstract class GalleryDatabase : RoomDatabase() { diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/dialogs/AllFilesPermissionDialog.kt b/app/src/main/kotlin/org/fossify/gallery/dialogs/AllFilesPermissionDialog.kt similarity index 67% rename from app/src/main/kotlin/com/simplemobiletools/gallery/pro/dialogs/AllFilesPermissionDialog.kt rename to app/src/main/kotlin/org/fossify/gallery/dialogs/AllFilesPermissionDialog.kt index 6526d7390..62d7001c7 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/dialogs/AllFilesPermissionDialog.kt +++ b/app/src/main/kotlin/org/fossify/gallery/dialogs/AllFilesPermissionDialog.kt @@ -1,11 +1,11 @@ -package com.simplemobiletools.gallery.pro.dialogs +package org.fossify.gallery.dialogs import android.widget.TextView import androidx.appcompat.app.AlertDialog -import com.simplemobiletools.commons.activities.BaseSimpleActivity -import com.simplemobiletools.commons.extensions.getAlertDialogBuilder -import com.simplemobiletools.commons.extensions.setupDialogStuff -import com.simplemobiletools.gallery.pro.R +import org.fossify.commons.activities.BaseSimpleActivity +import org.fossify.commons.extensions.getAlertDialogBuilder +import org.fossify.commons.extensions.setupDialogStuff +import org.fossify.gallery.R class AllFilesPermissionDialog( val activity: BaseSimpleActivity, message: String = "", val callback: (result: Boolean) -> Unit, val neutralPressed: () -> Unit @@ -13,7 +13,7 @@ class AllFilesPermissionDialog( private var dialog: AlertDialog? = null init { - val view = activity.layoutInflater.inflate(com.simplemobiletools.commons.R.layout.dialog_message, null) + val view = activity.layoutInflater.inflate(org.fossify.commons.R.layout.dialog_message, null) view.findViewById(R.id.message).text = message activity.getAlertDialogBuilder().setPositiveButton(R.string.all_files) { dialog, which -> positivePressed() } diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/dialogs/ChangeFileThumbnailStyleDialog.kt b/app/src/main/kotlin/org/fossify/gallery/dialogs/ChangeFileThumbnailStyleDialog.kt similarity index 79% rename from app/src/main/kotlin/com/simplemobiletools/gallery/pro/dialogs/ChangeFileThumbnailStyleDialog.kt rename to app/src/main/kotlin/org/fossify/gallery/dialogs/ChangeFileThumbnailStyleDialog.kt index 0429f05e1..7a8b7b527 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/dialogs/ChangeFileThumbnailStyleDialog.kt +++ b/app/src/main/kotlin/org/fossify/gallery/dialogs/ChangeFileThumbnailStyleDialog.kt @@ -1,13 +1,13 @@ -package com.simplemobiletools.gallery.pro.dialogs +package org.fossify.gallery.dialogs import android.content.DialogInterface -import com.simplemobiletools.commons.activities.BaseSimpleActivity -import com.simplemobiletools.commons.dialogs.RadioGroupDialog -import com.simplemobiletools.commons.extensions.getAlertDialogBuilder -import com.simplemobiletools.commons.extensions.setupDialogStuff -import com.simplemobiletools.commons.models.RadioItem -import com.simplemobiletools.gallery.pro.databinding.DialogChangeFileThumbnailStyleBinding -import com.simplemobiletools.gallery.pro.extensions.config +import org.fossify.commons.activities.BaseSimpleActivity +import org.fossify.commons.dialogs.RadioGroupDialog +import org.fossify.commons.extensions.getAlertDialogBuilder +import org.fossify.commons.extensions.setupDialogStuff +import org.fossify.commons.models.RadioItem +import org.fossify.gallery.databinding.DialogChangeFileThumbnailStyleBinding +import org.fossify.gallery.extensions.config class ChangeFileThumbnailStyleDialog(val activity: BaseSimpleActivity) : DialogInterface.OnClickListener { private var config = activity.config @@ -48,8 +48,8 @@ class ChangeFileThumbnailStyleDialog(val activity: BaseSimpleActivity) : DialogI updateThumbnailSpacingText() activity.getAlertDialogBuilder() - .setPositiveButton(com.simplemobiletools.commons.R.string.ok, this) - .setNegativeButton(com.simplemobiletools.commons.R.string.cancel, null) + .setPositiveButton(org.fossify.commons.R.string.ok, this) + .setNegativeButton(org.fossify.commons.R.string.cancel, null) .apply { activity.setupDialogStuff(binding.root, this) } diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/dialogs/ChangeFolderThumbnailStyleDialog.kt b/app/src/main/kotlin/org/fossify/gallery/dialogs/ChangeFolderThumbnailStyleDialog.kt similarity index 83% rename from app/src/main/kotlin/com/simplemobiletools/gallery/pro/dialogs/ChangeFolderThumbnailStyleDialog.kt rename to app/src/main/kotlin/org/fossify/gallery/dialogs/ChangeFolderThumbnailStyleDialog.kt index 06173bafa..f4d3db198 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/dialogs/ChangeFolderThumbnailStyleDialog.kt +++ b/app/src/main/kotlin/org/fossify/gallery/dialogs/ChangeFolderThumbnailStyleDialog.kt @@ -1,4 +1,4 @@ -package com.simplemobiletools.gallery.pro.dialogs +package org.fossify.gallery.dialogs import android.content.DialogInterface import android.widget.RelativeLayout @@ -6,15 +6,15 @@ import com.bumptech.glide.Glide import com.bumptech.glide.load.resource.bitmap.CenterCrop import com.bumptech.glide.load.resource.bitmap.RoundedCorners import com.bumptech.glide.request.RequestOptions -import com.simplemobiletools.commons.activities.BaseSimpleActivity -import com.simplemobiletools.commons.extensions.* -import com.simplemobiletools.gallery.pro.R -import com.simplemobiletools.gallery.pro.adapters.toItemBinding -import com.simplemobiletools.gallery.pro.databinding.DialogChangeFolderThumbnailStyleBinding -import com.simplemobiletools.gallery.pro.databinding.DirectoryItemGridRoundedCornersBinding -import com.simplemobiletools.gallery.pro.databinding.DirectoryItemGridSquareBinding -import com.simplemobiletools.gallery.pro.extensions.config -import com.simplemobiletools.gallery.pro.helpers.* +import org.fossify.commons.activities.BaseSimpleActivity +import org.fossify.commons.extensions.* +import org.fossify.gallery.R +import org.fossify.gallery.adapters.toItemBinding +import org.fossify.gallery.databinding.DialogChangeFolderThumbnailStyleBinding +import org.fossify.gallery.databinding.DirectoryItemGridRoundedCornersBinding +import org.fossify.gallery.databinding.DirectoryItemGridSquareBinding +import org.fossify.gallery.extensions.config +import org.fossify.gallery.helpers.* class ChangeFolderThumbnailStyleDialog(val activity: BaseSimpleActivity, val callback: () -> Unit) : DialogInterface.OnClickListener { private var config = activity.config @@ -24,8 +24,8 @@ class ChangeFolderThumbnailStyleDialog(val activity: BaseSimpleActivity, val cal init { activity.getAlertDialogBuilder() - .setPositiveButton(com.simplemobiletools.commons.R.string.ok, this) - .setNegativeButton(com.simplemobiletools.commons.R.string.cancel, null) + .setPositiveButton(org.fossify.commons.R.string.ok, this) + .setNegativeButton(org.fossify.commons.R.string.cancel, null) .apply { activity.setupDialogStuff(binding.root, this) { setupStyle() @@ -106,7 +106,7 @@ class ChangeFolderThumbnailStyleDialog(val activity: BaseSimpleActivity, val cal .apply(options) if (useRoundedCornersLayout) { - val cornerRadius = root.resources.getDimension(com.simplemobiletools.commons.R.dimen.rounded_corner_radius_big).toInt() + val cornerRadius = root.resources.getDimension(org.fossify.commons.R.dimen.rounded_corner_radius_big).toInt() builder = builder.transform(CenterCrop(), RoundedCorners(cornerRadius)) sampleBinding.dirName.setTextColor(activity.getProperTextColor()) sampleBinding.photoCnt.setTextColor(activity.getProperTextColor()) diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/dialogs/ChangeGroupingDialog.kt b/app/src/main/kotlin/org/fossify/gallery/dialogs/ChangeGroupingDialog.kt similarity index 83% rename from app/src/main/kotlin/com/simplemobiletools/gallery/pro/dialogs/ChangeGroupingDialog.kt rename to app/src/main/kotlin/org/fossify/gallery/dialogs/ChangeGroupingDialog.kt index e76fb6bde..f47e2284b 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/dialogs/ChangeGroupingDialog.kt +++ b/app/src/main/kotlin/org/fossify/gallery/dialogs/ChangeGroupingDialog.kt @@ -1,14 +1,14 @@ -package com.simplemobiletools.gallery.pro.dialogs +package org.fossify.gallery.dialogs import android.content.DialogInterface -import com.simplemobiletools.commons.activities.BaseSimpleActivity -import com.simplemobiletools.commons.extensions.beVisibleIf -import com.simplemobiletools.commons.extensions.getAlertDialogBuilder -import com.simplemobiletools.commons.extensions.setupDialogStuff -import com.simplemobiletools.gallery.pro.R -import com.simplemobiletools.gallery.pro.databinding.DialogChangeGroupingBinding -import com.simplemobiletools.gallery.pro.extensions.config -import com.simplemobiletools.gallery.pro.helpers.* +import org.fossify.commons.activities.BaseSimpleActivity +import org.fossify.commons.extensions.beVisibleIf +import org.fossify.commons.extensions.getAlertDialogBuilder +import org.fossify.commons.extensions.setupDialogStuff +import org.fossify.gallery.R +import org.fossify.gallery.databinding.DialogChangeGroupingBinding +import org.fossify.gallery.extensions.config +import org.fossify.gallery.helpers.* class ChangeGroupingDialog(val activity: BaseSimpleActivity, val path: String = "", val callback: () -> Unit) : DialogInterface.OnClickListener { @@ -25,8 +25,8 @@ class ChangeGroupingDialog(val activity: BaseSimpleActivity, val path: String = } activity.getAlertDialogBuilder() - .setPositiveButton(com.simplemobiletools.commons.R.string.ok, this) - .setNegativeButton(com.simplemobiletools.commons.R.string.cancel, null) + .setPositiveButton(org.fossify.commons.R.string.ok, this) + .setNegativeButton(org.fossify.commons.R.string.cancel, null) .apply { activity.setupDialogStuff(binding.root, this, R.string.group_by) } diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/dialogs/ChangeSortingDialog.kt b/app/src/main/kotlin/org/fossify/gallery/dialogs/ChangeSortingDialog.kt similarity index 86% rename from app/src/main/kotlin/com/simplemobiletools/gallery/pro/dialogs/ChangeSortingDialog.kt rename to app/src/main/kotlin/org/fossify/gallery/dialogs/ChangeSortingDialog.kt index 6770b8e22..f10cd49d8 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/dialogs/ChangeSortingDialog.kt +++ b/app/src/main/kotlin/org/fossify/gallery/dialogs/ChangeSortingDialog.kt @@ -1,13 +1,13 @@ -package com.simplemobiletools.gallery.pro.dialogs +package org.fossify.gallery.dialogs import android.content.DialogInterface -import com.simplemobiletools.commons.activities.BaseSimpleActivity -import com.simplemobiletools.commons.extensions.* -import com.simplemobiletools.commons.helpers.* -import com.simplemobiletools.gallery.pro.R -import com.simplemobiletools.gallery.pro.databinding.DialogChangeSortingBinding -import com.simplemobiletools.gallery.pro.extensions.config -import com.simplemobiletools.gallery.pro.helpers.SHOW_ALL +import org.fossify.commons.activities.BaseSimpleActivity +import org.fossify.commons.extensions.* +import org.fossify.commons.helpers.* +import org.fossify.gallery.R +import org.fossify.gallery.databinding.DialogChangeSortingBinding +import org.fossify.gallery.extensions.config +import org.fossify.gallery.helpers.SHOW_ALL class ChangeSortingDialog( val activity: BaseSimpleActivity, val isDirectorySorting: Boolean, val showFolderCheckbox: Boolean, @@ -34,10 +34,10 @@ class ChangeSortingDialog( } activity.getAlertDialogBuilder() - .setPositiveButton(com.simplemobiletools.commons.R.string.ok, this) - .setNegativeButton(com.simplemobiletools.commons.R.string.cancel, null) + .setPositiveButton(org.fossify.commons.R.string.ok, this) + .setNegativeButton(org.fossify.commons.R.string.cancel, null) .apply { - activity.setupDialogStuff(binding.root, this, com.simplemobiletools.commons.R.string.sort_by) + activity.setupDialogStuff(binding.root, this, org.fossify.commons.R.string.sort_by) } setupSortRadio() diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/dialogs/ChangeViewTypeDialog.kt b/app/src/main/kotlin/org/fossify/gallery/dialogs/ChangeViewTypeDialog.kt similarity index 73% rename from app/src/main/kotlin/com/simplemobiletools/gallery/pro/dialogs/ChangeViewTypeDialog.kt rename to app/src/main/kotlin/org/fossify/gallery/dialogs/ChangeViewTypeDialog.kt index 322a0f443..3b05b0800 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/dialogs/ChangeViewTypeDialog.kt +++ b/app/src/main/kotlin/org/fossify/gallery/dialogs/ChangeViewTypeDialog.kt @@ -1,14 +1,14 @@ -package com.simplemobiletools.gallery.pro.dialogs +package org.fossify.gallery.dialogs -import com.simplemobiletools.commons.activities.BaseSimpleActivity -import com.simplemobiletools.commons.extensions.beVisibleIf -import com.simplemobiletools.commons.extensions.getAlertDialogBuilder -import com.simplemobiletools.commons.extensions.setupDialogStuff -import com.simplemobiletools.commons.helpers.VIEW_TYPE_GRID -import com.simplemobiletools.commons.helpers.VIEW_TYPE_LIST -import com.simplemobiletools.gallery.pro.databinding.DialogChangeViewTypeBinding -import com.simplemobiletools.gallery.pro.extensions.config -import com.simplemobiletools.gallery.pro.helpers.SHOW_ALL +import org.fossify.commons.activities.BaseSimpleActivity +import org.fossify.commons.extensions.beVisibleIf +import org.fossify.commons.extensions.getAlertDialogBuilder +import org.fossify.commons.extensions.setupDialogStuff +import org.fossify.commons.helpers.VIEW_TYPE_GRID +import org.fossify.commons.helpers.VIEW_TYPE_LIST +import org.fossify.gallery.databinding.DialogChangeViewTypeBinding +import org.fossify.gallery.extensions.config +import org.fossify.gallery.helpers.SHOW_ALL class ChangeViewTypeDialog(val activity: BaseSimpleActivity, val fromFoldersView: Boolean, val path: String = "", val callback: () -> Unit) { private val binding = DialogChangeViewTypeBinding.inflate(activity.layoutInflater) @@ -45,8 +45,8 @@ class ChangeViewTypeDialog(val activity: BaseSimpleActivity, val fromFoldersView } activity.getAlertDialogBuilder() - .setPositiveButton(com.simplemobiletools.commons.R.string.ok) { dialog, which -> dialogConfirmed() } - .setNegativeButton(com.simplemobiletools.commons.R.string.cancel, null) + .setPositiveButton(org.fossify.commons.R.string.ok) { dialog, which -> dialogConfirmed() } + .setNegativeButton(org.fossify.commons.R.string.cancel, null) .apply { activity.setupDialogStuff(binding.root, this) } diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/dialogs/ConfirmDeleteFolderDialog.kt b/app/src/main/kotlin/org/fossify/gallery/dialogs/ConfirmDeleteFolderDialog.kt similarity index 61% rename from app/src/main/kotlin/com/simplemobiletools/gallery/pro/dialogs/ConfirmDeleteFolderDialog.kt rename to app/src/main/kotlin/org/fossify/gallery/dialogs/ConfirmDeleteFolderDialog.kt index c209e0b5d..be05fcad2 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/dialogs/ConfirmDeleteFolderDialog.kt +++ b/app/src/main/kotlin/org/fossify/gallery/dialogs/ConfirmDeleteFolderDialog.kt @@ -1,10 +1,10 @@ -package com.simplemobiletools.gallery.pro.dialogs +package org.fossify.gallery.dialogs import android.app.Activity import androidx.appcompat.app.AlertDialog -import com.simplemobiletools.commons.extensions.getAlertDialogBuilder -import com.simplemobiletools.commons.extensions.setupDialogStuff -import com.simplemobiletools.gallery.pro.databinding.DialogConfirmDeleteFolderBinding +import org.fossify.commons.extensions.getAlertDialogBuilder +import org.fossify.commons.extensions.setupDialogStuff +import org.fossify.gallery.databinding.DialogConfirmDeleteFolderBinding class ConfirmDeleteFolderDialog(activity: Activity, message: String, warningMessage: String, val callback: () -> Unit) { private var dialog: AlertDialog? = null @@ -15,8 +15,8 @@ class ConfirmDeleteFolderDialog(activity: Activity, message: String, warningMess binding.messageWarning.text = warningMessage activity.getAlertDialogBuilder() - .setPositiveButton(com.simplemobiletools.commons.R.string.yes) { dialog, which -> dialogConfirmed() } - .setNegativeButton(com.simplemobiletools.commons.R.string.no, null) + .setPositiveButton(org.fossify.commons.R.string.yes) { dialog, which -> dialogConfirmed() } + .setNegativeButton(org.fossify.commons.R.string.no, null) .apply { activity.setupDialogStuff(binding.root, this) { alertDialog -> dialog = alertDialog diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/dialogs/CustomAspectRatioDialog.kt b/app/src/main/kotlin/org/fossify/gallery/dialogs/CustomAspectRatioDialog.kt similarity index 68% rename from app/src/main/kotlin/com/simplemobiletools/gallery/pro/dialogs/CustomAspectRatioDialog.kt rename to app/src/main/kotlin/org/fossify/gallery/dialogs/CustomAspectRatioDialog.kt index 020b05b8d..60d4ca7b0 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/dialogs/CustomAspectRatioDialog.kt +++ b/app/src/main/kotlin/org/fossify/gallery/dialogs/CustomAspectRatioDialog.kt @@ -1,13 +1,13 @@ -package com.simplemobiletools.gallery.pro.dialogs +package org.fossify.gallery.dialogs import android.widget.EditText import androidx.appcompat.app.AlertDialog -import com.simplemobiletools.commons.activities.BaseSimpleActivity -import com.simplemobiletools.commons.extensions.getAlertDialogBuilder -import com.simplemobiletools.commons.extensions.setupDialogStuff -import com.simplemobiletools.commons.extensions.showKeyboard -import com.simplemobiletools.commons.extensions.value -import com.simplemobiletools.gallery.pro.databinding.DialogCustomAspectRatioBinding +import org.fossify.commons.activities.BaseSimpleActivity +import org.fossify.commons.extensions.getAlertDialogBuilder +import org.fossify.commons.extensions.setupDialogStuff +import org.fossify.commons.extensions.showKeyboard +import org.fossify.commons.extensions.value +import org.fossify.gallery.databinding.DialogCustomAspectRatioBinding class CustomAspectRatioDialog( val activity: BaseSimpleActivity, val defaultCustomAspectRatio: Pair?, val callback: (aspectRatio: Pair) -> Unit @@ -19,8 +19,8 @@ class CustomAspectRatioDialog( } activity.getAlertDialogBuilder() - .setPositiveButton(com.simplemobiletools.commons.R.string.ok, null) - .setNegativeButton(com.simplemobiletools.commons.R.string.cancel, null) + .setPositiveButton(org.fossify.commons.R.string.ok, null) + .setNegativeButton(org.fossify.commons.R.string.cancel, null) .apply { activity.setupDialogStuff(binding.root, this) { alertDialog -> alertDialog.showKeyboard(binding.aspectRatioWidth) diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/dialogs/DeleteWithRememberDialog.kt b/app/src/main/kotlin/org/fossify/gallery/dialogs/DeleteWithRememberDialog.kt similarity index 65% rename from app/src/main/kotlin/com/simplemobiletools/gallery/pro/dialogs/DeleteWithRememberDialog.kt rename to app/src/main/kotlin/org/fossify/gallery/dialogs/DeleteWithRememberDialog.kt index fd57f69c7..a1ee23aaf 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/dialogs/DeleteWithRememberDialog.kt +++ b/app/src/main/kotlin/org/fossify/gallery/dialogs/DeleteWithRememberDialog.kt @@ -1,11 +1,11 @@ -package com.simplemobiletools.gallery.pro.dialogs +package org.fossify.gallery.dialogs import android.app.Activity import androidx.appcompat.app.AlertDialog -import com.simplemobiletools.commons.extensions.beGoneIf -import com.simplemobiletools.commons.extensions.getAlertDialogBuilder -import com.simplemobiletools.commons.extensions.setupDialogStuff -import com.simplemobiletools.gallery.pro.databinding.DialogDeleteWithRememberBinding +import org.fossify.commons.extensions.beGoneIf +import org.fossify.commons.extensions.getAlertDialogBuilder +import org.fossify.commons.extensions.setupDialogStuff +import org.fossify.gallery.databinding.DialogDeleteWithRememberBinding class DeleteWithRememberDialog( private val activity: Activity, @@ -21,8 +21,8 @@ class DeleteWithRememberDialog( binding.deleteRememberTitle.text = message binding.skipTheRecycleBinCheckbox.beGoneIf(!showSkipRecycleBinOption) activity.getAlertDialogBuilder() - .setPositiveButton(com.simplemobiletools.commons.R.string.yes) { dialog, which -> dialogConfirmed() } - .setNegativeButton(com.simplemobiletools.commons.R.string.no, null) + .setPositiveButton(org.fossify.commons.R.string.yes) { dialog, which -> dialogConfirmed() } + .setNegativeButton(org.fossify.commons.R.string.no, null) .apply { activity.setupDialogStuff(binding.root, this) { alertDialog -> dialog = alertDialog diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/dialogs/ExcludeFolderDialog.kt b/app/src/main/kotlin/org/fossify/gallery/dialogs/ExcludeFolderDialog.kt similarity index 73% rename from app/src/main/kotlin/com/simplemobiletools/gallery/pro/dialogs/ExcludeFolderDialog.kt rename to app/src/main/kotlin/org/fossify/gallery/dialogs/ExcludeFolderDialog.kt index dbdba0698..d23f31b67 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/dialogs/ExcludeFolderDialog.kt +++ b/app/src/main/kotlin/org/fossify/gallery/dialogs/ExcludeFolderDialog.kt @@ -1,15 +1,15 @@ -package com.simplemobiletools.gallery.pro.dialogs +package org.fossify.gallery.dialogs import android.view.ViewGroup import android.widget.RadioGroup -import com.simplemobiletools.commons.activities.BaseSimpleActivity -import com.simplemobiletools.commons.databinding.RadioButtonBinding -import com.simplemobiletools.commons.extensions.beVisibleIf -import com.simplemobiletools.commons.extensions.getAlertDialogBuilder -import com.simplemobiletools.commons.extensions.getBasePath -import com.simplemobiletools.commons.extensions.setupDialogStuff -import com.simplemobiletools.gallery.pro.databinding.DialogExcludeFolderBinding -import com.simplemobiletools.gallery.pro.extensions.config +import org.fossify.commons.activities.BaseSimpleActivity +import org.fossify.commons.databinding.RadioButtonBinding +import org.fossify.commons.extensions.beVisibleIf +import org.fossify.commons.extensions.getAlertDialogBuilder +import org.fossify.commons.extensions.getBasePath +import org.fossify.commons.extensions.setupDialogStuff +import org.fossify.gallery.databinding.DialogExcludeFolderBinding +import org.fossify.gallery.extensions.config class ExcludeFolderDialog(val activity: BaseSimpleActivity, val selectedPaths: List, val callback: () -> Unit) { private val alternativePaths = getAlternativePathsList() @@ -33,8 +33,8 @@ class ExcludeFolderDialog(val activity: BaseSimpleActivity, val selectedPaths: L } activity.getAlertDialogBuilder() - .setPositiveButton(com.simplemobiletools.commons.R.string.ok) { dialog, which -> dialogConfirmed() } - .setNegativeButton(com.simplemobiletools.commons.R.string.cancel, null) + .setPositiveButton(org.fossify.commons.R.string.ok) { dialog, which -> dialogConfirmed() } + .setNegativeButton(org.fossify.commons.R.string.cancel, null) .apply { activity.setupDialogStuff(binding.root, this) } diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/dialogs/ExportFavoritesDialog.kt b/app/src/main/kotlin/org/fossify/gallery/dialogs/ExportFavoritesDialog.kt similarity index 73% rename from app/src/main/kotlin/com/simplemobiletools/gallery/pro/dialogs/ExportFavoritesDialog.kt rename to app/src/main/kotlin/org/fossify/gallery/dialogs/ExportFavoritesDialog.kt index 0df365ae0..907cf1faf 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/dialogs/ExportFavoritesDialog.kt +++ b/app/src/main/kotlin/org/fossify/gallery/dialogs/ExportFavoritesDialog.kt @@ -1,13 +1,13 @@ -package com.simplemobiletools.gallery.pro.dialogs +package org.fossify.gallery.dialogs import androidx.appcompat.app.AlertDialog -import com.simplemobiletools.commons.activities.BaseSimpleActivity -import com.simplemobiletools.commons.dialogs.ConfirmationDialog -import com.simplemobiletools.commons.dialogs.FilePickerDialog -import com.simplemobiletools.commons.extensions.* -import com.simplemobiletools.gallery.pro.R -import com.simplemobiletools.gallery.pro.databinding.DialogExportFavoritesBinding -import com.simplemobiletools.gallery.pro.extensions.config +import org.fossify.commons.activities.BaseSimpleActivity +import org.fossify.commons.dialogs.ConfirmationDialog +import org.fossify.commons.dialogs.FilePickerDialog +import org.fossify.commons.extensions.* +import org.fossify.gallery.R +import org.fossify.gallery.databinding.DialogExportFavoritesBinding +import org.fossify.gallery.extensions.config class ExportFavoritesDialog( val activity: BaseSimpleActivity, val defaultFilename: String, val hidePath: Boolean, @@ -39,28 +39,28 @@ class ExportFavoritesDialog( } activity.getAlertDialogBuilder() - .setPositiveButton(com.simplemobiletools.commons.R.string.ok, null) - .setNegativeButton(com.simplemobiletools.commons.R.string.cancel, null) + .setPositiveButton(org.fossify.commons.R.string.ok, null) + .setNegativeButton(org.fossify.commons.R.string.cancel, null) .apply { activity.setupDialogStuff(binding.root, this, R.string.export_favorite_paths) { alertDialog -> alertDialog.getButton(AlertDialog.BUTTON_POSITIVE).setOnClickListener { var filename = binding.exportFavoritesFilename.value if (filename.isEmpty()) { - activity.toast(com.simplemobiletools.commons.R.string.filename_cannot_be_empty) + activity.toast(org.fossify.commons.R.string.filename_cannot_be_empty) return@setOnClickListener } filename += ".txt" val newPath = "${folder.trimEnd('/')}/$filename" if (!newPath.getFilenameFromPath().isAValidFilename()) { - activity.toast(com.simplemobiletools.commons.R.string.filename_invalid_characters) + activity.toast(org.fossify.commons.R.string.filename_invalid_characters) return@setOnClickListener } activity.config.lastExportedFavoritesFolder = folder if (!hidePath && activity.getDoesFilePathExist(newPath)) { val title = String.format( - activity.getString(com.simplemobiletools.commons.R.string.file_already_exists_overwrite), + activity.getString(org.fossify.commons.R.string.file_already_exists_overwrite), newPath.getFilenameFromPath() ) ConfirmationDialog(activity, title) { diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/dialogs/FilterMediaDialog.kt b/app/src/main/kotlin/org/fossify/gallery/dialogs/FilterMediaDialog.kt similarity index 71% rename from app/src/main/kotlin/com/simplemobiletools/gallery/pro/dialogs/FilterMediaDialog.kt rename to app/src/main/kotlin/org/fossify/gallery/dialogs/FilterMediaDialog.kt index 0d41f03ba..a784d4f8a 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/dialogs/FilterMediaDialog.kt +++ b/app/src/main/kotlin/org/fossify/gallery/dialogs/FilterMediaDialog.kt @@ -1,12 +1,12 @@ -package com.simplemobiletools.gallery.pro.dialogs +package org.fossify.gallery.dialogs -import com.simplemobiletools.commons.activities.BaseSimpleActivity -import com.simplemobiletools.commons.extensions.getAlertDialogBuilder -import com.simplemobiletools.commons.extensions.setupDialogStuff -import com.simplemobiletools.gallery.pro.R -import com.simplemobiletools.gallery.pro.databinding.DialogFilterMediaBinding -import com.simplemobiletools.gallery.pro.extensions.config -import com.simplemobiletools.gallery.pro.helpers.* +import org.fossify.commons.activities.BaseSimpleActivity +import org.fossify.commons.extensions.getAlertDialogBuilder +import org.fossify.commons.extensions.setupDialogStuff +import org.fossify.gallery.R +import org.fossify.gallery.databinding.DialogFilterMediaBinding +import org.fossify.gallery.extensions.config +import org.fossify.gallery.helpers.* class FilterMediaDialog(val activity: BaseSimpleActivity, val callback: (result: Int) -> Unit) { private val binding = DialogFilterMediaBinding.inflate(activity.layoutInflater) @@ -23,8 +23,8 @@ class FilterMediaDialog(val activity: BaseSimpleActivity, val callback: (result: } activity.getAlertDialogBuilder() - .setPositiveButton(com.simplemobiletools.commons.R.string.ok) { dialog, which -> dialogConfirmed() } - .setNegativeButton(com.simplemobiletools.commons.R.string.cancel, null) + .setPositiveButton(org.fossify.commons.R.string.ok) { dialog, which -> dialogConfirmed() } + .setNegativeButton(org.fossify.commons.R.string.cancel, null) .apply { activity.setupDialogStuff(binding.root, this, R.string.filter_media) } diff --git a/app/src/main/kotlin/org/fossify/gallery/dialogs/GrantAllFilesDialog.kt b/app/src/main/kotlin/org/fossify/gallery/dialogs/GrantAllFilesDialog.kt new file mode 100644 index 000000000..617bc0e04 --- /dev/null +++ b/app/src/main/kotlin/org/fossify/gallery/dialogs/GrantAllFilesDialog.kt @@ -0,0 +1,23 @@ +package org.fossify.gallery.dialogs + +import org.fossify.commons.activities.BaseSimpleActivity +import org.fossify.commons.extensions.applyColorFilter +import org.fossify.commons.extensions.getAlertDialogBuilder +import org.fossify.commons.extensions.getProperTextColor +import org.fossify.commons.extensions.setupDialogStuff +import org.fossify.gallery.databinding.DialogGrantAllFilesBinding +import org.fossify.gallery.extensions.launchGrantAllFilesIntent + +class GrantAllFilesDialog(val activity: BaseSimpleActivity) { + init { + val binding = DialogGrantAllFilesBinding.inflate(activity.layoutInflater) + binding.grantAllFilesImage.applyColorFilter(activity.getProperTextColor()) + + activity.getAlertDialogBuilder() + .setPositiveButton(org.fossify.commons.R.string.ok) { dialog, which -> activity.launchGrantAllFilesIntent() } + .setNegativeButton(org.fossify.commons.R.string.cancel, null) + .apply { + activity.setupDialogStuff(binding.root, this) { alertDialog -> } + } + } +} diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/dialogs/ManageBottomActionsDialog.kt b/app/src/main/kotlin/org/fossify/gallery/dialogs/ManageBottomActionsDialog.kt similarity index 84% rename from app/src/main/kotlin/com/simplemobiletools/gallery/pro/dialogs/ManageBottomActionsDialog.kt rename to app/src/main/kotlin/org/fossify/gallery/dialogs/ManageBottomActionsDialog.kt index b627aa9d2..2a9c76152 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/dialogs/ManageBottomActionsDialog.kt +++ b/app/src/main/kotlin/org/fossify/gallery/dialogs/ManageBottomActionsDialog.kt @@ -1,11 +1,11 @@ -package com.simplemobiletools.gallery.pro.dialogs +package org.fossify.gallery.dialogs -import com.simplemobiletools.commons.activities.BaseSimpleActivity -import com.simplemobiletools.commons.extensions.getAlertDialogBuilder -import com.simplemobiletools.commons.extensions.setupDialogStuff -import com.simplemobiletools.gallery.pro.databinding.DialogManageBottomActionsBinding -import com.simplemobiletools.gallery.pro.extensions.config -import com.simplemobiletools.gallery.pro.helpers.* +import org.fossify.commons.activities.BaseSimpleActivity +import org.fossify.commons.extensions.getAlertDialogBuilder +import org.fossify.commons.extensions.setupDialogStuff +import org.fossify.gallery.databinding.DialogManageBottomActionsBinding +import org.fossify.gallery.extensions.config +import org.fossify.gallery.helpers.* class ManageBottomActionsDialog(val activity: BaseSimpleActivity, val callback: (result: Int) -> Unit) { private val binding = DialogManageBottomActionsBinding.inflate(activity.layoutInflater) @@ -31,8 +31,8 @@ class ManageBottomActionsDialog(val activity: BaseSimpleActivity, val callback: } activity.getAlertDialogBuilder() - .setPositiveButton(com.simplemobiletools.commons.R.string.ok) { dialog, which -> dialogConfirmed() } - .setNegativeButton(com.simplemobiletools.commons.R.string.cancel, null) + .setPositiveButton(org.fossify.commons.R.string.ok) { dialog, which -> dialogConfirmed() } + .setNegativeButton(org.fossify.commons.R.string.cancel, null) .apply { activity.setupDialogStuff(binding.root, this) } diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/dialogs/ManageExtendedDetailsDialog.kt b/app/src/main/kotlin/org/fossify/gallery/dialogs/ManageExtendedDetailsDialog.kt similarity index 77% rename from app/src/main/kotlin/com/simplemobiletools/gallery/pro/dialogs/ManageExtendedDetailsDialog.kt rename to app/src/main/kotlin/org/fossify/gallery/dialogs/ManageExtendedDetailsDialog.kt index 5dcbc0ab0..a3cc79249 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/dialogs/ManageExtendedDetailsDialog.kt +++ b/app/src/main/kotlin/org/fossify/gallery/dialogs/ManageExtendedDetailsDialog.kt @@ -1,11 +1,11 @@ -package com.simplemobiletools.gallery.pro.dialogs +package org.fossify.gallery.dialogs -import com.simplemobiletools.commons.activities.BaseSimpleActivity -import com.simplemobiletools.commons.extensions.getAlertDialogBuilder -import com.simplemobiletools.commons.extensions.setupDialogStuff -import com.simplemobiletools.gallery.pro.databinding.DialogManageExtendedDetailsBinding -import com.simplemobiletools.gallery.pro.extensions.config -import com.simplemobiletools.gallery.pro.helpers.* +import org.fossify.commons.activities.BaseSimpleActivity +import org.fossify.commons.extensions.getAlertDialogBuilder +import org.fossify.commons.extensions.setupDialogStuff +import org.fossify.gallery.databinding.DialogManageExtendedDetailsBinding +import org.fossify.gallery.extensions.config +import org.fossify.gallery.helpers.* class ManageExtendedDetailsDialog(val activity: BaseSimpleActivity, val callback: (result: Int) -> Unit) { private val binding = DialogManageExtendedDetailsBinding.inflate(activity.layoutInflater) @@ -25,8 +25,8 @@ class ManageExtendedDetailsDialog(val activity: BaseSimpleActivity, val callback } activity.getAlertDialogBuilder() - .setPositiveButton(com.simplemobiletools.commons.R.string.ok) { dialog, which -> dialogConfirmed() } - .setNegativeButton(com.simplemobiletools.commons.R.string.cancel, null) + .setPositiveButton(org.fossify.commons.R.string.ok) { dialog, which -> dialogConfirmed() } + .setNegativeButton(org.fossify.commons.R.string.cancel, null) .apply { activity.setupDialogStuff(binding.root, this) } diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/dialogs/OtherAspectRatioDialog.kt b/app/src/main/kotlin/org/fossify/gallery/dialogs/OtherAspectRatioDialog.kt similarity index 88% rename from app/src/main/kotlin/com/simplemobiletools/gallery/pro/dialogs/OtherAspectRatioDialog.kt rename to app/src/main/kotlin/org/fossify/gallery/dialogs/OtherAspectRatioDialog.kt index 2d7649303..005fb184d 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/dialogs/OtherAspectRatioDialog.kt +++ b/app/src/main/kotlin/org/fossify/gallery/dialogs/OtherAspectRatioDialog.kt @@ -1,10 +1,10 @@ -package com.simplemobiletools.gallery.pro.dialogs +package org.fossify.gallery.dialogs import androidx.appcompat.app.AlertDialog -import com.simplemobiletools.commons.activities.BaseSimpleActivity -import com.simplemobiletools.commons.extensions.getAlertDialogBuilder -import com.simplemobiletools.commons.extensions.setupDialogStuff -import com.simplemobiletools.gallery.pro.databinding.DialogOtherAspectRatioBinding +import org.fossify.commons.activities.BaseSimpleActivity +import org.fossify.commons.extensions.getAlertDialogBuilder +import org.fossify.commons.extensions.setupDialogStuff +import org.fossify.gallery.databinding.DialogOtherAspectRatioBinding class OtherAspectRatioDialog( val activity: BaseSimpleActivity, @@ -58,7 +58,7 @@ class OtherAspectRatioDialog( } activity.getAlertDialogBuilder() - .setNegativeButton(com.simplemobiletools.commons.R.string.cancel, null) + .setNegativeButton(org.fossify.commons.R.string.cancel, null) .apply { activity.setupDialogStuff(binding.root, this) { alertDialog -> dialog = alertDialog diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/dialogs/PickDirectoryDialog.kt b/app/src/main/kotlin/org/fossify/gallery/dialogs/PickDirectoryDialog.kt similarity index 84% rename from app/src/main/kotlin/com/simplemobiletools/gallery/pro/dialogs/PickDirectoryDialog.kt rename to app/src/main/kotlin/org/fossify/gallery/dialogs/PickDirectoryDialog.kt index 53c8251c5..9a5f54dad 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/dialogs/PickDirectoryDialog.kt +++ b/app/src/main/kotlin/org/fossify/gallery/dialogs/PickDirectoryDialog.kt @@ -1,4 +1,4 @@ -package com.simplemobiletools.gallery.pro.dialogs +package org.fossify.gallery.dialogs import android.graphics.Color import android.view.KeyEvent @@ -6,17 +6,17 @@ import android.view.inputmethod.EditorInfo import android.widget.Toast import androidx.appcompat.app.AlertDialog import androidx.recyclerview.widget.RecyclerView -import com.simplemobiletools.commons.activities.BaseSimpleActivity -import com.simplemobiletools.commons.dialogs.FilePickerDialog -import com.simplemobiletools.commons.extensions.* -import com.simplemobiletools.commons.helpers.VIEW_TYPE_GRID -import com.simplemobiletools.commons.views.MyGridLayoutManager -import com.simplemobiletools.commons.views.MySearchMenu -import com.simplemobiletools.gallery.pro.R -import com.simplemobiletools.gallery.pro.adapters.DirectoryAdapter -import com.simplemobiletools.gallery.pro.databinding.DialogDirectoryPickerBinding -import com.simplemobiletools.gallery.pro.extensions.* -import com.simplemobiletools.gallery.pro.models.Directory +import org.fossify.commons.activities.BaseSimpleActivity +import org.fossify.commons.dialogs.FilePickerDialog +import org.fossify.commons.extensions.* +import org.fossify.commons.helpers.VIEW_TYPE_GRID +import org.fossify.commons.views.MyGridLayoutManager +import org.fossify.commons.views.MySearchMenu +import org.fossify.gallery.R +import org.fossify.gallery.adapters.DirectoryAdapter +import org.fossify.gallery.databinding.DialogDirectoryPickerBinding +import org.fossify.gallery.extensions.* +import org.fossify.gallery.models.Directory class PickDirectoryDialog( val activity: BaseSimpleActivity, @@ -51,8 +51,8 @@ class PickDirectoryDialog( configureSearchView() val builder = activity.getAlertDialogBuilder() - .setPositiveButton(com.simplemobiletools.commons.R.string.ok, null) - .setNegativeButton(com.simplemobiletools.commons.R.string.cancel, null) + .setPositiveButton(org.fossify.commons.R.string.ok, null) + .setNegativeButton(org.fossify.commons.R.string.cancel, null) .setOnKeyListener { dialogInterface, i, keyEvent -> if (keyEvent.action == KeyEvent.ACTION_UP && i == KeyEvent.KEYCODE_BACK) { backPressed() @@ -65,7 +65,7 @@ class PickDirectoryDialog( } builder.apply { - activity.setupDialogStuff(binding.root, this, com.simplemobiletools.commons.R.string.select_destination) { alertDialog -> + activity.setupDialogStuff(binding.root, this, org.fossify.commons.R.string.select_destination) { alertDialog -> dialog = alertDialog binding.directoriesShowHidden.beVisibleIf(!context.config.shouldShowHidden) binding.directoriesShowHidden.setOnClickListener { @@ -82,7 +82,7 @@ class PickDirectoryDialog( } private fun configureSearchView() = with(searchView) { - updateHintText(context.getString(com.simplemobiletools.commons.R.string.search_folders)) + updateHintText(context.getString(org.fossify.commons.R.string.search_folders)) searchEditText.imeOptions = EditorInfo.IME_ACTION_DONE toggleHideOnScroll(!config.scrollHorizontally) @@ -100,13 +100,13 @@ class PickDirectoryDialog( private fun MySearchMenu.setSearchViewListeners() { onSearchOpenListener = { - updateSearchViewLeftIcon(com.simplemobiletools.commons.R.drawable.ic_cross_vector) + updateSearchViewLeftIcon(org.fossify.commons.R.drawable.ic_cross_vector) } onSearchClosedListener = { searchEditText.clearFocus() activity.hideKeyboard(searchEditText) - updateSearchViewLeftIcon(com.simplemobiletools.commons.R.drawable.ic_search_vector) + updateSearchViewLeftIcon(org.fossify.commons.R.drawable.ic_search_vector) } onSearchTextChangedListener = { text -> @@ -145,7 +145,7 @@ class PickDirectoryDialog( directoriesEmptyPlaceholder.beVisibleIf(dirs.isEmpty()) if (folderSearchView.isSearchOpen) { - directoriesEmptyPlaceholder.text = root.context.getString(com.simplemobiletools.commons.R.string.no_items_found) + directoriesEmptyPlaceholder.text = root.context.getString(org.fossify.commons.R.string.no_items_found) } directoriesFastscroller.beVisibleIf(directoriesEmptyPlaceholder.isGone()) @@ -203,10 +203,10 @@ class PickDirectoryDialog( val path = clickedDir.path if (clickedDir.subfoldersCount == 1 || !activity.config.groupDirectSubfolders) { if (isPickingCopyMoveDestination && path.trimEnd('/') == sourcePath) { - activity.toast(com.simplemobiletools.commons.R.string.source_and_destination_same) + activity.toast(org.fossify.commons.R.string.source_and_destination_same) return@DirectoryAdapter } else if (isPickingCopyMoveDestination && activity.isRestrictedWithSAFSdk30(path) && !activity.isInDownloadDir(path)) { - activity.toast(com.simplemobiletools.commons.R.string.system_folder_copy_restriction, Toast.LENGTH_LONG) + activity.toast(org.fossify.commons.R.string.system_folder_copy_restriction, Toast.LENGTH_LONG) return@DirectoryAdapter } else { activity.handleLockedFolderOpening(path) { success -> diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/dialogs/PickMediumDialog.kt b/app/src/main/kotlin/org/fossify/gallery/dialogs/PickMediumDialog.kt similarity index 71% rename from app/src/main/kotlin/com/simplemobiletools/gallery/pro/dialogs/PickMediumDialog.kt rename to app/src/main/kotlin/org/fossify/gallery/dialogs/PickMediumDialog.kt index 5c8e14f98..4f110a180 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/dialogs/PickMediumDialog.kt +++ b/app/src/main/kotlin/org/fossify/gallery/dialogs/PickMediumDialog.kt @@ -1,24 +1,24 @@ -package com.simplemobiletools.gallery.pro.dialogs +package org.fossify.gallery.dialogs import androidx.appcompat.app.AlertDialog import androidx.recyclerview.widget.RecyclerView -import com.simplemobiletools.commons.activities.BaseSimpleActivity -import com.simplemobiletools.commons.extensions.getAlertDialogBuilder -import com.simplemobiletools.commons.extensions.getProperPrimaryColor -import com.simplemobiletools.commons.extensions.setupDialogStuff -import com.simplemobiletools.commons.helpers.VIEW_TYPE_GRID -import com.simplemobiletools.commons.views.MyGridLayoutManager -import com.simplemobiletools.gallery.pro.R -import com.simplemobiletools.gallery.pro.adapters.MediaAdapter -import com.simplemobiletools.gallery.pro.asynctasks.GetMediaAsynctask -import com.simplemobiletools.gallery.pro.databinding.DialogMediumPickerBinding -import com.simplemobiletools.gallery.pro.extensions.config -import com.simplemobiletools.gallery.pro.extensions.getCachedMedia -import com.simplemobiletools.gallery.pro.helpers.GridSpacingItemDecoration -import com.simplemobiletools.gallery.pro.helpers.SHOW_ALL -import com.simplemobiletools.gallery.pro.models.Medium -import com.simplemobiletools.gallery.pro.models.ThumbnailItem -import com.simplemobiletools.gallery.pro.models.ThumbnailSection +import org.fossify.commons.activities.BaseSimpleActivity +import org.fossify.commons.extensions.getAlertDialogBuilder +import org.fossify.commons.extensions.getProperPrimaryColor +import org.fossify.commons.extensions.setupDialogStuff +import org.fossify.commons.helpers.VIEW_TYPE_GRID +import org.fossify.commons.views.MyGridLayoutManager +import org.fossify.gallery.R +import org.fossify.gallery.adapters.MediaAdapter +import org.fossify.gallery.asynctasks.GetMediaAsynctask +import org.fossify.gallery.databinding.DialogMediumPickerBinding +import org.fossify.gallery.extensions.config +import org.fossify.gallery.extensions.getCachedMedia +import org.fossify.gallery.helpers.GridSpacingItemDecoration +import org.fossify.gallery.helpers.SHOW_ALL +import org.fossify.gallery.models.Medium +import org.fossify.gallery.models.ThumbnailItem +import org.fossify.gallery.models.ThumbnailSection class PickMediumDialog(val activity: BaseSimpleActivity, val path: String, val callback: (path: String) -> Unit) { private var dialog: AlertDialog? = null @@ -37,11 +37,11 @@ class PickMediumDialog(val activity: BaseSimpleActivity, val path: String, val c binding.mediaFastscroller.updateColors(activity.getProperPrimaryColor()) activity.getAlertDialogBuilder() - .setPositiveButton(com.simplemobiletools.commons.R.string.ok, null) - .setNegativeButton(com.simplemobiletools.commons.R.string.cancel, null) + .setPositiveButton(org.fossify.commons.R.string.ok, null) + .setNegativeButton(org.fossify.commons.R.string.cancel, null) .setNeutralButton(R.string.other_folder) { dialogInterface, i -> showOtherFolder() } .apply { - activity.setupDialogStuff(binding.root, this, com.simplemobiletools.commons.R.string.select_photo) { alertDialog -> + activity.setupDialogStuff(binding.root, this, org.fossify.commons.R.string.select_photo) { alertDialog -> dialog = alertDialog } } diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/dialogs/ResizeDialog.kt b/app/src/main/kotlin/org/fossify/gallery/dialogs/ResizeDialog.kt similarity index 84% rename from app/src/main/kotlin/com/simplemobiletools/gallery/pro/dialogs/ResizeDialog.kt rename to app/src/main/kotlin/org/fossify/gallery/dialogs/ResizeDialog.kt index 034104e0a..f8db80770 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/dialogs/ResizeDialog.kt +++ b/app/src/main/kotlin/org/fossify/gallery/dialogs/ResizeDialog.kt @@ -1,12 +1,12 @@ -package com.simplemobiletools.gallery.pro.dialogs +package org.fossify.gallery.dialogs import android.graphics.Point import android.widget.EditText import androidx.appcompat.app.AlertDialog -import com.simplemobiletools.commons.activities.BaseSimpleActivity -import com.simplemobiletools.commons.extensions.* -import com.simplemobiletools.gallery.pro.R -import com.simplemobiletools.gallery.pro.databinding.DialogResizeImageBinding +import org.fossify.commons.activities.BaseSimpleActivity +import org.fossify.commons.extensions.* +import org.fossify.gallery.R +import org.fossify.gallery.databinding.DialogResizeImageBinding class ResizeDialog(val activity: BaseSimpleActivity, val size: Point, val callback: (newSize: Point) -> Unit) { init { @@ -48,8 +48,8 @@ class ResizeDialog(val activity: BaseSimpleActivity, val size: Point, val callba } activity.getAlertDialogBuilder() - .setPositiveButton(com.simplemobiletools.commons.R.string.ok, null) - .setNegativeButton(com.simplemobiletools.commons.R.string.cancel, null) + .setPositiveButton(org.fossify.commons.R.string.ok, null) + .setNegativeButton(org.fossify.commons.R.string.cancel, null) .apply { activity.setupDialogStuff(binding.root, this, R.string.resize_and_save) { alertDialog -> alertDialog.showKeyboard(binding.resizeImageWidth) diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/dialogs/ResizeMultipleImagesDialog.kt b/app/src/main/kotlin/org/fossify/gallery/dialogs/ResizeMultipleImagesDialog.kt similarity index 83% rename from app/src/main/kotlin/com/simplemobiletools/gallery/pro/dialogs/ResizeMultipleImagesDialog.kt rename to app/src/main/kotlin/org/fossify/gallery/dialogs/ResizeMultipleImagesDialog.kt index 341968fbc..e8a1d205b 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/dialogs/ResizeMultipleImagesDialog.kt +++ b/app/src/main/kotlin/org/fossify/gallery/dialogs/ResizeMultipleImagesDialog.kt @@ -1,15 +1,15 @@ -package com.simplemobiletools.gallery.pro.dialogs +package org.fossify.gallery.dialogs import android.graphics.Point import androidx.appcompat.app.AlertDialog -import com.simplemobiletools.commons.activities.BaseSimpleActivity -import com.simplemobiletools.commons.extensions.* -import com.simplemobiletools.commons.helpers.ensureBackgroundThread -import com.simplemobiletools.gallery.pro.R -import com.simplemobiletools.gallery.pro.databinding.DialogResizeMultipleImagesBinding -import com.simplemobiletools.gallery.pro.extensions.ensureWriteAccess -import com.simplemobiletools.gallery.pro.extensions.rescanPathsAndUpdateLastModified -import com.simplemobiletools.gallery.pro.extensions.resizeImage +import org.fossify.commons.activities.BaseSimpleActivity +import org.fossify.commons.extensions.* +import org.fossify.commons.helpers.ensureBackgroundThread +import org.fossify.gallery.R +import org.fossify.gallery.databinding.DialogResizeMultipleImagesBinding +import org.fossify.gallery.extensions.ensureWriteAccess +import org.fossify.gallery.extensions.rescanPathsAndUpdateLastModified +import org.fossify.gallery.extensions.resizeImage import java.io.File import kotlin.math.roundToInt @@ -35,8 +35,8 @@ class ResizeMultipleImagesDialog( } activity.getAlertDialogBuilder() - .setPositiveButton(com.simplemobiletools.commons.R.string.ok, null) - .setNegativeButton(com.simplemobiletools.commons.R.string.cancel, null) + .setPositiveButton(org.fossify.commons.R.string.ok, null) + .setNegativeButton(org.fossify.commons.R.string.cancel, null) .apply { activity.setupDialogStuff(binding.root, this, R.string.resize_multiple_images) { alertDialog -> dialog = alertDialog @@ -95,7 +95,7 @@ class ResizeMultipleImagesDialog( } } } catch (e: OutOfMemoryError) { - toast(com.simplemobiletools.commons.R.string.out_of_memory_error) + toast(org.fossify.commons.R.string.out_of_memory_error) } catch (e: Exception) { showErrorToast(e) } diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/dialogs/ResizeWithPathDialog.kt b/app/src/main/kotlin/org/fossify/gallery/dialogs/ResizeWithPathDialog.kt similarity index 80% rename from app/src/main/kotlin/com/simplemobiletools/gallery/pro/dialogs/ResizeWithPathDialog.kt rename to app/src/main/kotlin/org/fossify/gallery/dialogs/ResizeWithPathDialog.kt index ce402bcb7..615a68a59 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/dialogs/ResizeWithPathDialog.kt +++ b/app/src/main/kotlin/org/fossify/gallery/dialogs/ResizeWithPathDialog.kt @@ -1,15 +1,15 @@ -package com.simplemobiletools.gallery.pro.dialogs +package org.fossify.gallery.dialogs import android.graphics.Point import android.widget.EditText import androidx.appcompat.app.AlertDialog -import com.simplemobiletools.commons.activities.BaseSimpleActivity -import com.simplemobiletools.commons.dialogs.ConfirmationDialog -import com.simplemobiletools.commons.dialogs.FilePickerDialog -import com.simplemobiletools.commons.extensions.* -import com.simplemobiletools.gallery.pro.R -import com.simplemobiletools.gallery.pro.databinding.DialogResizeImageWithPathBinding -import com.simplemobiletools.gallery.pro.extensions.config +import org.fossify.commons.activities.BaseSimpleActivity +import org.fossify.commons.dialogs.ConfirmationDialog +import org.fossify.commons.dialogs.FilePickerDialog +import org.fossify.commons.extensions.* +import org.fossify.gallery.R +import org.fossify.gallery.databinding.DialogResizeImageWithPathBinding +import org.fossify.gallery.extensions.config class ResizeWithPathDialog(val activity: BaseSimpleActivity, val size: Point, val path: String, val callback: (newSize: Point, newPath: String) -> Unit) { init { @@ -69,8 +69,8 @@ class ResizeWithPathDialog(val activity: BaseSimpleActivity, val size: Point, va } activity.getAlertDialogBuilder() - .setPositiveButton(com.simplemobiletools.commons.R.string.ok, null) - .setNegativeButton(com.simplemobiletools.commons.R.string.cancel, null) + .setPositiveButton(org.fossify.commons.R.string.ok, null) + .setNegativeButton(org.fossify.commons.R.string.cancel, null) .apply { activity.setupDialogStuff(binding.root, this) { alertDialog -> alertDialog.showKeyboard(binding.resizeImageWidth) @@ -87,24 +87,24 @@ class ResizeWithPathDialog(val activity: BaseSimpleActivity, val size: Point, va val filename = binding.filenameValue.value val extension = binding.extensionValue.value if (filename.isEmpty()) { - activity.toast(com.simplemobiletools.commons.R.string.filename_cannot_be_empty) + activity.toast(org.fossify.commons.R.string.filename_cannot_be_empty) return@setOnClickListener } if (extension.isEmpty()) { - activity.toast(com.simplemobiletools.commons.R.string.extension_cannot_be_empty) + activity.toast(org.fossify.commons.R.string.extension_cannot_be_empty) return@setOnClickListener } val newFilename = "$filename.$extension" val newPath = "${realPath.trimEnd('/')}/$newFilename" if (!newFilename.isAValidFilename()) { - activity.toast(com.simplemobiletools.commons.R.string.filename_invalid_characters) + activity.toast(org.fossify.commons.R.string.filename_invalid_characters) return@setOnClickListener } if (activity.getDoesFilePathExist(newPath)) { - val title = String.format(activity.getString(com.simplemobiletools.commons.R.string.file_already_exists_overwrite), newFilename) + val title = String.format(activity.getString(org.fossify.commons.R.string.file_already_exists_overwrite), newFilename) ConfirmationDialog(activity, title) { callback(newSize, newPath) alertDialog.dismiss() diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/dialogs/SaveAsDialog.kt b/app/src/main/kotlin/org/fossify/gallery/dialogs/SaveAsDialog.kt similarity index 76% rename from app/src/main/kotlin/com/simplemobiletools/gallery/pro/dialogs/SaveAsDialog.kt rename to app/src/main/kotlin/org/fossify/gallery/dialogs/SaveAsDialog.kt index ccd170e95..254394ea0 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/dialogs/SaveAsDialog.kt +++ b/app/src/main/kotlin/org/fossify/gallery/dialogs/SaveAsDialog.kt @@ -1,12 +1,12 @@ -package com.simplemobiletools.gallery.pro.dialogs +package org.fossify.gallery.dialogs import androidx.appcompat.app.AlertDialog -import com.simplemobiletools.commons.activities.BaseSimpleActivity -import com.simplemobiletools.commons.dialogs.ConfirmationDialog -import com.simplemobiletools.commons.dialogs.FilePickerDialog -import com.simplemobiletools.commons.extensions.* -import com.simplemobiletools.commons.helpers.isRPlus -import com.simplemobiletools.gallery.pro.databinding.DialogSaveAsBinding +import org.fossify.commons.activities.BaseSimpleActivity +import org.fossify.commons.dialogs.ConfirmationDialog +import org.fossify.commons.dialogs.FilePickerDialog +import org.fossify.commons.extensions.* +import org.fossify.commons.helpers.isRPlus +import org.fossify.gallery.databinding.DialogSaveAsBinding import java.io.File class SaveAsDialog( @@ -47,35 +47,35 @@ class SaveAsDialog( } activity.getAlertDialogBuilder() - .setPositiveButton(com.simplemobiletools.commons.R.string.ok, null) - .setNegativeButton(com.simplemobiletools.commons.R.string.cancel) { dialog, which -> cancelCallback?.invoke() } + .setPositiveButton(org.fossify.commons.R.string.ok, null) + .setNegativeButton(org.fossify.commons.R.string.cancel) { dialog, which -> cancelCallback?.invoke() } .setOnCancelListener { cancelCallback?.invoke() } .apply { - activity.setupDialogStuff(binding.root, this, com.simplemobiletools.commons.R.string.save_as) { alertDialog -> + activity.setupDialogStuff(binding.root, this, org.fossify.commons.R.string.save_as) { alertDialog -> alertDialog.showKeyboard(binding.filenameValue) alertDialog.getButton(AlertDialog.BUTTON_POSITIVE).setOnClickListener { val filename = binding.filenameValue.value val extension = binding.extensionValue.value if (filename.isEmpty()) { - activity.toast(com.simplemobiletools.commons.R.string.filename_cannot_be_empty) + activity.toast(org.fossify.commons.R.string.filename_cannot_be_empty) return@setOnClickListener } if (extension.isEmpty()) { - activity.toast(com.simplemobiletools.commons.R.string.extension_cannot_be_empty) + activity.toast(org.fossify.commons.R.string.extension_cannot_be_empty) return@setOnClickListener } val newFilename = "$filename.$extension" val newPath = "${realPath.trimEnd('/')}/$newFilename" if (!newFilename.isAValidFilename()) { - activity.toast(com.simplemobiletools.commons.R.string.filename_invalid_characters) + activity.toast(org.fossify.commons.R.string.filename_invalid_characters) return@setOnClickListener } if (activity.getDoesFilePathExist(newPath)) { - val title = String.format(activity.getString(com.simplemobiletools.commons.R.string.file_already_exists_overwrite), newFilename) + val title = String.format(activity.getString(org.fossify.commons.R.string.file_already_exists_overwrite), newFilename) ConfirmationDialog(activity, title) { if ((isRPlus() && !isExternalStorageManager())) { val fileDirItem = arrayListOf(File(newPath).toFileDirItem(activity)) diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/dialogs/SlideshowDialog.kt b/app/src/main/kotlin/org/fossify/gallery/dialogs/SlideshowDialog.kt similarity index 77% rename from app/src/main/kotlin/com/simplemobiletools/gallery/pro/dialogs/SlideshowDialog.kt rename to app/src/main/kotlin/org/fossify/gallery/dialogs/SlideshowDialog.kt index 648ea26e7..3bfc23d92 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/dialogs/SlideshowDialog.kt +++ b/app/src/main/kotlin/org/fossify/gallery/dialogs/SlideshowDialog.kt @@ -1,27 +1,27 @@ -package com.simplemobiletools.gallery.pro.dialogs +package org.fossify.gallery.dialogs import androidx.appcompat.app.AlertDialog -import com.simplemobiletools.commons.activities.BaseSimpleActivity -import com.simplemobiletools.commons.dialogs.RadioGroupDialog -import com.simplemobiletools.commons.extensions.getAlertDialogBuilder -import com.simplemobiletools.commons.extensions.hideKeyboard -import com.simplemobiletools.commons.extensions.setupDialogStuff -import com.simplemobiletools.commons.extensions.value -import com.simplemobiletools.commons.models.RadioItem -import com.simplemobiletools.gallery.pro.R -import com.simplemobiletools.gallery.pro.databinding.DialogSlideshowBinding -import com.simplemobiletools.gallery.pro.extensions.config -import com.simplemobiletools.gallery.pro.helpers.SLIDESHOW_ANIMATION_FADE -import com.simplemobiletools.gallery.pro.helpers.SLIDESHOW_ANIMATION_NONE -import com.simplemobiletools.gallery.pro.helpers.SLIDESHOW_ANIMATION_SLIDE -import com.simplemobiletools.gallery.pro.helpers.SLIDESHOW_DEFAULT_INTERVAL +import org.fossify.commons.activities.BaseSimpleActivity +import org.fossify.commons.dialogs.RadioGroupDialog +import org.fossify.commons.extensions.getAlertDialogBuilder +import org.fossify.commons.extensions.hideKeyboard +import org.fossify.commons.extensions.setupDialogStuff +import org.fossify.commons.extensions.value +import org.fossify.commons.models.RadioItem +import org.fossify.gallery.R +import org.fossify.gallery.databinding.DialogSlideshowBinding +import org.fossify.gallery.extensions.config +import org.fossify.gallery.helpers.SLIDESHOW_ANIMATION_FADE +import org.fossify.gallery.helpers.SLIDESHOW_ANIMATION_NONE +import org.fossify.gallery.helpers.SLIDESHOW_ANIMATION_SLIDE +import org.fossify.gallery.helpers.SLIDESHOW_DEFAULT_INTERVAL class SlideshowDialog(val activity: BaseSimpleActivity, val callback: () -> Unit) { private val binding: DialogSlideshowBinding init { binding = DialogSlideshowBinding.inflate(activity.layoutInflater).apply { - intervalHint.hint = activity.getString(com.simplemobiletools.commons.R.string.seconds_raw).replaceFirstChar { it.uppercaseChar() } + intervalHint.hint = activity.getString(org.fossify.commons.R.string.seconds_raw).replaceFirstChar { it.uppercaseChar() } intervalValue.setOnClickListener { intervalValue.selectAll() } @@ -72,8 +72,8 @@ class SlideshowDialog(val activity: BaseSimpleActivity, val callback: () -> Unit setupValues() activity.getAlertDialogBuilder() - .setPositiveButton(com.simplemobiletools.commons.R.string.ok, null) - .setNegativeButton(com.simplemobiletools.commons.R.string.cancel, null) + .setPositiveButton(org.fossify.commons.R.string.ok, null) + .setNegativeButton(org.fossify.commons.R.string.cancel, null) .apply { activity.setupDialogStuff(binding.root, this) { alertDialog -> alertDialog.hideKeyboard() diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/extensions/Activity.kt b/app/src/main/kotlin/org/fossify/gallery/extensions/Activity.kt similarity index 89% rename from app/src/main/kotlin/com/simplemobiletools/gallery/pro/extensions/Activity.kt rename to app/src/main/kotlin/org/fossify/gallery/extensions/Activity.kt index e0e129c38..3fca51ff7 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/extensions/Activity.kt +++ b/app/src/main/kotlin/org/fossify/gallery/extensions/Activity.kt @@ -1,4 +1,4 @@ -package com.simplemobiletools.gallery.pro.extensions +package org.fossify.gallery.extensions import android.annotation.TargetApi import android.app.Activity @@ -26,29 +26,29 @@ import com.bumptech.glide.Glide import com.bumptech.glide.load.DecodeFormat import com.bumptech.glide.load.engine.DiskCacheStrategy import com.bumptech.glide.request.RequestOptions -import com.simplemobiletools.commons.activities.BaseSimpleActivity -import com.simplemobiletools.commons.dialogs.ConfirmationDialog -import com.simplemobiletools.commons.dialogs.SecurityDialog -import com.simplemobiletools.commons.extensions.* -import com.simplemobiletools.commons.helpers.* -import com.simplemobiletools.commons.models.FAQItem -import com.simplemobiletools.commons.models.FileDirItem -import com.simplemobiletools.gallery.pro.BuildConfig -import com.simplemobiletools.gallery.pro.R -import com.simplemobiletools.gallery.pro.activities.MediaActivity -import com.simplemobiletools.gallery.pro.activities.SettingsActivity -import com.simplemobiletools.gallery.pro.activities.SimpleActivity -import com.simplemobiletools.gallery.pro.dialogs.AllFilesPermissionDialog -import com.simplemobiletools.gallery.pro.dialogs.PickDirectoryDialog -import com.simplemobiletools.gallery.pro.dialogs.ResizeMultipleImagesDialog -import com.simplemobiletools.gallery.pro.dialogs.ResizeWithPathDialog -import com.simplemobiletools.gallery.pro.helpers.DIRECTORY -import com.simplemobiletools.gallery.pro.helpers.RECYCLE_BIN -import com.simplemobiletools.gallery.pro.models.DateTaken import com.squareup.picasso.Picasso +import org.fossify.commons.activities.BaseSimpleActivity +import org.fossify.commons.dialogs.ConfirmationDialog +import org.fossify.commons.dialogs.SecurityDialog +import org.fossify.commons.extensions.* +import org.fossify.commons.helpers.* +import org.fossify.commons.models.FAQItem +import org.fossify.commons.models.FileDirItem +import org.fossify.gallery.BuildConfig +import org.fossify.gallery.R +import org.fossify.gallery.activities.MediaActivity +import org.fossify.gallery.activities.SettingsActivity +import org.fossify.gallery.activities.SimpleActivity +import org.fossify.gallery.dialogs.AllFilesPermissionDialog +import org.fossify.gallery.dialogs.PickDirectoryDialog +import org.fossify.gallery.dialogs.ResizeMultipleImagesDialog +import org.fossify.gallery.dialogs.ResizeWithPathDialog +import org.fossify.gallery.helpers.DIRECTORY +import org.fossify.gallery.helpers.RECYCLE_BIN +import org.fossify.gallery.models.DateTaken import java.io.* import java.text.SimpleDateFormat -import java.util.* +import java.util.Locale fun Activity.sharePath(path: String) { sharePathIntent(path, BuildConfig.APPLICATION_ID) @@ -99,7 +99,7 @@ fun SimpleActivity.launchAbout() { FAQItem(R.string.faq_7_title, R.string.faq_7_text), FAQItem(R.string.faq_14_title, R.string.faq_14_text), FAQItem(R.string.faq_1_title, R.string.faq_1_text), - FAQItem(com.simplemobiletools.commons.R.string.faq_5_title_commons, com.simplemobiletools.commons.R.string.faq_5_text_commons), + FAQItem(org.fossify.commons.R.string.faq_5_title_commons, org.fossify.commons.R.string.faq_5_text_commons), FAQItem(R.string.faq_5_title, R.string.faq_5_text), FAQItem(R.string.faq_4_title, R.string.faq_4_text), FAQItem(R.string.faq_6_title, R.string.faq_6_text), @@ -110,14 +110,14 @@ fun SimpleActivity.launchAbout() { FAQItem(R.string.faq_15_title, R.string.faq_15_text), FAQItem(R.string.faq_2_title, R.string.faq_2_text), FAQItem(R.string.faq_18_title, R.string.faq_18_text), - FAQItem(com.simplemobiletools.commons.R.string.faq_9_title_commons, com.simplemobiletools.commons.R.string.faq_9_text_commons), + FAQItem(org.fossify.commons.R.string.faq_9_title_commons, org.fossify.commons.R.string.faq_9_text_commons), ) - if (!resources.getBoolean(com.simplemobiletools.commons.R.bool.hide_google_relations)) { - faqItems.add(FAQItem(com.simplemobiletools.commons.R.string.faq_2_title_commons, com.simplemobiletools.commons.R.string.faq_2_text_commons)) - faqItems.add(FAQItem(com.simplemobiletools.commons.R.string.faq_6_title_commons, com.simplemobiletools.commons.R.string.faq_6_text_commons)) - faqItems.add(FAQItem(com.simplemobiletools.commons.R.string.faq_7_title_commons, com.simplemobiletools.commons.R.string.faq_7_text_commons)) - faqItems.add(FAQItem(com.simplemobiletools.commons.R.string.faq_10_title_commons, com.simplemobiletools.commons.R.string.faq_10_text_commons)) + if (!resources.getBoolean(org.fossify.commons.R.bool.hide_google_relations)) { + faqItems.add(FAQItem(org.fossify.commons.R.string.faq_2_title_commons, org.fossify.commons.R.string.faq_2_text_commons)) + faqItems.add(FAQItem(org.fossify.commons.R.string.faq_6_title_commons, org.fossify.commons.R.string.faq_6_text_commons)) + faqItems.add(FAQItem(org.fossify.commons.R.string.faq_7_title_commons, org.fossify.commons.R.string.faq_7_text_commons)) + faqItems.add(FAQItem(org.fossify.commons.R.string.faq_10_title_commons, org.fossify.commons.R.string.faq_10_text_commons)) } if (isRPlus() && !isExternalStorageManager()) { @@ -138,7 +138,7 @@ fun BaseSimpleActivity.handleMediaManagementPrompt(callback: () -> Unit) { if (Environment.isExternalStorageManager()) { callback() } else { - var messagePrompt = getString(com.simplemobiletools.commons.R.string.access_storage_prompt) + var messagePrompt = getString(org.fossify.commons.R.string.access_storage_prompt) messagePrompt += if (isSPlus()) { "\n\n${getString(R.string.media_management_alternative)}" } else { @@ -214,7 +214,7 @@ fun BaseSimpleActivity.addNoMedia(path: String, callback: () -> Unit) { addNoMediaIntoMediaStore(file.absolutePath) callback() } else { - toast(com.simplemobiletools.commons.R.string.unknown_error_occurred) + toast(org.fossify.commons.R.string.unknown_error_occurred) callback() } } @@ -225,7 +225,7 @@ fun BaseSimpleActivity.addNoMedia(path: String, callback: () -> Unit) { addNoMediaIntoMediaStore(file.absolutePath) } } else { - toast(com.simplemobiletools.commons.R.string.unknown_error_occurred) + toast(org.fossify.commons.R.string.unknown_error_occurred) } } catch (e: Exception) { showErrorToast(e) @@ -296,7 +296,7 @@ fun BaseSimpleActivity.toggleFileVisibility(oldPath: String, hide: Boolean, call fun BaseSimpleActivity.tryCopyMoveFilesTo(fileDirItems: ArrayList, isCopyOperation: Boolean, callback: (destinationPath: String) -> Unit) { if (fileDirItems.isEmpty()) { - toast(com.simplemobiletools.commons.R.string.unknown_error_occurred) + toast(org.fossify.commons.R.string.unknown_error_occurred) return } @@ -477,10 +477,10 @@ fun BaseSimpleActivity.emptyTheRecycleBin(callback: (() -> Unit)? = null) { recycleBin.deleteRecursively() mediaDB.clearRecycleBin() directoryDB.deleteRecycleBin() - toast(com.simplemobiletools.commons.R.string.recycle_bin_emptied) + toast(org.fossify.commons.R.string.recycle_bin_emptied) callback?.invoke() } catch (e: Exception) { - toast(com.simplemobiletools.commons.R.string.unknown_error_occurred) + toast(org.fossify.commons.R.string.unknown_error_occurred) } } } @@ -498,9 +498,9 @@ fun BaseSimpleActivity.showRecycleBinEmptyingDialog(callback: () -> Unit) { ConfirmationDialog( this, "", - com.simplemobiletools.commons.R.string.empty_recycle_bin_confirmation, - com.simplemobiletools.commons.R.string.yes, - com.simplemobiletools.commons.R.string.no + org.fossify.commons.R.string.empty_recycle_bin_confirmation, + org.fossify.commons.R.string.yes, + org.fossify.commons.R.string.no ) { callback() } @@ -617,7 +617,7 @@ fun AppCompatActivity.fixDateTaken( runOnUiThread { if (showToasts) { - toast(if (didUpdateFile) R.string.dates_fixed_successfully else com.simplemobiletools.commons.R.string.unknown_error_occurred) + toast(if (didUpdateFile) R.string.dates_fixed_successfully else org.fossify.commons.R.string.unknown_error_occurred) } callback?.invoke() @@ -653,7 +653,7 @@ fun BaseSimpleActivity.saveRotatedImageToFile(oldPath: String, newPath: String, getFileOutputStream(tmpFileDirItem) { if (it == null) { if (showToasts) { - toast(com.simplemobiletools.commons.R.string.unknown_error_occurred) + toast(org.fossify.commons.R.string.unknown_error_occurred) } return@getFileOutputStream } @@ -678,7 +678,7 @@ fun BaseSimpleActivity.saveRotatedImageToFile(oldPath: String, newPath: String, } } catch (e: OutOfMemoryError) { if (showToasts) { - toast(com.simplemobiletools.commons.R.string.out_of_memory_error) + toast(org.fossify.commons.R.string.out_of_memory_error) } } catch (e: Exception) { if (showToasts) { @@ -698,7 +698,7 @@ fun Activity.tryRotateByExif(path: String, degrees: Int, showToasts: Boolean, ca fileRotatedSuccessfully(path, oldLastModified) callback.invoke() if (showToasts) { - toast(com.simplemobiletools.commons.R.string.file_saved) + toast(org.fossify.commons.R.string.file_saved) } true } else { @@ -807,7 +807,7 @@ fun BaseSimpleActivity.launchResizeImageDialog(path: String, callback: (() -> Un try { resizeImage(path, newPath, newSize) { success -> if (success) { - toast(com.simplemobiletools.commons.R.string.file_saved) + toast(org.fossify.commons.R.string.file_saved) val paths = arrayListOf(file.absolutePath) rescanPathsAndUpdateLastModified(paths, pathLastModifiedMap) { @@ -820,7 +820,7 @@ fun BaseSimpleActivity.launchResizeImageDialog(path: String, callback: (() -> Un } } } catch (e: OutOfMemoryError) { - toast(com.simplemobiletools.commons.R.string.out_of_memory_error) + toast(org.fossify.commons.R.string.out_of_memory_error) } catch (e: Exception) { showErrorToast(e) } @@ -888,7 +888,7 @@ fun Activity.getShortcutImage(tmb: String, drawable: Drawable, callback: () -> U .diskCacheStrategy(DiskCacheStrategy.NONE) .fitCenter() - val size = resources.getDimension(com.simplemobiletools.commons.R.dimen.shortcut_size).toInt() + val size = resources.getDimension(org.fossify.commons.R.dimen.shortcut_size).toInt() val builder = Glide.with(this) .asDrawable() .load(tmb) diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/extensions/ArrayList.kt b/app/src/main/kotlin/org/fossify/gallery/extensions/ArrayList.kt similarity index 75% rename from app/src/main/kotlin/com/simplemobiletools/gallery/pro/extensions/ArrayList.kt rename to app/src/main/kotlin/org/fossify/gallery/extensions/ArrayList.kt index 551b47d61..2370bd9b4 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/extensions/ArrayList.kt +++ b/app/src/main/kotlin/org/fossify/gallery/extensions/ArrayList.kt @@ -1,7 +1,7 @@ -package com.simplemobiletools.gallery.pro.extensions +package org.fossify.gallery.extensions -import com.simplemobiletools.gallery.pro.helpers.* -import com.simplemobiletools.gallery.pro.models.Medium +import org.fossify.gallery.helpers.* +import org.fossify.gallery.models.Medium fun ArrayList.getDirMediaTypes(): Int { var types = 0 diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/extensions/Context.kt b/app/src/main/kotlin/org/fossify/gallery/extensions/Context.kt similarity index 93% rename from app/src/main/kotlin/com/simplemobiletools/gallery/pro/extensions/Context.kt rename to app/src/main/kotlin/org/fossify/gallery/extensions/Context.kt index 2ef92ecfc..94600b0bc 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/extensions/Context.kt +++ b/app/src/main/kotlin/org/fossify/gallery/extensions/Context.kt @@ -1,4 +1,4 @@ -package com.simplemobiletools.gallery.pro.extensions +package org.fossify.gallery.extensions import android.appwidget.AppWidgetManager import android.content.ComponentName @@ -32,21 +32,22 @@ import com.bumptech.glide.request.RequestListener import com.bumptech.glide.request.RequestOptions import com.bumptech.glide.request.target.Target import com.bumptech.glide.signature.ObjectKey -import com.simplemobiletools.commons.extensions.* -import com.simplemobiletools.commons.helpers.* -import com.simplemobiletools.commons.views.MySquareImageView -import com.simplemobiletools.gallery.pro.R -import com.simplemobiletools.gallery.pro.asynctasks.GetMediaAsynctask -import com.simplemobiletools.gallery.pro.databases.GalleryDatabase -import com.simplemobiletools.gallery.pro.helpers.* -import com.simplemobiletools.gallery.pro.interfaces.* -import com.simplemobiletools.gallery.pro.models.* -import com.simplemobiletools.gallery.pro.svg.SvgSoftwareLayerSetter import com.squareup.picasso.Picasso +import org.fossify.commons.extensions.* +import org.fossify.commons.helpers.* +import org.fossify.commons.views.MySquareImageView +import org.fossify.gallery.R +import org.fossify.gallery.asynctasks.GetMediaAsynctask +import org.fossify.gallery.databases.GalleryDatabase +import org.fossify.gallery.helpers.* +import org.fossify.gallery.interfaces.* +import org.fossify.gallery.models.* +import org.fossify.gallery.svg.SvgSoftwareLayerSetter import java.io.File import java.io.FileInputStream import java.nio.ByteBuffer import java.nio.channels.FileChannel +import java.util.Locale import kotlin.collections.set import kotlin.math.max @@ -130,37 +131,44 @@ fun Context.getSortedDirectories(source: ArrayList): ArrayList { if (o1.sortValue.isEmpty()) { - o1.sortValue = o1.name.toLowerCase() + o1.sortValue = o1.name.lowercase(Locale.getDefault()) } if (o2.sortValue.isEmpty()) { - o2.sortValue = o2.name.toLowerCase() + o2.sortValue = o2.name.lowercase(Locale.getDefault()) } if (sorting and SORT_USE_NUMERIC_VALUE != 0) { - AlphanumericComparator().compare(o1.sortValue.normalizeString().toLowerCase(), o2.sortValue.normalizeString().toLowerCase()) + AlphanumericComparator().compare( + o1.sortValue.normalizeString().lowercase(Locale.getDefault()), + o2.sortValue.normalizeString().lowercase(Locale.getDefault()) + ) } else { - o1.sortValue.normalizeString().toLowerCase().compareTo(o2.sortValue.normalizeString().toLowerCase()) + o1.sortValue.normalizeString().lowercase(Locale.getDefault()).compareTo(o2.sortValue.normalizeString().lowercase(Locale.getDefault())) } } sorting and SORT_BY_PATH != 0 -> { if (o1.sortValue.isEmpty()) { - o1.sortValue = o1.path.toLowerCase() + o1.sortValue = o1.path.lowercase(Locale.getDefault()) } if (o2.sortValue.isEmpty()) { - o2.sortValue = o2.path.toLowerCase() + o2.sortValue = o2.path.lowercase(Locale.getDefault()) } if (sorting and SORT_USE_NUMERIC_VALUE != 0) { - AlphanumericComparator().compare(o1.sortValue.toLowerCase(), o2.sortValue.toLowerCase()) + AlphanumericComparator().compare(o1.sortValue.lowercase(Locale.getDefault()), o2.sortValue.lowercase(Locale.getDefault())) } else { - o1.sortValue.toLowerCase().compareTo(o2.sortValue.toLowerCase()) + o1.sortValue.lowercase(Locale.getDefault()).compareTo(o2.sortValue.lowercase(Locale.getDefault())) } } - sorting and SORT_BY_PATH != 0 -> AlphanumericComparator().compare(o1.sortValue.toLowerCase(), o2.sortValue.toLowerCase()) + sorting and SORT_BY_PATH != 0 -> AlphanumericComparator().compare( + o1.sortValue.lowercase(Locale.getDefault()), + o2.sortValue.lowercase(Locale.getDefault()) + ) + sorting and SORT_BY_SIZE != 0 -> (o1.sortValue.toLongOrNull() ?: 0).compareTo(o2.sortValue.toLongOrNull() ?: 0) sorting and SORT_BY_DATE_MODIFIED != 0 -> (o1.sortValue.toLongOrNull() ?: 0).compareTo(o2.sortValue.toLongOrNull() ?: 0) else -> (o1.sortValue.toLongOrNull() ?: 0).compareTo(o2.sortValue.toLongOrNull() ?: 0) @@ -230,7 +238,7 @@ private fun Context.addParentWithoutMediaFiles(into: ArrayList, path: path, subDirs.first().tmb, getFolderNameFromPath(path), - subDirs.sumBy { it.mediaCnt }, + subDirs.sumOf { it.mediaCnt }, lastModified, dateTaken, subDirs.sumByLong { it.size }, @@ -454,11 +462,11 @@ fun Context.checkAppendingHidden(path: String, hidden: String, includedFolders: fun Context.getFolderNameFromPath(path: String): String { return when (path) { - internalStoragePath -> getString(com.simplemobiletools.commons.R.string.internal) - sdCardPath -> getString(com.simplemobiletools.commons.R.string.sd_card) - otgPath -> getString(com.simplemobiletools.commons.R.string.usb) - FAVORITES -> getString(com.simplemobiletools.commons.R.string.favorites) - RECYCLE_BIN -> getString(com.simplemobiletools.commons.R.string.recycle_bin) + internalStoragePath -> getString(org.fossify.commons.R.string.internal) + sdCardPath -> getString(org.fossify.commons.R.string.sd_card) + otgPath -> getString(org.fossify.commons.R.string.usb) + FAVORITES -> getString(org.fossify.commons.R.string.favorites) + RECYCLE_BIN -> getString(org.fossify.commons.R.string.recycle_bin) else -> path.getFilenameFromPath() } } @@ -534,11 +542,15 @@ fun Context.loadImageBase( } if (roundCorners != ROUNDED_CORNERS_NONE) { - val cornerSize = if (roundCorners == ROUNDED_CORNERS_SMALL) com.simplemobiletools.commons.R.dimen.rounded_corner_radius_small else com.simplemobiletools.commons.R.dimen.rounded_corner_radius_big + val cornerSize = + if (roundCorners == ROUNDED_CORNERS_SMALL) org.fossify.commons.R.dimen.rounded_corner_radius_small else org.fossify.commons.R.dimen.rounded_corner_radius_big val cornerRadius = resources.getDimension(cornerSize).toInt() val roundedCornersTransform = RoundedCorners(cornerRadius) options.optionalTransform(MultiTransformation(CenterCrop(), roundedCornersTransform)) - options.optionalTransform(WebpDrawable::class.java, MultiTransformation(WebpDrawableTransformation(CenterCrop()), WebpDrawableTransformation(roundedCornersTransform))) + options.optionalTransform( + WebpDrawable::class.java, + MultiTransformation(WebpDrawableTransformation(CenterCrop()), WebpDrawableTransformation(roundedCornersTransform)) + ) } WebpBitmapFactory.sUseSystemDecoder = false // CVE-2023-4863 @@ -583,7 +595,7 @@ fun Context.loadSVG(path: String, target: MySquareImageView, cropThumbnails: Boo if (roundCorners != ROUNDED_CORNERS_NONE) { val cornerSize = - if (roundCorners == ROUNDED_CORNERS_SMALL) com.simplemobiletools.commons.R.dimen.rounded_corner_radius_small else com.simplemobiletools.commons.R.dimen.rounded_corner_radius_big + if (roundCorners == ROUNDED_CORNERS_SMALL) org.fossify.commons.R.dimen.rounded_corner_radius_small else org.fossify.commons.R.dimen.rounded_corner_radius_big val cornerRadius = resources.getDimension(cornerSize).toInt() builder = builder.transform(CenterCrop(), RoundedCorners(cornerRadius)) } @@ -609,7 +621,7 @@ fun Context.tryLoadingWithPicasso(path: String, view: MySquareImageView, cropThu if (roundCorners != ROUNDED_CORNERS_NONE) { val cornerSize = - if (roundCorners == ROUNDED_CORNERS_SMALL) com.simplemobiletools.commons.R.dimen.rounded_corner_radius_small else com.simplemobiletools.commons.R.dimen.rounded_corner_radius_big + if (roundCorners == ROUNDED_CORNERS_SMALL) org.fossify.commons.R.dimen.rounded_corner_radius_small else org.fossify.commons.R.dimen.rounded_corner_radius_big val cornerRadius = resources.getDimension(cornerSize).toInt() builder = builder.transform(PicassoRoundedCornersTransformation(cornerRadius.toFloat())) } @@ -848,7 +860,7 @@ fun Context.updateFavorite(path: String, isFavorite: Boolean) { favoritesDB.deleteFavoritePath(path) } } catch (e: Exception) { - toast(com.simplemobiletools.commons.R.string.unknown_error_occurred) + toast(org.fossify.commons.R.string.unknown_error_occurred) } } @@ -929,7 +941,7 @@ fun Context.parseFileChannel(path: String, fc: FileChannel, level: Int, start: L } } - val xmlString = sb.toString().toLowerCase() + val xmlString = sb.toString().lowercase(Locale.getDefault()) if (xmlString.contains("gspherical:projectiontype>equirectangular") || xmlString.contains("gspherical:projectiontype=\"equirectangular\"")) { callback.invoke() } diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/extensions/ExifInterface.kt b/app/src/main/kotlin/org/fossify/gallery/extensions/ExifInterface.kt similarity index 97% rename from app/src/main/kotlin/com/simplemobiletools/gallery/pro/extensions/ExifInterface.kt rename to app/src/main/kotlin/org/fossify/gallery/extensions/ExifInterface.kt index 6522c828b..412827e55 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/extensions/ExifInterface.kt +++ b/app/src/main/kotlin/org/fossify/gallery/extensions/ExifInterface.kt @@ -1,4 +1,4 @@ -package com.simplemobiletools.gallery.pro.extensions +package org.fossify.gallery.extensions import androidx.exifinterface.media.ExifInterface import java.lang.reflect.Field diff --git a/app/src/main/kotlin/org/fossify/gallery/extensions/FileDirItem.kt b/app/src/main/kotlin/org/fossify/gallery/extensions/FileDirItem.kt new file mode 100644 index 000000000..1a0eeefbc --- /dev/null +++ b/app/src/main/kotlin/org/fossify/gallery/extensions/FileDirItem.kt @@ -0,0 +1,5 @@ +package org.fossify.gallery.extensions + +import org.fossify.commons.models.FileDirItem + +fun FileDirItem.isDownloadsFolder() = path.isDownloadsFolder() diff --git a/app/src/main/kotlin/org/fossify/gallery/extensions/Int.kt b/app/src/main/kotlin/org/fossify/gallery/extensions/Int.kt new file mode 100644 index 000000000..c47f8f48e --- /dev/null +++ b/app/src/main/kotlin/org/fossify/gallery/extensions/Int.kt @@ -0,0 +1,5 @@ +package org.fossify.gallery.extensions + +import org.fossify.commons.helpers.SORT_DESCENDING + +fun Int.isSortingAscending() = this and SORT_DESCENDING == 0 diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/extensions/Resources.kt b/app/src/main/kotlin/org/fossify/gallery/extensions/Resources.kt similarity index 93% rename from app/src/main/kotlin/com/simplemobiletools/gallery/pro/extensions/Resources.kt rename to app/src/main/kotlin/org/fossify/gallery/extensions/Resources.kt index d086fb7a5..6fe190f2a 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/extensions/Resources.kt +++ b/app/src/main/kotlin/org/fossify/gallery/extensions/Resources.kt @@ -1,4 +1,4 @@ -package com.simplemobiletools.gallery.pro.extensions +package org.fossify.gallery.extensions import android.content.Context import android.content.res.Resources diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/extensions/String.kt b/app/src/main/kotlin/org/fossify/gallery/extensions/String.kt similarity index 91% rename from app/src/main/kotlin/com/simplemobiletools/gallery/pro/extensions/String.kt rename to app/src/main/kotlin/org/fossify/gallery/extensions/String.kt index dee1aef64..c1077a4fb 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/extensions/String.kt +++ b/app/src/main/kotlin/org/fossify/gallery/extensions/String.kt @@ -1,11 +1,12 @@ -package com.simplemobiletools.gallery.pro.extensions +package org.fossify.gallery.extensions import android.os.Environment -import com.simplemobiletools.commons.extensions.isExternalStorageManager -import com.simplemobiletools.commons.helpers.NOMEDIA -import com.simplemobiletools.commons.helpers.isRPlus +import org.fossify.commons.extensions.isExternalStorageManager +import org.fossify.commons.helpers.NOMEDIA +import org.fossify.commons.helpers.isRPlus import java.io.File import java.io.IOException +import java.util.Locale fun String.isThisOrParentIncluded(includedPaths: MutableSet) = includedPaths.any { equals(it, true) } || includedPaths.any { "$this/".startsWith("$it/", true) } @@ -84,9 +85,9 @@ fun String.shouldFolderBeVisible( // recognize /sdcard/DCIM as the same folder as /storage/emulated/0/DCIM fun String.getDistinctPath(): String { return try { - File(this).canonicalPath.toLowerCase() + File(this).canonicalPath.lowercase(Locale.getDefault()) } catch (e: IOException) { - toLowerCase() + lowercase(Locale.getDefault()) } } diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/extensions/View.kt b/app/src/main/kotlin/org/fossify/gallery/extensions/View.kt similarity index 87% rename from app/src/main/kotlin/com/simplemobiletools/gallery/pro/extensions/View.kt rename to app/src/main/kotlin/org/fossify/gallery/extensions/View.kt index 24107d2a2..fb26dca30 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/extensions/View.kt +++ b/app/src/main/kotlin/org/fossify/gallery/extensions/View.kt @@ -1,4 +1,4 @@ -package com.simplemobiletools.gallery.pro.extensions +package org.fossify.gallery.extensions import android.os.SystemClock import android.view.MotionEvent diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/fragments/PhotoFragment.kt b/app/src/main/kotlin/org/fossify/gallery/fragments/PhotoFragment.kt similarity index 95% rename from app/src/main/kotlin/com/simplemobiletools/gallery/pro/fragments/PhotoFragment.kt rename to app/src/main/kotlin/org/fossify/gallery/fragments/PhotoFragment.kt index 715f23472..60a8cf944 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/fragments/PhotoFragment.kt +++ b/app/src/main/kotlin/org/fossify/gallery/fragments/PhotoFragment.kt @@ -1,4 +1,4 @@ -package com.simplemobiletools.gallery.pro.fragments +package org.fossify.gallery.fragments import android.content.Intent import android.content.res.Configuration @@ -38,31 +38,32 @@ import com.davemorrissey.labs.subscaleview.ImageRegionDecoder import com.davemorrissey.labs.subscaleview.SubsamplingScaleImageView import com.github.penfeizhou.animation.apng.APNGDrawable import com.github.penfeizhou.animation.webp.WebPDrawable -import com.simplemobiletools.commons.activities.BaseSimpleActivity -import com.simplemobiletools.commons.extensions.* -import com.simplemobiletools.commons.helpers.ensureBackgroundThread -import com.simplemobiletools.commons.helpers.isRPlus -import com.simplemobiletools.gallery.pro.R -import com.simplemobiletools.gallery.pro.activities.PanoramaPhotoActivity -import com.simplemobiletools.gallery.pro.activities.PhotoActivity -import com.simplemobiletools.gallery.pro.activities.PhotoVideoActivity -import com.simplemobiletools.gallery.pro.activities.ViewPagerActivity -import com.simplemobiletools.gallery.pro.adapters.PortraitPhotosAdapter -import com.simplemobiletools.gallery.pro.databinding.PagerPhotoItemBinding -import com.simplemobiletools.gallery.pro.extensions.config -import com.simplemobiletools.gallery.pro.extensions.saveRotatedImageToFile -import com.simplemobiletools.gallery.pro.extensions.sendFakeClick -import com.simplemobiletools.gallery.pro.helpers.* -import com.simplemobiletools.gallery.pro.models.Medium -import com.simplemobiletools.gallery.pro.svg.SvgSoftwareLayerSetter import com.squareup.picasso.Callback import com.squareup.picasso.Picasso import it.sephiroth.android.library.exif2.ExifInterface import org.apache.sanselan.common.byteSources.ByteSourceInputStream import org.apache.sanselan.formats.jpeg.JpegImageParser +import org.fossify.commons.activities.BaseSimpleActivity +import org.fossify.commons.extensions.* +import org.fossify.commons.helpers.ensureBackgroundThread +import org.fossify.commons.helpers.isRPlus +import org.fossify.gallery.R +import org.fossify.gallery.activities.PanoramaPhotoActivity +import org.fossify.gallery.activities.PhotoActivity +import org.fossify.gallery.activities.PhotoVideoActivity +import org.fossify.gallery.activities.ViewPagerActivity +import org.fossify.gallery.adapters.PortraitPhotosAdapter +import org.fossify.gallery.databinding.PagerPhotoItemBinding +import org.fossify.gallery.extensions.config +import org.fossify.gallery.extensions.saveRotatedImageToFile +import org.fossify.gallery.extensions.sendFakeClick +import org.fossify.gallery.helpers.* +import org.fossify.gallery.models.Medium +import org.fossify.gallery.svg.SvgSoftwareLayerSetter import pl.droidsonroids.gif.InputSource import java.io.File import java.io.FileOutputStream +import java.util.Locale import kotlin.math.ceil class PhotoFragment : ViewPagerFragment() { @@ -197,7 +198,7 @@ class PhotoFragment : ViewPagerFragment() { rotated.compress(Bitmap.CompressFormat.JPEG, 100, out) mMedium.path = file.absolutePath } catch (e: Exception) { - requireActivity().toast(com.simplemobiletools.commons.R.string.unknown_error_occurred) + requireActivity().toast(org.fossify.commons.R.string.unknown_error_occurred) return mView } finally { out?.close() @@ -529,7 +530,7 @@ class PhotoFragment : ViewPagerFragment() { if (files != null) { val screenWidth = requireContext().realScreenSize.x val itemWidth = - resources.getDimension(R.dimen.portrait_photos_stripe_height).toInt() + resources.getDimension(com.simplemobiletools.commons.R.dimen.one_dp) + resources.getDimension(R.dimen.portrait_photos_stripe_height).toInt() + resources.getDimension(org.fossify.commons.R.dimen.one_dp) .toInt() val sideWidth = screenWidth / 2 - itemWidth / 2 val fakeItemsCnt = ceil(sideWidth / itemWidth.toDouble()).toInt() @@ -591,7 +592,7 @@ class PhotoFragment : ViewPagerFragment() { } private fun setupStripeBottomMargin() { - var bottomMargin = requireContext().navigationBarHeight + resources.getDimension(com.simplemobiletools.commons.R.dimen.normal_margin).toInt() + var bottomMargin = requireContext().navigationBarHeight + resources.getDimension(org.fossify.commons.R.dimen.normal_margin).toInt() if (requireContext().config.bottomActions) { bottomMargin += resources.getDimension(R.dimen.bottom_actions_height).toInt() } @@ -734,7 +735,7 @@ class PhotoFragment : ViewPagerFragment() { private fun getMinTileDpi(): Int { val metrics = resources.displayMetrics val averageDpi = (metrics.xdpi + metrics.ydpi) / 2 - val device = "${Build.BRAND} ${Build.MODEL}".toLowerCase() + val device = "${Build.BRAND} ${Build.MODEL}".lowercase(Locale.getDefault()) return when { WEIRD_DEVICES.contains(device) -> WEIRD_TILE_DPI averageDpi > 400 -> HIGH_TILE_DPI @@ -744,7 +745,7 @@ class PhotoFragment : ViewPagerFragment() { } private fun checkIfPanorama() { - mIsPanorama = try { + mIsPanorama = try { if (mMedium.path.startsWith("content:/")) { requireContext().contentResolver.openInputStream(Uri.parse(mMedium.path)) } else { @@ -894,7 +895,7 @@ class PhotoFragment : ViewPagerFragment() { } private fun getExtendedDetailsY(height: Int): Float { - val smallMargin = context?.resources?.getDimension(com.simplemobiletools.commons.R.dimen.small_margin) ?: return 0f + val smallMargin = context?.resources?.getDimension(org.fossify.commons.R.dimen.small_margin) ?: return 0f val fullscreenOffset = smallMargin + if (mIsFullscreen) 0 else requireContext().navigationBarHeight val actionsHeight = if (requireContext().config.bottomActions && !mIsFullscreen) resources.getDimension(R.dimen.bottom_actions_height) else 0f return requireContext().realScreenSize.y - height - actionsHeight - fullscreenOffset diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/fragments/VideoFragment.kt b/app/src/main/kotlin/org/fossify/gallery/fragments/VideoFragment.kt similarity index 95% rename from app/src/main/kotlin/com/simplemobiletools/gallery/pro/fragments/VideoFragment.kt rename to app/src/main/kotlin/org/fossify/gallery/fragments/VideoFragment.kt index c4cc359a9..b3c4dd4c5 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/fragments/VideoFragment.kt +++ b/app/src/main/kotlin/org/fossify/gallery/fragments/VideoFragment.kt @@ -1,4 +1,4 @@ -package com.simplemobiletools.gallery.pro.fragments +package org.fossify.gallery.fragments import android.content.Intent import android.content.res.Configuration @@ -25,18 +25,18 @@ import androidx.media3.exoplayer.source.DefaultMediaSourceFactory import androidx.media3.exoplayer.source.MediaSource import androidx.media3.exoplayer.source.ProgressiveMediaSource import com.bumptech.glide.Glide -import com.simplemobiletools.commons.extensions.* -import com.simplemobiletools.commons.helpers.ensureBackgroundThread -import com.simplemobiletools.gallery.pro.R -import com.simplemobiletools.gallery.pro.activities.PanoramaVideoActivity -import com.simplemobiletools.gallery.pro.activities.VideoActivity -import com.simplemobiletools.gallery.pro.databinding.PagerVideoItemBinding -import com.simplemobiletools.gallery.pro.extensions.config -import com.simplemobiletools.gallery.pro.extensions.hasNavBar -import com.simplemobiletools.gallery.pro.extensions.parseFileChannel -import com.simplemobiletools.gallery.pro.helpers.* -import com.simplemobiletools.gallery.pro.models.Medium -import com.simplemobiletools.gallery.pro.views.MediaSideScroll +import org.fossify.commons.extensions.* +import org.fossify.commons.helpers.ensureBackgroundThread +import org.fossify.gallery.R +import org.fossify.gallery.activities.PanoramaVideoActivity +import org.fossify.gallery.activities.VideoActivity +import org.fossify.gallery.databinding.PagerVideoItemBinding +import org.fossify.gallery.extensions.config +import org.fossify.gallery.extensions.hasNavBar +import org.fossify.gallery.extensions.parseFileChannel +import org.fossify.gallery.helpers.* +import org.fossify.gallery.models.Medium +import org.fossify.gallery.views.MediaSideScroll import java.io.File import java.io.FileInputStream @@ -537,7 +537,7 @@ class VideoFragment : ViewPagerFragment(), TextureView.SurfaceTextureListener, S } private fun getExtendedDetailsY(height: Int): Float { - val smallMargin = context?.resources?.getDimension(com.simplemobiletools.commons.R.dimen.small_margin) ?: return 0f + val smallMargin = context?.resources?.getDimension(org.fossify.commons.R.dimen.small_margin) ?: return 0f val fullscreenOffset = smallMargin + if (mIsFullscreen) 0 else requireContext().navigationBarHeight var actionsHeight = 0f if (!mIsFullscreen) { @@ -654,7 +654,7 @@ class VideoFragment : ViewPagerFragment(), TextureView.SurfaceTextureListener, S } if (!wasEnded || !mConfig.loopVideos) { - mPlayPauseButton.setImageResource(com.simplemobiletools.commons.R.drawable.ic_pause_outline_vector) + mPlayPauseButton.setImageResource(org.fossify.commons.R.drawable.ic_pause_outline_vector) } if (!mWasVideoStarted) { @@ -680,7 +680,7 @@ class VideoFragment : ViewPagerFragment(), TextureView.SurfaceTextureListener, S mExoPlayer?.playWhenReady = false } - mPlayPauseButton.setImageResource(com.simplemobiletools.commons.R.drawable.ic_play_outline_vector) + mPlayPauseButton.setImageResource(org.fossify.commons.R.drawable.ic_play_outline_vector) activity?.window?.clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON) mPositionAtPause = mExoPlayer?.currentPosition ?: 0L } diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/fragments/ViewPagerFragment.kt b/app/src/main/kotlin/org/fossify/gallery/fragments/ViewPagerFragment.kt similarity index 87% rename from app/src/main/kotlin/com/simplemobiletools/gallery/pro/fragments/ViewPagerFragment.kt rename to app/src/main/kotlin/org/fossify/gallery/fragments/ViewPagerFragment.kt index 5c1e9ea4e..bc5bac63e 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/fragments/ViewPagerFragment.kt +++ b/app/src/main/kotlin/org/fossify/gallery/fragments/ViewPagerFragment.kt @@ -1,4 +1,4 @@ -package com.simplemobiletools.gallery.pro.fragments +package org.fossify.gallery.fragments import android.provider.MediaStore import android.provider.MediaStore.Files @@ -6,10 +6,10 @@ import android.provider.MediaStore.Images import android.view.MotionEvent import androidx.exifinterface.media.ExifInterface import androidx.fragment.app.Fragment -import com.simplemobiletools.commons.extensions.* -import com.simplemobiletools.gallery.pro.extensions.config -import com.simplemobiletools.gallery.pro.helpers.* -import com.simplemobiletools.gallery.pro.models.Medium +import org.fossify.commons.extensions.* +import org.fossify.gallery.extensions.config +import org.fossify.gallery.helpers.* +import org.fossify.gallery.models.Medium import java.io.File abstract class ViewPagerFragment : Fragment() { @@ -53,39 +53,39 @@ abstract class ViewPagerFragment : Fragment() { val details = StringBuilder() val detailsFlag = context!!.config.extendedDetails if (detailsFlag and EXT_NAME != 0) { - medium.name.let { if (it.isNotEmpty()) details.appendln(it) } + medium.name.let { if (it.isNotEmpty()) details.appendLine(it) } } if (detailsFlag and EXT_PATH != 0) { - path.let { if (it.isNotEmpty()) details.appendln(it) } + path.let { if (it.isNotEmpty()) details.appendLine(it) } } if (detailsFlag and EXT_SIZE != 0) { - file.length().formatSize().let { if (it.isNotEmpty()) details.appendln(it) } + file.length().formatSize().let { if (it.isNotEmpty()) details.appendLine(it) } } if (detailsFlag and EXT_RESOLUTION != 0) { - context!!.getResolution(file.absolutePath)?.formatAsResolution().let { if (it?.isNotEmpty() == true) details.appendln(it) } + context!!.getResolution(file.absolutePath)?.formatAsResolution().let { if (it?.isNotEmpty() == true) details.appendLine(it) } } if (detailsFlag and EXT_LAST_MODIFIED != 0) { - getFileLastModified(file).let { if (it.isNotEmpty()) details.appendln(it) } + getFileLastModified(file).let { if (it.isNotEmpty()) details.appendLine(it) } } if (detailsFlag and EXT_DATE_TAKEN != 0) { - exif.getExifDateTaken(context!!).let { if (it.isNotEmpty()) details.appendln(it) } + exif.getExifDateTaken(context!!).let { if (it.isNotEmpty()) details.appendLine(it) } } if (detailsFlag and EXT_CAMERA_MODEL != 0) { - exif.getExifCameraModel().let { if (it.isNotEmpty()) details.appendln(it) } + exif.getExifCameraModel().let { if (it.isNotEmpty()) details.appendLine(it) } } if (detailsFlag and EXT_EXIF_PROPERTIES != 0) { - exif.getExifProperties().let { if (it.isNotEmpty()) details.appendln(it) } + exif.getExifProperties().let { if (it.isNotEmpty()) details.appendLine(it) } } if (detailsFlag and EXT_GPS != 0) { - getLatLonAltitude(medium.path).let { if (it.isNotEmpty()) details.appendln(it) } + getLatLonAltitude(medium.path).let { if (it.isNotEmpty()) details.appendLine(it) } } return details.toString().trim() } @@ -147,7 +147,7 @@ abstract class ViewPagerFragment : Fragment() { val downGestureDuration = System.currentTimeMillis() - mTouchDownTime if (!mIgnoreCloseDown && (Math.abs(diffY) > Math.abs(diffX)) && (diffY < -mCloseDownThreshold) && downGestureDuration < MAX_CLOSE_DOWN_GESTURE_DURATION && context?.config?.allowDownGesture == true) { activity?.finish() - activity?.overridePendingTransition(0, com.simplemobiletools.commons.R.anim.slide_down) + activity?.overridePendingTransition(0, org.fossify.commons.R.anim.slide_down) } mIgnoreCloseDown = false } diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/helpers/Config.kt b/app/src/main/kotlin/org/fossify/gallery/helpers/Config.kt similarity index 96% rename from app/src/main/kotlin/com/simplemobiletools/gallery/pro/helpers/Config.kt rename to app/src/main/kotlin/org/fossify/gallery/helpers/Config.kt index b50e69740..cf8044251 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/helpers/Config.kt +++ b/app/src/main/kotlin/org/fossify/gallery/helpers/Config.kt @@ -1,14 +1,15 @@ -package com.simplemobiletools.gallery.pro.helpers +package org.fossify.gallery.helpers import android.content.Context import android.content.res.Configuration import android.os.Environment import com.google.gson.Gson import com.google.gson.reflect.TypeToken -import com.simplemobiletools.commons.helpers.* -import com.simplemobiletools.gallery.pro.R -import com.simplemobiletools.gallery.pro.models.AlbumCover +import org.fossify.commons.helpers.* +import org.fossify.gallery.R +import org.fossify.gallery.models.AlbumCover import java.util.Arrays +import java.util.Locale class Config(context: Context) : BaseConfig(context) { companion object { @@ -23,12 +24,12 @@ class Config(context: Context) : BaseConfig(context) { if (path.isEmpty()) { groupBy = value } else { - prefs.edit().putInt(GROUP_FOLDER_PREFIX + path.toLowerCase(), value).apply() + prefs.edit().putInt(GROUP_FOLDER_PREFIX + path.lowercase(Locale.getDefault()), value).apply() } } fun getFolderGrouping(path: String): Int { - var groupBy = prefs.getInt(GROUP_FOLDER_PREFIX + path.toLowerCase(), groupBy) + var groupBy = prefs.getInt(GROUP_FOLDER_PREFIX + path.lowercase(Locale.getDefault()), groupBy) if (path != SHOW_ALL && groupBy and GROUP_BY_FOLDER != 0) { groupBy -= GROUP_BY_FOLDER + 1 } @@ -36,26 +37,26 @@ class Config(context: Context) : BaseConfig(context) { } fun removeFolderGrouping(path: String) { - prefs.edit().remove(GROUP_FOLDER_PREFIX + path.toLowerCase()).apply() + prefs.edit().remove(GROUP_FOLDER_PREFIX + path.lowercase(Locale.getDefault())).apply() } - fun hasCustomGrouping(path: String) = prefs.contains(GROUP_FOLDER_PREFIX + path.toLowerCase()) + fun hasCustomGrouping(path: String) = prefs.contains(GROUP_FOLDER_PREFIX + path.lowercase(Locale.getDefault())) fun saveFolderViewType(path: String, value: Int) { if (path.isEmpty()) { viewTypeFiles = value } else { - prefs.edit().putInt(VIEW_TYPE_PREFIX + path.toLowerCase(), value).apply() + prefs.edit().putInt(VIEW_TYPE_PREFIX + path.lowercase(Locale.getDefault()), value).apply() } } - fun getFolderViewType(path: String) = prefs.getInt(VIEW_TYPE_PREFIX + path.toLowerCase(), viewTypeFiles) + fun getFolderViewType(path: String) = prefs.getInt(VIEW_TYPE_PREFIX + path.lowercase(Locale.getDefault()), viewTypeFiles) fun removeFolderViewType(path: String) { - prefs.edit().remove(VIEW_TYPE_PREFIX + path.toLowerCase()).apply() + prefs.edit().remove(VIEW_TYPE_PREFIX + path.lowercase(Locale.getDefault())).apply() } - fun hasCustomViewType(path: String) = prefs.contains(VIEW_TYPE_PREFIX + path.toLowerCase()) + fun hasCustomViewType(path: String) = prefs.contains(VIEW_TYPE_PREFIX + path.lowercase(Locale.getDefault())) var wasHideFolderTooltipShown: Boolean get() = prefs.getBoolean(HIDE_FOLDER_TOOLTIP_SHOWN, false) @@ -396,16 +397,16 @@ class Config(context: Context) : BaseConfig(context) { set(bottomActions) = prefs.edit().putBoolean(BOTTOM_ACTIONS, bottomActions).apply() fun removeLastVideoPosition(path: String) { - prefs.edit().remove("$LAST_VIDEO_POSITION_PREFIX${path.toLowerCase()}").apply() + prefs.edit().remove("$LAST_VIDEO_POSITION_PREFIX${path.lowercase(Locale.getDefault())}").apply() } fun saveLastVideoPosition(path: String, value: Int) { if (path.isNotEmpty()) { - prefs.edit().putInt("$LAST_VIDEO_POSITION_PREFIX${path.toLowerCase()}", value).apply() + prefs.edit().putInt("$LAST_VIDEO_POSITION_PREFIX${path.lowercase(Locale.getDefault())}", value).apply() } } - fun getLastVideoPosition(path: String) = prefs.getInt("$LAST_VIDEO_POSITION_PREFIX${path.toLowerCase()}", 0) + fun getLastVideoPosition(path: String) = prefs.getInt("$LAST_VIDEO_POSITION_PREFIX${path.lowercase(Locale.getDefault())}", 0) fun getAllLastVideoPositions() = prefs.all.filterKeys { it.startsWith(LAST_VIDEO_POSITION_PREFIX) diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/helpers/Constants.kt b/app/src/main/kotlin/org/fossify/gallery/helpers/Constants.kt similarity index 99% rename from app/src/main/kotlin/com/simplemobiletools/gallery/pro/helpers/Constants.kt rename to app/src/main/kotlin/org/fossify/gallery/helpers/Constants.kt index d5af5d1a3..ef117fc2a 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/helpers/Constants.kt +++ b/app/src/main/kotlin/org/fossify/gallery/helpers/Constants.kt @@ -1,6 +1,6 @@ -package com.simplemobiletools.gallery.pro.helpers +package org.fossify.gallery.helpers -import com.simplemobiletools.commons.helpers.* +import org.fossify.commons.helpers.* // shared preferences const val DIRECTORY_SORT_ORDER = "directory_sort_order" diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/helpers/DefaultPageTransformer.kt b/app/src/main/kotlin/org/fossify/gallery/helpers/DefaultPageTransformer.kt similarity index 79% rename from app/src/main/kotlin/com/simplemobiletools/gallery/pro/helpers/DefaultPageTransformer.kt rename to app/src/main/kotlin/org/fossify/gallery/helpers/DefaultPageTransformer.kt index 95981ba4a..7788c78fb 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/helpers/DefaultPageTransformer.kt +++ b/app/src/main/kotlin/org/fossify/gallery/helpers/DefaultPageTransformer.kt @@ -1,4 +1,4 @@ -package com.simplemobiletools.gallery.pro.helpers +package org.fossify.gallery.helpers import android.view.View import androidx.viewpager.widget.ViewPager diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/helpers/FadePageTransformer.kt b/app/src/main/kotlin/org/fossify/gallery/helpers/FadePageTransformer.kt similarity index 89% rename from app/src/main/kotlin/com/simplemobiletools/gallery/pro/helpers/FadePageTransformer.kt rename to app/src/main/kotlin/org/fossify/gallery/helpers/FadePageTransformer.kt index 3ed113b40..80c4058dd 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/helpers/FadePageTransformer.kt +++ b/app/src/main/kotlin/org/fossify/gallery/helpers/FadePageTransformer.kt @@ -1,4 +1,4 @@ -package com.simplemobiletools.gallery.pro.helpers +package org.fossify.gallery.helpers import android.view.View import androidx.viewpager.widget.ViewPager diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/helpers/FilterThumbnailsManager.kt b/app/src/main/kotlin/org/fossify/gallery/helpers/FilterThumbnailsManager.kt similarity index 86% rename from app/src/main/kotlin/com/simplemobiletools/gallery/pro/helpers/FilterThumbnailsManager.kt rename to app/src/main/kotlin/org/fossify/gallery/helpers/FilterThumbnailsManager.kt index d517cf74d..b30df4a80 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/helpers/FilterThumbnailsManager.kt +++ b/app/src/main/kotlin/org/fossify/gallery/helpers/FilterThumbnailsManager.kt @@ -1,7 +1,7 @@ -package com.simplemobiletools.gallery.pro.helpers +package org.fossify.gallery.helpers import android.graphics.Bitmap -import com.simplemobiletools.gallery.pro.models.FilterItem +import org.fossify.gallery.models.FilterItem class FilterThumbnailsManager { private var filterThumbnails = ArrayList(10) diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/helpers/GridSpacingItemDecoration.kt b/app/src/main/kotlin/org/fossify/gallery/helpers/GridSpacingItemDecoration.kt similarity index 93% rename from app/src/main/kotlin/com/simplemobiletools/gallery/pro/helpers/GridSpacingItemDecoration.kt rename to app/src/main/kotlin/org/fossify/gallery/helpers/GridSpacingItemDecoration.kt index 227833039..85f399fcf 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/helpers/GridSpacingItemDecoration.kt +++ b/app/src/main/kotlin/org/fossify/gallery/helpers/GridSpacingItemDecoration.kt @@ -1,10 +1,10 @@ -package com.simplemobiletools.gallery.pro.helpers +package org.fossify.gallery.helpers import android.graphics.Rect import android.view.View import androidx.recyclerview.widget.RecyclerView -import com.simplemobiletools.gallery.pro.models.Medium -import com.simplemobiletools.gallery.pro.models.ThumbnailItem +import org.fossify.gallery.models.Medium +import org.fossify.gallery.models.ThumbnailItem class GridSpacingItemDecoration( val spanCount: Int, val spacing: Int, val isScrollingHorizontally: Boolean, val addSideSpacing: Boolean, diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/helpers/IsoTypeReader.kt b/app/src/main/kotlin/org/fossify/gallery/helpers/IsoTypeReader.kt similarity index 93% rename from app/src/main/kotlin/com/simplemobiletools/gallery/pro/helpers/IsoTypeReader.kt rename to app/src/main/kotlin/org/fossify/gallery/helpers/IsoTypeReader.kt index d8c33e72d..70466cad5 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/helpers/IsoTypeReader.kt +++ b/app/src/main/kotlin/org/fossify/gallery/helpers/IsoTypeReader.kt @@ -1,4 +1,4 @@ -package com.simplemobiletools.gallery.pro.helpers +package org.fossify.gallery.helpers import java.io.UnsupportedEncodingException import java.nio.ByteBuffer diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/helpers/MediaFetcher.kt b/app/src/main/kotlin/org/fossify/gallery/helpers/MediaFetcher.kt similarity index 95% rename from app/src/main/kotlin/com/simplemobiletools/gallery/pro/helpers/MediaFetcher.kt rename to app/src/main/kotlin/org/fossify/gallery/helpers/MediaFetcher.kt index d17e5f3bf..272e30e7c 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/helpers/MediaFetcher.kt +++ b/app/src/main/kotlin/org/fossify/gallery/helpers/MediaFetcher.kt @@ -1,4 +1,4 @@ -package com.simplemobiletools.gallery.pro.helpers +package org.fossify.gallery.helpers import android.content.ContentResolver import android.content.Context @@ -11,13 +11,13 @@ import android.provider.MediaStore import android.provider.MediaStore.Files import android.provider.MediaStore.Images import android.text.format.DateFormat -import com.simplemobiletools.commons.extensions.* -import com.simplemobiletools.commons.helpers.* -import com.simplemobiletools.gallery.pro.R -import com.simplemobiletools.gallery.pro.extensions.* -import com.simplemobiletools.gallery.pro.models.Medium -import com.simplemobiletools.gallery.pro.models.ThumbnailItem -import com.simplemobiletools.gallery.pro.models.ThumbnailSection +import org.fossify.commons.extensions.* +import org.fossify.commons.helpers.* +import org.fossify.gallery.R +import org.fossify.gallery.extensions.* +import org.fossify.gallery.models.Medium +import org.fossify.gallery.models.ThumbnailItem +import org.fossify.gallery.models.ThumbnailSection import java.io.File import java.util.Calendar import java.util.Locale @@ -44,12 +44,12 @@ class MediaFetcher(val context: Context) { } } else { if (curPath != FAVORITES && curPath != RECYCLE_BIN && isRPlus() && !isExternalStorageManager()) { - if (android11Files?.containsKey(curPath.toLowerCase()) == true) { - curMedia.addAll(android11Files[curPath.toLowerCase()]!!) + if (android11Files?.containsKey(curPath.lowercase(Locale.getDefault())) == true) { + curMedia.addAll(android11Files[curPath.lowercase(Locale.getDefault())]!!) } else if (android11Files == null) { val files = getAndroid11FolderMedia(isPickImage, isPickVideo, favoritePaths, false, getProperDateTaken, dateTakens) - if (files.containsKey(curPath.toLowerCase())) { - curMedia.addAll(files[curPath.toLowerCase()]!!) + if (files.containsKey(curPath.lowercase(Locale.getDefault()))) { + curMedia.addAll(files[curPath.lowercase(Locale.getDefault())]!!) } } } @@ -773,17 +773,17 @@ class MediaFetcher(val context: Context) { var result = when { sorting and SORT_BY_NAME != 0 -> { if (sorting and SORT_USE_NUMERIC_VALUE != 0) { - AlphanumericComparator().compare(o1.name.normalizeString().toLowerCase(), o2.name.normalizeString().toLowerCase()) + AlphanumericComparator().compare(o1.name.normalizeString().lowercase(Locale.getDefault()), o2.name.normalizeString().lowercase(Locale.getDefault())) } else { - o1.name.normalizeString().toLowerCase().compareTo(o2.name.normalizeString().toLowerCase()) + o1.name.normalizeString().lowercase(Locale.getDefault()).compareTo(o2.name.normalizeString().lowercase(Locale.getDefault())) } } sorting and SORT_BY_PATH != 0 -> { if (sorting and SORT_USE_NUMERIC_VALUE != 0) { - AlphanumericComparator().compare(o1.path.toLowerCase(), o2.path.toLowerCase()) + AlphanumericComparator().compare(o1.path.lowercase(Locale.getDefault()), o2.path.lowercase(Locale.getDefault())) } else { - o1.path.toLowerCase().compareTo(o2.path.toLowerCase()) + o1.path.lowercase(Locale.getDefault()).compareTo(o2.path.lowercase(Locale.getDefault())) } } @@ -866,13 +866,13 @@ class MediaFetcher(val context: Context) { grouping and GROUP_BY_LAST_MODIFIED_MONTHLY != 0 || grouping and GROUP_BY_DATE_TAKEN_MONTHLY != 0 -> formatDate(key, false) grouping and GROUP_BY_FILE_TYPE != 0 -> getFileTypeString(key) - grouping and GROUP_BY_EXTENSION != 0 -> key.toUpperCase() + grouping and GROUP_BY_EXTENSION != 0 -> key.uppercase(Locale.getDefault()) grouping and GROUP_BY_FOLDER != 0 -> context.humanizePath(key) else -> key } if (result.isEmpty()) { - result = context.getString(com.simplemobiletools.commons.R.string.unknown) + result = context.getString(org.fossify.commons.R.string.unknown) } return if (grouping and GROUP_SHOW_FILE_COUNT != 0) { @@ -884,8 +884,8 @@ class MediaFetcher(val context: Context) { private fun getFinalDate(date: String, today: String, yesterday: String): String { return when (date) { - today -> context.getString(com.simplemobiletools.commons.R.string.today) - yesterday -> context.getString(com.simplemobiletools.commons.R.string.yesterday) + today -> context.getString(org.fossify.commons.R.string.today) + yesterday -> context.getString(org.fossify.commons.R.string.yesterday) else -> date } } diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/helpers/MyGlideImageDecoder.kt b/app/src/main/kotlin/org/fossify/gallery/helpers/MyGlideImageDecoder.kt similarity index 95% rename from app/src/main/kotlin/com/simplemobiletools/gallery/pro/helpers/MyGlideImageDecoder.kt rename to app/src/main/kotlin/org/fossify/gallery/helpers/MyGlideImageDecoder.kt index 0287a3b39..a5da7b2c1 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/helpers/MyGlideImageDecoder.kt +++ b/app/src/main/kotlin/org/fossify/gallery/helpers/MyGlideImageDecoder.kt @@ -1,4 +1,4 @@ -package com.simplemobiletools.gallery.pro.helpers +package org.fossify.gallery.helpers import android.content.Context import android.graphics.Bitmap diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/helpers/MyWidgetProvider.kt b/app/src/main/kotlin/org/fossify/gallery/helpers/MyWidgetProvider.kt similarity index 82% rename from app/src/main/kotlin/com/simplemobiletools/gallery/pro/helpers/MyWidgetProvider.kt rename to app/src/main/kotlin/org/fossify/gallery/helpers/MyWidgetProvider.kt index 6dfc107ec..60889d70c 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/helpers/MyWidgetProvider.kt +++ b/app/src/main/kotlin/org/fossify/gallery/helpers/MyWidgetProvider.kt @@ -1,4 +1,4 @@ -package com.simplemobiletools.gallery.pro.helpers +package org.fossify.gallery.helpers import android.app.PendingIntent import android.appwidget.AppWidgetManager @@ -10,18 +10,18 @@ import android.widget.RemoteViews import com.bumptech.glide.Glide import com.bumptech.glide.load.engine.DiskCacheStrategy import com.bumptech.glide.request.RequestOptions -import com.simplemobiletools.commons.extensions.applyColorFilter -import com.simplemobiletools.commons.extensions.getFileSignature -import com.simplemobiletools.commons.extensions.setText -import com.simplemobiletools.commons.extensions.setVisibleIf -import com.simplemobiletools.commons.helpers.ensureBackgroundThread -import com.simplemobiletools.gallery.pro.R -import com.simplemobiletools.gallery.pro.activities.MediaActivity -import com.simplemobiletools.gallery.pro.extensions.config -import com.simplemobiletools.gallery.pro.extensions.directoryDB -import com.simplemobiletools.gallery.pro.extensions.getFolderNameFromPath -import com.simplemobiletools.gallery.pro.extensions.widgetsDB -import com.simplemobiletools.gallery.pro.models.Widget +import org.fossify.commons.extensions.applyColorFilter +import org.fossify.commons.extensions.getFileSignature +import org.fossify.commons.extensions.setText +import org.fossify.commons.extensions.setVisibleIf +import org.fossify.commons.helpers.ensureBackgroundThread +import org.fossify.gallery.R +import org.fossify.gallery.activities.MediaActivity +import org.fossify.gallery.extensions.config +import org.fossify.gallery.extensions.directoryDB +import org.fossify.gallery.extensions.getFolderNameFromPath +import org.fossify.gallery.extensions.widgetsDB +import org.fossify.gallery.models.Widget class MyWidgetProvider : AppWidgetProvider() { private fun setupAppOpenIntent(context: Context, views: RemoteViews, id: Int, widget: Widget) { diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/helpers/PicassoRegionDecoder.kt b/app/src/main/kotlin/org/fossify/gallery/helpers/PicassoRegionDecoder.kt similarity index 97% rename from app/src/main/kotlin/com/simplemobiletools/gallery/pro/helpers/PicassoRegionDecoder.kt rename to app/src/main/kotlin/org/fossify/gallery/helpers/PicassoRegionDecoder.kt index 35a7c6cfc..b124c9c1b 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/helpers/PicassoRegionDecoder.kt +++ b/app/src/main/kotlin/org/fossify/gallery/helpers/PicassoRegionDecoder.kt @@ -1,4 +1,4 @@ -package com.simplemobiletools.gallery.pro.helpers +package org.fossify.gallery.helpers import android.content.Context import android.graphics.* diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/helpers/PicassoRoundedCornersTransformation.kt b/app/src/main/kotlin/org/fossify/gallery/helpers/PicassoRoundedCornersTransformation.kt similarity index 95% rename from app/src/main/kotlin/com/simplemobiletools/gallery/pro/helpers/PicassoRoundedCornersTransformation.kt rename to app/src/main/kotlin/org/fossify/gallery/helpers/PicassoRoundedCornersTransformation.kt index 26ee0584d..0914eced8 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/helpers/PicassoRoundedCornersTransformation.kt +++ b/app/src/main/kotlin/org/fossify/gallery/helpers/PicassoRoundedCornersTransformation.kt @@ -1,4 +1,4 @@ -package com.simplemobiletools.gallery.pro.helpers +package org.fossify.gallery.helpers import android.graphics.* import com.squareup.picasso.Transformation diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/helpers/RotateTransformation.kt b/app/src/main/kotlin/org/fossify/gallery/helpers/RotateTransformation.kt similarity index 93% rename from app/src/main/kotlin/com/simplemobiletools/gallery/pro/helpers/RotateTransformation.kt rename to app/src/main/kotlin/org/fossify/gallery/helpers/RotateTransformation.kt index 9fb0fd127..6a64f902a 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/helpers/RotateTransformation.kt +++ b/app/src/main/kotlin/org/fossify/gallery/helpers/RotateTransformation.kt @@ -1,4 +1,4 @@ -package com.simplemobiletools.gallery.pro.helpers +package org.fossify.gallery.helpers import android.graphics.Bitmap import android.graphics.Matrix diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/interfaces/DateTakensDao.kt b/app/src/main/kotlin/org/fossify/gallery/interfaces/DateTakensDao.kt similarity index 84% rename from app/src/main/kotlin/com/simplemobiletools/gallery/pro/interfaces/DateTakensDao.kt rename to app/src/main/kotlin/org/fossify/gallery/interfaces/DateTakensDao.kt index 5041727e9..7ff933e96 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/interfaces/DateTakensDao.kt +++ b/app/src/main/kotlin/org/fossify/gallery/interfaces/DateTakensDao.kt @@ -1,10 +1,10 @@ -package com.simplemobiletools.gallery.pro.interfaces +package org.fossify.gallery.interfaces import androidx.room.Dao import androidx.room.Insert import androidx.room.OnConflictStrategy import androidx.room.Query -import com.simplemobiletools.gallery.pro.models.DateTaken +import org.fossify.gallery.models.DateTaken @Dao interface DateTakensDao { diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/interfaces/DirectoryDao.kt b/app/src/main/kotlin/org/fossify/gallery/interfaces/DirectoryDao.kt similarity index 89% rename from app/src/main/kotlin/com/simplemobiletools/gallery/pro/interfaces/DirectoryDao.kt rename to app/src/main/kotlin/org/fossify/gallery/interfaces/DirectoryDao.kt index aa0aaaaca..99179c166 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/interfaces/DirectoryDao.kt +++ b/app/src/main/kotlin/org/fossify/gallery/interfaces/DirectoryDao.kt @@ -1,11 +1,11 @@ -package com.simplemobiletools.gallery.pro.interfaces +package org.fossify.gallery.interfaces import androidx.room.Dao import androidx.room.Insert import androidx.room.OnConflictStrategy import androidx.room.Query -import com.simplemobiletools.gallery.pro.helpers.RECYCLE_BIN -import com.simplemobiletools.gallery.pro.models.Directory +import org.fossify.gallery.helpers.RECYCLE_BIN +import org.fossify.gallery.models.Directory @Dao interface DirectoryDao { diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/interfaces/DirectoryOperationsListener.kt b/app/src/main/kotlin/org/fossify/gallery/interfaces/DirectoryOperationsListener.kt similarity index 67% rename from app/src/main/kotlin/com/simplemobiletools/gallery/pro/interfaces/DirectoryOperationsListener.kt rename to app/src/main/kotlin/org/fossify/gallery/interfaces/DirectoryOperationsListener.kt index b4f265969..b3db2b64a 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/interfaces/DirectoryOperationsListener.kt +++ b/app/src/main/kotlin/org/fossify/gallery/interfaces/DirectoryOperationsListener.kt @@ -1,6 +1,6 @@ -package com.simplemobiletools.gallery.pro.interfaces +package org.fossify.gallery.interfaces -import com.simplemobiletools.gallery.pro.models.Directory +import org.fossify.gallery.models.Directory import java.io.File interface DirectoryOperationsListener { diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/interfaces/FavoritesDao.kt b/app/src/main/kotlin/org/fossify/gallery/interfaces/FavoritesDao.kt similarity index 90% rename from app/src/main/kotlin/com/simplemobiletools/gallery/pro/interfaces/FavoritesDao.kt rename to app/src/main/kotlin/org/fossify/gallery/interfaces/FavoritesDao.kt index 39a4c4530..6402a23b9 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/interfaces/FavoritesDao.kt +++ b/app/src/main/kotlin/org/fossify/gallery/interfaces/FavoritesDao.kt @@ -1,10 +1,10 @@ -package com.simplemobiletools.gallery.pro.interfaces +package org.fossify.gallery.interfaces import androidx.room.Dao import androidx.room.Insert import androidx.room.OnConflictStrategy import androidx.room.Query -import com.simplemobiletools.gallery.pro.models.Favorite +import org.fossify.gallery.models.Favorite @Dao interface FavoritesDao { diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/interfaces/MediaOperationsListener.kt b/app/src/main/kotlin/org/fossify/gallery/interfaces/MediaOperationsListener.kt similarity index 60% rename from app/src/main/kotlin/com/simplemobiletools/gallery/pro/interfaces/MediaOperationsListener.kt rename to app/src/main/kotlin/org/fossify/gallery/interfaces/MediaOperationsListener.kt index 26a61b0aa..89b2d8ec2 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/interfaces/MediaOperationsListener.kt +++ b/app/src/main/kotlin/org/fossify/gallery/interfaces/MediaOperationsListener.kt @@ -1,7 +1,7 @@ -package com.simplemobiletools.gallery.pro.interfaces +package org.fossify.gallery.interfaces -import com.simplemobiletools.commons.models.FileDirItem -import com.simplemobiletools.gallery.pro.models.ThumbnailItem +import org.fossify.commons.models.FileDirItem +import org.fossify.gallery.models.ThumbnailItem interface MediaOperationsListener { fun refreshItems() diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/interfaces/MediumDao.kt b/app/src/main/kotlin/org/fossify/gallery/interfaces/MediumDao.kt similarity index 95% rename from app/src/main/kotlin/com/simplemobiletools/gallery/pro/interfaces/MediumDao.kt rename to app/src/main/kotlin/org/fossify/gallery/interfaces/MediumDao.kt index 22bd3af6a..01f03a848 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/interfaces/MediumDao.kt +++ b/app/src/main/kotlin/org/fossify/gallery/interfaces/MediumDao.kt @@ -1,7 +1,7 @@ -package com.simplemobiletools.gallery.pro.interfaces +package org.fossify.gallery.interfaces import androidx.room.* -import com.simplemobiletools.gallery.pro.models.Medium +import org.fossify.gallery.models.Medium @Dao interface MediumDao { diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/interfaces/WidgetsDao.kt b/app/src/main/kotlin/org/fossify/gallery/interfaces/WidgetsDao.kt similarity index 79% rename from app/src/main/kotlin/com/simplemobiletools/gallery/pro/interfaces/WidgetsDao.kt rename to app/src/main/kotlin/org/fossify/gallery/interfaces/WidgetsDao.kt index b6ecb2492..1bf13086f 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/interfaces/WidgetsDao.kt +++ b/app/src/main/kotlin/org/fossify/gallery/interfaces/WidgetsDao.kt @@ -1,10 +1,10 @@ -package com.simplemobiletools.gallery.pro.interfaces +package org.fossify.gallery.interfaces import androidx.room.Dao import androidx.room.Insert import androidx.room.OnConflictStrategy import androidx.room.Query -import com.simplemobiletools.gallery.pro.models.Widget +import org.fossify.gallery.models.Widget @Dao interface WidgetsDao { diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/jobs/NewPhotoFetcher.kt b/app/src/main/kotlin/org/fossify/gallery/jobs/NewPhotoFetcher.kt similarity index 92% rename from app/src/main/kotlin/com/simplemobiletools/gallery/pro/jobs/NewPhotoFetcher.kt rename to app/src/main/kotlin/org/fossify/gallery/jobs/NewPhotoFetcher.kt index ad91c0d96..db311d036 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/jobs/NewPhotoFetcher.kt +++ b/app/src/main/kotlin/org/fossify/gallery/jobs/NewPhotoFetcher.kt @@ -1,4 +1,4 @@ -package com.simplemobiletools.gallery.pro.jobs +package org.fossify.gallery.jobs import android.annotation.TargetApi import android.app.job.JobInfo @@ -15,11 +15,11 @@ import android.os.Handler import android.provider.MediaStore import android.provider.MediaStore.Images import android.provider.MediaStore.Video -import com.simplemobiletools.commons.extensions.getParentPath -import com.simplemobiletools.commons.extensions.getStringValue -import com.simplemobiletools.commons.helpers.ensureBackgroundThread -import com.simplemobiletools.gallery.pro.extensions.addPathToDB -import com.simplemobiletools.gallery.pro.extensions.updateDirectoryPath +import org.fossify.commons.extensions.getParentPath +import org.fossify.commons.extensions.getStringValue +import org.fossify.commons.helpers.ensureBackgroundThread +import org.fossify.gallery.extensions.addPathToDB +import org.fossify.gallery.extensions.updateDirectoryPath // based on https://developer.android.com/reference/android/app/job/JobInfo.Builder.html#addTriggerContentUri(android.app.job.JobInfo.TriggerContentUri) @TargetApi(Build.VERSION_CODES.N) diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/models/AlbumCover.kt b/app/src/main/kotlin/org/fossify/gallery/models/AlbumCover.kt similarity index 54% rename from app/src/main/kotlin/com/simplemobiletools/gallery/pro/models/AlbumCover.kt rename to app/src/main/kotlin/org/fossify/gallery/models/AlbumCover.kt index c4afd11b1..8aca118dc 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/models/AlbumCover.kt +++ b/app/src/main/kotlin/org/fossify/gallery/models/AlbumCover.kt @@ -1,3 +1,3 @@ -package com.simplemobiletools.gallery.pro.models +package org.fossify.gallery.models data class AlbumCover(val path: String, val tmb: String) diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/models/DateTaken.kt b/app/src/main/kotlin/org/fossify/gallery/models/DateTaken.kt similarity index 94% rename from app/src/main/kotlin/com/simplemobiletools/gallery/pro/models/DateTaken.kt rename to app/src/main/kotlin/org/fossify/gallery/models/DateTaken.kt index be3be7100..1594d1ae9 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/models/DateTaken.kt +++ b/app/src/main/kotlin/org/fossify/gallery/models/DateTaken.kt @@ -1,4 +1,4 @@ -package com.simplemobiletools.gallery.pro.models +package org.fossify.gallery.models import androidx.room.ColumnInfo import androidx.room.Entity diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/models/Directory.kt b/app/src/main/kotlin/org/fossify/gallery/models/Directory.kt similarity index 86% rename from app/src/main/kotlin/com/simplemobiletools/gallery/pro/models/Directory.kt rename to app/src/main/kotlin/org/fossify/gallery/models/Directory.kt index 702c36091..21b5775bc 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/models/Directory.kt +++ b/app/src/main/kotlin/org/fossify/gallery/models/Directory.kt @@ -1,12 +1,12 @@ -package com.simplemobiletools.gallery.pro.models +package org.fossify.gallery.models import android.content.Context import androidx.room.* import com.bumptech.glide.signature.ObjectKey -import com.simplemobiletools.commons.extensions.formatDate -import com.simplemobiletools.commons.extensions.formatSize -import com.simplemobiletools.commons.helpers.* -import com.simplemobiletools.gallery.pro.helpers.RECYCLE_BIN +import org.fossify.commons.extensions.formatDate +import org.fossify.commons.extensions.formatSize +import org.fossify.commons.helpers.* +import org.fossify.gallery.helpers.RECYCLE_BIN @Entity(tableName = "directories", indices = [Index(value = ["path"], unique = true)]) data class Directory( diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/models/Favorite.kt b/app/src/main/kotlin/org/fossify/gallery/models/Favorite.kt similarity index 90% rename from app/src/main/kotlin/com/simplemobiletools/gallery/pro/models/Favorite.kt rename to app/src/main/kotlin/org/fossify/gallery/models/Favorite.kt index a1bd56ac3..023a73b40 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/models/Favorite.kt +++ b/app/src/main/kotlin/org/fossify/gallery/models/Favorite.kt @@ -1,4 +1,4 @@ -package com.simplemobiletools.gallery.pro.models +package org.fossify.gallery.models import androidx.room.ColumnInfo import androidx.room.Entity diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/models/FilterItem.kt b/app/src/main/kotlin/org/fossify/gallery/models/FilterItem.kt similarity index 75% rename from app/src/main/kotlin/com/simplemobiletools/gallery/pro/models/FilterItem.kt rename to app/src/main/kotlin/org/fossify/gallery/models/FilterItem.kt index ce826e57e..b40fa6000 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/models/FilterItem.kt +++ b/app/src/main/kotlin/org/fossify/gallery/models/FilterItem.kt @@ -1,4 +1,4 @@ -package com.simplemobiletools.gallery.pro.models +package org.fossify.gallery.models import android.graphics.Bitmap import com.zomato.photofilters.imageprocessors.Filter diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/models/Medium.kt b/app/src/main/kotlin/org/fossify/gallery/models/Medium.kt similarity index 90% rename from app/src/main/kotlin/com/simplemobiletools/gallery/pro/models/Medium.kt rename to app/src/main/kotlin/org/fossify/gallery/models/Medium.kt index e14d97272..076db8f64 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/models/Medium.kt +++ b/app/src/main/kotlin/org/fossify/gallery/models/Medium.kt @@ -1,12 +1,12 @@ -package com.simplemobiletools.gallery.pro.models +package org.fossify.gallery.models import android.content.Context import androidx.room.* import com.bumptech.glide.signature.ObjectKey -import com.simplemobiletools.commons.extensions.* -import com.simplemobiletools.commons.helpers.* -import com.simplemobiletools.commons.models.FileDirItem -import com.simplemobiletools.gallery.pro.helpers.* +import org.fossify.commons.extensions.* +import org.fossify.commons.helpers.* +import org.fossify.commons.models.FileDirItem +import org.fossify.gallery.helpers.* import java.io.File import java.io.Serializable import java.util.Calendar @@ -54,7 +54,7 @@ data class Medium( fun isHidden() = name.startsWith('.') - fun isHeic() = name.toLowerCase().endsWith(".heic") || name.toLowerCase().endsWith(".heif") + fun isHeic() = name.lowercase(Locale.getDefault()).endsWith(".heic") || name.lowercase(Locale.getDefault()).endsWith(".heif") fun getBubbleText(sorting: Int, context: Context, dateFormat: String, timeFormat: String) = when { sorting and SORT_BY_NAME != 0 -> name @@ -72,7 +72,7 @@ data class Medium( groupBy and GROUP_BY_DATE_TAKEN_DAILY != 0 -> getDayStartTS(taken, false) groupBy and GROUP_BY_DATE_TAKEN_MONTHLY != 0 -> getDayStartTS(taken, true) groupBy and GROUP_BY_FILE_TYPE != 0 -> type.toString() - groupBy and GROUP_BY_EXTENSION != 0 -> name.getFilenameExtension().toLowerCase() + groupBy and GROUP_BY_EXTENSION != 0 -> name.getFilenameExtension().lowercase(Locale.getDefault()) groupBy and GROUP_BY_FOLDER != 0 -> parentPath else -> "" } diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/models/PaintOptions.kt b/app/src/main/kotlin/org/fossify/gallery/models/PaintOptions.kt similarity index 70% rename from app/src/main/kotlin/com/simplemobiletools/gallery/pro/models/PaintOptions.kt rename to app/src/main/kotlin/org/fossify/gallery/models/PaintOptions.kt index fc1cacb2a..99f09a204 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/models/PaintOptions.kt +++ b/app/src/main/kotlin/org/fossify/gallery/models/PaintOptions.kt @@ -1,4 +1,4 @@ -package com.simplemobiletools.gallery.pro.models +package org.fossify.gallery.models import android.graphics.Color diff --git a/app/src/main/kotlin/org/fossify/gallery/models/ThumbnailItem.kt b/app/src/main/kotlin/org/fossify/gallery/models/ThumbnailItem.kt new file mode 100644 index 000000000..f3f5e09fd --- /dev/null +++ b/app/src/main/kotlin/org/fossify/gallery/models/ThumbnailItem.kt @@ -0,0 +1,3 @@ +package org.fossify.gallery.models + +open class ThumbnailItem diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/models/ThumbnailSection.kt b/app/src/main/kotlin/org/fossify/gallery/models/ThumbnailSection.kt similarity index 57% rename from app/src/main/kotlin/com/simplemobiletools/gallery/pro/models/ThumbnailSection.kt rename to app/src/main/kotlin/org/fossify/gallery/models/ThumbnailSection.kt index 1655cad89..b0d88960f 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/models/ThumbnailSection.kt +++ b/app/src/main/kotlin/org/fossify/gallery/models/ThumbnailSection.kt @@ -1,3 +1,3 @@ -package com.simplemobiletools.gallery.pro.models +package org.fossify.gallery.models data class ThumbnailSection(val title: String) : ThumbnailItem() diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/models/Widget.kt b/app/src/main/kotlin/org/fossify/gallery/models/Widget.kt similarity index 89% rename from app/src/main/kotlin/com/simplemobiletools/gallery/pro/models/Widget.kt rename to app/src/main/kotlin/org/fossify/gallery/models/Widget.kt index 2efa88f34..ba8142ba8 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/models/Widget.kt +++ b/app/src/main/kotlin/org/fossify/gallery/models/Widget.kt @@ -1,4 +1,4 @@ -package com.simplemobiletools.gallery.pro.models +package org.fossify.gallery.models import androidx.room.ColumnInfo import androidx.room.Entity diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/receivers/BootCompletedReceiver.kt b/app/src/main/kotlin/org/fossify/gallery/receivers/BootCompletedReceiver.kt similarity index 60% rename from app/src/main/kotlin/com/simplemobiletools/gallery/pro/receivers/BootCompletedReceiver.kt rename to app/src/main/kotlin/org/fossify/gallery/receivers/BootCompletedReceiver.kt index f8aae1326..97cfe03ec 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/receivers/BootCompletedReceiver.kt +++ b/app/src/main/kotlin/org/fossify/gallery/receivers/BootCompletedReceiver.kt @@ -1,11 +1,11 @@ -package com.simplemobiletools.gallery.pro.receivers +package org.fossify.gallery.receivers import android.content.BroadcastReceiver import android.content.Context import android.content.Intent -import com.simplemobiletools.commons.helpers.ensureBackgroundThread -import com.simplemobiletools.gallery.pro.extensions.updateDirectoryPath -import com.simplemobiletools.gallery.pro.helpers.MediaFetcher +import org.fossify.commons.helpers.ensureBackgroundThread +import org.fossify.gallery.extensions.updateDirectoryPath +import org.fossify.gallery.helpers.MediaFetcher class BootCompletedReceiver : BroadcastReceiver() { override fun onReceive(context: Context, intent: Intent) { diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/receivers/RefreshMediaReceiver.kt b/app/src/main/kotlin/org/fossify/gallery/receivers/RefreshMediaReceiver.kt similarity index 65% rename from app/src/main/kotlin/com/simplemobiletools/gallery/pro/receivers/RefreshMediaReceiver.kt rename to app/src/main/kotlin/org/fossify/gallery/receivers/RefreshMediaReceiver.kt index 3aa81b2f5..276b8263e 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/receivers/RefreshMediaReceiver.kt +++ b/app/src/main/kotlin/org/fossify/gallery/receivers/RefreshMediaReceiver.kt @@ -1,10 +1,10 @@ -package com.simplemobiletools.gallery.pro.receivers +package org.fossify.gallery.receivers import android.content.BroadcastReceiver import android.content.Context import android.content.Intent -import com.simplemobiletools.commons.helpers.REFRESH_PATH -import com.simplemobiletools.gallery.pro.extensions.addPathToDB +import org.fossify.commons.helpers.REFRESH_PATH +import org.fossify.gallery.extensions.addPathToDB class RefreshMediaReceiver : BroadcastReceiver() { override fun onReceive(context: Context, intent: Intent) { diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/svg/SvgDecoder.kt b/app/src/main/kotlin/org/fossify/gallery/svg/SvgDecoder.kt similarity index 89% rename from app/src/main/kotlin/com/simplemobiletools/gallery/pro/svg/SvgDecoder.kt rename to app/src/main/kotlin/org/fossify/gallery/svg/SvgDecoder.kt index 7bc47c9f8..e7b83906a 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/svg/SvgDecoder.kt +++ b/app/src/main/kotlin/org/fossify/gallery/svg/SvgDecoder.kt @@ -1,4 +1,4 @@ -package com.simplemobiletools.gallery.pro.svg +package org.fossify.gallery.svg import com.bumptech.glide.load.Options import com.bumptech.glide.load.ResourceDecoder @@ -15,7 +15,7 @@ class SvgDecoder : ResourceDecoder { override fun handles(source: InputStream, options: Options) = true @Throws(IOException::class) - override fun decode(source: InputStream, width: Int, height: Int, options: Options): Resource? { + override fun decode(source: InputStream, width: Int, height: Int, options: Options): Resource { try { val svg = SVG.getFromInputStream(source) return SimpleResource(svg) diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/svg/SvgDrawableTranscoder.kt b/app/src/main/kotlin/org/fossify/gallery/svg/SvgDrawableTranscoder.kt similarity index 87% rename from app/src/main/kotlin/com/simplemobiletools/gallery/pro/svg/SvgDrawableTranscoder.kt rename to app/src/main/kotlin/org/fossify/gallery/svg/SvgDrawableTranscoder.kt index e447136e9..dfd343514 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/svg/SvgDrawableTranscoder.kt +++ b/app/src/main/kotlin/org/fossify/gallery/svg/SvgDrawableTranscoder.kt @@ -1,4 +1,4 @@ -package com.simplemobiletools.gallery.pro.svg +package org.fossify.gallery.svg import android.graphics.drawable.PictureDrawable import com.bumptech.glide.load.Options @@ -8,7 +8,7 @@ import com.bumptech.glide.load.resource.transcode.ResourceTranscoder import com.caverock.androidsvg.SVG class SvgDrawableTranscoder : ResourceTranscoder { - override fun transcode(toTranscode: Resource, options: Options): Resource? { + override fun transcode(toTranscode: Resource, options: Options): Resource { val svg = toTranscode.get() val picture = svg.renderToPicture() val drawable = PictureDrawable(picture) diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/svg/SvgModule.kt b/app/src/main/kotlin/org/fossify/gallery/svg/SvgModule.kt similarity index 93% rename from app/src/main/kotlin/com/simplemobiletools/gallery/pro/svg/SvgModule.kt rename to app/src/main/kotlin/org/fossify/gallery/svg/SvgModule.kt index ee15a2274..e8ed7bb93 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/svg/SvgModule.kt +++ b/app/src/main/kotlin/org/fossify/gallery/svg/SvgModule.kt @@ -1,4 +1,4 @@ -package com.simplemobiletools.gallery.pro.svg +package org.fossify.gallery.svg import android.content.Context import android.graphics.drawable.PictureDrawable diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/svg/SvgSoftwareLayerSetter.kt b/app/src/main/kotlin/org/fossify/gallery/svg/SvgSoftwareLayerSetter.kt similarity index 95% rename from app/src/main/kotlin/com/simplemobiletools/gallery/pro/svg/SvgSoftwareLayerSetter.kt rename to app/src/main/kotlin/org/fossify/gallery/svg/SvgSoftwareLayerSetter.kt index 777f5666b..d2a80b75a 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/svg/SvgSoftwareLayerSetter.kt +++ b/app/src/main/kotlin/org/fossify/gallery/svg/SvgSoftwareLayerSetter.kt @@ -1,4 +1,4 @@ -package com.simplemobiletools.gallery.pro.svg +package org.fossify.gallery.svg import android.graphics.drawable.PictureDrawable import android.widget.ImageView diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/views/EditorDrawCanvas.kt b/app/src/main/kotlin/org/fossify/gallery/views/EditorDrawCanvas.kt similarity index 94% rename from app/src/main/kotlin/com/simplemobiletools/gallery/pro/views/EditorDrawCanvas.kt rename to app/src/main/kotlin/org/fossify/gallery/views/EditorDrawCanvas.kt index 9439217bc..5e2db52a6 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/views/EditorDrawCanvas.kt +++ b/app/src/main/kotlin/org/fossify/gallery/views/EditorDrawCanvas.kt @@ -1,13 +1,13 @@ -package com.simplemobiletools.gallery.pro.views +package org.fossify.gallery.views import android.content.Context import android.graphics.* import android.util.AttributeSet import android.view.MotionEvent import android.view.View -import com.simplemobiletools.commons.extensions.getProperPrimaryColor -import com.simplemobiletools.gallery.pro.R -import com.simplemobiletools.gallery.pro.models.PaintOptions +import org.fossify.commons.extensions.getProperPrimaryColor +import org.fossify.gallery.R +import org.fossify.gallery.models.PaintOptions class EditorDrawCanvas(context: Context, attrs: AttributeSet) : View(context, attrs) { private var mCurX = 0f diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/views/InstantItemSwitch.kt b/app/src/main/kotlin/org/fossify/gallery/views/InstantItemSwitch.kt similarity index 90% rename from app/src/main/kotlin/com/simplemobiletools/gallery/pro/views/InstantItemSwitch.kt rename to app/src/main/kotlin/org/fossify/gallery/views/InstantItemSwitch.kt index 269a66289..917a228f5 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/views/InstantItemSwitch.kt +++ b/app/src/main/kotlin/org/fossify/gallery/views/InstantItemSwitch.kt @@ -1,13 +1,13 @@ -package com.simplemobiletools.gallery.pro.views +package org.fossify.gallery.views import android.content.Context import android.util.AttributeSet import android.view.MotionEvent import android.view.ViewGroup import android.widget.RelativeLayout -import com.simplemobiletools.gallery.pro.helpers.CLICK_MAX_DISTANCE -import com.simplemobiletools.gallery.pro.helpers.CLICK_MAX_DURATION -import com.simplemobiletools.gallery.pro.helpers.DRAG_THRESHOLD +import org.fossify.gallery.helpers.CLICK_MAX_DISTANCE +import org.fossify.gallery.helpers.CLICK_MAX_DURATION +import org.fossify.gallery.helpers.DRAG_THRESHOLD // handle only one finger clicks, pass other events to the parent view and ignore it when received again class InstantItemSwitch(context: Context, attrs: AttributeSet) : RelativeLayout(context, attrs) { diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/views/MediaSideScroll.kt b/app/src/main/kotlin/org/fossify/gallery/views/MediaSideScroll.kt similarity index 96% rename from app/src/main/kotlin/com/simplemobiletools/gallery/pro/views/MediaSideScroll.kt rename to app/src/main/kotlin/org/fossify/gallery/views/MediaSideScroll.kt index ecc251374..c41d920c9 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/views/MediaSideScroll.kt +++ b/app/src/main/kotlin/org/fossify/gallery/views/MediaSideScroll.kt @@ -1,4 +1,4 @@ -package com.simplemobiletools.gallery.pro.views +package org.fossify.gallery.views import android.app.Activity import android.content.Context @@ -11,10 +11,10 @@ import android.view.MotionEvent import android.view.ViewGroup import android.widget.RelativeLayout import android.widget.TextView -import com.simplemobiletools.commons.extensions.onGlobalLayout -import com.simplemobiletools.gallery.pro.R -import com.simplemobiletools.gallery.pro.extensions.audioManager -import com.simplemobiletools.gallery.pro.helpers.DRAG_THRESHOLD +import org.fossify.commons.extensions.onGlobalLayout +import org.fossify.gallery.R +import org.fossify.gallery.extensions.audioManager +import org.fossify.gallery.helpers.DRAG_THRESHOLD // allow horizontal swipes through the layout, else it can cause glitches at zoomed in images class MediaSideScroll(context: Context, attrs: AttributeSet) : RelativeLayout(context, attrs) { diff --git a/app/src/main/res/layout/activity_edit.xml b/app/src/main/res/layout/activity_edit.xml index e3ba641dd..f38938a34 100644 --- a/app/src/main/res/layout/activity_edit.xml +++ b/app/src/main/res/layout/activity_edit.xml @@ -43,7 +43,7 @@ app:cropBackgroundColor="@color/crop_image_view_background" app:cropInitialCropWindowPaddingRatio="0" /> - - @@ -16,7 +16,7 @@ android:layout_height="wrap_content" app:layout_behavior="@string/appbar_scrolling_view_behavior"> - - - - diff --git a/app/src/main/res/layout/activity_manage_folders.xml b/app/src/main/res/layout/activity_manage_folders.xml index 98369adf7..d7eafe948 100644 --- a/app/src/main/res/layout/activity_manage_folders.xml +++ b/app/src/main/res/layout/activity_manage_folders.xml @@ -19,15 +19,15 @@ android:layout_height="wrap_content" android:layout_marginTop="?attr/actionBarSize"> - + app:layoutManager="org.fossify.commons.views.MyLinearLayoutManager" /> - - @@ -16,7 +16,7 @@ android:layout_height="wrap_content" app:layout_behavior="@string/appbar_scrolling_view_behavior"> - - - diff --git a/app/src/main/res/layout/activity_medium.xml b/app/src/main/res/layout/activity_medium.xml index 2a430109a..33901ccd1 100644 --- a/app/src/main/res/layout/activity_medium.xml +++ b/app/src/main/res/layout/activity_medium.xml @@ -5,7 +5,7 @@ android:layout_width="match_parent" android:layout_height="match_parent"> - diff --git a/app/src/main/res/layout/activity_search.xml b/app/src/main/res/layout/activity_search.xml index 3e95d607d..f7b75b207 100644 --- a/app/src/main/res/layout/activity_search.xml +++ b/app/src/main/res/layout/activity_search.xml @@ -5,7 +5,7 @@ android:layout_width="match_parent" android:layout_height="match_parent"> - @@ -16,7 +16,7 @@ android:layout_height="match_parent" app:layout_behavior="@string/appbar_scrolling_view_behavior"> - - diff --git a/app/src/main/res/layout/activity_settings.xml b/app/src/main/res/layout/activity_settings.xml index 08d5f7b3d..4e2014e1a 100644 --- a/app/src/main/res/layout/activity_settings.xml +++ b/app/src/main/res/layout/activity_settings.xml @@ -41,7 +41,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/app/src/main/res/layout/activity_widget_config.xml b/app/src/main/res/layout/activity_widget_config.xml index f9f9e8684..b8adbd414 100644 --- a/app/src/main/res/layout/activity_widget_config.xml +++ b/app/src/main/res/layout/activity_widget_config.xml @@ -25,7 +25,7 @@ android:layout_height="wrap_content" android:background="?attr/selectableItemBackground"> - - - - - - - - + app:layoutManager="org.fossify.commons.views.MyLinearLayoutManager" /> diff --git a/app/src/main/res/layout/bottom_editor_draw_actions.xml b/app/src/main/res/layout/bottom_editor_draw_actions.xml index 07fe2fb2c..618d00429 100644 --- a/app/src/main/res/layout/bottom_editor_draw_actions.xml +++ b/app/src/main/res/layout/bottom_editor_draw_actions.xml @@ -1,13 +1,12 @@ - - + app:layout_constraintTop_toTopOf="@+id/bottom_draw_color" /> + app:layout_constraintTop_toTopOf="parent" /> + app:layout_constraintTop_toTopOf="parent" /> + app:layout_constraintTop_toTopOf="parent" /> diff --git a/app/src/main/res/layout/bottom_video_time_holder.xml b/app/src/main/res/layout/bottom_video_time_holder.xml index 4bc0748b8..f5bd1e8ff 100644 --- a/app/src/main/res/layout/bottom_video_time_holder.xml +++ b/app/src/main/res/layout/bottom_video_time_holder.xml @@ -58,7 +58,7 @@ android:textColor="@android:color/white" tools:text="00:00" /> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - + diff --git a/app/src/main/res/layout/dialog_delete_with_remember.xml b/app/src/main/res/layout/dialog_delete_with_remember.xml index 24902b3d5..4429e3668 100644 --- a/app/src/main/res/layout/dialog_delete_with_remember.xml +++ b/app/src/main/res/layout/dialog_delete_with_remember.xml @@ -7,7 +7,7 @@ android:paddingTop="@dimen/big_margin" android:paddingRight="@dimen/big_margin"> - - - - - - - - - - - - - + diff --git a/app/src/main/res/layout/dialog_filter_media.xml b/app/src/main/res/layout/dialog_filter_media.xml index 0117f3c01..17c757104 100644 --- a/app/src/main/res/layout/dialog_filter_media.xml +++ b/app/src/main/res/layout/dialog_filter_media.xml @@ -12,7 +12,7 @@ android:paddingTop="@dimen/activity_margin" android:paddingRight="@dimen/activity_margin"> - - - - - - - - @@ -14,125 +13,125 @@ android:paddingTop="@dimen/medium_margin" android:paddingRight="@dimen/activity_margin"> - + android:text="@string/toggle_favorite" /> - + android:text="@string/edit" /> - + android:text="@string/share" /> - + android:text="@string/delete" /> - + android:text="@string/rotate" /> - + android:text="@string/properties" /> - + android:text="@string/change_orientation" /> - + android:text="@string/slideshow" /> - + android:text="@string/show_on_map" /> - + android:text="@string/toggle_file_visibility" /> - + android:text="@string/rename" /> - + android:text="@string/set_as" /> - + android:text="@string/copy" /> - + android:text="@string/move" /> - + android:text="@string/resize" /> diff --git a/app/src/main/res/layout/dialog_manage_extended_details.xml b/app/src/main/res/layout/dialog_manage_extended_details.xml index 610b21304..c9d5280e2 100644 --- a/app/src/main/res/layout/dialog_manage_extended_details.xml +++ b/app/src/main/res/layout/dialog_manage_extended_details.xml @@ -1,6 +1,5 @@ - @@ -14,77 +13,77 @@ android:paddingTop="@dimen/medium_margin" android:paddingRight="@dimen/activity_margin"> - + android:text="@string/filename" /> - + android:text="@string/path" /> - + android:text="@string/size" /> - + android:text="@string/resolution" /> - + android:text="@string/last_modified" /> - + android:text="@string/date_taken" /> - + android:text="@string/camera" /> - + android:text="@string/exif" /> - + android:text="@string/gps_coordinates" /> diff --git a/app/src/main/res/layout/dialog_medium_picker.xml b/app/src/main/res/layout/dialog_medium_picker.xml index 5e9a02d1c..9dd0c517a 100644 --- a/app/src/main/res/layout/dialog_medium_picker.xml +++ b/app/src/main/res/layout/dialog_medium_picker.xml @@ -10,12 +10,12 @@ android:layout_width="match_parent" android:layout_height="wrap_content"> - diff --git a/app/src/main/res/layout/dialog_other_aspect_ratio.xml b/app/src/main/res/layout/dialog_other_aspect_ratio.xml index 2a0643443..22ac070bd 100644 --- a/app/src/main/res/layout/dialog_other_aspect_ratio.xml +++ b/app/src/main/res/layout/dialog_other_aspect_ratio.xml @@ -22,7 +22,7 @@ android:layout_marginBottom="@dimen/medium_margin" android:layout_weight="1"> - - - - - - - - - - - - - - - + - - - + - - - + - - - + - - + - - + - - + diff --git a/app/src/main/res/layout/dialog_resize_multiple_images.xml b/app/src/main/res/layout/dialog_resize_multiple_images.xml index a9aa638fe..a4f3d35b7 100644 --- a/app/src/main/res/layout/dialog_resize_multiple_images.xml +++ b/app/src/main/res/layout/dialog_resize_multiple_images.xml @@ -14,7 +14,7 @@ app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> - - + diff --git a/app/src/main/res/layout/dialog_save_as.xml b/app/src/main/res/layout/dialog_save_as.xml index 6f441d44a..ff0bc8d71 100644 --- a/app/src/main/res/layout/dialog_save_as.xml +++ b/app/src/main/res/layout/dialog_save_as.xml @@ -6,7 +6,7 @@ android:orientation="vertical" android:padding="@dimen/activity_margin"> - - + - - + - - + diff --git a/app/src/main/res/layout/dialog_slideshow.xml b/app/src/main/res/layout/dialog_slideshow.xml index e8ac16481..5caa9ea93 100644 --- a/app/src/main/res/layout/dialog_slideshow.xml +++ b/app/src/main/res/layout/dialog_slideshow.xml @@ -11,7 +11,7 @@ android:layout_height="wrap_content" android:orientation="vertical"> - - - + - - - - - - - - diff --git a/app/src/main/res/layout/directory_item_grid_square.xml b/app/src/main/res/layout/directory_item_grid_square.xml index 2d48c8c4d..b7d106c2d 100644 --- a/app/src/main/res/layout/directory_item_grid_square.xml +++ b/app/src/main/res/layout/directory_item_grid_square.xml @@ -8,7 +8,7 @@ android:focusable="true" android:padding="1px"> - diff --git a/app/src/main/res/layout/directory_item_list.xml b/app/src/main/res/layout/directory_item_list.xml index c46a655c4..b4ca9af7b 100644 --- a/app/src/main/res/layout/directory_item_list.xml +++ b/app/src/main/res/layout/directory_item_list.xml @@ -12,7 +12,7 @@ android:paddingTop="@dimen/small_margin" android:paddingBottom="@dimen/small_margin"> - diff --git a/app/src/main/res/layout/item_manage_folder.xml b/app/src/main/res/layout/item_manage_folder.xml index 496ad73d9..b01c30007 100644 --- a/app/src/main/res/layout/item_manage_folder.xml +++ b/app/src/main/res/layout/item_manage_folder.xml @@ -9,7 +9,7 @@ android:focusable="true" android:paddingStart="@dimen/activity_margin"> - - + app:layoutManager="org.fossify.commons.views.MyLinearLayoutManager" /> - - - - diff --git a/app/src/main/res/layout/photo_item_grid.xml b/app/src/main/res/layout/photo_item_grid.xml index 63a8fd64a..777369eda 100644 --- a/app/src/main/res/layout/photo_item_grid.xml +++ b/app/src/main/res/layout/photo_item_grid.xml @@ -7,7 +7,7 @@ android:clickable="true" android:focusable="true"> - @@ -34,9 +34,9 @@ android:layout_alignParentTop="true" android:layout_alignParentEnd="true" android:layout_margin="@dimen/small_margin" - android:padding="@dimen/small_margin" - android:gravity="end" android:background="@drawable/circle_black_background" + android:gravity="end" + android:padding="@dimen/small_margin" android:src="@drawable/ic_star_vector" android:visibility="gone" /> diff --git a/app/src/main/res/layout/photo_item_list.xml b/app/src/main/res/layout/photo_item_list.xml index a09968570..360c24f26 100644 --- a/app/src/main/res/layout/photo_item_list.xml +++ b/app/src/main/res/layout/photo_item_list.xml @@ -13,7 +13,7 @@ android:paddingTop="@dimen/small_margin" android:paddingBottom="@dimen/small_margin"> - diff --git a/app/src/main/res/layout/thumbnail_section.xml b/app/src/main/res/layout/thumbnail_section.xml index 65d51f7df..ca6422cfd 100644 --- a/app/src/main/res/layout/thumbnail_section.xml +++ b/app/src/main/res/layout/thumbnail_section.xml @@ -1,9 +1,8 @@ - + android:textSize="@dimen/bigger_text_size" /> diff --git a/app/src/main/res/layout/video_item_grid.xml b/app/src/main/res/layout/video_item_grid.xml index 65b8b00dd..c9cff3354 100644 --- a/app/src/main/res/layout/video_item_grid.xml +++ b/app/src/main/res/layout/video_item_grid.xml @@ -7,7 +7,7 @@ android:clickable="true" android:focusable="true"> - diff --git a/app/src/main/res/layout/video_item_list.xml b/app/src/main/res/layout/video_item_list.xml index b864b835b..3f0ad4db5 100644 --- a/app/src/main/res/layout/video_item_list.xml +++ b/app/src/main/res/layout/video_item_list.xml @@ -12,7 +12,7 @@ android:paddingTop="@dimen/small_margin" android:paddingBottom="@dimen/small_margin"> - @@ -24,9 +24,9 @@ android:layout_alignParentTop="true" android:layout_alignParentEnd="true" android:layout_margin="@dimen/smaller_margin" - android:padding="@dimen/tiny_margin" - android:gravity="end" android:background="@drawable/circle_black_background" + android:gravity="end" + android:padding="@dimen/tiny_margin" android:src="@drawable/ic_star_vector" android:visibility="gone" /> diff --git a/app/src/main/res/values/donottranslate.xml b/app/src/main/res/values/donottranslate.xml index 19127696d..bd6ae6f42 100644 --- a/app/src/main/res/values/donottranslate.xml +++ b/app/src/main/res/values/donottranslate.xml @@ -3,7 +3,7 @@ GIF RAW SVG - com.simplemobiletools.gallery.pro + org.fossify.gallery Allow temporarily showing excluded folders on Android 11+ diff --git a/app/src/main/res/xml/widget_info.xml b/app/src/main/res/xml/widget_info.xml index 6f2b56ed7..d3ea3bba9 100644 --- a/app/src/main/res/xml/widget_info.xml +++ b/app/src/main/res/xml/widget_info.xml @@ -1,6 +1,6 @@ Date: Thu, 14 Dec 2023 14:44:06 +0530 Subject: [PATCH 2/8] Replace SMT commons link with Fossify --- app/src/main/res/values-ar/strings.xml | 4 ++-- app/src/main/res/values-az/strings.xml | 2 +- app/src/main/res/values-be/strings.xml | 4 ++-- app/src/main/res/values-bg/strings.xml | 4 ++-- app/src/main/res/values-bn/strings.xml | 2 +- app/src/main/res/values-ca/strings.xml | 4 ++-- app/src/main/res/values-ckb/strings.xml | 2 +- app/src/main/res/values-cs/strings.xml | 4 ++-- app/src/main/res/values-da/strings.xml | 2 +- app/src/main/res/values-de/strings.xml | 4 ++-- app/src/main/res/values-el/strings.xml | 2 +- app/src/main/res/values-eo/strings.xml | 2 +- app/src/main/res/values-es/strings.xml | 4 ++-- app/src/main/res/values-et/strings.xml | 4 ++-- app/src/main/res/values-eu/strings.xml | 4 ++-- app/src/main/res/values-fa/strings.xml | 2 +- app/src/main/res/values-fi/strings.xml | 4 ++-- app/src/main/res/values-fr/strings.xml | 4 ++-- app/src/main/res/values-gl/strings.xml | 4 ++-- app/src/main/res/values-hr/strings.xml | 2 +- app/src/main/res/values-hu/strings.xml | 4 ++-- app/src/main/res/values-in/strings.xml | 2 +- app/src/main/res/values-it/strings.xml | 4 ++-- app/src/main/res/values-iw/strings.xml | 2 +- app/src/main/res/values-ja/strings.xml | 2 +- app/src/main/res/values-ko-rKR/strings.xml | 2 +- app/src/main/res/values-lt/strings.xml | 2 +- app/src/main/res/values-nb-rNO/strings.xml | 4 ++-- app/src/main/res/values-ne/strings.xml | 2 +- app/src/main/res/values-nl/strings.xml | 4 ++-- app/src/main/res/values-pl/strings.xml | 4 ++-- app/src/main/res/values-pt-rBR/strings.xml | 4 ++-- app/src/main/res/values-pt/strings.xml | 2 +- app/src/main/res/values-ro/strings.xml | 2 +- app/src/main/res/values-ru/strings.xml | 4 ++-- app/src/main/res/values-sk/strings.xml | 2 +- app/src/main/res/values-sl/strings.xml | 4 ++-- app/src/main/res/values-sr/strings.xml | 2 +- app/src/main/res/values-sv/strings.xml | 4 ++-- app/src/main/res/values-ta/strings.xml | 2 +- app/src/main/res/values-tr/strings.xml | 4 ++-- app/src/main/res/values-uk/strings.xml | 4 ++-- app/src/main/res/values-vi/strings.xml | 4 ++-- app/src/main/res/values-zh-rCN/strings.xml | 4 ++-- app/src/main/res/values-zh-rHK/strings.xml | 2 +- app/src/main/res/values-zh-rTW/strings.xml | 4 ++-- app/src/main/res/values/strings.xml | 2 +- settings.gradle.kts | 2 +- 48 files changed, 74 insertions(+), 74 deletions(-) diff --git a/app/src/main/res/values-ar/strings.xml b/app/src/main/res/values-ar/strings.xml index 39af1b826..389863330 100644 --- a/app/src/main/res/values-ar/strings.xml +++ b/app/src/main/res/values-ar/strings.xml @@ -387,6 +387,6 @@ لا تحتوي تطبيقاتنا على أي إعلانات على الإطلاق. إذا رأيتها أثناء تشغيل الفيديو، فيجب أن تستخدم مشغل فيديو بعض التطبيقات الأخرى. حاول العثور على مشغل الفيديو الافتراضي في إعدادات الجهاز، ثم قم بإجراء \"مسح الإعدادات الافتراضية\" عليه. في المرة التالية التي تستدعي فيها بعض نوايا الفيديو، سترى مطالبة منتقي التطبيقات، حيث يمكنك تحديد التطبيق الذي تريد استخدامه. - \ No newline at end of file + diff --git a/app/src/main/res/values-az/strings.xml b/app/src/main/res/values-az/strings.xml index e14a6cee7..2f5696920 100644 --- a/app/src/main/res/values-az/strings.xml +++ b/app/src/main/res/values-az/strings.xml @@ -383,6 +383,6 @@ Our apps have no ads whatsoever. If you see them during video playback, you must be using some other apps video player. Try finding your default video player in the device settings, then do a \"Clear defaults\" on it. The next time you invoke some video intent you will see an app picker prompt, where you can select what app you want to use. diff --git a/app/src/main/res/values-be/strings.xml b/app/src/main/res/values-be/strings.xml index ac3a8708f..3153707a8 100644 --- a/app/src/main/res/values-be/strings.xml +++ b/app/src/main/res/values-be/strings.xml @@ -368,6 +368,6 @@ У нашых прыкладаннях наогул няма рэкламы. Калі вы бачыце іх падчас прайгравання відэа, вы, павінна быць, карыстаецеся відэаплэер якога-небудзь іншага прыкладання. Паспрабуйце знайсці свой відэаплэер па змаўчанні ў наладах прылады, затым выканаеце для яго \"ачысціць налады па змаўчанні\". У наступны раз, калі вы выклічаце якое-небудзь відэа-намер, вы ўбачыце запрашэнне выбару прыкладання, у якім вы можаце выбраць, якое дадатак вы хочаце выкарыстоўваць. - \ No newline at end of file + diff --git a/app/src/main/res/values-bg/strings.xml b/app/src/main/res/values-bg/strings.xml index a3953f895..4c9a6cfdb 100644 --- a/app/src/main/res/values-bg/strings.xml +++ b/app/src/main/res/values-bg/strings.xml @@ -382,6 +382,6 @@ Приложенията ни нямат никакви реклами. Ако ги видите по време на възпроизвеждане на видео, явно използвате видеоплейър от други приложения. Опитайте да намерите подразбирания видеоплейър в настройките на устройството, след което направете „Изчистване на настройките по подразбиране“ върху него. Следващия път, когато извикате някакъв видеоплейър, ще видите диалог за избор на приложение, където можете да изберете кое приложение искате да използвате. - \ No newline at end of file + diff --git a/app/src/main/res/values-bn/strings.xml b/app/src/main/res/values-bn/strings.xml index f191da801..b5513fb49 100644 --- a/app/src/main/res/values-bn/strings.xml +++ b/app/src/main/res/values-bn/strings.xml @@ -383,6 +383,6 @@ Our apps have no ads whatsoever. If you see them during video playback, you must be using some other apps video player. Try finding your default video player in the device settings, then do a \"Clear defaults\" on it. The next time you invoke some video intent you will see an app picker prompt, where you can select what app you want to use. diff --git a/app/src/main/res/values-ca/strings.xml b/app/src/main/res/values-ca/strings.xml index 31bec47f3..14a6fe398 100644 --- a/app/src/main/res/values-ca/strings.xml +++ b/app/src/main/res/values-ca/strings.xml @@ -383,6 +383,6 @@ Les nostres aplicacions no tenen cap anunci. Si els veieu durant la reproducció de vídeo, estareu utilitzant una altra aplicació de reproducció de vídeo. Intenteu trobar el reproductor de vídeo predeterminat a la configuració del dispositiu i, a continuació, feu «Esborra els valors predeterminats». La pròxima vegada que invoqueu una acció de vídeo, veureu un missatge de selecció d\'aplicacions, on podreu seleccionar quina aplicació voleu utilitzar. - \ No newline at end of file + diff --git a/app/src/main/res/values-ckb/strings.xml b/app/src/main/res/values-ckb/strings.xml index 4cc40006e..1a6550bca 100644 --- a/app/src/main/res/values-ckb/strings.xml +++ b/app/src/main/res/values-ckb/strings.xml @@ -394,6 +394,6 @@ Our apps have no ads whatsoever. If you see them during video playback, you must be using some other apps video player. Try finding your default video player in the device settings, then do a \"Clear defaults\" on it. The next time you invoke some video intent you will see an app picker prompt, where you can select what app you want to use. diff --git a/app/src/main/res/values-cs/strings.xml b/app/src/main/res/values-cs/strings.xml index 632e20bd9..2a5a40c3e 100644 --- a/app/src/main/res/values-cs/strings.xml +++ b/app/src/main/res/values-cs/strings.xml @@ -384,6 +384,6 @@ Naše aplikace žádné reklamy neobsahují. Pokud je vidíte během přehrávání videa, používáte na jeho přehrávání nějakou jinou aplikaci. Zkuste v nastavení zařízení najít svůj výchozí přehrávač videa a poté v něm použijte volbu „Vymazat výchozí“. Při příštím spuštění videa se zobrazí výzva k výběru aplikace, kde si můžete vybrat, jakou aplikaci chcete použít. - \ No newline at end of file + diff --git a/app/src/main/res/values-da/strings.xml b/app/src/main/res/values-da/strings.xml index e59711fe0..8b6d24617 100644 --- a/app/src/main/res/values-da/strings.xml +++ b/app/src/main/res/values-da/strings.xml @@ -383,6 +383,6 @@ Vores apps har ingen reklamer overhovedet. Hvis du ser dem under videoafspilning, bruger du videoafspilleren fra en anden app. Prøv at finde din standard videoafspiller i enhedens indstillinger, og vælg \"Ryd standarder\" på den. Næste gang du forsøger at åbne en videofil, vil du se en prompt, hvor du kan vælge hvilken app du vil bruge. diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 283ec2808..d8e1be59b 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -383,6 +383,6 @@ Unsere Anwendungen enthalten keinerlei Werbung. Wenn während der Videowiedergabe trotzdem welche gezeigt wird, liegt das daran, dass man den Videoplayer einer anderen App verwendet. Man sollte versuchen, den Standard-Videoplayer in den Geräteeinstellungen zu finden, und dann „Standardeinstellungen löschen“ ausführen. Beim nächsten Aufruf eines Videos, wird eine Aufforderung zur Auswahl der Anwendung angezeigt, aus der man die gewünschte Anwendung auswählen kann. - \ No newline at end of file + diff --git a/app/src/main/res/values-el/strings.xml b/app/src/main/res/values-el/strings.xml index bf0e80fac..6ad36e515 100644 --- a/app/src/main/res/values-el/strings.xml +++ b/app/src/main/res/values-el/strings.xml @@ -383,6 +383,6 @@ Οι εφαρμογές μας δεν έχουν καθόλου διαφημίσεις. Αν τις βλέπετε κατά την αναπαραγωγή βίντεο, ίσως να χρησιμοποιείτε κάποιο άλλο πρόγραμμα αναπαραγωγής βίντεο. Δοκιμάστε να βρείτε τον προεπιλεγμένο αναπαραγωγέα βίντεο στις ρυθμίσεις της συσκευής και, στη συνέχεια, πατήστε \"Εκκαθάριση προεπιλογών\" σε αυτήν. Την επόμενη φορά που θα προσπαθήσετε να δείτε ένα βίντεο, θα δείτε μια προτροπή για επιλογή εφαρμογής, όπου μπορείτε να επιλέξετε ποια εφαρμογή θέλετε να χρησιμοποιήσετε. diff --git a/app/src/main/res/values-eo/strings.xml b/app/src/main/res/values-eo/strings.xml index 14f78d505..e38481ee0 100644 --- a/app/src/main/res/values-eo/strings.xml +++ b/app/src/main/res/values-eo/strings.xml @@ -383,6 +383,6 @@ Our apps have no ads whatsoever. If you see them during video playback, you must be using some other apps video player. Try finding your default video player in the device settings, then do a \"Clear defaults\" on it. The next time you invoke some video intent you will see an app picker prompt, where you can select what app you want to use. diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index 738c7ac30..a5bc0df40 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -384,6 +384,6 @@ Nuestras aplicaciones no tienen anuncios de ninguna clase. Si los ve durante la reproducción de video, entonces debe estar usando el reproductor de vídeo de otra aplicación. Pruebe encontrando su reproductor de video por defecto en los ajustes del dispositivo, luego realice un \"Borrar predeterminados\" en él. La siguiente vez que vaya a ver un vídeo verá un selector de aplicaciones, en el cual puede seleccionar que aplicación quiere usar para reproducirlo. - \ No newline at end of file + diff --git a/app/src/main/res/values-et/strings.xml b/app/src/main/res/values-et/strings.xml index 9df428785..0069d06b6 100644 --- a/app/src/main/res/values-et/strings.xml +++ b/app/src/main/res/values-et/strings.xml @@ -383,6 +383,6 @@ Meie rakendustes ei ole üldse reklaami. Kui näed neid videote esitamise ajal, pead kasutama mõnda muud rakendust videomängijana. Proovi leida seadme seadetest oma vaikimisi videomängija, seejärel tee selle kohta „Eemalda vaikimisi seaded“. Järgmine kord, kui alustad videoesitust, näed rakenduse valikut, kus saad valida, millist rakendust soovid kasutada. - \ No newline at end of file + diff --git a/app/src/main/res/values-eu/strings.xml b/app/src/main/res/values-eu/strings.xml index cb6b8e6f7..6977f16a5 100644 --- a/app/src/main/res/values-eu/strings.xml +++ b/app/src/main/res/values-eu/strings.xml @@ -383,6 +383,6 @@ Gure aplikazioek ez dute iragarkirik. Bideoak erreproduzitzerakoan ikusten badituzu, beste aplikazio batzuk erabili behar dituzu bideo-erreproduzitzailea. Saiatu zure bideo-erreproduzitzaile lehenetsia aurkitzen gailuaren ezarpenetan, eta egin ezazu \"Garbitu lehenetsiak\". Bideo-asmoren bat deitzen duzun hurrengoan aplikazio-hautatzaile baten gonbita ikusiko duzu, non erabili nahi duzun aplikazioa hauta dezakezun. - \ No newline at end of file + diff --git a/app/src/main/res/values-fa/strings.xml b/app/src/main/res/values-fa/strings.xml index 4935462df..8d0ce076f 100644 --- a/app/src/main/res/values-fa/strings.xml +++ b/app/src/main/res/values-fa/strings.xml @@ -383,6 +383,6 @@ Our apps have no ads whatsoever. If you see them during video playback, you must be using some other apps video player. Try finding your default video player in the device settings, then do a \"Clear defaults\" on it. The next time you invoke some video intent you will see an app picker prompt, where you can select what app you want to use. diff --git a/app/src/main/res/values-fi/strings.xml b/app/src/main/res/values-fi/strings.xml index 35ec232d3..0403a4a15 100644 --- a/app/src/main/res/values-fi/strings.xml +++ b/app/src/main/res/values-fi/strings.xml @@ -383,6 +383,6 @@ Sovelluksissamme ei ole lainkaan mainoksia. Jos näet niitä videon toiston aikana, sinun täytyy käyttää jotain muuta sovellusta videosoittimena. Yritä etsiä oletusarvoinen videosoittimesi laitteen asetuksista ja tee sitten ”Tyhjenä oletusasetukset” sille. Seuraavan kerran, kun kutsut jonkin videon aikomuksen, näet sovelluksen valintakehotuksen, jossa voit valita, mitä sovellusta haluat käyttää. - \ No newline at end of file + diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index 51b24f1e1..913f0f770 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -384,6 +384,6 @@ Nos applications ne comportent aucune publicité. Si vous en voyez pendant la lecture d\'une vidéo, vous devez sûrement utiliser le lecteur vidéo d\'une autre application. Essayez de trouver le lecteur vidéo par défaut dans les paramètres de votre appareil, puis faites "Supprimer les valeurs par défaut". Lors du prochain lancement d\'une vidéo, une invite de sélection d\'application s\'affichera, et vous pourrez choisir l\'application que vous souhaitez utiliser. - \ No newline at end of file + diff --git a/app/src/main/res/values-gl/strings.xml b/app/src/main/res/values-gl/strings.xml index cb8da8a74..1cde92566 100644 --- a/app/src/main/res/values-gl/strings.xml +++ b/app/src/main/res/values-gl/strings.xml @@ -383,6 +383,6 @@ As nosas aplicacións non teñen ningún tipo de anuncio. Se os ves durante a reprodución de vídeo, debes estar usando outras aplicacións de reprodutor de vídeo. Tenta atopar o teu reprodutor de vídeo predeterminado na configuración do dispositivo e, a continuación, fai un \"Borrar valores predeterminados\". A próxima vez que invoques algunha intención de vídeo, verás un indicador de selección de aplicacións, onde podes seleccionar a aplicación que queres usar. - \ No newline at end of file + diff --git a/app/src/main/res/values-hr/strings.xml b/app/src/main/res/values-hr/strings.xml index a1bdfc232..185b38795 100644 --- a/app/src/main/res/values-hr/strings.xml +++ b/app/src/main/res/values-hr/strings.xml @@ -384,6 +384,6 @@ Naše aplikacije ne sadrže oglase. Ako ih vidiš tijekom reprodukcije videa, vjerojatno koristiš neki drugi video player. Pokušaj pronaći zadani video player u postavkama uređaja, a zatim na njemu izvrši „Očisti zadane postavke“. Sljedeći put kada pozoveš neku namjeru gledanja videa, vidjet ćeš upit za biranje aplikacija u kojem možeš odabrati aplikaciju koju želiš koristiti. diff --git a/app/src/main/res/values-hu/strings.xml b/app/src/main/res/values-hu/strings.xml index 8d4a7ca4a..c104e7436 100644 --- a/app/src/main/res/values-hu/strings.xml +++ b/app/src/main/res/values-hu/strings.xml @@ -383,6 +383,6 @@ Az alkalmazásainkban egyáltalán nincsenek reklámok. Ha videólejátszás során látja őket, akkor valamilyen külső videólejátszót használhat. Próbálja megkeresni az alapértelmezett videólejátszót az eszközbeállításokban, majd futtassa az „Alapértelmezések törlése” lehetőséget. Amikor legközelebb videót játszana le, akkor az alkalmazásválasztót fogja látni, és kiválaszthatja a használandó alkalmazást. - \ No newline at end of file + diff --git a/app/src/main/res/values-in/strings.xml b/app/src/main/res/values-in/strings.xml index c35993cae..cb577729c 100644 --- a/app/src/main/res/values-in/strings.xml +++ b/app/src/main/res/values-in/strings.xml @@ -383,6 +383,6 @@ Aplikasi kami tidak memiliki iklan apa pun. Jika Anda melihatnya selama pemutaran video, Anda harus menggunakan beberapa pemutar video aplikasi lain. Coba temukan pemutar video default Anda di pengaturan perangkat, lalu lakukan \"Hapus default\" di atasnya. Saat berikutnya Anda memanggil beberapa maksud video, Anda akan melihat permintaan pemilih aplikasi, di mana Anda dapat memilih aplikasi apa yang ingin Anda gunakan. diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index 653f4d47a..68e03f782 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -384,6 +384,6 @@ Le nostre applicazioni non hanno alcun tipo di pubblicità. Se li vedi durante la riproduzione di video, è probabile che tu stia usando un altro lettore video. Prova a trovare il tuo lettore video predefinito nelle impostazioni del dispositivo, poi fai «Cancella predefinito» su di esso. La prossima volta che invocherai qualche intento video vedrai un prompt di selezione di app, dove potrai selezionare quale app vuoi usare. - \ No newline at end of file + diff --git a/app/src/main/res/values-iw/strings.xml b/app/src/main/res/values-iw/strings.xml index 7691364d4..65b34cf6d 100644 --- a/app/src/main/res/values-iw/strings.xml +++ b/app/src/main/res/values-iw/strings.xml @@ -381,6 +381,6 @@ Our apps have no ads whatsoever. If you see them during video playback, you must be using some other apps video player. Try finding your default video player in the device settings, then do a \"Clear defaults\" on it. The next time you invoke some video intent you will see an app picker prompt, where you can select what app you want to use. diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml index f7f199191..c60a8c5ad 100644 --- a/app/src/main/res/values-ja/strings.xml +++ b/app/src/main/res/values-ja/strings.xml @@ -381,6 +381,6 @@ 私たちのアプリには広告は一切表示されません。動画の再生中に広告が表示される場合、他のアプリの動画プレーヤーを使用している可能性があります。端末の設定でデフォルトの動画プレーヤーを見つけて、「デフォルトの設定をクリア」(あるいは「設定を消去」や「デフォルトをクリア」といった表記のもの)を実行してみてください。次回以降、何らかの動画を開こうとすると、使用するアプリを選択するアプリ選択ダイアログが表示されます。 diff --git a/app/src/main/res/values-ko-rKR/strings.xml b/app/src/main/res/values-ko-rKR/strings.xml index 691bba5a6..6dfb8abf4 100644 --- a/app/src/main/res/values-ko-rKR/strings.xml +++ b/app/src/main/res/values-ko-rKR/strings.xml @@ -383,6 +383,6 @@ Our apps have no ads whatsoever. If you see them during video playback, you must be using some other apps video player. Try finding your default video player in the device settings, then do a \"Clear defaults\" on it. The next time you invoke some video intent you will see an app picker prompt, where you can select what app you want to use. diff --git a/app/src/main/res/values-lt/strings.xml b/app/src/main/res/values-lt/strings.xml index cc0fa170d..493f5076b 100644 --- a/app/src/main/res/values-lt/strings.xml +++ b/app/src/main/res/values-lt/strings.xml @@ -380,6 +380,6 @@ Our apps have no ads whatsoever. If you see them during video playback, you must be using some other apps video player. Try finding your default video player in the device settings, then do a \"Clear defaults\" on it. The next time you invoke some video intent you will see an app picker prompt, where you can select what app you want to use. diff --git a/app/src/main/res/values-nb-rNO/strings.xml b/app/src/main/res/values-nb-rNO/strings.xml index 59284e1f9..2e71fdc59 100644 --- a/app/src/main/res/values-nb-rNO/strings.xml +++ b/app/src/main/res/values-nb-rNO/strings.xml @@ -383,6 +383,6 @@ Our apps have no ads whatsoever. If you see them during video playback, you must be using some other apps video player. Try finding your default video player in the device settings, then do a \"Clear defaults\" on it. The next time you invoke some video intent you will see an app picker prompt, where you can select what app you want to use. - \ No newline at end of file + diff --git a/app/src/main/res/values-ne/strings.xml b/app/src/main/res/values-ne/strings.xml index 5eb268a3f..9e72bbc72 100644 --- a/app/src/main/res/values-ne/strings.xml +++ b/app/src/main/res/values-ne/strings.xml @@ -383,6 +383,6 @@ Our apps have no ads whatsoever. If you see them during video playback, you must be using some other apps video player. Try finding your default video player in the device settings, then do a \"Clear defaults\" on it. The next time you invoke some video intent you will see an app picker prompt, where you can select what app you want to use. diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml index 7476895a4..fa8508773 100644 --- a/app/src/main/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -383,6 +383,6 @@ Onze apps bevatten geen advertenties. Indien er wél advertenties verschijnen bij video\'s, dan kan dat alleen vanuit een andere app zijn. Probeer uit te vinden welke app als standaard-videospeler is ingesteld, zoek de app in de systeeminstellingen op en klik op \"Standaardwaarden wissen\". Kies de volgende keer bij het afspelen van een video welke app er gebruikt moet worden. - \ No newline at end of file + diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml index c5e2f1b85..a1e92da6f 100644 --- a/app/src/main/res/values-pl/strings.xml +++ b/app/src/main/res/values-pl/strings.xml @@ -385,6 +385,6 @@ Nasze aplikacje nie mają żadnych reklam. Jeśli widzisz je podczas odtwarzania wideo, musisz używać odtwarzacza wideo innej aplikacji. Spróbuj znaleźć domyślny odtwarzacz wideo w ustawieniach urządzenia, a następnie wykonaj na nim „Wyczyść domyślne”. Następnym razem, gdy spróbujesz odtworzyć wideo, zobaczysz ekran wyboru aplikacji, gdzie możesz wybrać, którą chcesz użyć. - \ No newline at end of file + diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index 367715717..3be25710f 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -384,6 +384,6 @@ Nossos aplicativos não mostram anúncios, nunca. Se você encontrar algum durante um playback de vídeo, deve estar utilizando o reprodutor de vídeo de outro aplicativo. Tente encontrar o seu reprodutor de vídeo padrão nas configurações de dispositivo e clique em \"Limpar padrões\". Na próxima vez que tentar assistir a um vídeo, poderá escolhar o reprodutor que desejar. - \ No newline at end of file + diff --git a/app/src/main/res/values-pt/strings.xml b/app/src/main/res/values-pt/strings.xml index 039a1780e..04f870457 100644 --- a/app/src/main/res/values-pt/strings.xml +++ b/app/src/main/res/values-pt/strings.xml @@ -384,6 +384,6 @@ As nossas aplicações não têm anúncios. Se você vê-os durante a reprodução de um vídeo, deve estar a usar outra aplicação . Tente encontrar o reprodutor de vídeo padrão nas definições do dispositivo e, em seguida, faça um \"Limpar dados\". Da próxima vez quiser reproduzir um vídeo, surgirá uma opção para escolher a aplicação utilizada. diff --git a/app/src/main/res/values-ro/strings.xml b/app/src/main/res/values-ro/strings.xml index 2eebed12c..41498ac6e 100644 --- a/app/src/main/res/values-ro/strings.xml +++ b/app/src/main/res/values-ro/strings.xml @@ -383,6 +383,6 @@ Aplicațiile noastre nu au niciun fel de reclame. Dacă le vedeți în timpul redării video, înseamnă că utilizați un alt player video. Încercați să găsiți playerul video implicit în setările dispozitivului, apoi efectuați o operațiune de \"Curăţare a valorilor implicite\" pentru acesta. Data viitoare când veți apela la o intenție video, veți vedea o fereastră de selectare a aplicației, unde puteți selecta aplicația pe care doriți să o utilizați. diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index e495e4e00..2cc8e5a77 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -385,6 +385,6 @@ В наших приложениях вообще нет рекламы. Если вы видите её во время воспроизведения видео, то, должно быть, используете сторонний видеопроигрыватель. Попробуйте найти видеопроигрыватель по умолчанию в настройках устройства, а затем выполните для данной настройки \"Очистить настройки по умолчанию\". В следующий раз, когда вы откроете воспроизведение видео, будет предложено выбрать приложение, которое вы хотите использовать. - \ No newline at end of file + diff --git a/app/src/main/res/values-sk/strings.xml b/app/src/main/res/values-sk/strings.xml index 1ef15219d..0be575387 100644 --- a/app/src/main/res/values-sk/strings.xml +++ b/app/src/main/res/values-sk/strings.xml @@ -384,6 +384,6 @@ Naše apky nemajú vôbec žiadne reklamy. Ak sa vám zobrazujú počas prehrávania videí, používate prehrávač inej apky. Skúste v nastaveniach zariadenia nájsť predvolený prehrávač a použiť \"Odstrániť predvolené\". Pri ďalšom spustení videa uvidíte zoznam apiek, ktoré môžete na prehrávanie použiť. diff --git a/app/src/main/res/values-sl/strings.xml b/app/src/main/res/values-sl/strings.xml index f24c8e524..935c6fb9b 100644 --- a/app/src/main/res/values-sl/strings.xml +++ b/app/src/main/res/values-sl/strings.xml @@ -383,6 +383,6 @@ Naše aplikacije so brez reklam! Če jih vidite med predvajanjem videa, potem sigurno uporabljate nek drug video predvajalnik. Poskusite poiskati privzeti video predvajalnik v nastavitvah naprave. Nato v njenih opcijah pritisnite \"Počisti privzete nastavitve\". Ko boste naslednjič nameravali odpreti video, se bo prikazal poziv za izbiro aplikacije, kjer izberete željeno. - \ No newline at end of file + diff --git a/app/src/main/res/values-sr/strings.xml b/app/src/main/res/values-sr/strings.xml index fe7217cda..ec114ddfb 100644 --- a/app/src/main/res/values-sr/strings.xml +++ b/app/src/main/res/values-sr/strings.xml @@ -383,6 +383,6 @@ Наше апликације немају никакве огласе. Ако их видите током репродукције видео записа, сигурно користите неки други видео плејер апликација. Покушајте да пронађете подразумевани видео плејер у поставкама уређаја, а затим на њему урадите \"Обриши подразумеване вредности\". Када се следећи пут позовете на неку намеру видео записа видећете одзивник за одабирач апликација, где можете да изаберете коју апликацију желите да користите. diff --git a/app/src/main/res/values-sv/strings.xml b/app/src/main/res/values-sv/strings.xml index 44bc370e6..067f52d14 100644 --- a/app/src/main/res/values-sv/strings.xml +++ b/app/src/main/res/values-sv/strings.xml @@ -383,6 +383,6 @@ Våra appar har inga som helst annonser. Om du ser dem under videouppspelning använder du någon annan videospelare. Försök att hitta din standardvideospelare i enhetsinställningarna och gör sedan en \"Rensa standardinställningar\" på den. Nästa gång du vill öppna en video kommer du att se ett appväljarfönster, där du kan välja vilken app du vill använda. - \ No newline at end of file + diff --git a/app/src/main/res/values-ta/strings.xml b/app/src/main/res/values-ta/strings.xml index 3673e0d2f..0498b5761 100644 --- a/app/src/main/res/values-ta/strings.xml +++ b/app/src/main/res/values-ta/strings.xml @@ -383,6 +383,6 @@ Our apps have no ads whatsoever. If you see them during video playback, you must be using some other apps video player. Try finding your default video player in the device settings, then do a \"Clear defaults\" on it. The next time you invoke some video intent you will see an app picker prompt, where you can select what app you want to use. diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index dafb80156..8a8caa7d2 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -383,6 +383,6 @@ Uygulamalarımızda hiçbir şekilde reklam yoktur. Video oynatılırken reklam görüyorsanız, başka bir uygulamanın video oynatıcısını kullanıyor olmalısınız. Aygıt ayarlarında öntanımlı video oynatıcınızı bulmayı deneyin, ardından \"Öntanımlıları temizle\" yapın. Bir dahaki sefere video oynatmayı istediğinizde, kullanmak istediğiniz uygulamayı seçebileceğiniz bir uygulama seçici istemi göreceksiniz. - \ No newline at end of file + diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml index ddc6a3c1f..873430b60 100644 --- a/app/src/main/res/values-uk/strings.xml +++ b/app/src/main/res/values-uk/strings.xml @@ -385,6 +385,6 @@ У наших додатках немає жодної реклами. Якщо ви бачите її під час відтворення відео, ви, мабуть, використовуєте інший відеопрогравач. Спробуйте знайти у налаштуваннях пристрою свій відеопрогравач за промовчанням, а далі виконайте на ньому «Очистити налаштування за промовчанням». Наступного разу, коли ви запустите певне відео, ви побачите вікно вибору додатку, який ви хочете використовувати. - \ No newline at end of file + diff --git a/app/src/main/res/values-vi/strings.xml b/app/src/main/res/values-vi/strings.xml index b91c00a23..76e0f2fa6 100644 --- a/app/src/main/res/values-vi/strings.xml +++ b/app/src/main/res/values-vi/strings.xml @@ -383,6 +383,6 @@ Our apps have no ads whatsoever. If you see them during video playback, you must be using some other apps video player. Try finding your default video player in the device settings, then do a \"Clear defaults\" on it. The next time you invoke some video intent you will see an app picker prompt, where you can select what app you want to use. - \ No newline at end of file + diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index 5527cea07..dea82f2f2 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -383,6 +383,6 @@ 我们的应用没有任何广告。如果您在视频播放期间看到它们,那么您一定是在使用其他视频播放器。尝试在设备设置中找到默认的视频播放器,然后在其上执行“清除默认设置”。下次你调用视频意图,你会看到一个应用选择提示,在那里你可以选择你想使用的播放器。 - \ No newline at end of file + diff --git a/app/src/main/res/values-zh-rHK/strings.xml b/app/src/main/res/values-zh-rHK/strings.xml index 071f6e75e..845a4fe8f 100644 --- a/app/src/main/res/values-zh-rHK/strings.xml +++ b/app/src/main/res/values-zh-rHK/strings.xml @@ -382,6 +382,6 @@ Our apps have no ads whatsoever. If you see them during video playback, you must be using some other apps video player. Try finding your default video player in the device settings, then do a \"Clear defaults\" on it. The next time you invoke some video intent you will see an app picker prompt, where you can select what app you want to use. diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index 9703ff869..a046d3995 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -382,6 +382,6 @@ 我們的應用程式完全沒有廣告。如果您在播放影片時看到它們,那麼您一定是在使用其他應用程式的影片播放器。嘗試在裝置設定中找到您的預設影片播放器,然後對其進行清除其預設值。下次您嘗試播放影片時,系統會提示您選擇應用程式,您可以在此選擇您想要使用的影片播放器。 - \ No newline at end of file + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 4cc40006e..1a6550bca 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -394,6 +394,6 @@ Our apps have no ads whatsoever. If you see them during video playback, you must be using some other apps video player. Try finding your default video player in the device settings, then do a \"Clear defaults\" on it. The next time you invoke some video intent you will see an app picker prompt, where you can select what app you want to use. diff --git a/settings.gradle.kts b/settings.gradle.kts index 79d2cfd91..317c09e0a 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -18,7 +18,7 @@ dependencyResolutionManagement { } } -rootProject.name = "Simple-Gallery" +rootProject.name = "Gallery" enableFeaturePreview("TYPESAFE_PROJECT_ACCESSORS") include(":app") From 4c6ccd1a523a89c4ee502c2eca2bcaf3f3880096 Mon Sep 17 00:00:00 2001 From: Naveen Date: Thu, 14 Dec 2023 14:46:07 +0530 Subject: [PATCH 3/8] Setup custom domain for jitpack builds https://docs.jitpack.io/#custom-domain-name --- app/build.gradle.kts | 2 +- gradle/libs.versions.toml | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 352eefa8a..e46b09ee7 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -101,7 +101,7 @@ android { } dependencies { - implementation(libs.simple.tools.commons) + implementation(libs.fossify.commons) implementation(libs.android.image.cropper) implementation(libs.exif) implementation(libs.android.gif.drawable) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 531de74e1..8a1a98c1c 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -13,7 +13,7 @@ exif = "1.0.1" #Room room = "2.6.0-beta01" #Simple tools -simple-commons = "9e60e24790" +commons = "9e60e24790" #Gradle gradlePlugins-agp = "8.1.2" #Other @@ -56,7 +56,7 @@ androidx-room-runtime = { module = "androidx.room:room-runtime", version.ref = " androidx-room-ktx = { module = "androidx.room:room-ktx", version.ref = "room" } androidx-room-compiler = { module = "androidx.room:room-compiler", version.ref = "room" } #Simple Mobile Tools -simple-tools-commons = { module = "com.github.SimpleMobileTools:Simple-Commons", version.ref = "simple-commons" } +fossify-commons = { module = "org.fossify:commons", version.ref = "commons" } #Other android-gif-drawable = { module = "pl.droidsonroids.gif:android-gif-drawable", version.ref = "androidGifDrawable" } android-image-cropper = { module = "com.vanniktech:android-image-cropper", version.ref = "androidImageCropper" } From 692a5d08b30e7d4d374f53d7371781d05b482dc9 Mon Sep 17 00:00:00 2001 From: Naveen Date: Thu, 14 Dec 2023 16:07:47 +0530 Subject: [PATCH 4/8] Update commons --- gradle/libs.versions.toml | 2 +- settings.gradle.kts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 8a1a98c1c..95b789ac3 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -13,7 +13,7 @@ exif = "1.0.1" #Room room = "2.6.0-beta01" #Simple tools -commons = "9e60e24790" +commons = "13f17f49bb" #Gradle gradlePlugins-agp = "8.1.2" #Other diff --git a/settings.gradle.kts b/settings.gradle.kts index 317c09e0a..a9491a252 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -25,6 +25,6 @@ include(":app") // TODO: This will be deprecated in future. Migrate to the newer `pluginManagement { includeBuild() }` mechanism instead of explicitly substituting dependency. /*includeBuild("../Commons") { dependencySubstitution { - substitute(module("com.github.SimpleMobileTools:Simple-Commons")).using(project(":commons")) + substitute(module("org.fossify:commons")).using(project(":commons")) } }*/ From 214841f3a1fafed8c9050a25a4d7368d43a446ab Mon Sep 17 00:00:00 2001 From: Naveen Date: Thu, 14 Dec 2023 16:08:35 +0530 Subject: [PATCH 5/8] Reset app version to 1.0.0 --- gradle/libs.versions.toml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 95b789ac3..a29ad5ff7 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -41,8 +41,8 @@ app-build-javaVersion = "VERSION_17" app-build-kotlinJVMTarget = "17" #versioning app-version-appId = "org.fossify.gallery" -app-version-versionCode = "396" -app-version-versionName = "6.28.1" +app-version-versionCode = "1" +app-version-versionName = "1.0.0" subsamplingScaleImageView = "80efdaa570" [libraries] #AndroidX From ef524b1fab2d4642e8c64fe1a7e639921c0a49ac Mon Sep 17 00:00:00 2001 From: Naveen Date: Thu, 14 Dec 2023 16:16:12 +0530 Subject: [PATCH 6/8] Remove pro version dialog --- .../org/fossify/gallery/activities/MainActivity.kt | 12 ------------ .../org/fossify/gallery/activities/MediaActivity.kt | 11 ----------- 2 files changed, 23 deletions(-) diff --git a/app/src/main/kotlin/org/fossify/gallery/activities/MainActivity.kt b/app/src/main/kotlin/org/fossify/gallery/activities/MainActivity.kt index f357de76f..6ef1e8484 100644 --- a/app/src/main/kotlin/org/fossify/gallery/activities/MainActivity.kt +++ b/app/src/main/kotlin/org/fossify/gallery/activities/MainActivity.kt @@ -13,7 +13,6 @@ import android.view.ViewGroup import android.widget.RelativeLayout import android.widget.Toast import androidx.recyclerview.widget.RecyclerView -import org.fossify.commons.dialogs.ConfirmationDialog import org.fossify.commons.dialogs.CreateNewFolderDialog import org.fossify.commons.dialogs.FilePickerDialog import org.fossify.commons.dialogs.RadioGroupDialog @@ -510,17 +509,6 @@ class MainActivity : SimpleActivity(), DirectoryOperationsListener { mWasDefaultFolderChecked = true } - if (isPackageInstalled("org.fossify.gallery")) { - ConfirmationDialog( - this, - "", - org.fossify.commons.R.string.upgraded_from_free_gallery, - org.fossify.commons.R.string.ok, - 0, - false - ) {} - } - checkOTGPath() checkDefaultSpamFolders() diff --git a/app/src/main/kotlin/org/fossify/gallery/activities/MediaActivity.kt b/app/src/main/kotlin/org/fossify/gallery/activities/MediaActivity.kt index e7ee8654c..6bc689366 100644 --- a/app/src/main/kotlin/org/fossify/gallery/activities/MediaActivity.kt +++ b/app/src/main/kotlin/org/fossify/gallery/activities/MediaActivity.kt @@ -104,17 +104,6 @@ class MediaActivity : SimpleActivity(), MediaOperationsListener { if (mShowAll) { registerFileUpdateListener() - - if (isPackageInstalled("org.fossify.gallery")) { - ConfirmationDialog( - this, - "", - org.fossify.commons.R.string.upgraded_from_free_gallery, - org.fossify.commons.R.string.ok, - 0, - false - ) {} - } } binding.mediaEmptyTextPlaceholder2.setOnClickListener { From cb938277b1c8fa7a89b3efbcdc576072caaba77a Mon Sep 17 00:00:00 2001 From: Naveen Date: Thu, 14 Dec 2023 16:24:45 +0530 Subject: [PATCH 7/8] Remove old release notes --- .../gallery/activities/MainActivity.kt | 10 ------ app/src/main/res/values/donottranslate.xml | 35 ------------------- 2 files changed, 45 deletions(-) diff --git a/app/src/main/kotlin/org/fossify/gallery/activities/MainActivity.kt b/app/src/main/kotlin/org/fossify/gallery/activities/MainActivity.kt index 6ef1e8484..834453471 100644 --- a/app/src/main/kotlin/org/fossify/gallery/activities/MainActivity.kt +++ b/app/src/main/kotlin/org/fossify/gallery/activities/MainActivity.kt @@ -1490,16 +1490,6 @@ class MainActivity : SimpleActivity(), DirectoryOperationsListener { private fun checkWhatsNewDialog() { arrayListOf().apply { - add(Release(213, R.string.release_213)) - add(Release(217, R.string.release_217)) - add(Release(220, R.string.release_220)) - add(Release(221, R.string.release_221)) - add(Release(225, R.string.release_225)) - add(Release(258, R.string.release_258)) - add(Release(277, R.string.release_277)) - add(Release(295, R.string.release_295)) - add(Release(327, R.string.release_327)) - add(Release(369, R.string.release_369)) checkWhatsNew(this, BuildConfig.VERSION_CODE) } } diff --git a/app/src/main/res/values/donottranslate.xml b/app/src/main/res/values/donottranslate.xml index bd6ae6f42..4c8cb78b8 100644 --- a/app/src/main/res/values/donottranslate.xml +++ b/app/src/main/res/values/donottranslate.xml @@ -5,39 +5,4 @@ SVG org.fossify.gallery - - Allow temporarily showing excluded folders on Android 11+ - - Adding some folder thumbnail customization at the app settings\n - Allow setting a default folder to be opened at app launch - - Allow fast forwarding videos by double clicking on screen sides - Fully replaced the photo editor with a powerful third party library (for resizing images use Menu -> Resize from the fullscreen view, until it gets added in the editor) - - Allow customizing the bottom navigation bar color\n - Share files in the order they were selected - - - Implemented export/importing for app settings and other preferences, like sorting\n - Allow hiding Notch on fullscreen view on Android 9+\n - Autosave images zoomed at the fullscreen view - - - Allow drawing in the editor\n - Allow batch rotating images from the thumbnails view (proper thumbnail refreshing might need an app restart)\n - Allow sharing images directly from the editor\n - Allow zooming GIFs and videos - - Reverted to the old way of opening videos, opening on separate screen can be enabled in the app settings - - Rewrote video playback, use a separate screen + added fast-forwarding with horizontal swiping\n - Added optional 1:1 pixel ratio zooming with two double taps at fullscreen view\n - Allow adding Copy at the fullscreen bottom actions\n - Always include images at slideshows, never videos - - - Added an initial widget implementation for creating homescreen folder shortcuts\n - Added optional grouping of direct subfolders, as a check at the \"Change view type\" dialog - - From 6a76d288aa4f02b8da8b0c8cdc1ae695f081893a Mon Sep 17 00:00:00 2001 From: Naveen Date: Thu, 14 Dec 2023 16:40:46 +0530 Subject: [PATCH 8/8] Update main launcher icon --- .../res/drawable/black_rounded_background.xml | 13 +++---------- app/src/main/res/drawable/circle_background.xml | 9 ++------- .../res/drawable/circle_black_background.xml | 9 ++------- .../drawable/extended_details_background.xml | 10 +++------- .../main/res/drawable/gradient_background.xml | 5 +---- .../drawable/gradient_background_flipped.xml | 5 +---- .../res/drawable/ic_launcher_background.xml | 3 +++ .../res/drawable/ic_launcher_foreground.xml | 3 +++ .../res/drawable/ic_launcher_monochrome.xml | 4 ++-- app/src/main/res/drawable/shortcut_image.xml | 3 +-- .../main/res/mipmap-anydpi-v26/ic_launcher.xml | 4 ++-- .../res/mipmap-anydpi-v26/ic_launcher_round.xml | 5 +++++ app/src/main/res/mipmap-hdpi/ic_launcher.png | Bin 2566 -> 0 bytes app/src/main/res/mipmap-hdpi/ic_launcher.webp | Bin 0 -> 820 bytes .../main/res/mipmap-hdpi/ic_launcher_round.webp | Bin 0 -> 2346 bytes app/src/main/res/mipmap-mdpi/ic_launcher.webp | Bin 0 -> 630 bytes .../main/res/mipmap-mdpi/ic_launcher_round.webp | Bin 0 -> 1532 bytes app/src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 3211 -> 0 bytes app/src/main/res/mipmap-xhdpi/ic_launcher.webp | Bin 0 -> 1086 bytes .../res/mipmap-xhdpi/ic_launcher_round.webp | Bin 0 -> 3346 bytes app/src/main/res/mipmap-xxhdpi/ic_launcher.png | Bin 6496 -> 0 bytes app/src/main/res/mipmap-xxhdpi/ic_launcher.webp | Bin 0 -> 1780 bytes .../res/mipmap-xxhdpi/ic_launcher_round.webp | Bin 0 -> 5236 bytes app/src/main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 8751 -> 0 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.webp | Bin 0 -> 2408 bytes .../res/mipmap-xxxhdpi/ic_launcher_round.webp | Bin 0 -> 7306 bytes .../main/res/values/ic_launcher_background.xml | 4 ++++ graphics/app_icon.png | Bin 6149 -> 0 bytes graphics/background.svg | 4 ++++ graphics/foreground.svg | 6 ++++++ graphics/icon.png | Bin 19009 -> 0 bytes graphics/icon.svg | 2 +- graphics/square.png | Bin 13829 -> 0 bytes graphics/square.xcf | Bin 25585 -> 0 bytes 34 files changed, 43 insertions(+), 46 deletions(-) create mode 100644 app/src/main/res/drawable/ic_launcher_background.xml create mode 100644 app/src/main/res/drawable/ic_launcher_foreground.xml create mode 100644 app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml delete mode 100644 app/src/main/res/mipmap-hdpi/ic_launcher.png create mode 100644 app/src/main/res/mipmap-hdpi/ic_launcher.webp create mode 100644 app/src/main/res/mipmap-hdpi/ic_launcher_round.webp create mode 100644 app/src/main/res/mipmap-mdpi/ic_launcher.webp create mode 100644 app/src/main/res/mipmap-mdpi/ic_launcher_round.webp delete mode 100644 app/src/main/res/mipmap-xhdpi/ic_launcher.png create mode 100644 app/src/main/res/mipmap-xhdpi/ic_launcher.webp create mode 100644 app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp delete mode 100644 app/src/main/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 app/src/main/res/mipmap-xxhdpi/ic_launcher.webp create mode 100644 app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp delete mode 100644 app/src/main/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp create mode 100644 app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp create mode 100644 app/src/main/res/values/ic_launcher_background.xml delete mode 100644 graphics/app_icon.png create mode 100644 graphics/background.svg create mode 100644 graphics/foreground.svg delete mode 100644 graphics/icon.png delete mode 100644 graphics/square.png delete mode 100644 graphics/square.xcf diff --git a/app/src/main/res/drawable/black_rounded_background.xml b/app/src/main/res/drawable/black_rounded_background.xml index edf046060..a87020c65 100644 --- a/app/src/main/res/drawable/black_rounded_background.xml +++ b/app/src/main/res/drawable/black_rounded_background.xml @@ -1,12 +1,5 @@ - - - - - - + + + diff --git a/app/src/main/res/drawable/circle_background.xml b/app/src/main/res/drawable/circle_background.xml index 58f030da7..3d6307508 100644 --- a/app/src/main/res/drawable/circle_background.xml +++ b/app/src/main/res/drawable/circle_background.xml @@ -1,9 +1,4 @@ - - - - + + diff --git a/app/src/main/res/drawable/circle_black_background.xml b/app/src/main/res/drawable/circle_black_background.xml index 2afe7d524..566067354 100644 --- a/app/src/main/res/drawable/circle_black_background.xml +++ b/app/src/main/res/drawable/circle_black_background.xml @@ -1,9 +1,4 @@ - - - - + + diff --git a/app/src/main/res/drawable/extended_details_background.xml b/app/src/main/res/drawable/extended_details_background.xml index a2a09c0c3..8698f8ce9 100644 --- a/app/src/main/res/drawable/extended_details_background.xml +++ b/app/src/main/res/drawable/extended_details_background.xml @@ -1,9 +1,5 @@ - - - - - - + + + diff --git a/app/src/main/res/drawable/gradient_background.xml b/app/src/main/res/drawable/gradient_background.xml index 68f8cc819..d1dce9c0b 100644 --- a/app/src/main/res/drawable/gradient_background.xml +++ b/app/src/main/res/drawable/gradient_background.xml @@ -1,7 +1,4 @@ - + diff --git a/app/src/main/res/drawable/gradient_background_flipped.xml b/app/src/main/res/drawable/gradient_background_flipped.xml index e84812125..9b725d80c 100644 --- a/app/src/main/res/drawable/gradient_background_flipped.xml +++ b/app/src/main/res/drawable/gradient_background_flipped.xml @@ -1,7 +1,4 @@ - + diff --git a/app/src/main/res/drawable/ic_launcher_background.xml b/app/src/main/res/drawable/ic_launcher_background.xml new file mode 100644 index 000000000..2d276dc7f --- /dev/null +++ b/app/src/main/res/drawable/ic_launcher_background.xml @@ -0,0 +1,3 @@ + + + diff --git a/app/src/main/res/drawable/ic_launcher_foreground.xml b/app/src/main/res/drawable/ic_launcher_foreground.xml new file mode 100644 index 000000000..ed59c5a91 --- /dev/null +++ b/app/src/main/res/drawable/ic_launcher_foreground.xml @@ -0,0 +1,3 @@ + + + diff --git a/app/src/main/res/drawable/ic_launcher_monochrome.xml b/app/src/main/res/drawable/ic_launcher_monochrome.xml index 83922c9d1..812e0aef4 100644 --- a/app/src/main/res/drawable/ic_launcher_monochrome.xml +++ b/app/src/main/res/drawable/ic_launcher_monochrome.xml @@ -1,3 +1,3 @@ - - + + diff --git a/app/src/main/res/drawable/shortcut_image.xml b/app/src/main/res/drawable/shortcut_image.xml index 20dde1a45..fe6264ab8 100644 --- a/app/src/main/res/drawable/shortcut_image.xml +++ b/app/src/main/res/drawable/shortcut_image.xml @@ -2,6 +2,5 @@ - + android:drawable="@mipmap/ic_launcher" /> diff --git a/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml index 07f9120c8..8fde45638 100644 --- a/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml +++ b/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml @@ -1,6 +1,6 @@ - - + + diff --git a/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml new file mode 100644 index 000000000..d378acd7a --- /dev/null +++ b/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher.png b/app/src/main/res/mipmap-hdpi/ic_launcher.png deleted file mode 100644 index 88e7928d99aaeece1f763f94e9ebc8678a68a598..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2566 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp b/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp new file mode 100644 index 0000000000000000000000000000000000000000..057d38e2d9dd76e6d235faacbec6869dd9d48801 GIT binary patch literal 2346 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 Q0)V5r`GdFrtx~Wj02yYQCjbBd literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher.webp b/app/src/main/res/mipmap-mdpi/ic_launcher.webp new file mode 100644 index 0000000000000000000000000000000000000000..5a9d9efcfd3d2e79e774a1929d1037de83d7fb10 GIT binary patch literal 630 zcmV-+0*U=nNk&F)0ssJ4MM6+kP&iCs0ssInFTe{BALJ;KWLc^IKRYPkj(;_%_(yi; zO_vQvZW}q0W@hv5|DTxmlvBCnIFckssk;}_0Q`3ZgSZzOrn?+RvaKrp?BgB;p^y

ZZ7~p03uL;07M`Gvrg710ZIWfrBd0UNR4zMQbUER-_Q4UmqaR5AX|1N@wjYM z|JREu3A_3~Ue`@mfKpMPk0k2zg%Z#L)%WLdzDY(`*wGn?{{4yiH^%p;|9>KcU8*Dy zAcdAGl@>y!LQMd90|y3*5P^>vg$PV0Fu{MwMF`+qDB>TeQ)j+qsm^!Zt%h`0fmoP6 z&Zsm;k~U;qmtpzGcmp#{7%PV{T*hz{$hZN}(n2ki2@$!isymnUR(V zJSs1rv3s@Cc|k69%m{Mv&o)@sCRl|lvt6WMqsvZ30|NEB?L<^QDMY`=D~;ybl}Sw^ z4CTkw28Xj%$lWbKnVr%)q)w*_<&A+gB-)9x`lJ?@ilY>&E8R{+&XRz?ScMXrVa9Xp zs_|7)jT)u)K=>-{nkfYt8dNv|Fp{jL-vi)pt^UkAtoU4WLYEBL< zfrsRc4;E1%Hytd>0xleyIa4#f9j&jd#Xu<*J$^T8AUE4yADGyvlL7bhlFy`@{3tyrsLbFIwdi(lUS%YVDh z17OO`3gGBz9uw7DmJ{`=3?v59Uc9Y+&QGTUMK)f;CvVA#jnXnF1||AGrDNuU#-oP| z!Dpa>(-X&}IkGH?`V~$sL73y_Xb+&3G@wjLqW@T8^~V`*7v2|}5+J3Z0o8O`4vsT* zfjMrvai5YZfuxzRBAmGhNA;wKPT_&1>9Qi6qX^fV9uMElATh;OgmV>T{$mYQT?W&n zfXdNf9}DL!Hmd)&u3bWt+(GV2kl|635k|d2DU`nY5mXvmY!`EH&-oWXw(a(;!3j~ z5D4gNER_KN;&v~ynH8$>^`h6o1(vr2k$y<0-i|Pr&jEdjkQIlghokj|hvVHoES1Pr ztHGyyQYA39H@iK&!((>b`C!@i%-Coh}5 z-fIiaFV|wDPG(C=J7iuB0RnPW?WM3_af{V5gxbFzg3lKV0$ko7L6Jzr8@rDPXfS_n zP7O6P!jV;O2;!^fOB+gt&rW9%CUaRgogrE^Yn*^+Dx8UaRaOBz*C47?Ts@x>syRB4 zXGWT!x5L%=y)d+O=aMo?C!B|F5NLl!2e7mt?m#APMJB`wV|C&JJ{}tGo}fIomoIY zdfOr3F4@*ziN07F6xyw|!`r+y`dYHBgMizyXtg9DT|4f4#jedd>na1vpdc=dlkm3f zZX5IZ6@TrM8m;@KoJa&Z1hU0x4I8pmUA9)4e`$KaTJAo-D1VIv@)sZW$h7DX8297O zdj9oSv1;e`mex~uKih`9KdNDC>uJx+zkb^(khL!es02m?l3_2;{`2Rz`ji>dYjz*4 zPpLOoms?VIKYy|@rT*!Xe-08z|No$P3OSbMGXmEC1l&9Nac4XD@zHbWdKtLy8zH-S2pFLbykCp*!Kl&^H literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/app/src/main/res/mipmap-xhdpi/ic_launcher.png deleted file mode 100644 index f645b6dae9956cdbfd0c5c64c57d3b85a0880031..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3211 zcmV;640Q8}P)O@3xya{A^}7N z6-tyu!AG>r2U8g1qgZqTtO^p)7#}gI6p~bFG?;`cc_g9AU=a07G!;>{j7l_-2&EwG z&hAc6pM03Xz)sIh_e}T9?y|osimL6~_uM`Iz3+2xLmz$g(MKOgD^l+QltWV(>?giI zPD8?CsH2>$a4gVhLVtiP90c|V?6ZV-(+;}_cF@j1IwXZ#-`}7#-A({ak?e37;ld0T z&NN`ODkmZ|2Fr*&BE089ivfQ#U_;#ELrKvVQPC@+TL^G4#ZV)|B!%e+6M=CNnR*Ll zyTB$l#soeH4P@)>eW=$TmS`0H!)jb zF)#+OYh8vebOP@PEKMw9oq*QTcufUpTf|(2dlAOg(ynim9Rf>|&HScTCTk)<+hQiD zvJ99~3wt5(XAzo`OL;A7Ly-!gcXM3Y;vR+XQ~#zWD4hb2Bpe=)2l*^2BasP^Uc?0| zJf(0-R5ogXz)n$aPBgPMiu{eRGgL(mHgT5<8+*F*0TfPAVdKFj?oti^4>r^cbs>qi zemntO7k1v=00q`2Te($MlMXA>(43?x2B#g?D@+V4&+dr8_JqYuNwGJi{HiCth>5l>nco7;I$NCP$g`51~qn z8)MRdDw?B;M?t!fgz2#UXmvh-2%}Ah^}3KmrFoc@yp&2|jJNnXaA~E6dl4ftHpA`7 ztbggH;Oj^g)qp!P+(~Yz*+-7+@;(Vn;65Nf!`-Nmti)h%MW9WTi-XRX0|}5{+u44! z3^#)!uruK>G056cpe877aSt55ovsf?=Y8ZG-!&k=q`Z}$x2l=rQ1=-90!gO`7x-Pu zw*2OrU(fGZ&d&n<24M^ti}Y(mvmNNCyU;yv=N?8QhMo7-xBMjbRfM)h%vIsps)|)> z%p|c3n=sE>fFuVaW(-u(Oe^l5opf$ki0*nhvKk@E)qZx?%9>Y@wnhA-+ioLz(Qq6M z^EY7(A73-e_AGT+iL@sosN1$1-#@`a?9joya7LRU3ZN;5<|Ed64t75$(aS|3!qB`gJtvsy`rvz^U;x$ z*04n=KG(=Y}!qE3eFp0{xi>_&XA1OFe(0K1}H zbP#wgv6P7-N3IPO2=L)T636%B17JvHrn(oZ(4H;X8U>;X5kC2}m9LKI64qGI1PzbV zKreAVfCx00;VouW(HsrQ`}PP51n9K7$>hth!3t;JUj!Pg-2Y)vsR&-aEf7HAq{@mF zA`13pj}e=*7OeiEWGMo16O1~F;N{zbuE5-1Nc{TExtdVI!PbTMVvM`0?jm^k zwm^W7I%o$z38x4paKSutKIWLqs>;S1elGF(o6zKtLI=BGedBIoQ+`Bz&eIsDUyGKx zl;)5KVb7QaKFRy`2nrYDR?#l-emLffBgcLPd)oboQQ`XTVOS%^6Tfyn+V8NX78k7Z zZo{6k3;`t8K>YG2G0(oyS52_PuLEnW8lpxCB7yb+RJPt4P=#u|5J z==oYFoJGTpTQJU;k3H*Wxrpd4h-nj_^#tbl@A>N!tZ+ndU2mUy3gEzo5NvvL%n0m@ zS4Eb+Ib1{54JzFEVMiv(hh7i7H|0~bp=__%oEI)w=iZ8WlCOg!H9-s$ zd+PmI7u-X+n`jO#WmnQMtFryeMXt*%D!ss_;HHWrgGUpavLw8rMM#KYVozCub>V&f z=LrFAm`NX≦UVUD${i#3$c}Idw(Z(NP6!N4wp2UMcpl zcnwJ9?$z{drWgv=IX7UA?*5^s@e6*4HGL&oCT1nbWKETgjSus2vFD{vZy2nR+`XC= zBZE#RHf3owS=1DJ((PE&SAvuda~B_df1&AUC4zuvvMjsmc}nh+MRQD5L57T@;nvrYSkJ!Gqw~#Y$h>ep;&zlw=MjOoWAO42 zj;RW$z!JX&2Ea_@mI8XX^8xJBuOT+)S7oCzJZgfkmc#d8s;icZE3;!w9<9WS`e}yy-w`FuCl{VRp@ZoGHAI!Uqy3S zheFncj<65B)e!|ufq3~jK%mPye21kZm-3pxBfdIh0n^MCHn$kx^Z$wDb~f9c;!$<^ z=K7H!mwpF|3raXV0JQi`ZyLF=a&JN@DMCx$N4^OpfIP@&qTDR_{|-xU6``Yx2$H+9 z?B<|1tp|>bOEk09RhAN9ZqOS=$Z~`T>MBbsxnaGc(8QH7Rsd^*ywlr65b}LOZtTA{ z?~{u1sfhed>01bRS$D4+9VxFiW|&;*jp`K#=gMl*S&Nyf{ySypbv2s?8{r^8txwb|oy% z7lQ30_e2p?d39eK=ZE2Z2=Rc1q}ZEi~hdsn!qR2e5Gh&Hmwk8}V z3Ot0*edTV}9CZRK+dG*UmGdFO8gMv4KV?|=nxJgSLetO{yc)Hsnnp#Dv*_p|*Z0Jg!uP6YaI{Wp(?+2YD6k)e28xhttCiv@7 z^Fe1X%6-y2L=kqNyy9fpY-QP2Dq^ixbPE9vM^hv_97eb>!-X>q7_G{QS*6jp2ns6f z5#@bgrz^aXb=bf${Hs`$a=qww0(3=F80;s$KTbn7!?1Q?lqC$rV6c(Dd%=Z+xa?J7 xpJsX2aoG)|hp(nXLY_GF(MKPB^wCFH{0~Q#I$}k|2mt^9002ovPDHLkV1mB2?x_F( diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher.webp b/app/src/main/res/mipmap-xhdpi/ic_launcher.webp new file mode 100644 index 0000000000000000000000000000000000000000..9ced940dc2f8a15db4e25a216c299d2880484d08 GIT binary patch literal 1086 zcmV-E1i|}KNk&FC1ONb6MM6+kP&iB~1ONapU%(d-pXWA`WLKHlyZ-?X8xxoOgCHEO zH3R{%Z6iq%Rnt9l|K*?LMR1Fj8%efoMOo**g&hy@-!L@PQRiK_wQZ|b=9T|HE){46 zq5lYsA)LLqv`neIk zPg#dtOTXO&h2o^vsrI3tTi>UwgOge(!m!~)q4a$rhUZ4HPz1%&&&3&iUo8JciZd+E z5QMWB2!R*~p%A~;{P{S7viN_$Xa#?NQ?g{N$maKF_tiYz&))Xh%eS-Z?X|C7bv9~| z`iuTy#f0M%PM>z&pZ`mbvsdjnnP2Ds!mqEV@`P;S`cC#DX zPHiJ~eLNt#Ojvk)VBL41hYLeKb7C?M)ZFIxL>SQN(!oehEifw zlqAtUGxq7@{fC6h(kG6ANJ{qL&Feu!2FpZCGJE|7IHf3`*`rqq8PQN?kGanxDA|*j zilBgg6oer8S!Yfu##@D-527NIJ>H3+Vqab;{1GMn(bGGegrj611|n}-Foo+^PKm{L z>Q57wc08U&2dcQW(ZJJePZj6Zntyc|Iw75InJ21GPNP}OK>=WYEXB4908qVyUh|4; zK;e8^O}rx1esKz&5)KG;AC93>be2%x%~A9To?BY4iiIJxh+42~MP!Z1c|!ejGbj50mSacDO^l};4MP!dlM0W zd<+8$rjob1w2rEE2mq#+V8D@N(lXBqbzhy00AOV~Mr9UZ>Boioo*IJy!gp5J53VmI zDtK#Ey&yXY0SwQ@fPzUREiV)5U%Ea70c7LA(KvF(UlMSy%|VcO1`9TZlai7n;GbVJ zV_zj+)skQ`BC-Uv%^yw1s2l17+sGJkL5(($5xVSLxtf;kNhbq>M~+j|vGIrya{q?m zCQ3)DIJXt!>j0YcZH1?j8$4I|)52fw?tsVc8NT=Q^`e89wHYtV;`{+dLlAvNLY<&8b(P-axbrJ)OQcG`7{^MC5fGjm>X1 zZQhJ<32w>8jyk*;Ohebk!o<{!cm@`-t_CMAudQcqZDmO~lk8<}o)ewd)Y2v%WS;xA E6x&-0Jpcdz literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp b/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp new file mode 100644 index 0000000000000000000000000000000000000000..fd0c5cb9687cb60a5e5eaf354f6c4ffc1f731412 GIT binary patch literal 3346 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/app/src/main/res/mipmap-xxhdpi/ic_launcher.png deleted file mode 100644 index 3151de09344cbd42beb065632255ffab1b481633..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6496 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 WnVBrfeE)tjg7@z;lZ6>UT3;!wqi22q literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp b/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp new file mode 100644 index 0000000000000000000000000000000000000000..5d1983875808d36f64ab0075829d311a3b92f11c GIT binary patch literal 5236 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png deleted file mode 100644 index 516d12f565c8ae704091a071a3fbee1132f5c984..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8751 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 Z{{hQcfqImdY=r;-002ovPDHLkV1glQWKIA8 diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp b/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp new file mode 100644 index 0000000000000000000000000000000000000000..4ed3e7a5cf4d66edc0996b68d118f09272f61c4a GIT binary patch literal 2408 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/values/ic_launcher_background.xml b/app/src/main/res/values/ic_launcher_background.xml new file mode 100644 index 000000000..f42ada656 --- /dev/null +++ b/app/src/main/res/values/ic_launcher_background.xml @@ -0,0 +1,4 @@ + + + #FFFFFF + diff --git a/graphics/app_icon.png b/graphics/app_icon.png deleted file mode 100644 index 84db529063c78a9a71ad876ee7e4a528b445917f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6149 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 F{{d(+*mVE^ diff --git a/graphics/background.svg b/graphics/background.svg new file mode 100644 index 000000000..3bbeebd87 --- /dev/null +++ b/graphics/background.svg @@ -0,0 +1,4 @@ + + + diff --git a/graphics/foreground.svg b/graphics/foreground.svg new file mode 100644 index 000000000..073ab6bb4 --- /dev/null +++ b/graphics/foreground.svg @@ -0,0 +1,6 @@ + + + diff --git a/graphics/icon.png b/graphics/icon.png deleted file mode 100644 index b2ea97d57de8ad5e3ecdd1bea78d2abd1cecad87..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19009 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 \ No newline at end of file + diff --git a/graphics/square.png b/graphics/square.png deleted file mode 100644 index 353caac8791218835706bb6c7ca5ad8c5af8df92..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13829 zcmd_Qc{tSX+c*9;grsCElI&y%jUr2^?7K0xtYvAjh3t$;AIXwzLyE}0uZ2NK5rb4@ z$uek0*^)uFVV-Mz?)&-kKEA)-^WXD0jB(6d@AJCO^E#K;xx|l|e{#R5UlQ9WHv zBm}|0zc7fI5xlJj4edaXAf%^x1r_vtc``Wl^vDguF2TMuB!j!o$&yu0o~O@AfK>q| z3V8`%iHvL1O}!l}u4Tqikf-Z&TR(g4yo`a}LjOXRf0AYhP z*Lj!T&41DIjnZDPJ_7_H zI}zaTad0#YctPNQa60fq2VTtJr2$?C4E%>n{=;P$8rlDOv;W&Eu>ukQ&l30#g!I3c z{D+jDIldHv61}t$g*(|_GpK0o@OzaU=c>-6^nj}^xe_eh+qObX6=-rkda_E z_VQvaf3NHJwC)R=x<-@8dV7UI;iz+n8~f$^jiP$_#nM<~Ntu_au@WvtY*I@88p^As z$<6~(YLwL3y{G!}It8M$7ioIC=9{*1HKUUI+u=6%D34A3jNjPW<=*_T^!Urv@PRI# zp6KM2#NNP`%dD{yT-iYuf4l2q*;FgHy5+wny^VdUCSfFyoct`E>CI*gFp{OabfyD3 z=dIqN3H6%weue>KGGninYqOjYWA(vQpJY+9uyv)*DvIf9FTskkBl2}MJvB27yGJhw zK~9#Rw%&_p6n56WT_jnet-VOm1=ZV;pVn_(WYiywW!uvvNl?{0P4-{iC;OKKMINUe z|7X7|QM@vp5cG7Z)<7(~L}qX#Cm)FnBl}|ow){JvqP3Jani>m^gB#C0vgpdxfcK`P zE`1Kj7^ai#9$6yFW{pW4w@U3hZN9!E5_@J>R{t;hT2IeN(B&GZQ3mE5V`HmK!*LGW z8-WzQ@pH{V*i?JbA9ty8Zt+QWf`cvAZns|;8dS};N@}TZUlWtv=YGL(1%ld}@vrfJ zjqw#tdS0Dx5d3+F;cvG-x;!U^40q3|6r`cGmU~lGH{L8vL0QjNb6mwbzgQeKVa;tuWy8|dP~8oDLur@q&FFOyOj>Uy2=Q~)``mbp=5tbemK z)ze}-nwq};{b_2XBOgtu8O*j!q+zrndhM3W^H4soF=}{}5sSE≻dQzD=f?DkKc~ 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 TV0)lF2JVM{5P$fug#LdAcpnH`