diff options
author | ByteHamster <info@bytehamster.com> | 2020-07-02 23:01:03 +0200 |
---|---|---|
committer | ByteHamster <info@bytehamster.com> | 2020-07-02 23:01:03 +0200 |
commit | 1c887a418a9157e807989e8ed3c64a601200cdc2 (patch) | |
tree | d9358ed10bfa9287e68b7e3dc46f952ec7dfdb3b /app/src/main/java/de/danoeh/antennapod/dialog/ChooseDataFolderDialog.java | |
parent | 65f844fc8329ef8da38eff04beff7021ba8be989 (diff) | |
download | AntennaPod-1c887a418a9157e807989e8ed3c64a601200cdc2.zip |
Removed custom Consumer implementation and decoupled adapter from dialog
Diffstat (limited to 'app/src/main/java/de/danoeh/antennapod/dialog/ChooseDataFolderDialog.java')
-rw-r--r-- | app/src/main/java/de/danoeh/antennapod/dialog/ChooseDataFolderDialog.java | 42 |
1 files changed, 17 insertions, 25 deletions
diff --git a/app/src/main/java/de/danoeh/antennapod/dialog/ChooseDataFolderDialog.java b/app/src/main/java/de/danoeh/antennapod/dialog/ChooseDataFolderDialog.java index ec285a8f6..2c375f5cd 100644 --- a/app/src/main/java/de/danoeh/antennapod/dialog/ChooseDataFolderDialog.java +++ b/app/src/main/java/de/danoeh/antennapod/dialog/ChooseDataFolderDialog.java @@ -4,6 +4,7 @@ import android.content.Context; import android.view.View; import androidx.appcompat.app.AlertDialog; +import androidx.core.util.Consumer; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; import de.danoeh.antennapod.R; @@ -11,29 +12,7 @@ import de.danoeh.antennapod.adapter.DataFolderAdapter; public class ChooseDataFolderDialog { - public abstract static class RunnableWithString implements Runnable { - public RunnableWithString() { - super(); - } - public abstract void run(final String arg); - @Override public void run() { - throw new IllegalArgumentException("Expect one String parameter."); - } - } - - private ChooseDataFolderDialog() {} - - public static void showDialog(final Context context, RunnableWithString handlerFunc) { - DataFolderAdapter adapter = new DataFolderAdapter(context, handlerFunc); - - if (adapter.getItemCount() == 0) { - new AlertDialog.Builder(context) - .setTitle(R.string.error_label) - .setMessage(R.string.external_storage_error_msg) - .setPositiveButton(android.R.string.ok, null) - .show(); - return; - } + public static void showDialog(final Context context, Consumer<String> handlerFunc) { View content = View.inflate(context, R.layout.choose_data_folder_dialog, null); AlertDialog dialog = new AlertDialog.Builder(context) @@ -43,9 +22,22 @@ public class ChooseDataFolderDialog { .setNegativeButton(R.string.cancel_label, null) .create(); ((RecyclerView) content.findViewById(R.id.recyclerView)).setLayoutManager(new LinearLayoutManager(context)); + + DataFolderAdapter adapter = new DataFolderAdapter(context, path -> { + dialog.dismiss(); + handlerFunc.accept(path); + }); ((RecyclerView) content.findViewById(R.id.recyclerView)).setAdapter(adapter); - adapter.setDialog(dialog); - dialog.show(); + + if (adapter.getItemCount() > 0) { + dialog.show(); + } else { + new AlertDialog.Builder(context) + .setTitle(R.string.error_label) + .setMessage(R.string.external_storage_error_msg) + .setPositiveButton(android.R.string.ok, null) + .show(); + } } }
\ No newline at end of file |