Minor simplification to view binding for app details.
Instead of casting to more specific view holders, all to call the similarly named/behaved "bindModel()" method, push this to a base class.
This commit is contained in:
parent
5739706cdd
commit
68e0f16b7c
@ -94,8 +94,8 @@ public class AppDetailsRecyclerViewAdapter
|
|||||||
private App app;
|
private App app;
|
||||||
private final AppDetailsRecyclerViewAdapterCallbacks callbacks;
|
private final AppDetailsRecyclerViewAdapterCallbacks callbacks;
|
||||||
private RecyclerView recyclerView;
|
private RecyclerView recyclerView;
|
||||||
private ArrayList<Object> items;
|
private List<Object> items;
|
||||||
private ArrayList<Apk> versions;
|
private List<Apk> versions;
|
||||||
private boolean showVersions;
|
private boolean showVersions;
|
||||||
|
|
||||||
private HeaderViewHolder headerView;
|
private HeaderViewHolder headerView;
|
||||||
@ -244,21 +244,16 @@ public class AppDetailsRecyclerViewAdapter
|
|||||||
headerView = header;
|
headerView = header;
|
||||||
header.bindModel();
|
header.bindModel();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
// These don't have any specific requirements, they all get their state from the outer class.
|
||||||
case VIEWTYPE_SCREENSHOTS:
|
case VIEWTYPE_SCREENSHOTS:
|
||||||
((ScreenShotsViewHolder) holder).bindModel();
|
|
||||||
break;
|
|
||||||
case VIEWTYPE_DONATE:
|
case VIEWTYPE_DONATE:
|
||||||
((DonateViewHolder) holder).bindModel();
|
|
||||||
break;
|
|
||||||
case VIEWTYPE_LINKS:
|
case VIEWTYPE_LINKS:
|
||||||
((LinksViewHolder) holder).bindModel();
|
|
||||||
break;
|
|
||||||
case VIEWTYPE_PERMISSIONS:
|
case VIEWTYPE_PERMISSIONS:
|
||||||
((PermissionsViewHolder) holder).bindModel();
|
|
||||||
break;
|
|
||||||
case VIEWTYPE_VERSIONS:
|
case VIEWTYPE_VERSIONS:
|
||||||
((VersionsViewHolder) holder).bindModel();
|
((AppDetailsViewHolder) holder).bindModel();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case VIEWTYPE_VERSION:
|
case VIEWTYPE_VERSION:
|
||||||
final Apk apk = (Apk) items.get(position);
|
final Apk apk = (Apk) items.get(position);
|
||||||
((VersionViewHolder) holder).bindModel(apk);
|
((VersionViewHolder) holder).bindModel(apk);
|
||||||
@ -562,7 +557,15 @@ public class AppDetailsRecyclerViewAdapter
|
|||||||
super.onDetachedFromRecyclerView(recyclerView);
|
super.onDetachedFromRecyclerView(recyclerView);
|
||||||
}
|
}
|
||||||
|
|
||||||
private class ScreenShotsViewHolder extends RecyclerView.ViewHolder {
|
private abstract class AppDetailsViewHolder extends RecyclerView.ViewHolder {
|
||||||
|
AppDetailsViewHolder(View itemView) {
|
||||||
|
super(itemView);
|
||||||
|
}
|
||||||
|
|
||||||
|
public abstract void bindModel();
|
||||||
|
}
|
||||||
|
|
||||||
|
private class ScreenShotsViewHolder extends AppDetailsViewHolder {
|
||||||
final RecyclerView recyclerView;
|
final RecyclerView recyclerView;
|
||||||
LinearLayoutManagerSnapHelper snapHelper;
|
LinearLayoutManagerSnapHelper snapHelper;
|
||||||
|
|
||||||
@ -571,6 +574,7 @@ public class AppDetailsRecyclerViewAdapter
|
|||||||
recyclerView = (RecyclerView) view.findViewById(R.id.screenshots);
|
recyclerView = (RecyclerView) view.findViewById(R.id.screenshots);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public void bindModel() {
|
public void bindModel() {
|
||||||
LinearLayoutManager lm = new LinearLayoutManager(context, LinearLayoutManager.HORIZONTAL, false);
|
LinearLayoutManager lm = new LinearLayoutManager(context, LinearLayoutManager.HORIZONTAL, false);
|
||||||
recyclerView.setLayoutManager(lm);
|
recyclerView.setLayoutManager(lm);
|
||||||
@ -586,7 +590,7 @@ public class AppDetailsRecyclerViewAdapter
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private class DonateViewHolder extends RecyclerView.ViewHolder {
|
private class DonateViewHolder extends AppDetailsViewHolder {
|
||||||
final TextView donateHeading;
|
final TextView donateHeading;
|
||||||
final GridLayout donationOptionsLayout;
|
final GridLayout donationOptionsLayout;
|
||||||
|
|
||||||
@ -596,6 +600,7 @@ public class AppDetailsRecyclerViewAdapter
|
|||||||
donationOptionsLayout = (GridLayout) view.findViewById(R.id.donation_options);
|
donationOptionsLayout = (GridLayout) view.findViewById(R.id.donation_options);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public void bindModel() {
|
public void bindModel() {
|
||||||
if (TextUtils.isEmpty(app.authorName)) {
|
if (TextUtils.isEmpty(app.authorName)) {
|
||||||
donateHeading.setText(context.getString(R.string.app_details_donate_prompt_unknown_author, app.name));
|
donateHeading.setText(context.getString(R.string.app_details_donate_prompt_unknown_author, app.name));
|
||||||
@ -640,7 +645,7 @@ public class AppDetailsRecyclerViewAdapter
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private abstract class ExpandableLinearLayoutViewHolder extends RecyclerView.ViewHolder {
|
private abstract class ExpandableLinearLayoutViewHolder extends AppDetailsViewHolder {
|
||||||
final TextView headerView;
|
final TextView headerView;
|
||||||
final LinearLayout contentView;
|
final LinearLayout contentView;
|
||||||
|
|
||||||
@ -667,6 +672,7 @@ public class AppDetailsRecyclerViewAdapter
|
|||||||
super(view);
|
super(view);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public void bindModel() {
|
public void bindModel() {
|
||||||
itemView.setOnClickListener(new View.OnClickListener() {
|
itemView.setOnClickListener(new View.OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
@ -690,6 +696,7 @@ public class AppDetailsRecyclerViewAdapter
|
|||||||
super(view);
|
super(view);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public void bindModel() {
|
public void bindModel() {
|
||||||
itemView.setOnClickListener(new View.OnClickListener() {
|
itemView.setOnClickListener(new View.OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
@ -721,6 +728,7 @@ public class AppDetailsRecyclerViewAdapter
|
|||||||
super(view);
|
super(view);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public void bindModel() {
|
public void bindModel() {
|
||||||
itemView.setOnClickListener(new View.OnClickListener() {
|
itemView.setOnClickListener(new View.OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
|
Loading…
x
Reference in New Issue
Block a user