Skip to content

Commit cf0d294

Browse files
committed
Prevented image files from being previewed when a security method is configured.
1 parent e46bd69 commit cf0d294

File tree

5 files changed

+27
-13
lines changed

5 files changed

+27
-13
lines changed

owncloudApp/src/main/java/com/owncloud/android/MainApp.kt

+10-3
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
1-
/*
1+
/**
22
* ownCloud Android client application
33
*
44
* @author masensio
55
* @author David A. Velasco
66
* @author David González Verdugo
77
* @author Christian Schabesberger
88
* @author David Crespo Ríos
9-
* Copyright (C) 2020 ownCloud GmbH.
9+
* @author Fernando Sanz Velasco
10+
* Copyright (C) 2022 ownCloud GmbH.
1011
*
1112
* This program is free software: you can redistribute it and/or modify
1213
* it under the terms of the GNU General Public License version 2,
@@ -46,6 +47,7 @@ import com.owncloud.android.lib.common.OwnCloudClient
4647
import com.owncloud.android.lib.common.SingleSessionManager
4748
import com.owncloud.android.presentation.ui.authentication.LoginActivity
4849
import com.owncloud.android.presentation.ui.migration.StorageMigrationActivity
50+
import com.owncloud.android.presentation.ui.releasenotes.ReleaseNotesActivity
4951
import com.owncloud.android.presentation.ui.security.BiometricActivity
5052
import com.owncloud.android.presentation.ui.security.BiometricManager
5153
import com.owncloud.android.presentation.ui.security.LockTimeout
@@ -58,8 +60,8 @@ import com.owncloud.android.presentation.ui.settings.fragments.SettingsLogsFragm
5860
import com.owncloud.android.providers.LogsProvider
5961
import com.owncloud.android.ui.activity.FileDisplayActivity
6062
import com.owncloud.android.ui.activity.SplashActivity
61-
import com.owncloud.android.presentation.ui.releasenotes.ReleaseNotesActivity
6263
import com.owncloud.android.ui.activity.WhatsNewActivity
64+
import com.owncloud.android.ui.preview.PreviewImageActivity
6365
import com.owncloud.android.utils.DOWNLOAD_NOTIFICATION_CHANNEL_ID
6466
import com.owncloud.android.utils.DebugInjector
6567
import com.owncloud.android.utils.FILE_SYNC_CONFLICT_CHANNEL_ID
@@ -126,6 +128,11 @@ class MainApp : Application() {
126128

127129
override fun onActivityStarted(activity: Activity) {
128130
Timber.v("${activity.javaClass.simpleName} onStart() starting")
131+
132+
if (activity is PreviewImageActivity && activity.isFromDeepLink) {
133+
activity.finish()
134+
}
135+
129136
if (activity is SplashActivity ||
130137
activity is FileDisplayActivity ||
131138
activity is LoginActivity

owncloudApp/src/main/java/com/owncloud/android/ui/activity/FileActivity.java

+1
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@ public class FileActivity extends DrawerActivity
7171

7272
public static final String EXTRA_FILE = "com.owncloud.android.ui.activity.FILE";
7373
public static final String EXTRA_ACCOUNT = "com.owncloud.android.ui.activity.ACCOUNT";
74+
public static final String EXTRA_DEEP_LINK= "com.owncloud.android.ui.activity.DEEP_LINK";
7475
public static final String EXTRA_FROM_NOTIFICATION =
7576
"com.owncloud.android.ui.activity.FROM_NOTIFICATION";
7677
public static final String EXTRA_ALREADY_HANDLED_DEEP_LINK =

owncloudApp/src/main/java/com/owncloud/android/ui/activity/FileDisplayActivity.kt

+5-3
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,9 @@
77
* @author Christian Schabesberger
88
* @author Shashvat Kedia
99
* @author Abel García de Prada
10+
* @author Fernando Sanz Velasco
1011
* Copyright (C) 2011 Bartek Przybylski
11-
* Copyright (C) 2020 ownCloud GmbH.
12+
* Copyright (C) 2022 ownCloud GmbH.
1213
*
1314
*
1415
* This program is free software: you can redistribute it and/or modify
@@ -1489,10 +1490,11 @@ class FileDisplayActivity : FileActivity(), FileFragment.ContainerActivity, OnEn
14891490
*
14901491
* @param file Image [OCFile] to show.
14911492
*/
1492-
fun startImagePreview(file: OCFile) {
1493+
fun startImagePreview(file: OCFile, isFromDeepLink: Boolean = false) {
14931494
val showDetailsIntent = Intent(this, PreviewImageActivity::class.java)
14941495
showDetailsIntent.putExtra(EXTRA_FILE, file)
14951496
showDetailsIntent.putExtra(EXTRA_ACCOUNT, account)
1497+
showDetailsIntent.putExtra(EXTRA_DEEP_LINK, isFromDeepLink)
14961498
startActivity(showDetailsIntent)
14971499

14981500
}
@@ -1685,7 +1687,7 @@ class FileDisplayActivity : FileActivity(), FileFragment.ContainerActivity, OnEn
16851687
}
16861688

