diff --git a/src/org/kde/kdeconnect/UserInterface/List/EntryItem.java b/src/org/kde/kdeconnect/UserInterface/List/EntryItem.java index 93b1b1ef..b522c534 100644 --- a/src/org/kde/kdeconnect/UserInterface/List/EntryItem.java +++ b/src/org/kde/kdeconnect/UserInterface/List/EntryItem.java @@ -22,20 +22,17 @@ package org.kde.kdeconnect.UserInterface.List; import android.view.LayoutInflater; import android.view.View; -import android.widget.TextView; import androidx.annotation.NonNull; -import org.kde.kdeconnect_tp.R; +import org.kde.kdeconnect_tp.databinding.ListItemEntryBinding; public class EntryItem implements ListAdapter.Item { - protected final String title; protected final String subtitle; public EntryItem(String title) { - this.title = title; - this.subtitle = null; + this(title, null); } protected EntryItem(String title, String subtitle) { @@ -45,21 +42,16 @@ public class EntryItem implements ListAdapter.Item { @NonNull @Override - public View inflateView(LayoutInflater layoutInflater) { - View v = layoutInflater.inflate(R.layout.list_item_entry, null); + public View inflateView(@NonNull LayoutInflater layoutInflater) { + final ListItemEntryBinding binding = ListItemEntryBinding.inflate(layoutInflater); - TextView titleView = v.findViewById(R.id.list_item_entry_title); - if (titleView != null) titleView.setText(title); + binding.listItemEntryTitle.setText(title); if (subtitle != null) { - TextView subtitleView = v.findViewById(R.id.list_item_entry_summary); - if (subtitleView != null) { - subtitleView.setVisibility(View.VISIBLE); - subtitleView.setText(subtitle); - } + binding.listItemEntrySummary.setVisibility(View.VISIBLE); + binding.listItemEntrySummary.setText(subtitle); } - return v; + return binding.getRoot(); } - } diff --git a/src/org/kde/kdeconnect/UserInterface/List/ListAdapter.java b/src/org/kde/kdeconnect/UserInterface/List/ListAdapter.java index 8aa57d3c..82b38997 100644 --- a/src/org/kde/kdeconnect/UserInterface/List/ListAdapter.java +++ b/src/org/kde/kdeconnect/UserInterface/List/ListAdapter.java @@ -27,30 +27,26 @@ import android.view.ViewGroup; import android.widget.ArrayAdapter; import androidx.annotation.NonNull; -import androidx.core.content.ContextCompat; import java.util.List; public class ListAdapter extends ArrayAdapter { - public interface Item { @NonNull - View inflateView(LayoutInflater layoutInflater); + View inflateView(@NonNull LayoutInflater layoutInflater); } private final List items; - private final LayoutInflater layoutInflater; public ListAdapter(Context context, List items) { super(context, 0, (List) items); this.items = items; - layoutInflater = ContextCompat.getSystemService(context, LayoutInflater.class); } @NonNull @Override public View getView(int position, View convertView, @NonNull ViewGroup parent) { final Item i = items.get(position); - return i.inflateView(layoutInflater); + return i.inflateView(LayoutInflater.from(parent.getContext())); } } diff --git a/src/org/kde/kdeconnect/UserInterface/List/PairingDeviceItem.java b/src/org/kde/kdeconnect/UserInterface/List/PairingDeviceItem.java index d2224740..345fc290 100644 --- a/src/org/kde/kdeconnect/UserInterface/List/PairingDeviceItem.java +++ b/src/org/kde/kdeconnect/UserInterface/List/PairingDeviceItem.java @@ -22,13 +22,12 @@ package org.kde.kdeconnect.UserInterface.List; import android.view.LayoutInflater; import android.view.View; -import android.widget.ImageView; -import android.widget.TextView; import androidx.annotation.NonNull; import org.kde.kdeconnect.Device; import org.kde.kdeconnect_tp.R; +import org.kde.kdeconnect_tp.databinding.ListItemWithIconEntryBinding; public class PairingDeviceItem implements ListAdapter.Item { @@ -50,36 +49,31 @@ public class PairingDeviceItem implements ListAdapter.Item { @NonNull @Override - public View inflateView(LayoutInflater layoutInflater) { - final View v = layoutInflater.inflate(R.layout.list_item_with_icon_entry, null); + public View inflateView(@NonNull LayoutInflater layoutInflater) { + final ListItemWithIconEntryBinding binding = ListItemWithIconEntryBinding.inflate(layoutInflater); - ImageView icon = v.findViewById(R.id.list_item_entry_icon); - icon.setImageDrawable(device.getIcon()); - - TextView titleView = v.findViewById(R.id.list_item_entry_title); - titleView.setText(device.getName()); + binding.listItemEntryIcon.setImageDrawable(device.getIcon()); + binding.listItemEntryTitle.setText(device.getName()); if (device.compareProtocolVersion() != 0) { - TextView summaryView = v.findViewById(R.id.list_item_entry_summary); - if (device.compareProtocolVersion() > 0) { - summaryView.setText(R.string.protocol_version_newer); - summaryView.setVisibility(View.VISIBLE); + binding.listItemEntrySummary.setText(R.string.protocol_version_newer); + binding.listItemEntrySummary.setVisibility(View.VISIBLE); } else { //FIXME: Uncoment when we decide old versions are old enough to notify the user. - summaryView.setVisibility(View.GONE); + binding.listItemEntrySummary.setVisibility(View.GONE); /* summaryView.setText(R.string.protocol_version_older); summaryView.setVisibility(View.VISIBLE); */ } } else { - v.findViewById(R.id.list_item_entry_summary).setVisibility(View.GONE); + binding.listItemEntrySummary.setVisibility(View.GONE); } - v.setOnClickListener(v1 -> callback.pairingClicked(device)); + binding.getRoot().setOnClickListener(v1 -> callback.pairingClicked(device)); - return v; + return binding.getRoot(); } } diff --git a/src/org/kde/kdeconnect/UserInterface/List/PluginItem.java b/src/org/kde/kdeconnect/UserInterface/List/PluginItem.java index 25e860bd..e4a33508 100644 --- a/src/org/kde/kdeconnect/UserInterface/List/PluginItem.java +++ b/src/org/kde/kdeconnect/UserInterface/List/PluginItem.java @@ -29,9 +29,9 @@ import androidx.annotation.NonNull; import org.kde.kdeconnect.Plugins.Plugin; import org.kde.kdeconnect_tp.R; +import org.kde.kdeconnect_tp.databinding.ListItemWithIconEntryBinding; public class PluginItem implements ListAdapter.Item { - private final Plugin plugin; private final View.OnClickListener clickListener; @@ -40,21 +40,15 @@ public class PluginItem implements ListAdapter.Item { this.clickListener = clickListener; } - @NonNull @Override - public View inflateView(final LayoutInflater layoutInflater) { - View v = layoutInflater.inflate(R.layout.list_item_with_icon_entry, null); + public View inflateView(@NonNull LayoutInflater layoutInflater) { + final ListItemWithIconEntryBinding binding = ListItemWithIconEntryBinding.inflate(layoutInflater); - TextView titleView = v.findViewById(R.id.list_item_entry_title); - titleView.setText(plugin.getActionName()); + binding.listItemEntryTitle.setText(plugin.getActionName()); + binding.listItemEntryIcon.setImageDrawable(plugin.getIcon()); + binding.getRoot().setOnClickListener(clickListener); - ImageView imageView = v.findViewById(R.id.list_item_entry_icon); - imageView.setImageDrawable(plugin.getIcon()); - - v.setOnClickListener(clickListener); - - return v; + return binding.getRoot(); } - } diff --git a/src/org/kde/kdeconnect/UserInterface/List/PluginListHeaderItem.java b/src/org/kde/kdeconnect/UserInterface/List/PluginListHeaderItem.java index 12239887..5dd16c5c 100644 --- a/src/org/kde/kdeconnect/UserInterface/List/PluginListHeaderItem.java +++ b/src/org/kde/kdeconnect/UserInterface/List/PluginListHeaderItem.java @@ -26,10 +26,9 @@ import android.widget.TextView; import androidx.annotation.NonNull; -import org.kde.kdeconnect_tp.R; +import org.kde.kdeconnect_tp.databinding.ListItemPluginHeaderBinding; public class PluginListHeaderItem implements ListAdapter.Item { - private final int text; public PluginListHeaderItem(int text) { @@ -38,12 +37,11 @@ public class PluginListHeaderItem implements ListAdapter.Item { @NonNull @Override - public View inflateView(LayoutInflater layoutInflater) { - TextView v = (TextView) layoutInflater.inflate(R.layout.list_item_plugin_header, null); - v.setText(text); - v.setOnClickListener(null); - v.setOnLongClickListener(null); - return v; + public View inflateView(@NonNull LayoutInflater layoutInflater) { + TextView textView = ListItemPluginHeaderBinding.inflate(layoutInflater).getRoot(); + textView.setText(text); + textView.setOnClickListener(null); + textView.setOnLongClickListener(null); + return textView; } - } diff --git a/src/org/kde/kdeconnect/UserInterface/List/SectionItem.java b/src/org/kde/kdeconnect/UserInterface/List/SectionItem.java index d566a239..93e4e8af 100644 --- a/src/org/kde/kdeconnect/UserInterface/List/SectionItem.java +++ b/src/org/kde/kdeconnect/UserInterface/List/SectionItem.java @@ -22,14 +22,12 @@ package org.kde.kdeconnect.UserInterface.List; import android.view.LayoutInflater; import android.view.View; -import android.widget.TextView; import androidx.annotation.NonNull; -import org.kde.kdeconnect_tp.R; +import org.kde.kdeconnect_tp.databinding.ListItemCategoryBinding; public class SectionItem implements ListAdapter.Item { - private final String title; public boolean isEmpty; @@ -40,22 +38,19 @@ public class SectionItem implements ListAdapter.Item { @NonNull @Override - public View inflateView(LayoutInflater layoutInflater) { - - View v = layoutInflater.inflate(R.layout.list_item_category, null); + public View inflateView(@NonNull LayoutInflater layoutInflater) { + final ListItemCategoryBinding binding = ListItemCategoryBinding.inflate(layoutInflater); //Make it not selectable - v.setOnClickListener(null); - v.setOnLongClickListener(null); + binding.getRoot().setOnClickListener(null); + binding.getRoot().setOnLongClickListener(null); - TextView sectionView = v.findViewById(R.id.list_item_category_text); - sectionView.setText(title); + binding.listItemCategoryText.setText(title); if (isEmpty) { - v.findViewById(R.id.list_item_category_empty_placeholder).setVisibility(View.VISIBLE); + binding.listItemCategoryEmptyPlaceholder.setVisibility(View.VISIBLE); } - return v; - + return binding.getRoot(); } } diff --git a/src/org/kde/kdeconnect/UserInterface/List/SmallEntryItem.java b/src/org/kde/kdeconnect/UserInterface/List/SmallEntryItem.java index 01b6a668..0075f34c 100644 --- a/src/org/kde/kdeconnect/UserInterface/List/SmallEntryItem.java +++ b/src/org/kde/kdeconnect/UserInterface/List/SmallEntryItem.java @@ -30,15 +30,9 @@ import androidx.annotation.NonNull; import androidx.core.content.ContextCompat; public class SmallEntryItem implements ListAdapter.Item { - private final String title; private final View.OnClickListener clickListener; - public SmallEntryItem(String title) { - this.title = title; - this.clickListener = null; - } - SmallEntryItem(String title, View.OnClickListener clickListener) { this.title = title; this.clickListener = clickListener; @@ -46,14 +40,10 @@ public class SmallEntryItem implements ListAdapter.Item { @NonNull @Override - public View inflateView(LayoutInflater layoutInflater) { + public View inflateView(@NonNull LayoutInflater layoutInflater) { View v = layoutInflater.inflate(android.R.layout.simple_list_item_1, null); - v.setPadding( - ((int) (28 * layoutInflater.getContext().getResources().getDisplayMetrics().density)), - 0, - ((int) (28 * layoutInflater.getContext().getResources().getDisplayMetrics().density)), - 0 - ); + final int padding = (int) (28 * layoutInflater.getContext().getResources().getDisplayMetrics().density); + v.setPadding(padding, 0, padding, 0); TextView titleView = v.findViewById(android.R.id.text1); if (titleView != null) { @@ -66,5 +56,4 @@ public class SmallEntryItem implements ListAdapter.Item { return v; } - }