summaryrefslogtreecommitdiff
path: root/app/src/main/java/de/danoeh/antennapod/adapter/DataFolderAdapter.java
diff options
context:
space:
mode:
authorByteHamster <ByteHamster@users.noreply.github.com>2024-03-23 09:40:40 +0100
committerGitHub <noreply@github.com>2024-03-23 09:40:40 +0100
commitf20ce1fc690788273bb779663a4f3211f47a0973 (patch)
treea1192a00bc1b5153d143fa579b8c6f977111c847 /app/src/main/java/de/danoeh/antennapod/adapter/DataFolderAdapter.java
parent376c83d200859ef562d6e3de02602ef18de3e7de (diff)
downloadAntennaPod-f20ce1fc690788273bb779663a4f3211f47a0973.zip
Move first batch of preferences code to :ui:preferences (#7010)
Diffstat (limited to 'app/src/main/java/de/danoeh/antennapod/adapter/DataFolderAdapter.java')
-rw-r--r--app/src/main/java/de/danoeh/antennapod/adapter/DataFolderAdapter.java139
1 files changed, 0 insertions, 139 deletions
diff --git a/app/src/main/java/de/danoeh/antennapod/adapter/DataFolderAdapter.java b/app/src/main/java/de/danoeh/antennapod/adapter/DataFolderAdapter.java
deleted file mode 100644
index 3760c97ba..000000000
--- a/app/src/main/java/de/danoeh/antennapod/adapter/DataFolderAdapter.java
+++ /dev/null
@@ -1,139 +0,0 @@
-package de.danoeh.antennapod.adapter;
-
-import android.content.Context;
-import android.text.format.Formatter;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.ProgressBar;
-import android.widget.RadioButton;
-import android.widget.TextView;
-import androidx.annotation.NonNull;
-import androidx.core.util.Consumer;
-import androidx.recyclerview.widget.RecyclerView;
-import de.danoeh.antennapod.R;
-import de.danoeh.antennapod.storage.preferences.UserPreferences;
-import de.danoeh.antennapod.core.util.StorageUtils;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.List;
-
-public class DataFolderAdapter extends RecyclerView.Adapter<DataFolderAdapter.ViewHolder> {
- private final Consumer<String> selectionHandler;
- private final String currentPath;
- private final List<StoragePath> entries;
- private final String freeSpaceString;
-
- public DataFolderAdapter(Context context, @NonNull Consumer<String> selectionHandler) {
- this.entries = getStorageEntries(context);
- this.currentPath = getCurrentPath();
- this.selectionHandler = selectionHandler;
- this.freeSpaceString = context.getString(R.string.choose_data_directory_available_space);
- }
-
- @NonNull
- @Override
- public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
- LayoutInflater inflater = LayoutInflater.from(parent.getContext());
- View entryView = inflater.inflate(R.layout.choose_data_folder_dialog_entry, parent, false);
- return new ViewHolder(entryView);
- }
-
- @Override
- public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
- StoragePath storagePath = entries.get(position);
- Context context = holder.root.getContext();
- String freeSpace = Formatter.formatShortFileSize(context, storagePath.getAvailableSpace());
- String totalSpace = Formatter.formatShortFileSize(context, storagePath.getTotalSpace());
-
- holder.path.setText(storagePath.getShortPath());
- holder.size.setText(String.format(freeSpaceString, freeSpace, totalSpace));
- holder.progressBar.setProgress(storagePath.getUsagePercentage());
- View.OnClickListener selectListener = v -> selectionHandler.accept(storagePath.getFullPath());
- holder.root.setOnClickListener(selectListener);
- holder.radioButton.setOnClickListener(selectListener);
-
- if (storagePath.getFullPath().equals(currentPath)) {
- holder.radioButton.toggle();
- }
- }
-
- @Override
- public int getItemCount() {
- return entries.size();
- }
-
- private String getCurrentPath() {
- File dataFolder = UserPreferences.getDataFolder(null);
- if (dataFolder != null) {
- return dataFolder.getAbsolutePath();
- }
- return null;
- }
-
- private List<StoragePath> getStorageEntries(Context context) {
- File[] mediaDirs = context.getExternalFilesDirs(null);
- final List<StoragePath> entries = new ArrayList<>(mediaDirs.length);
- for (File dir : mediaDirs) {
- 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 isWritable(File dir) {
- return dir != null && dir.exists() && dir.canRead() && dir.canWrite();
- }
-
- static class ViewHolder extends RecyclerView.ViewHolder {
- private final View root;
- private final TextView path;
- private final TextView size;
- private final RadioButton radioButton;
- private final ProgressBar progressBar;
-
- ViewHolder(View itemView) {
- super(itemView);
- root = itemView.findViewById(R.id.root);
- path = itemView.findViewById(R.id.path);
- size = itemView.findViewById(R.id.size);
- radioButton = itemView.findViewById(R.id.radio_button);
- progressBar = itemView.findViewById(R.id.used_space);
- }
- }
-
- static class StoragePath {
- private final String path;
-
- StoragePath(String path) {
- this.path = path;
- }
-
- String getShortPath() {
- int prefixIndex = path.indexOf("Android");
- return (prefixIndex > 0) ? path.substring(0, prefixIndex) : path;
- }
-
- String getFullPath() {
- return this.path;
- }
-
- long getAvailableSpace() {
- return StorageUtils.getFreeSpaceAvailable(path);
- }
-
- long getTotalSpace() {
- return StorageUtils.getTotalSpaceAvailable(path);
- }
-
- int getUsagePercentage() {
- return 100 - (int) (100 * getAvailableSpace() / (float) getTotalSpace());
- }
- }
-} \ No newline at end of file