From 003b9459da462579b9f10af7bb4f98366aea4760 Mon Sep 17 00:00:00 2001 From: Peter Serwylo Date: Thu, 1 Dec 2016 09:39:44 +1100 Subject: [PATCH] Removed need for upcast by parameterising mIntents over ResolveInfo instead of Object Allows the type checking to be done by the compiler rather than the developer. It was possible here because there is only two types of view, and the first type will only have one or zero entries in the adapter. Thus, I've swapped the usage of a `String` type for a `null` and checked for null instead of `instanceof String`. --- .../org/fdroid/fdroid/views/ShareChooserDialog.java | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/org/fdroid/fdroid/views/ShareChooserDialog.java b/app/src/main/java/org/fdroid/fdroid/views/ShareChooserDialog.java index 7ed0ac962..ba3e59539 100644 --- a/app/src/main/java/org/fdroid/fdroid/views/ShareChooserDialog.java +++ b/app/src/main/java/org/fdroid/fdroid/views/ShareChooserDialog.java @@ -134,13 +134,13 @@ public class ShareChooserDialog extends BottomSheetDialogFragment { } mRecyclerView.setAdapter(new RecyclerView.Adapter() { - private ArrayList mIntents; + private ArrayList mIntents; RecyclerView.Adapter init(List targetedShareIntents) { mIntents = new ArrayList<>(); - if (mShowNearby) { - mIntents.add("Nearby (string contents do not matter!)"); - } + if (mShowNearby) { + mIntents.add(null); + } for (ResolveInfo ri : targetedShareIntents) { mIntents.add(ri); } @@ -149,7 +149,7 @@ public class ShareChooserDialog extends BottomSheetDialogFragment { @Override public int getItemViewType(int position) { - if (mIntents.get(position) instanceof String) + if (mIntents.get(position) == null) return VIEWTYPE_SWAP; return VIEWTYPE_INTENT; } @@ -174,7 +174,7 @@ public class ShareChooserDialog extends BottomSheetDialogFragment { }); return; } - final ResolveInfo ri = (ResolveInfo) mIntents.get(position); + final ResolveInfo ri = mIntents.get(position); holder.icon.setImageDrawable(ri.loadIcon(getContext().getPackageManager())); holder.label.setText(ri.loadLabel(getContext().getPackageManager())); holder.itemView.setOnClickListener(new View.OnClickListener() {