diff --git a/app/src/main/java/org/thoughtcrime/securesms/backup/FullBackupImporter.java b/app/src/main/java/org/thoughtcrime/securesms/backup/FullBackupImporter.java index 3e2bb57ae5..b913e1d690 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/backup/FullBackupImporter.java +++ b/app/src/main/java/org/thoughtcrime/securesms/backup/FullBackupImporter.java @@ -109,7 +109,7 @@ public class FullBackupImporter extends FullBackupBase { } private static @NonNull InputStream getInputStream(@NonNull Context context, @NonNull Uri uri) throws IOException{ - if (BackupUtil.isUserSelectionRequired(context)) { + if (BackupUtil.isUserSelectionRequired(context) || uri.getScheme().equals("content")) { return Objects.requireNonNull(context.getContentResolver().openInputStream(uri)); } else { return new FileInputStream(new File(Objects.requireNonNull(uri.getPath()))); diff --git a/app/src/main/java/org/thoughtcrime/securesms/devicetransfer/newdevice/TransferOrRestoreFragment.java b/app/src/main/java/org/thoughtcrime/securesms/devicetransfer/newdevice/TransferOrRestoreFragment.java index f5c5620a4a..12951e7ac5 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/devicetransfer/newdevice/TransferOrRestoreFragment.java +++ b/app/src/main/java/org/thoughtcrime/securesms/devicetransfer/newdevice/TransferOrRestoreFragment.java @@ -1,5 +1,6 @@ package org.thoughtcrime.securesms.devicetransfer.newdevice; +import android.os.Build; import android.os.Bundle; import android.view.View; import android.widget.TextView; @@ -26,8 +27,12 @@ public final class TransferOrRestoreFragment extends LoggingFragment { view.findViewById(R.id.transfer_or_restore_fragment_transfer) .setOnClickListener(v -> Navigation.findNavController(v).navigate(R.id.action_new_device_transfer_instructions)); - view.findViewById(R.id.transfer_or_restore_fragment_restore) - .setOnClickListener(v -> Navigation.findNavController(v).navigate(R.id.action_choose_backup)); + View restoreBackup = view.findViewById(R.id.transfer_or_restore_fragment_restore); + if (Build.VERSION.SDK_INT >= 21) { + restoreBackup.setOnClickListener(v -> Navigation.findNavController(v).navigate(R.id.action_choose_backup)); + } else { + restoreBackup.setVisibility(View.GONE); + } String description = getString(R.string.TransferOrRestoreFragment__transfer_your_account_and_messages_from_your_old_android_device); String toBold = getString(R.string.TransferOrRestoreFragment__you_need_access_to_your_old_device); diff --git a/app/src/main/java/org/thoughtcrime/securesms/registration/fragments/RestoreBackupFragment.java b/app/src/main/java/org/thoughtcrime/securesms/registration/fragments/RestoreBackupFragment.java index 768d5a41e4..fa1be64559 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/registration/fragments/RestoreBackupFragment.java +++ b/app/src/main/java/org/thoughtcrime/securesms/registration/fragments/RestoreBackupFragment.java @@ -8,6 +8,7 @@ import android.graphics.Canvas; import android.graphics.Paint; import android.net.Uri; import android.os.AsyncTask; +import android.os.Build; import android.os.Bundle; import android.text.Editable; import android.text.Spanned; @@ -108,7 +109,7 @@ public final class RestoreBackupFragment extends BaseRegistrationFragment { } RestoreBackupFragmentArgs args = RestoreBackupFragmentArgs.fromBundle(requireArguments()); - if (BackupUtil.isUserSelectionRequired(requireContext()) && args.getUri() != null) { + if ((Build.VERSION.SDK_INT < 29 || BackupUtil.isUserSelectionRequired(requireContext())) && args.getUri() != null) { Log.i(TAG, "Restoring backup from passed uri"); initializeBackupForUri(view, args.getUri()); @@ -142,7 +143,6 @@ public final class RestoreBackupFragment extends BaseRegistrationFragment { } } - @RequiresApi(29) private void initializeBackupForUri(@NonNull View view, @NonNull Uri uri) { getFromUri(requireContext(), uri, backup -> handleBackupInfo(view, backup)); } @@ -197,7 +197,6 @@ public final class RestoreBackupFragment extends BaseRegistrationFragment { }.execute(); } - @RequiresApi(29) static void getFromUri(@NonNull Context context, @NonNull Uri backupUri, @NonNull OnBackupSearchResultListener listener) diff --git a/app/src/main/java/org/thoughtcrime/securesms/util/BackupUtil.java b/app/src/main/java/org/thoughtcrime/securesms/util/BackupUtil.java index d4607d15a9..d6e7c98521 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/util/BackupUtil.java +++ b/app/src/main/java/org/thoughtcrime/securesms/util/BackupUtil.java @@ -166,7 +166,6 @@ public class BackupUtil { return backups; } - @RequiresApi(29) public static @Nullable BackupInfo getBackupInfoFromSingleUri(@NonNull Context context, @NonNull Uri singleUri) { DocumentFile documentFile = DocumentFile.fromSingleUri(context, singleUri);