diff options
author | Martin Fietz <martin.fietz@gmail.com> | 2018-01-02 20:42:34 +0100 |
---|---|---|
committer | Martin Fietz <martin.fietz@gmail.com> | 2018-01-02 20:42:34 +0100 |
commit | eddc0a6a13bf70fd64266897a8f098f63b4d20a1 (patch) | |
tree | 805ede344e57523685a1ef85964e16e0dc0c919a /app/src/main/java/de/danoeh/antennapod/preferences | |
parent | 717a1ec00ea140bd6ae2962449cffbc37e7d3725 (diff) | |
parent | f9686ffba71ae0c569acca351a2385b3d04207b4 (diff) | |
download | AntennaPod-eddc0a6a13bf70fd64266897a8f098f63b4d20a1.zip |
Merge branch 'develop'
Diffstat (limited to 'app/src/main/java/de/danoeh/antennapod/preferences')
-rw-r--r-- | app/src/main/java/de/danoeh/antennapod/preferences/PreferenceController.java | 74 |
1 files changed, 10 insertions, 64 deletions
diff --git a/app/src/main/java/de/danoeh/antennapod/preferences/PreferenceController.java b/app/src/main/java/de/danoeh/antennapod/preferences/PreferenceController.java index f46d44320..1ca0d0109 100644 --- a/app/src/main/java/de/danoeh/antennapod/preferences/PreferenceController.java +++ b/app/src/main/java/de/danoeh/antennapod/preferences/PreferenceController.java @@ -68,11 +68,10 @@ import de.danoeh.antennapod.core.export.opml.OpmlWriter; import de.danoeh.antennapod.core.preferences.GpodnetPreferences; import de.danoeh.antennapod.core.preferences.UserPreferences; import de.danoeh.antennapod.core.service.GpodnetSyncService; -import de.danoeh.antennapod.core.util.Converter; -import de.danoeh.antennapod.core.util.StorageUtils; import de.danoeh.antennapod.core.util.flattr.FlattrUtils; import de.danoeh.antennapod.dialog.AuthenticationDialog; import de.danoeh.antennapod.dialog.AutoFlattrPreferenceDialog; +import de.danoeh.antennapod.dialog.ChooseDataFolderDialog; import de.danoeh.antennapod.dialog.GpodnetSetHostnameDialog; import de.danoeh.antennapod.dialog.ProxyDialog; import de.danoeh.antennapod.dialog.VariableSpeedDialog; @@ -455,7 +454,7 @@ public class PreferenceController implements SharedPreferences.OnSharedPreferenc emailIntent.putExtra(Intent.EXTRA_SUBJECT, "AntennaPod Crash Report"); emailIntent.putExtra(Intent.EXTRA_TEXT, "Please describe what you were doing when the app crashed"); // the attachment - Uri fileUri = FileProvider.getUriForFile(context, "de.danoeh.antennapod.provider", + Uri fileUri = FileProvider.getUriForFile(context, context.getString(R.string.provider_authority), CrashReportWriter.getFile()); emailIntent.putExtra(Intent.EXTRA_STREAM, fileUri); emailIntent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); @@ -945,67 +944,14 @@ public class PreferenceController implements SharedPreferences.OnSharedPreferenc } private void showChooseDataFolderDialog() { - Context context = ui.getActivity(); - File dataFolder = UserPreferences.getDataFolder(null); - if(dataFolder == null) { - new MaterialDialog.Builder(ui.getActivity()) - .title(R.string.error_label) - .content(R.string.external_storage_error_msg) - .neutralText(android.R.string.ok) - .show(); - return; - } - String dataFolderPath = dataFolder.getAbsolutePath(); - int selectedIndex = -1; - File[] mediaDirs = ContextCompat.getExternalFilesDirs(context, null); - List<String> folders = new ArrayList<>(mediaDirs.length); - List<CharSequence> choices = new ArrayList<>(mediaDirs.length); - for(int i=0; i < mediaDirs.length; i++) { - File dir = mediaDirs[i]; - if(dir == null || !dir.exists() || !dir.canRead() || !dir.canWrite()) { - continue; - } - String path = mediaDirs[i].getAbsolutePath(); - folders.add(path); - if(dataFolderPath.equals(path)) { - selectedIndex = i; - } - int index = path.indexOf("Android"); - String choice; - if(index >= 0) { - choice = path.substring(0, index); - } else { - choice = path; - } - long bytes = StorageUtils.getFreeSpaceAvailable(path); - String freeSpace = String.format(context.getString(R.string.free_space_label), - Converter.byteToString(bytes)); - choices.add(Html.fromHtml("<html><small>" + choice - + " [" + freeSpace + "]" + "</small></html>")); - } - if(choices.size() == 0) { - new MaterialDialog.Builder(ui.getActivity()) - .title(R.string.error_label) - .content(R.string.external_storage_error_msg) - .neutralText(android.R.string.ok) - .show(); - return; - } - MaterialDialog dialog = new MaterialDialog.Builder(ui.getActivity()) - .title(R.string.choose_data_directory) - .content(R.string.choose_data_directory_message) - .items(choices.toArray(new CharSequence[choices.size()])) - .itemsCallbackSingleChoice(selectedIndex, (dialog1, itemView, which, text) -> { - String folder = folders.get(which); - Log.d(TAG, "data folder: " + folder); - UserPreferences.setDataFolder(folder); - setDataFolderText(); - return true; - }) - .negativeText(R.string.cancel_label) - .cancelable(true) - .build(); - dialog.show(); + ChooseDataFolderDialog.showDialog( + ui.getActivity(), new ChooseDataFolderDialog.RunnableWithString() { + @Override + public void run(final String folder) { + UserPreferences.setDataFolder(folder); + setDataFolderText(); + } + }); } // UPDATE TIME/INTERVAL DIALOG |