From a7f6af28de52d2023fad84a68634c8ee14e3c597 Mon Sep 17 00:00:00 2001 From: ByteHamster Date: Thu, 2 Jul 2020 20:19:14 +0200 Subject: Adding internal storage if no external exists --- .../antennapod/adapter/DataFolderAdapter.java | 26 +++++++++++++--------- 1 file changed, 16 insertions(+), 10 deletions(-) (limited to 'app/src/main/java/de/danoeh/antennapod/adapter/DataFolderAdapter.java') diff --git a/app/src/main/java/de/danoeh/antennapod/adapter/DataFolderAdapter.java b/app/src/main/java/de/danoeh/antennapod/adapter/DataFolderAdapter.java index 64560df56..2c35d5a64 100644 --- a/app/src/main/java/de/danoeh/antennapod/adapter/DataFolderAdapter.java +++ b/app/src/main/java/de/danoeh/antennapod/adapter/DataFolderAdapter.java @@ -78,7 +78,9 @@ public class DataFolderAdapter extends RecyclerView.Adapter entries = new ArrayList<>(mediaDirs.length); for (File dir : mediaDirs) { - if (isNotWritable(dir)) continue; - + if (!isWritable(dir)) { + continue; + } entries.add(new StoragePath(dir.getAbsolutePath())); } + if (entries.isEmpty() && isWritable(context.getFilesDir())) { + entries.add(new StoragePath(context.getFilesDir().getAbsolutePath())); + } return entries; } - private boolean isNotWritable(File dir) { - return dir == null || !dir.exists() || !dir.canRead() || !dir.canWrite(); + private boolean isWritable(File dir) { + return dir != null && dir.exists() && dir.canRead() && dir.canWrite(); } private void selectAndDismiss(StoragePath storagePath) { @@ -103,11 +109,11 @@ public class DataFolderAdapter extends RecyclerView.Adapter Date: Thu, 2 Jul 2020 22:44:50 +0200 Subject: Allow to select new folder even if current folder is null --- .../main/java/de/danoeh/antennapod/adapter/DataFolderAdapter.java | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) (limited to 'app/src/main/java/de/danoeh/antennapod/adapter/DataFolderAdapter.java') diff --git a/app/src/main/java/de/danoeh/antennapod/adapter/DataFolderAdapter.java b/app/src/main/java/de/danoeh/antennapod/adapter/DataFolderAdapter.java index 2c35d5a64..5848d37f7 100644 --- a/app/src/main/java/de/danoeh/antennapod/adapter/DataFolderAdapter.java +++ b/app/src/main/java/de/danoeh/antennapod/adapter/DataFolderAdapter.java @@ -65,11 +65,7 @@ public class DataFolderAdapter extends RecyclerView.Adapter Date: Thu, 2 Jul 2020 23:01:03 +0200 Subject: Removed custom Consumer implementation and decoupled adapter from dialog --- .../antennapod/adapter/DataFolderAdapter.java | 32 +++++++--------------- 1 file changed, 10 insertions(+), 22 deletions(-) (limited to 'app/src/main/java/de/danoeh/antennapod/adapter/DataFolderAdapter.java') diff --git a/app/src/main/java/de/danoeh/antennapod/adapter/DataFolderAdapter.java b/app/src/main/java/de/danoeh/antennapod/adapter/DataFolderAdapter.java index 5848d37f7..bcad1b5a4 100644 --- a/app/src/main/java/de/danoeh/antennapod/adapter/DataFolderAdapter.java +++ b/app/src/main/java/de/danoeh/antennapod/adapter/DataFolderAdapter.java @@ -1,6 +1,5 @@ package de.danoeh.antennapod.adapter; -import android.app.Dialog; import android.content.Context; import android.text.format.Formatter; import android.view.LayoutInflater; @@ -9,29 +8,25 @@ import android.view.ViewGroup; import android.widget.ProgressBar; import android.widget.RadioButton; import android.widget.TextView; - import androidx.annotation.NonNull; import androidx.core.content.ContextCompat; +import androidx.core.util.Consumer; import androidx.recyclerview.widget.RecyclerView; - -import java.io.File; -import java.util.ArrayList; -import java.util.List; - import de.danoeh.antennapod.R; import de.danoeh.antennapod.core.preferences.UserPreferences; import de.danoeh.antennapod.core.util.StorageUtils; -import de.danoeh.antennapod.dialog.ChooseDataFolderDialog; +import java.io.File; +import java.util.ArrayList; +import java.util.List; public class DataFolderAdapter extends RecyclerView.Adapter { - private final ChooseDataFolderDialog.RunnableWithString selectionHandler; + private final Consumer selectionHandler; private final String currentPath; private final List entries; private final String freeSpaceString; - private Dialog dialog; - public DataFolderAdapter(Context context, ChooseDataFolderDialog.RunnableWithString selectionHandler) { + public DataFolderAdapter(Context context, @NonNull Consumer selectionHandler) { this.entries = getStorageEntries(context); this.currentPath = getCurrentPath(); this.selectionHandler = selectionHandler; @@ -56,8 +51,10 @@ public class DataFolderAdapter extends RecyclerView.Adapter selectAndDismiss(storagePath)); - holder.radioButton.setOnClickListener((View v) -> selectAndDismiss(storagePath)); + View.OnClickListener selectListener = v -> selectionHandler.accept(storagePath.getFullPath()); + holder.root.setOnClickListener(selectListener); + holder.radioButton.setOnClickListener(selectListener); + if (storagePath.getFullPath().equals(currentPath)) { holder.radioButton.toggle(); } @@ -68,10 +65,6 @@ public class DataFolderAdapter extends RecyclerView.Adapter