diff --git a/owncloudApp/src/main/java/com/owncloud/android/MainApp.kt b/owncloudApp/src/main/java/com/owncloud/android/MainApp.kt index b0d93278bb72..2f69d98e7779 100644 --- a/owncloudApp/src/main/java/com/owncloud/android/MainApp.kt +++ b/owncloudApp/src/main/java/com/owncloud/android/MainApp.kt @@ -1,4 +1,4 @@ -/* +/** * ownCloud Android client application * * @author masensio @@ -6,7 +6,8 @@ * @author David González Verdugo * @author Christian Schabesberger * @author David Crespo Ríos - * Copyright (C) 2020 ownCloud GmbH. + * @author Fernando Sanz Velasco + * Copyright (C) 2022 ownCloud GmbH. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2, @@ -46,6 +47,7 @@ import com.owncloud.android.lib.common.OwnCloudClient import com.owncloud.android.lib.common.SingleSessionManager import com.owncloud.android.presentation.ui.authentication.LoginActivity import com.owncloud.android.presentation.ui.migration.StorageMigrationActivity +import com.owncloud.android.presentation.ui.releasenotes.ReleaseNotesActivity import com.owncloud.android.presentation.ui.security.BiometricActivity import com.owncloud.android.presentation.ui.security.BiometricManager import com.owncloud.android.presentation.ui.security.LockTimeout @@ -58,8 +60,8 @@ import com.owncloud.android.presentation.ui.settings.fragments.SettingsLogsFragm import com.owncloud.android.providers.LogsProvider import com.owncloud.android.ui.activity.FileDisplayActivity import com.owncloud.android.ui.activity.SplashActivity -import com.owncloud.android.presentation.ui.releasenotes.ReleaseNotesActivity import com.owncloud.android.ui.activity.WhatsNewActivity +import com.owncloud.android.ui.preview.PreviewImageActivity import com.owncloud.android.utils.DOWNLOAD_NOTIFICATION_CHANNEL_ID import com.owncloud.android.utils.DebugInjector import com.owncloud.android.utils.FILE_SYNC_CONFLICT_CHANNEL_ID @@ -126,6 +128,11 @@ class MainApp : Application() { override fun onActivityStarted(activity: Activity) { Timber.v("${activity.javaClass.simpleName} onStart() starting") + + if (activity is PreviewImageActivity && activity.isFromDeepLink) { + activity.finish() + } + if (activity is SplashActivity || activity is FileDisplayActivity || activity is LoginActivity diff --git a/owncloudApp/src/main/java/com/owncloud/android/ui/activity/FileActivity.java b/owncloudApp/src/main/java/com/owncloud/android/ui/activity/FileActivity.java index 44e78a1b56c3..5972b7c21ecf 100644 --- a/owncloudApp/src/main/java/com/owncloud/android/ui/activity/FileActivity.java +++ b/owncloudApp/src/main/java/com/owncloud/android/ui/activity/FileActivity.java @@ -71,6 +71,7 @@ public class FileActivity extends DrawerActivity public static final String EXTRA_FILE = "com.owncloud.android.ui.activity.FILE"; public static final String EXTRA_ACCOUNT = "com.owncloud.android.ui.activity.ACCOUNT"; + public static final String EXTRA_DEEP_LINK= "com.owncloud.android.ui.activity.DEEP_LINK"; public static final String EXTRA_FROM_NOTIFICATION = "com.owncloud.android.ui.activity.FROM_NOTIFICATION"; public static final String EXTRA_ALREADY_HANDLED_DEEP_LINK = diff --git a/owncloudApp/src/main/java/com/owncloud/android/ui/activity/FileDisplayActivity.kt b/owncloudApp/src/main/java/com/owncloud/android/ui/activity/FileDisplayActivity.kt index c0dd4703bb6d..3be09a177ff1 100644 --- a/owncloudApp/src/main/java/com/owncloud/android/ui/activity/FileDisplayActivity.kt +++ b/owncloudApp/src/main/java/com/owncloud/android/ui/activity/FileDisplayActivity.kt @@ -7,8 +7,9 @@ * @author Christian Schabesberger * @author Shashvat Kedia * @author Abel García de Prada + * @author Fernando Sanz Velasco * Copyright (C) 2011 Bartek Przybylski - * Copyright (C) 2020 ownCloud GmbH. + * Copyright (C) 2022 ownCloud GmbH. * * * This program is free software: you can redistribute it and/or modify @@ -1489,10 +1490,11 @@ class FileDisplayActivity : FileActivity(), FileFragment.ContainerActivity, OnEn * * @param file Image [OCFile] to show. */ - fun startImagePreview(file: OCFile) { + fun startImagePreview(file: OCFile, isFromDeepLink: Boolean = false) { val showDetailsIntent = Intent(this, PreviewImageActivity::class.java) showDetailsIntent.putExtra(EXTRA_FILE, file) showDetailsIntent.putExtra(EXTRA_ACCOUNT, account) + showDetailsIntent.putExtra(EXTRA_DEEP_LINK, isFromDeepLink) startActivity(showDetailsIntent) } @@ -1685,7 +1687,7 @@ class FileDisplayActivity : FileActivity(), FileFragment.ContainerActivity, OnEn } if (PreviewImageFragment.canBePreviewed(file)) { - startImagePreview(file) + startImagePreview(file, isFromDeepLink = true) } else { initFragmentsWithFile() } diff --git a/owncloudApp/src/main/java/com/owncloud/android/ui/fragment/OCFileListFragment.java b/owncloudApp/src/main/java/com/owncloud/android/ui/fragment/OCFileListFragment.java index 55411cbb8597..e857caea5af5 100644 --- a/owncloudApp/src/main/java/com/owncloud/android/ui/fragment/OCFileListFragment.java +++ b/owncloudApp/src/main/java/com/owncloud/android/ui/fragment/OCFileListFragment.java @@ -845,7 +845,7 @@ public void onItemClick(AdapterView l, View v, int position, long id) { } else { /// Click on a file if (PreviewImageFragment.canBePreviewed(file)) { // preview image - it handles the sync, if needed - ((FileDisplayActivity) mContainerActivity).startImagePreview(file); + ((FileDisplayActivity) mContainerActivity).startImagePreview(file, false); } else if (PreviewTextFragment.canBePreviewed(file)) { ((FileDisplayActivity) mContainerActivity).startTextPreview(file); mContainerActivity.getFileOperationsHelper().syncFile(file); @@ -1269,7 +1269,7 @@ private void showSnackMessage(int messageResource) { snackbar.show(); } - public void setSearchListener(SearchView searchView){ + public void setSearchListener(SearchView searchView) { searchView.setOnQueryTextFocusChangeListener(this); searchView.setOnQueryTextListener(this); } diff --git a/owncloudApp/src/main/java/com/owncloud/android/ui/preview/PreviewImageActivity.java b/owncloudApp/src/main/java/com/owncloud/android/ui/preview/PreviewImageActivity.java index 020a7a58feb6..7e272c7a8369 100644 --- a/owncloudApp/src/main/java/com/owncloud/android/ui/preview/PreviewImageActivity.java +++ b/owncloudApp/src/main/java/com/owncloud/android/ui/preview/PreviewImageActivity.java @@ -4,17 +4,18 @@ * @author David A. Velasco * @author David González Verdugo * @author Christian Schabesberger - * Copyright (C) 2020 ownCloud GmbH. - *

+ * @author Fernando Sanz Velasco + * Copyright (C) 2022 ownCloud GmbH. + * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2, * as published by the Free Software Foundation. - *

+ * * This program is distributed in the hd that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - *

+ * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ @@ -501,4 +502,7 @@ private void updateActionBarTitle(String title) { } } -} \ No newline at end of file + public Boolean isFromDeepLink() { + return getIntent().getBooleanExtra(EXTRA_DEEP_LINK, false); + } +}