From 1d34ae79345e1f2f03b24375b5cd7b06e647cca3 Mon Sep 17 00:00:00 2001 From: tonymanou Date: Mon, 9 Jan 2017 20:26:11 +0100 Subject: [PATCH] Avoid storing context in adapter, static viewholder, remove useless code --- .../magisk/adapters/ModulesAdapter.java | 13 +++----- .../magisk/adapters/ReposAdapter.java | 32 +++++++------------ 2 files changed, 16 insertions(+), 29 deletions(-) diff --git a/app/src/main/java/com/topjohnwu/magisk/adapters/ModulesAdapter.java b/app/src/main/java/com/topjohnwu/magisk/adapters/ModulesAdapter.java index a7c50766c..8f315808d 100644 --- a/app/src/main/java/com/topjohnwu/magisk/adapters/ModulesAdapter.java +++ b/app/src/main/java/com/topjohnwu/magisk/adapters/ModulesAdapter.java @@ -3,11 +3,9 @@ package com.topjohnwu.magisk.adapters; import android.content.Context; import android.support.design.widget.Snackbar; import android.support.v7.widget.RecyclerView; -import android.util.DisplayMetrics; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; -import android.view.WindowManager; import android.widget.CheckBox; import android.widget.ImageView; import android.widget.TextView; @@ -25,7 +23,6 @@ import butterknife.ButterKnife; public class ModulesAdapter extends RecyclerView.Adapter { private final List mList; - private Context context; public ModulesAdapter(List list) { mList = list; @@ -34,14 +31,15 @@ public class ModulesAdapter extends RecyclerView.Adapter private List mUpdateRepos, mInstalledRepos, mOthersRepos; private HashSet expandList = new HashSet<>(); - private Context mContext; - - private int expandHeight = 0; public ReposAdapter(List update, List installed, List others) { mUpdateRepos = update; @@ -48,13 +43,12 @@ public class ReposAdapter extends RecyclerView.Adapter public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.list_item_repo, parent, false); ButterKnife.bind(this, v); - mContext = parent.getContext(); - return new ViewHolder(v); } @Override public void onBindViewHolder(final ViewHolder holder, int position) { + Context context = holder.itemView.getContext(); final Repo repo; if (position >= mUpdateRepos.size()) { position -= mUpdateRepos.size(); @@ -75,7 +69,7 @@ public class ReposAdapter extends RecyclerView.Adapter holder.versionName.setText(versionName); } if (author != null) { - holder.author.setText(mContext.getString(R.string.author, author)); + holder.author.setText(context.getString(R.string.author, author)); } if (description != null) { holder.description.setText(description); @@ -94,17 +88,17 @@ public class ReposAdapter extends RecyclerView.Adapter }); holder.changeLog.setOnClickListener(view -> { if (!TextUtils.isEmpty(repo.getLogUrl())) { - new WebWindow(mContext.getString(R.string.changelog), repo.getLogUrl(), mContext); + new WebWindow(context.getString(R.string.changelog), repo.getLogUrl(), context); } }); holder.updateImage.setOnClickListener(view -> { String filename = repo.getName() + "-" + repo.getVersion() + ".zip"; - Utils.getAlertDialogBuilder(mContext) - .setTitle(mContext.getString(R.string.repo_install_title, repo.getName())) - .setMessage(mContext.getString(R.string.repo_install_msg, filename)) + Utils.getAlertDialogBuilder(context) + .setTitle(context.getString(R.string.repo_install_title, repo.getName())) + .setMessage(context.getString(R.string.repo_install_msg, filename)) .setCancelable(true) .setPositiveButton(R.string.download_install, (dialogInterface, i) -> Utils.dlAndReceive( - mContext, + context, new RepoDlReceiver(), repo.getZipUrl(), Utils.getLegalFilename(filename))) @@ -113,12 +107,12 @@ public class ReposAdapter extends RecyclerView.Adapter }); holder.authorLink.setOnClickListener(view -> { if (!TextUtils.isEmpty(repo.getDonateUrl())) { - mContext.startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(repo.getDonateUrl()))); + context.startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(repo.getDonateUrl()))); } }); holder.supportLink.setOnClickListener(view -> { if (!TextUtils.isEmpty(repo.getSupportUrl())) { - mContext.startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(repo.getSupportUrl()))); + context.startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(repo.getSupportUrl()))); } }); } @@ -128,7 +122,7 @@ public class ReposAdapter extends RecyclerView.Adapter return mUpdateRepos.size() + mInstalledRepos.size() + mOthersRepos.size(); } - class ViewHolder extends RecyclerView.ViewHolder { + static class ViewHolder extends RecyclerView.ViewHolder { @BindView(R.id.title) TextView title; @BindView(R.id.version_name) TextView versionName; @@ -143,13 +137,11 @@ public class ReposAdapter extends RecyclerView.Adapter private ValueAnimator mAnimator; private ObjectAnimator animY2; private boolean mExpanded = false; + private static int expandHeight = 0; - public ViewHolder(View itemView) { + ViewHolder(View itemView) { super(itemView); - WindowManager windowmanager = (WindowManager) mContext.getSystemService(Context.WINDOW_SERVICE); ButterKnife.bind(this, itemView); - DisplayMetrics dimension = new DisplayMetrics(); - windowmanager.getDefaultDisplay().getMetrics(dimension); expandLayout.getViewTreeObserver().addOnPreDrawListener( new ViewTreeObserver.OnPreDrawListener() {