diff options
author | ByteHamster <ByteHamster@users.noreply.github.com> | 2024-03-23 09:40:40 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-03-23 09:40:40 +0100 |
commit | f20ce1fc690788273bb779663a4f3211f47a0973 (patch) | |
tree | a1192a00bc1b5153d143fa579b8c6f977111c847 /app/src/main/java/de/danoeh/antennapod/adapter | |
parent | 376c83d200859ef562d6e3de02602ef18de3e7de (diff) | |
download | AntennaPod-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.java | 139 | ||||
-rw-r--r-- | app/src/main/java/de/danoeh/antennapod/adapter/SimpleIconListAdapter.java | 59 |
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; - } - } -} |