Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/stefan-niedermann/nextcloud-deck.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Niedermann <info@niedermann.it>2024-01-22 10:17:24 +0300
committerStefan Niedermann <info@niedermann.it>2024-01-22 10:17:24 +0300
commit18193ece2715cf7ac60411ce65a09b34b246753b (patch)
tree5ea2a2a6fbcaad67efc335cd02b545a1cde6f4a4
parent82e2b25e15a530b4eb93bb074a4838b355a16969 (diff)
fix(attachments): Limit opening attachments in Files app to proper Files app version
Signed-off-by: Stefan Niedermann <info@niedermann.it>
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/util/AttachmentUtil.java26
1 files changed, 17 insertions, 9 deletions
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/util/AttachmentUtil.java b/app/src/main/java/it/niedermann/nextcloud/deck/util/AttachmentUtil.java
index a9c25dcf7..db83a17f0 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/util/AttachmentUtil.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/util/AttachmentUtil.java
@@ -12,6 +12,7 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.annotation.Px;
+import com.nextcloud.android.sso.helper.VersionCheckHelper;
import com.nextcloud.android.sso.model.FilesAppType;
import java.util.Optional;
@@ -72,7 +73,7 @@ public class AttachmentUtil {
return;
}
- final var intent = generateNextcloudFilesIntent(context.getPackageManager(), account, attachment)
+ final var intent = generateNextcloudFilesIntent(context, account, attachment)
.orElse(generateBrowserIntent(account, cardRemoteId, attachment));
try {
@@ -83,15 +84,22 @@ public class AttachmentUtil {
}
}
- private static Optional<Intent> generateNextcloudFilesIntent(@NonNull PackageManager packageManager, @NonNull Account account, Attachment attachment) {
- for (final var type : FilesAppType.values()) {
- final var intent = new Intent(Intent.ACTION_VIEW)
- .setClassName(type.packageId, "com.owncloud.android.ui.activity.FileDisplayActivity")
- .putExtra("KEY_FILE_ID", String.valueOf(attachment.getFileId()))
- .putExtra("KEY_ACCOUNT", account.getName());
+ private static Optional<Intent> generateNextcloudFilesIntent(@NonNull Context context, @NonNull Account account, Attachment attachment) {
+ final var packageManager = context.getPackageManager();
- if (packageManager.resolveActivity(intent, 0) != null) {
- return Optional.of(intent);
+ for (final var type : FilesAppType.values()) {
+ try {
+ if (VersionCheckHelper.getNextcloudFilesVersionCode(context, type) > 30110000) {
+ final var intent = new Intent(Intent.ACTION_VIEW)
+ .setClassName(type.packageId, "com.owncloud.android.ui.activity.FileDisplayActivity")
+ .putExtra("KEY_FILE_ID", String.valueOf(attachment.getFileId()))
+ .putExtra("KEY_ACCOUNT", account.getName());
+
+ if (packageManager.resolveActivity(intent, 0) != null) {
+ return Optional.of(intent);
+ }
+ }
+ } catch (PackageManager.NameNotFoundException ignored) {
}
}