diff --git a/app/src/main/java/org/schabi/newpipe/settings/ContentSettingsFragment.java b/app/src/main/java/org/schabi/newpipe/settings/ContentSettingsFragment.java index b0bb30aa70c..24318cff4d2 100644 --- a/app/src/main/java/org/schabi/newpipe/settings/ContentSettingsFragment.java +++ b/app/src/main/java/org/schabi/newpipe/settings/ContentSettingsFragment.java @@ -7,6 +7,7 @@ import android.content.Intent; import android.content.SharedPreferences; import android.os.Bundle; +import android.os.Environment; import android.preference.PreferenceManager; import android.util.Log; import android.widget.Toast; @@ -26,6 +27,7 @@ import org.schabi.newpipe.extractor.localization.Localization; import org.schabi.newpipe.report.ErrorActivity; import org.schabi.newpipe.report.UserAction; +import org.schabi.newpipe.util.Constants; import org.schabi.newpipe.util.FilePickerActivityHelper; import org.schabi.newpipe.util.ZipHelper; @@ -119,7 +121,10 @@ public void onCreatePreferences(final Bundle savedInstanceState, final String ro Preference importDataPreference = findPreference(getString(R.string.import_data)); importDataPreference.setOnPreferenceClickListener((Preference p) -> { + String startPath = defaultPreferences.getString(Constants.IMPORT_PATH_DIRECTORY, + Environment.getExternalStorageDirectory().getPath()); Intent i = new Intent(getActivity(), FilePickerActivityHelper.class) + .putExtra(FilePickerActivityHelper.EXTRA_START_PATH, startPath) .putExtra(FilePickerActivityHelper.EXTRA_ALLOW_MULTIPLE, false) .putExtra(FilePickerActivityHelper.EXTRA_ALLOW_CREATE_DIR, false) .putExtra(FilePickerActivityHelper.EXTRA_MODE, @@ -129,8 +134,12 @@ public void onCreatePreferences(final Bundle savedInstanceState, final String ro }); Preference exportDataPreference = findPreference(getString(R.string.export_data)); + exportDataPreference.setOnPreferenceClickListener((Preference p) -> { + String startPath = defaultPreferences.getString(Constants.EXPORT_PATH_DIRECTORY, + Environment.getExternalStorageDirectory().getPath()); Intent i = new Intent(getActivity(), FilePickerActivityHelper.class) + .putExtra(FilePickerActivityHelper.EXTRA_START_PATH, startPath) .putExtra(FilePickerActivityHelper.EXTRA_ALLOW_MULTIPLE, false) .putExtra(FilePickerActivityHelper.EXTRA_ALLOW_CREATE_DIR, true) .putExtra(FilePickerActivityHelper.EXTRA_MODE, @@ -177,9 +186,14 @@ public void onActivityResult(final int requestCode, final int resultCode, && resultCode == Activity.RESULT_OK && data.getData() != null) { String path = Utils.getFileForUri(data.getData()).getAbsolutePath(); if (requestCode == REQUEST_EXPORT_PATH) { + defaultPreferences.edit().putString(Constants.EXPORT_PATH_DIRECTORY, + path.toString()).apply(); SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd_HHmmss", Locale.US); exportDatabase(path + "/NewPipeData-" + sdf.format(new Date()) + ".zip"); } else { + String importDir = new File(path).getParent(); + defaultPreferences.edit().putString(Constants.IMPORT_PATH_DIRECTORY, + importDir).apply(); AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); builder.setMessage(R.string.override_current_data) .setPositiveButton(getString(R.string.finish), diff --git a/app/src/main/java/org/schabi/newpipe/util/Constants.java b/app/src/main/java/org/schabi/newpipe/util/Constants.java index e71dd16f9e6..f9032259411 100644 --- a/app/src/main/java/org/schabi/newpipe/util/Constants.java +++ b/app/src/main/java/org/schabi/newpipe/util/Constants.java @@ -11,6 +11,9 @@ public final class Constants { public static final String KEY_THEME_CHANGE = "key_theme_change"; public static final String KEY_MAIN_PAGE_CHANGE = "key_main_page_change"; + public static final String EXPORT_PATH_DIRECTORY = "export_path_directory"; + public static final String IMPORT_PATH_DIRECTORY = "import_path_directory"; + public static final int NO_SERVICE_ID = -1; private Constants() { }