kopia lustrzana https://github.com/ryukoposting/Signal-Android
Allow choose backup restore flow to work on pre-API29 devices.
rodzic
9366596f5f
commit
5d96bc2d3a
|
@ -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())));
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
Ładowanie…
Reference in New Issue