diff --git a/app/src/main/java/fr/free/nrw/commons/bookmarks/locations/BookmarkLocationsFragment.java b/app/src/main/java/fr/free/nrw/commons/bookmarks/locations/BookmarkLocationsFragment.java index c0620348f..adfa5d35d 100644 --- a/app/src/main/java/fr/free/nrw/commons/bookmarks/locations/BookmarkLocationsFragment.java +++ b/app/src/main/java/fr/free/nrw/commons/bookmarks/locations/BookmarkLocationsFragment.java @@ -35,14 +35,16 @@ public class BookmarkLocationsFragment extends DaggerFragment { @Inject CommonPlaceClickActions commonPlaceClickActions; private PlaceAdapter adapter; - private ActivityResultLauncher cameraPickLauncherForResult = registerForActivityResult(new StartActivityForResult(), + private final ActivityResultLauncher cameraPickLauncherForResult = + registerForActivityResult(new StartActivityForResult(), result -> { contributionController.handleActivityResultWithCallback(requireActivity(),callbacks -> { contributionController.onPictureReturnedFromCamera(result,requireActivity(),callbacks); }); }); - private ActivityResultLauncher galleryPickLauncherForResult = registerForActivityResult(new StartActivityForResult(), + private final ActivityResultLauncher galleryPickLauncherForResult = + registerForActivityResult(new StartActivityForResult(), result -> { contributionController.handleActivityResultWithCallback(requireActivity(),callbacks -> { contributionController.onPictureReturnedFromGallery(result,requireActivity(),callbacks); diff --git a/app/src/main/java/fr/free/nrw/commons/contributions/ContributionController.java b/app/src/main/java/fr/free/nrw/commons/contributions/ContributionController.java index 82503b9cb..56356b3ce 100644 --- a/app/src/main/java/fr/free/nrw/commons/contributions/ContributionController.java +++ b/app/src/main/java/fr/free/nrw/commons/contributions/ContributionController.java @@ -266,6 +266,7 @@ public class ContributionController { } public void onPictureReturnedFromGallery(ActivityResult result, Activity activity, FilePicker.Callbacks callbacks){ + if(isDocumentPhotoPickerPreferred()){ FilePicker.onPictureReturnedFromDocuments(result, activity, callbacks); } else { @@ -288,25 +289,25 @@ public class ContributionController { handleActivityResult.onHandleActivityResult(new DefaultCallback() { - @Override - public void onCanceled(final ImageSource source, final int type) { - super.onCanceled(source, type); - defaultKvStore.remove(PLACE_OBJECT); - } + @Override + public void onCanceled(final ImageSource source, final int type) { + super.onCanceled(source, type); + defaultKvStore.remove(PLACE_OBJECT); + } - @Override - public void onImagePickerError(Exception e, FilePicker.ImageSource source, - int type) { - ViewUtil.showShortToast(activity, R.string.error_occurred_in_picking_images); - } + @Override + public void onImagePickerError(Exception e, FilePicker.ImageSource source, + int type) { + ViewUtil.showShortToast(activity, R.string.error_occurred_in_picking_images); + } - @Override - public void onImagesPicked(@NonNull List imagesFiles, - FilePicker.ImageSource source, int type) { - Intent intent = handleImagesPicked(activity, imagesFiles); - activity.startActivity(intent); - } - }); + @Override + public void onImagesPicked(@NonNull List imagesFiles, + FilePicker.ImageSource source, int type) { + Intent intent = handleImagesPicked(activity, imagesFiles); + activity.startActivity(intent); + } + }); } public List handleExternalImagesPicked(Activity activity, diff --git a/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsListFragment.java b/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsListFragment.java index e8d862b52..998f46f17 100644 --- a/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsListFragment.java +++ b/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsListFragment.java @@ -98,21 +98,24 @@ public class ContributionsListFragment extends CommonsDaggerSupportFragment impl private int contributionsSize; private String userName; - private ActivityResultLauncher galleryPickLauncherForResult = registerForActivityResult(new StartActivityForResult(), + private final ActivityResultLauncher galleryPickLauncherForResult = + registerForActivityResult(new StartActivityForResult(), result -> { controller.handleActivityResultWithCallback(requireActivity(),callbacks -> { controller.onPictureReturnedFromGallery(result,requireActivity(),callbacks); }); }); - private ActivityResultLauncher customSelectorLauncherForResult = registerForActivityResult(new StartActivityForResult(), + private final ActivityResultLauncher customSelectorLauncherForResult = + registerForActivityResult(new StartActivityForResult(), result -> { controller.handleActivityResultWithCallback(requireActivity(),callbacks -> { controller.onPictureReturnedFromCustomSelector(result,requireActivity(),callbacks); }); }); - private ActivityResultLauncher cameraPickLauncherForResult = registerForActivityResult(new StartActivityForResult(), + private final ActivityResultLauncher cameraPickLauncherForResult = + registerForActivityResult(new StartActivityForResult(), result -> { controller.handleActivityResultWithCallback(requireActivity(),callbacks -> { controller.onPictureReturnedFromCamera(result,requireActivity(),callbacks); diff --git a/app/src/main/java/fr/free/nrw/commons/contributions/MainActivity.java b/app/src/main/java/fr/free/nrw/commons/contributions/MainActivity.java index 7754aa0a4..a9e9ee5c6 100644 --- a/app/src/main/java/fr/free/nrw/commons/contributions/MainActivity.java +++ b/app/src/main/java/fr/free/nrw/commons/contributions/MainActivity.java @@ -1,10 +1,13 @@ package fr.free.nrw.commons.contributions; +import android.Manifest.permission; import android.annotation.SuppressLint; import android.app.Activity; import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; +import android.os.Build.VERSION; +import android.os.Build.VERSION_CODES; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; @@ -13,8 +16,10 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.fragment.app.Fragment; import androidx.fragment.app.FragmentManager; +import androidx.viewpager.widget.ViewPager; import androidx.work.ExistingWorkPolicy; import fr.free.nrw.commons.databinding.MainBinding; +import fr.free.nrw.commons.CommonsApplication; import fr.free.nrw.commons.R; import fr.free.nrw.commons.WelcomeActivity; import fr.free.nrw.commons.auth.SessionManager; @@ -36,8 +41,10 @@ import fr.free.nrw.commons.notification.NotificationController; import fr.free.nrw.commons.quiz.QuizChecker; import fr.free.nrw.commons.settings.SettingsFragment; import fr.free.nrw.commons.theme.BaseActivity; +import fr.free.nrw.commons.upload.UploadActivity; import fr.free.nrw.commons.upload.UploadProgressActivity; import fr.free.nrw.commons.upload.worker.WorkRequestHelper; +import fr.free.nrw.commons.utils.PermissionUtils; import fr.free.nrw.commons.utils.ViewUtilWrapper; import io.reactivex.Completable; import io.reactivex.schedulers.Schedulers; diff --git a/app/src/main/java/fr/free/nrw/commons/customselector/ui/selector/CustomSelectorActivity.kt b/app/src/main/java/fr/free/nrw/commons/customselector/ui/selector/CustomSelectorActivity.kt index 85336afe3..44eaedb69 100644 --- a/app/src/main/java/fr/free/nrw/commons/customselector/ui/selector/CustomSelectorActivity.kt +++ b/app/src/main/java/fr/free/nrw/commons/customselector/ui/selector/CustomSelectorActivity.kt @@ -230,7 +230,7 @@ class CustomSelectorActivity : /** * When data will be send from full screen mode, it will be passed to fragment */ - fun onFullScreenDataReceived(result: ActivityResult){ + private fun onFullScreenDataReceived(result: ActivityResult){ if (result.resultCode == Activity.RESULT_OK) { val selectedImages: ArrayList = result.data!! diff --git a/app/src/main/java/fr/free/nrw/commons/description/DescriptionEditActivity.kt b/app/src/main/java/fr/free/nrw/commons/description/DescriptionEditActivity.kt index d0c00313d..cfd7f36b9 100644 --- a/app/src/main/java/fr/free/nrw/commons/description/DescriptionEditActivity.kt +++ b/app/src/main/java/fr/free/nrw/commons/description/DescriptionEditActivity.kt @@ -72,11 +72,9 @@ class DescriptionEditActivity : private lateinit var binding: ActivityDescriptionEditBinding - private val requestCodeForVoiceInput = 1213 - private var descriptionAndCaptions: ArrayList? = null - private val voiceInputResultLauncher = registerForActivityResult( + private val voiceInputResultLauncher = registerForActivityResult( ActivityResultContracts.StartActivityForResult() ) { result: ActivityResult -> onVoiceInput(result) @@ -310,22 +308,6 @@ class DescriptionEditActivity : progressDialog!!.show() } -// override fun onActivityResult( -// requestCode: Int, -// resultCode: Int, -// data: Intent?, -// ) { -// super.onActivityResult(requestCode, resultCode, data) -// if (requestCode == requestCodeForVoiceInput) { -// if (resultCode == RESULT_OK && data != null) { -// val result = data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS) -// uploadMediaDetailAdapter.handleSpeechResult(result!![0]) -// } else { -// Timber.e("Error %s", resultCode) -// } -// } -// } - override fun onSaveInstanceState(outState: Bundle) { super.onSaveInstanceState(outState) diff --git a/app/src/main/java/fr/free/nrw/commons/filepicker/Constants.java b/app/src/main/java/fr/free/nrw/commons/filepicker/Constants.java index cb750d0fc..75e3336b9 100644 --- a/app/src/main/java/fr/free/nrw/commons/filepicker/Constants.java +++ b/app/src/main/java/fr/free/nrw/commons/filepicker/Constants.java @@ -9,8 +9,6 @@ public interface Constants { interface RequestCodes { int LOCATION = 1; int STORAGE = 2; - - int RECEIVE_DATA_FROM_FULL_SCREEN_MODE = 1 << 9; } /** diff --git a/app/src/main/java/fr/free/nrw/commons/media/MediaDetailFragment.java b/app/src/main/java/fr/free/nrw/commons/media/MediaDetailFragment.java index b73242e9a..dd0829a1b 100644 --- a/app/src/main/java/fr/free/nrw/commons/media/MediaDetailFragment.java +++ b/app/src/main/java/fr/free/nrw/commons/media/MediaDetailFragment.java @@ -1,13 +1,10 @@ package fr.free.nrw.commons.media; -import static android.app.Activity.RESULT_CANCELED; -import static android.app.Activity.RESULT_OK; import static android.view.View.GONE; import static android.view.View.VISIBLE; import static fr.free.nrw.commons.category.CategoryClientKt.CATEGORY_NEEDING_CATEGORIES; import static fr.free.nrw.commons.category.CategoryClientKt.CATEGORY_UNCATEGORISED; import static fr.free.nrw.commons.description.EditDescriptionConstants.LIST_OF_DESCRIPTION_AND_CAPTION; -import static fr.free.nrw.commons.description.EditDescriptionConstants.UPDATED_WIKITEXT; import static fr.free.nrw.commons.description.EditDescriptionConstants.WIKITEXT; import static fr.free.nrw.commons.upload.mediaDetails.UploadMediaDetailFragment.LAST_LOCATION; import static fr.free.nrw.commons.utils.LangCodeUtils.getLocalizedResources; @@ -112,7 +109,6 @@ import timber.log.Timber; public class MediaDetailFragment extends CommonsDaggerSupportFragment implements CategoryEditHelper.Callback { - private static final int REQUEST_CODE = 1001; private static final String IMAGE_BACKGROUND_COLOR = "image_background_color"; static final int DEFAULT_IMAGE_BACKGROUND_COLOR = 0; diff --git a/app/src/main/java/fr/free/nrw/commons/nearby/fragments/NearbyParentFragment.java b/app/src/main/java/fr/free/nrw/commons/nearby/fragments/NearbyParentFragment.java index e29b2be09..201a868ce 100644 --- a/app/src/main/java/fr/free/nrw/commons/nearby/fragments/NearbyParentFragment.java +++ b/app/src/main/java/fr/free/nrw/commons/nearby/fragments/NearbyParentFragment.java @@ -227,21 +227,24 @@ public class NearbyParentFragment extends CommonsDaggerSupportFragment private List dataList; private BottomSheetAdapter bottomSheetAdapter; - private ActivityResultLauncher galleryPickLauncherForResult = registerForActivityResult(new StartActivityForResult(), + private final ActivityResultLauncher galleryPickLauncherForResult = + registerForActivityResult(new StartActivityForResult(), result -> { controller.handleActivityResultWithCallback(requireActivity(),callbacks -> { controller.onPictureReturnedFromGallery(result,requireActivity(),callbacks); }); }); - private ActivityResultLauncher customSelectorLauncherForResult = registerForActivityResult(new StartActivityForResult(), + private final ActivityResultLauncher customSelectorLauncherForResult = + registerForActivityResult(new StartActivityForResult(), result -> { controller.handleActivityResultWithCallback(requireActivity(),callbacks -> { controller.onPictureReturnedFromCustomSelector(result,requireActivity(),callbacks); }); }); - private ActivityResultLauncher cameraPickLauncherForResult = registerForActivityResult(new StartActivityForResult(), + private final ActivityResultLauncher cameraPickLauncherForResult = + registerForActivityResult(new StartActivityForResult(), result -> { controller.handleActivityResultWithCallback(requireActivity(),callbacks -> { controller.onPictureReturnedFromCamera(result,requireActivity(),callbacks); diff --git a/app/src/main/java/fr/free/nrw/commons/settings/SettingsFragment.java b/app/src/main/java/fr/free/nrw/commons/settings/SettingsFragment.java index b352740a6..6c9e4c547 100644 --- a/app/src/main/java/fr/free/nrw/commons/settings/SettingsFragment.java +++ b/app/src/main/java/fr/free/nrw/commons/settings/SettingsFragment.java @@ -87,7 +87,8 @@ public class SettingsFragment extends PreferenceFragmentCompat { private ListView languageHistoryListView; private static final String GET_CONTENT_PICKER_HELP_URL = "https://commons-app.github.io/docs.html#get-content"; - private ActivityResultLauncher cameraPickLauncherForResult = registerForActivityResult(new StartActivityForResult(), + private final ActivityResultLauncher cameraPickLauncherForResult = + registerForActivityResult(new StartActivityForResult(), result -> { contributionController.handleActivityResultWithCallback(requireActivity(),callbacks -> { contributionController.onPictureReturnedFromCamera(result,requireActivity(),callbacks); diff --git a/app/src/main/java/fr/free/nrw/commons/upload/UploadMediaDetailAdapter.java b/app/src/main/java/fr/free/nrw/commons/upload/UploadMediaDetailAdapter.java index 93b00382b..6fc8b3266 100644 --- a/app/src/main/java/fr/free/nrw/commons/upload/UploadMediaDetailAdapter.java +++ b/app/src/main/java/fr/free/nrw/commons/upload/UploadMediaDetailAdapter.java @@ -58,9 +58,8 @@ public class UploadMediaDetailAdapter extends private int currentPosition; private Fragment fragment; private Activity activity; - private ActivityResultLauncher voiceInputResultLauncher; + private final ActivityResultLauncher voiceInputResultLauncher; private SelectedVoiceIcon selectedVoiceIcon; - private static final int REQUEST_CODE_FOR_VOICE_INPUT = 1213; private RowItemDescriptionBinding binding; diff --git a/app/src/main/java/fr/free/nrw/commons/upload/mediaDetails/UploadMediaDetailFragment.java b/app/src/main/java/fr/free/nrw/commons/upload/mediaDetails/UploadMediaDetailFragment.java index 9045a1f8e..7542925e8 100644 --- a/app/src/main/java/fr/free/nrw/commons/upload/mediaDetails/UploadMediaDetailFragment.java +++ b/app/src/main/java/fr/free/nrw/commons/upload/mediaDetails/UploadMediaDetailFragment.java @@ -63,9 +63,6 @@ public class UploadMediaDetailFragment extends UploadBaseFragment implements private UploadMediaDetailAdapter uploadMediaDetailAdapter; -// private static final int REQUEST_CODE_FOR_EDIT_ACTIVITY = 1212; -// private static final int REQUEST_CODE_FOR_VOICE_INPUT = 1213; - private final ActivityResultLauncher startForResult = registerForActivityResult( new StartActivityForResult(), result -> { onCameraPosition(result); @@ -706,7 +703,6 @@ public class UploadMediaDetailFragment extends UploadBaseFragment implements } private void onEditActivityResult(ActivityResult result){ - //TODO[Parry] Doubtful how it works, understand it.... if (result.getResultCode() == RESULT_OK) { String path = result.getData().getStringExtra("editedImageFilePath"); @@ -727,28 +723,6 @@ public class UploadMediaDetailFragment extends UploadBaseFragment implements } } - /** - * Get the coordinates and update the existing coordinates. - * @param requestCode code of request - * @param resultCode code of result - * @param data intent - */ -// @Override -// public void onActivityResult(final int requestCode, final int resultCode, -// @Nullable final Intent data) { -// super.onActivityResult(requestCode, resultCode, data); -// -// if (requestCode == REQUEST_CODE_FOR_VOICE_INPUT) { -// if (resultCode == RESULT_OK && data != null) { -// ArrayList result = data.getStringArrayListExtra( -// RecognizerIntent.EXTRA_RESULTS); -// uploadMediaDetailAdapter.handleSpeechResult(result.get(0)); -// }else { -// Timber.e("Error %s", resultCode); -// } -// } -// } - /** * Removes the location data from the image, by setting them to null */ diff --git a/app/src/test/kotlin/fr/free/nrw/commons/customselector/ui/selector/CustomSelectorActivityTest.kt b/app/src/test/kotlin/fr/free/nrw/commons/customselector/ui/selector/CustomSelectorActivityTest.kt index e7696406e..5e92b19ff 100644 --- a/app/src/test/kotlin/fr/free/nrw/commons/customselector/ui/selector/CustomSelectorActivityTest.kt +++ b/app/src/test/kotlin/fr/free/nrw/commons/customselector/ui/selector/CustomSelectorActivityTest.kt @@ -100,7 +100,7 @@ class CustomSelectorActivityTest { } /** - * Test onActivityResult function. + * Test callback when result received. */ @Test @Throws(Exception::class) diff --git a/app/src/test/kotlin/fr/free/nrw/commons/upload/mediaDetails/UploadMediaDetailFragmentUnitTest.kt b/app/src/test/kotlin/fr/free/nrw/commons/upload/mediaDetails/UploadMediaDetailFragmentUnitTest.kt index a49c07920..cbb7d28f3 100644 --- a/app/src/test/kotlin/fr/free/nrw/commons/upload/mediaDetails/UploadMediaDetailFragmentUnitTest.kt +++ b/app/src/test/kotlin/fr/free/nrw/commons/upload/mediaDetails/UploadMediaDetailFragmentUnitTest.kt @@ -349,7 +349,7 @@ class UploadMediaDetailFragmentUnitTest { @Test @Throws(Exception::class) - fun testOnActivityResultOnMapIconClicked() { + fun testOnCameraPositionCallbackOnMapIconClicked() { shadowOf(Looper.getMainLooper()).idle() Mockito.mock(LocationPicker::class.java) val intent = Mockito.mock(Intent::class.java) @@ -375,7 +375,7 @@ class UploadMediaDetailFragmentUnitTest { @Test @Throws(Exception::class) - fun testOnActivityResultAddLocationDialog() { + fun testOnCameraPositionCallbackAddLocationDialog() { shadowOf(Looper.getMainLooper()).idle() Mockito.mock(LocationPicker::class.java) val intent = Mockito.mock(Intent::class.java)