summaryrefslogtreecommitdiff
path: root/app/src/main/java/de/danoeh/antennapod/adapter
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
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')
-rw-r--r--app/src/main/java/de/danoeh/antennapod/adapter/DataFolderAdapter.java139
-rw-r--r--app/src/main/java/de/danoeh/antennapod/adapter/SimpleIconListAdapter.java59
2 files changed, 0 insertions, 198 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
diff --git a/app/src/main/java/de/danoeh/antennapod/adapter/SimpleIconListAdapter.java b/app/src/main/java/de/danoeh/antennapod/adapter/SimpleIconListAdapter.java
deleted file mode 100644
index 10bda4efa..000000000
--- a/app/src/main/java/de/danoeh/antennapod/adapter/SimpleIconListAdapter.java
+++ /dev/null
@@ -1,59 +0,0 @@
-package de.danoeh.antennapod.adapter;
-
-import android.content.Context;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.ArrayAdapter;
-import android.widget.ImageView;
-import android.widget.TextView;
-import com.bumptech.glide.Glide;
-import com.bumptech.glide.load.engine.DiskCacheStrategy;
-import com.bumptech.glide.request.RequestOptions;
-import de.danoeh.antennapod.R;
-
-import java.util.List;
-
-/**
- * Displays a list of items that have a subtitle and an icon.
- */
-public class SimpleIconListAdapter<T extends SimpleIconListAdapter.ListItem> extends ArrayAdapter<T> {
- private final Context context;
- private final List<T> listItems;
-
- public SimpleIconListAdapter(Context context, List<T> listItems) {
- super(context, R.layout.simple_icon_list_item, listItems);
- this.context = context;
- this.listItems = listItems;
- }
-
- @Override
- public View getView(int position, View view, ViewGroup parent) {
- if (view == null) {
- view = View.inflate(context, R.layout.simple_icon_list_item, null);
- }
-
- ListItem item = listItems.get(position);
- ((TextView) view.findViewById(R.id.title)).setText(item.title);
- ((TextView) view.findViewById(R.id.subtitle)).setText(item.subtitle);
- Glide.with(context)
- .load(item.imageUrl)
- .apply(new RequestOptions()
- .diskCacheStrategy(DiskCacheStrategy.NONE)
- .fitCenter()
- .dontAnimate())
- .into(((ImageView) view.findViewById(R.id.icon)));
- return view;
- }
-
- public static class ListItem {
- public final String title;
- public final String subtitle;
- public final String imageUrl;
-
- public ListItem(String title, String subtitle, String imageUrl) {
- this.title = title;
- this.subtitle = subtitle;
- this.imageUrl = imageUrl;
- }
- }
-}