diff options
author | Taco <SkytkRSfan3895@gmail.com> | 2021-09-24 04:18:54 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-09-24 10:18:54 +0200 |
commit | 0a22e9fc3848a006247d1460c49e66e0c0e08a7c (patch) | |
tree | f86864be7d694aab9a2b66c8f1b9c9356dbf7f20 /app/src/main/java/de/danoeh/antennapod/activity | |
parent | 17ab22b6c018a8c7b9995f93ced49b7d54c7847a (diff) | |
download | AntennaPod-0a22e9fc3848a006247d1460c49e66e0c0e08a7c.zip |
Update AndroidX Fragment to 1.3.6 (#5201)
Diffstat (limited to 'app/src/main/java/de/danoeh/antennapod/activity')
-rw-r--r-- | app/src/main/java/de/danoeh/antennapod/activity/OpmlImportActivity.java | 41 |
1 files changed, 19 insertions, 22 deletions
diff --git a/app/src/main/java/de/danoeh/antennapod/activity/OpmlImportActivity.java b/app/src/main/java/de/danoeh/antennapod/activity/OpmlImportActivity.java index a6810715c..3d0c9d113 100644 --- a/app/src/main/java/de/danoeh/antennapod/activity/OpmlImportActivity.java +++ b/app/src/main/java/de/danoeh/antennapod/activity/OpmlImportActivity.java @@ -1,5 +1,6 @@ package de.danoeh.antennapod.activity; +import android.Manifest; import android.content.Intent; import android.content.pm.PackageManager; import android.net.Uri; @@ -15,7 +16,9 @@ import android.view.View; import android.widget.ArrayAdapter; import android.widget.ListView; import android.widget.Toast; -import androidx.annotation.NonNull; + +import androidx.activity.result.ActivityResultLauncher; +import androidx.activity.result.contract.ActivityResultContracts.RequestPermission; import androidx.annotation.Nullable; import androidx.appcompat.app.AlertDialog; import androidx.appcompat.app.AppCompatActivity; @@ -35,7 +38,6 @@ import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.schedulers.Schedulers; import org.apache.commons.io.ByteOrderMark; import org.apache.commons.io.input.BOMInputStream; -import org.apache.commons.lang3.ArrayUtils; import java.io.InputStream; import java.io.InputStreamReader; @@ -48,7 +50,6 @@ import java.util.List; * */ public class OpmlImportActivity extends AppCompatActivity { private static final String TAG = "OpmlImportBaseActivity"; - private static final int PERMISSION_REQUEST_READ_EXTERNAL_STORAGE = 5; @Nullable private Uri uri; OpmlSelectionBinding viewBinding; private ArrayAdapter<String> listAdapter; @@ -198,27 +199,23 @@ public class OpmlImportActivity extends AppCompatActivity { } private void requestPermission() { - String[] permissions = { android.Manifest.permission.READ_EXTERNAL_STORAGE }; - ActivityCompat.requestPermissions(this, permissions, PERMISSION_REQUEST_READ_EXTERNAL_STORAGE); + requestPermissionLauncher.launch(Manifest.permission.READ_EXTERNAL_STORAGE); } - @Override - public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, - @NonNull int[] grantResults) { - super.onRequestPermissionsResult(requestCode, permissions, grantResults); - if (requestCode != PERMISSION_REQUEST_READ_EXTERNAL_STORAGE) { - return; - } - if (grantResults.length > 0 && ArrayUtils.contains(grantResults, PackageManager.PERMISSION_GRANTED)) { - startImport(); - } else { - new AlertDialog.Builder(this) - .setMessage(R.string.opml_import_ask_read_permission) - .setPositiveButton(android.R.string.ok, (dialog, which) -> requestPermission()) - .setNegativeButton(R.string.cancel_label, (dialog, which) -> finish()) - .show(); - } - } + private final ActivityResultLauncher<String> requestPermissionLauncher = + registerForActivityResult(new RequestPermission(), isGranted -> { + if (isGranted) { + startImport(); + } else { + new AlertDialog.Builder(this) + .setMessage(R.string.opml_import_ask_read_permission) + .setPositiveButton(android.R.string.ok, (dialog, which) -> + requestPermission()) + .setNegativeButton(R.string.cancel_label, (dialog, which) -> + finish()) + .show(); + } + }); /** Starts the import process. */ private void startImport() { |