mirror of
https://github.com/topjohnwu/Magisk.git
synced 2025-05-16 12:58:50 +00:00
Avoid storing context in adapter, static viewholder, remove useless code
This commit is contained in:
parent
2cabb2666b
commit
1d34ae7934
@ -3,11 +3,9 @@ package com.topjohnwu.magisk.adapters;
|
|||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.support.design.widget.Snackbar;
|
import android.support.design.widget.Snackbar;
|
||||||
import android.support.v7.widget.RecyclerView;
|
import android.support.v7.widget.RecyclerView;
|
||||||
import android.util.DisplayMetrics;
|
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
import android.view.WindowManager;
|
|
||||||
import android.widget.CheckBox;
|
import android.widget.CheckBox;
|
||||||
import android.widget.ImageView;
|
import android.widget.ImageView;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
@ -25,7 +23,6 @@ import butterknife.ButterKnife;
|
|||||||
public class ModulesAdapter extends RecyclerView.Adapter<ModulesAdapter.ViewHolder> {
|
public class ModulesAdapter extends RecyclerView.Adapter<ModulesAdapter.ViewHolder> {
|
||||||
|
|
||||||
private final List<Module> mList;
|
private final List<Module> mList;
|
||||||
private Context context;
|
|
||||||
|
|
||||||
public ModulesAdapter(List<Module> list) {
|
public ModulesAdapter(List<Module> list) {
|
||||||
mList = list;
|
mList = list;
|
||||||
@ -34,14 +31,15 @@ public class ModulesAdapter extends RecyclerView.Adapter<ModulesAdapter.ViewHold
|
|||||||
@Override
|
@Override
|
||||||
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
|
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
|
||||||
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.list_item_module, parent, false);
|
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.list_item_module, parent, false);
|
||||||
context = parent.getContext();
|
|
||||||
ButterKnife.bind(this, view);
|
ButterKnife.bind(this, view);
|
||||||
return new ViewHolder(view);
|
return new ViewHolder(view);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onBindViewHolder(final ViewHolder holder, int position) {
|
public void onBindViewHolder(final ViewHolder holder, int position) {
|
||||||
|
Context context = holder.itemView.getContext();
|
||||||
final Module module = mList.get(position);
|
final Module module = mList.get(position);
|
||||||
|
|
||||||
holder.title.setText(module.getName());
|
holder.title.setText(module.getName());
|
||||||
String author = module.getAuthor();
|
String author = module.getAuthor();
|
||||||
String versionName = module.getVersion();
|
String versionName = module.getVersion();
|
||||||
@ -144,7 +142,7 @@ public class ModulesAdapter extends RecyclerView.Adapter<ModulesAdapter.ViewHold
|
|||||||
return mList.size();
|
return mList.size();
|
||||||
}
|
}
|
||||||
|
|
||||||
class ViewHolder extends RecyclerView.ViewHolder {
|
static class ViewHolder extends RecyclerView.ViewHolder {
|
||||||
|
|
||||||
@BindView(R.id.title) TextView title;
|
@BindView(R.id.title) TextView title;
|
||||||
@BindView(R.id.version_name) TextView versionName;
|
@BindView(R.id.version_name) TextView versionName;
|
||||||
@ -154,12 +152,9 @@ public class ModulesAdapter extends RecyclerView.Adapter<ModulesAdapter.ViewHold
|
|||||||
@BindView(R.id.author) TextView author;
|
@BindView(R.id.author) TextView author;
|
||||||
@BindView(R.id.delete) ImageView delete;
|
@BindView(R.id.delete) ImageView delete;
|
||||||
|
|
||||||
public ViewHolder(View itemView) {
|
ViewHolder(View itemView) {
|
||||||
super(itemView);
|
super(itemView);
|
||||||
WindowManager windowmanager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
|
|
||||||
ButterKnife.bind(this, itemView);
|
ButterKnife.bind(this, itemView);
|
||||||
DisplayMetrics dimension = new DisplayMetrics();
|
|
||||||
windowmanager.getDefaultDisplay().getMetrics(dimension);
|
|
||||||
|
|
||||||
if (!Shell.rootAccess()) {
|
if (!Shell.rootAccess()) {
|
||||||
checkBox.setEnabled(false);
|
checkBox.setEnabled(false);
|
||||||
|
@ -8,12 +8,10 @@ import android.content.Intent;
|
|||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
import android.support.v7.widget.RecyclerView;
|
import android.support.v7.widget.RecyclerView;
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
import android.util.DisplayMetrics;
|
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
import android.view.ViewTreeObserver;
|
import android.view.ViewTreeObserver;
|
||||||
import android.view.WindowManager;
|
|
||||||
import android.widget.ImageView;
|
import android.widget.ImageView;
|
||||||
import android.widget.LinearLayout;
|
import android.widget.LinearLayout;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
@ -34,9 +32,6 @@ public class ReposAdapter extends RecyclerView.Adapter<ReposAdapter.ViewHolder>
|
|||||||
|
|
||||||
private List<Repo> mUpdateRepos, mInstalledRepos, mOthersRepos;
|
private List<Repo> mUpdateRepos, mInstalledRepos, mOthersRepos;
|
||||||
private HashSet<Repo> expandList = new HashSet<>();
|
private HashSet<Repo> expandList = new HashSet<>();
|
||||||
private Context mContext;
|
|
||||||
|
|
||||||
private int expandHeight = 0;
|
|
||||||
|
|
||||||
public ReposAdapter(List<Repo> update, List<Repo> installed, List<Repo> others) {
|
public ReposAdapter(List<Repo> update, List<Repo> installed, List<Repo> others) {
|
||||||
mUpdateRepos = update;
|
mUpdateRepos = update;
|
||||||
@ -48,13 +43,12 @@ public class ReposAdapter extends RecyclerView.Adapter<ReposAdapter.ViewHolder>
|
|||||||
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
|
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
|
||||||
View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.list_item_repo, parent, false);
|
View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.list_item_repo, parent, false);
|
||||||
ButterKnife.bind(this, v);
|
ButterKnife.bind(this, v);
|
||||||
mContext = parent.getContext();
|
|
||||||
|
|
||||||
return new ViewHolder(v);
|
return new ViewHolder(v);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onBindViewHolder(final ViewHolder holder, int position) {
|
public void onBindViewHolder(final ViewHolder holder, int position) {
|
||||||
|
Context context = holder.itemView.getContext();
|
||||||
final Repo repo;
|
final Repo repo;
|
||||||
if (position >= mUpdateRepos.size()) {
|
if (position >= mUpdateRepos.size()) {
|
||||||
position -= mUpdateRepos.size();
|
position -= mUpdateRepos.size();
|
||||||
@ -75,7 +69,7 @@ public class ReposAdapter extends RecyclerView.Adapter<ReposAdapter.ViewHolder>
|
|||||||
holder.versionName.setText(versionName);
|
holder.versionName.setText(versionName);
|
||||||
}
|
}
|
||||||
if (author != null) {
|
if (author != null) {
|
||||||
holder.author.setText(mContext.getString(R.string.author, author));
|
holder.author.setText(context.getString(R.string.author, author));
|
||||||
}
|
}
|
||||||
if (description != null) {
|
if (description != null) {
|
||||||
holder.description.setText(description);
|
holder.description.setText(description);
|
||||||
@ -94,17 +88,17 @@ public class ReposAdapter extends RecyclerView.Adapter<ReposAdapter.ViewHolder>
|
|||||||
});
|
});
|
||||||
holder.changeLog.setOnClickListener(view -> {
|
holder.changeLog.setOnClickListener(view -> {
|
||||||
if (!TextUtils.isEmpty(repo.getLogUrl())) {
|
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 -> {
|
holder.updateImage.setOnClickListener(view -> {
|
||||||
String filename = repo.getName() + "-" + repo.getVersion() + ".zip";
|
String filename = repo.getName() + "-" + repo.getVersion() + ".zip";
|
||||||
Utils.getAlertDialogBuilder(mContext)
|
Utils.getAlertDialogBuilder(context)
|
||||||
.setTitle(mContext.getString(R.string.repo_install_title, repo.getName()))
|
.setTitle(context.getString(R.string.repo_install_title, repo.getName()))
|
||||||
.setMessage(mContext.getString(R.string.repo_install_msg, filename))
|
.setMessage(context.getString(R.string.repo_install_msg, filename))
|
||||||
.setCancelable(true)
|
.setCancelable(true)
|
||||||
.setPositiveButton(R.string.download_install, (dialogInterface, i) -> Utils.dlAndReceive(
|
.setPositiveButton(R.string.download_install, (dialogInterface, i) -> Utils.dlAndReceive(
|
||||||
mContext,
|
context,
|
||||||
new RepoDlReceiver(),
|
new RepoDlReceiver(),
|
||||||
repo.getZipUrl(),
|
repo.getZipUrl(),
|
||||||
Utils.getLegalFilename(filename)))
|
Utils.getLegalFilename(filename)))
|
||||||
@ -113,12 +107,12 @@ public class ReposAdapter extends RecyclerView.Adapter<ReposAdapter.ViewHolder>
|
|||||||
});
|
});
|
||||||
holder.authorLink.setOnClickListener(view -> {
|
holder.authorLink.setOnClickListener(view -> {
|
||||||
if (!TextUtils.isEmpty(repo.getDonateUrl())) {
|
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 -> {
|
holder.supportLink.setOnClickListener(view -> {
|
||||||
if (!TextUtils.isEmpty(repo.getSupportUrl())) {
|
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<ReposAdapter.ViewHolder>
|
|||||||
return mUpdateRepos.size() + mInstalledRepos.size() + mOthersRepos.size();
|
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.title) TextView title;
|
||||||
@BindView(R.id.version_name) TextView versionName;
|
@BindView(R.id.version_name) TextView versionName;
|
||||||
@ -143,13 +137,11 @@ public class ReposAdapter extends RecyclerView.Adapter<ReposAdapter.ViewHolder>
|
|||||||
private ValueAnimator mAnimator;
|
private ValueAnimator mAnimator;
|
||||||
private ObjectAnimator animY2;
|
private ObjectAnimator animY2;
|
||||||
private boolean mExpanded = false;
|
private boolean mExpanded = false;
|
||||||
|
private static int expandHeight = 0;
|
||||||
|
|
||||||
public ViewHolder(View itemView) {
|
ViewHolder(View itemView) {
|
||||||
super(itemView);
|
super(itemView);
|
||||||
WindowManager windowmanager = (WindowManager) mContext.getSystemService(Context.WINDOW_SERVICE);
|
|
||||||
ButterKnife.bind(this, itemView);
|
ButterKnife.bind(this, itemView);
|
||||||
DisplayMetrics dimension = new DisplayMetrics();
|
|
||||||
windowmanager.getDefaultDisplay().getMetrics(dimension);
|
|
||||||
expandLayout.getViewTreeObserver().addOnPreDrawListener(
|
expandLayout.getViewTreeObserver().addOnPreDrawListener(
|
||||||
new ViewTreeObserver.OnPreDrawListener() {
|
new ViewTreeObserver.OnPreDrawListener() {
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user