16871689
if (PreviewImageFragment.canBePreviewed(file)) {
1688-
startImagePreview(file)
1690+
startImagePreview(file, isFromDeepLink = true)
16891691
} else {
16901692
initFragmentsWithFile()
16911693
}

owncloudApp/src/main/java/com/owncloud/android/ui/fragment/OCFileListFragment.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -845,7 +845,7 @@ public void onItemClick(AdapterView<?> l, View v, int position, long id) {
845845
} else { /// Click on a file
846846
if (PreviewImageFragment.canBePreviewed(file)) {
847847
// preview image - it handles the sync, if needed
848-
((FileDisplayActivity) mContainerActivity).startImagePreview(file);
848+
((FileDisplayActivity) mContainerActivity).startImagePreview(file, false);
849849
} else if (PreviewTextFragment.canBePreviewed(file)) {
850850
((FileDisplayActivity) mContainerActivity).startTextPreview(file);
851851
mContainerActivity.getFileOperationsHelper().syncFile(file);
@@ -1269,7 +1269,7 @@ private void showSnackMessage(int messageResource) {
12691269
snackbar.show();
12701270
}
12711271

1272-
public void setSearchListener(SearchView searchView){
1272+
public void setSearchListener(SearchView searchView) {
12731273
searchView.setOnQueryTextFocusChangeListener(this);
12741274
searchView.setOnQueryTextListener(this);
12751275
}

owncloudApp/src/main/java/com/owncloud/android/ui/preview/PreviewImageActivity.java

+9-5
Original file line numberDiff line numberDiff line change
@@ -4,17 +4,18 @@
44
* @author David A. Velasco
55
* @author David González Verdugo
66
* @author Christian Schabesberger
7-
* Copyright (C) 2020 ownCloud GmbH.
8-
* <p>
7+
* @author Fernando Sanz Velasco
8+
* Copyright (C) 2022 ownCloud GmbH.
9+
*
910
* This program is free software: you can redistribute it and/or modify
1011
* it under the terms of the GNU General Public License version 2,
1112
* as published by the Free Software Foundation.
12-
* <p>
13+
*
1314
* This program is distributed in the hd that it will be useful,
1415
* but WITHOUT ANY WARRANTY; without even the implied warranty of
1516
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1617
* GNU General Public License for more details.
17-
* <p>
18+
*
1819
* You should have received a copy of the GNU General Public License
1920
* along with this program. If not, see <http://www.gnu.org/licenses/>.
2021
*/
@@ -501,4 +502,7 @@ private void updateActionBarTitle(String title) {
501502
}
502503
}
503504

504-
}
505+
public Boolean isFromDeepLink() {
506+
return getIntent().getBooleanExtra(EXTRA_DEEP_LINK, false);
507+
}
508+
}

0 commit comments

Comments
 (0)