Skip to content

Commit aa4e5da

Browse files
committed
Fix onActivityResult deprecation in ContentSettingsFragment
1 parent 1061fca commit aa4e5da

1 file changed

Lines changed: 34 additions & 35 deletions

File tree

app/src/main/java/org/schabi/newpipe/settings/ContentSettingsFragment.java

Lines changed: 34 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,16 @@
22

33
import android.app.Activity;
44
import android.content.Context;
5-
import android.content.DialogInterface;
65
import android.content.Intent;
76
import android.content.SharedPreferences;
87
import android.net.Uri;
98
import android.os.Bundle;
109
import android.util.Log;
1110
import android.widget.Toast;
1211

12+
import androidx.activity.result.ActivityResult;
13+
import androidx.activity.result.ActivityResultLauncher;
14+
import androidx.activity.result.contract.ActivityResultContracts.StartActivityForResult;
1315
import androidx.annotation.Nullable;
1416
import androidx.appcompat.app.AlertDialog;
1517
import androidx.core.content.ContextCompat;
@@ -39,8 +41,6 @@
3941
import static org.schabi.newpipe.util.Localization.assureCorrectAppLanguage;
4042

4143
public class ContentSettingsFragment extends BasePreferenceFragment {
42-
private static final int REQUEST_IMPORT_PATH = 8945;
43-
private static final int REQUEST_EXPORT_PATH = 30945;
4444
private static final String ZIP_MIME_TYPE = "application/zip";
4545
private static final SimpleDateFormat EXPORT_DATE_FORMAT
4646
= new SimpleDateFormat("yyyyMMdd_HHmmss", Locale.US);
@@ -55,6 +55,10 @@ public class ContentSettingsFragment extends BasePreferenceFragment {
5555
private Localization initialSelectedLocalization;
5656
private ContentCountry initialSelectedContentCountry;
5757
private String initialLanguage;
58+
private final ActivityResultLauncher<Intent> requestImportPathLauncher =
59+
registerForActivityResult(new StartActivityForResult(), this::requestImportPathResult);
60+
private final ActivityResultLauncher<Intent> requestExportPathLauncher =
61+
registerForActivityResult(new StartActivityForResult(), this::requestExportPathResult);
5862

5963
@Override
6064
public void onCreatePreferences(final Bundle savedInstanceState, final String rootKey) {
@@ -71,20 +75,18 @@ public void onCreatePreferences(final Bundle savedInstanceState, final String ro
7175

7276
final Preference importDataPreference = requirePreference(R.string.import_data);
7377
importDataPreference.setOnPreferenceClickListener((Preference p) -> {
74-
startActivityForResult(
75-
StoredFileHelper.getPicker(requireContext(), getImportExportDataUri()),
76-
REQUEST_IMPORT_PATH);
78+
requestImportPathLauncher.launch(
79+
StoredFileHelper.getPicker(requireContext(), getImportExportDataUri()));
7780
return true;
7881
});
7982

8083
final Preference exportDataPreference = requirePreference(R.string.export_data);
8184
exportDataPreference.setOnPreferenceClickListener((final Preference p) -> {
8285

83-
startActivityForResult(
86+
requestExportPathLauncher.launch(
8487
StoredFileHelper.getNewPicker(requireContext(),
8588
"NewPipeData-" + EXPORT_DATE_FORMAT.format(new Date()) + ".zip",
86-
ZIP_MIME_TYPE, getImportExportDataUri()),
87-
REQUEST_EXPORT_PATH);
89+
ZIP_MIME_TYPE, getImportExportDataUri()));
8890
return true;
8991
});
9092

@@ -156,37 +158,34 @@ public void onDestroy() {
156158
}
157159
}
158160

159-
@Override
160-
public void onActivityResult(final int requestCode,
161-
final int resultCode,
162-
@Nullable final Intent data) {
161+
private void requestExportPathResult(final ActivityResult result) {
163162
assureCorrectAppLanguage(getContext());
164-
super.onActivityResult(requestCode, resultCode, data);
165-
if (DEBUG) {
166-
Log.d(TAG, "onActivityResult() called with: "
167-
+ "requestCode = [" + requestCode + "], "
168-
+ "resultCode = [" + resultCode + "], "
169-
+ "data = [" + data + "]");
170-
}
163+
if (result.getResultCode() == Activity.RESULT_OK && result.getData() != null) {
164+
lastImportExportDataUri = result.getData().getData(); // will be saved only on success
171165

172-
if ((requestCode == REQUEST_IMPORT_PATH || requestCode == REQUEST_EXPORT_PATH)
173-
&& resultCode == Activity.RESULT_OK && data != null && data.getData() != null) {
166+
final StoredFileHelper file
167+
= new StoredFileHelper(getContext(), result.getData().getData(), ZIP_MIME_TYPE);
168+
169+
exportDatabase(file);
170+
}
171+
}
174172

175-
lastImportExportDataUri = data.getData(); // will be saved only on success
173+
private void requestImportPathResult(final ActivityResult result) {
174+
assureCorrectAppLanguage(getContext());
175+
if (result.getResultCode() == Activity.RESULT_OK && result.getData() != null) {
176+
lastImportExportDataUri = result.getData().getData(); // will be saved only on success
176177

177178
final StoredFileHelper file
178-
= new StoredFileHelper(getContext(), data.getData(), ZIP_MIME_TYPE);
179-
if (requestCode == REQUEST_EXPORT_PATH) {
180-
exportDatabase(file);
181-
} else {
182-
final AlertDialog.Builder builder = new AlertDialog.Builder(requireActivity());
183-
builder.setMessage(R.string.override_current_data)
184-
.setPositiveButton(R.string.finish,
185-
(DialogInterface d, int id) -> importDatabase(file))
186-
.setNegativeButton(R.string.cancel,
187-
(DialogInterface d, int id) -> d.cancel());
188-
builder.create().show();
189-
}
179+
= new StoredFileHelper(getContext(), result.getData().getData(), ZIP_MIME_TYPE);
180+
181+
new AlertDialog.Builder(requireActivity())
182+
.setMessage(R.string.override_current_data)
183+
.setPositiveButton(R.string.finish, (d, id) ->
184+
importDatabase(file))
185+
.setNegativeButton(R.string.cancel, (d, id) ->
186+
d.cancel())
187+
.create()
188+
.show();
190189
}
191190
}
192191

0 commit comments

Comments
 (0)