diff options
author | Stefan Niedermann <info@niedermann.it> | 2024-01-22 10:17:24 +0300 |
---|---|---|
committer | Stefan Niedermann <info@niedermann.it> | 2024-01-22 10:17:24 +0300 |
commit | 18193ece2715cf7ac60411ce65a09b34b246753b (patch) | |
tree | 5ea2a2a6fbcaad67efc335cd02b545a1cde6f4a4 | |
parent | 82e2b25e15a530b4eb93bb074a4838b355a16969 (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.java | 26 |
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) { } } |