mirror of
https://github.com/topjohnwu/Magisk.git
synced 2025-02-17 21:18:33 +00:00
Extract ExpandableView code into interface
This commit is contained in:
parent
439c7118f1
commit
cc81cd446b
@ -14,7 +14,6 @@ import android.widget.TextView;
|
|||||||
import com.topjohnwu.magisk.asyncs.FlashZip;
|
import com.topjohnwu.magisk.asyncs.FlashZip;
|
||||||
import com.topjohnwu.magisk.components.Activity;
|
import com.topjohnwu.magisk.components.Activity;
|
||||||
import com.topjohnwu.magisk.utils.AdaptiveList;
|
import com.topjohnwu.magisk.utils.AdaptiveList;
|
||||||
import com.topjohnwu.magisk.utils.Shell;
|
|
||||||
|
|
||||||
import butterknife.BindView;
|
import butterknife.BindView;
|
||||||
import butterknife.ButterKnife;
|
import butterknife.ButterKnife;
|
||||||
|
@ -1,7 +1,5 @@
|
|||||||
package com.topjohnwu.magisk;
|
package com.topjohnwu.magisk;
|
||||||
|
|
||||||
import android.animation.Animator;
|
|
||||||
import android.animation.ValueAnimator;
|
|
||||||
import android.app.NotificationManager;
|
import android.app.NotificationManager;
|
||||||
import android.app.ProgressDialog;
|
import android.app.ProgressDialog;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
@ -16,7 +14,6 @@ import android.support.v7.widget.CardView;
|
|||||||
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.widget.ArrayAdapter;
|
import android.widget.ArrayAdapter;
|
||||||
import android.widget.Button;
|
import android.widget.Button;
|
||||||
import android.widget.CheckBox;
|
import android.widget.CheckBox;
|
||||||
@ -28,6 +25,7 @@ import android.widget.TextView;
|
|||||||
|
|
||||||
import com.topjohnwu.magisk.asyncs.CheckUpdates;
|
import com.topjohnwu.magisk.asyncs.CheckUpdates;
|
||||||
import com.topjohnwu.magisk.components.AlertDialogBuilder;
|
import com.topjohnwu.magisk.components.AlertDialogBuilder;
|
||||||
|
import com.topjohnwu.magisk.components.ExpandableView;
|
||||||
import com.topjohnwu.magisk.components.Fragment;
|
import com.topjohnwu.magisk.components.Fragment;
|
||||||
import com.topjohnwu.magisk.components.SnackbarMaker;
|
import com.topjohnwu.magisk.components.SnackbarMaker;
|
||||||
import com.topjohnwu.magisk.receivers.DownloadReceiver;
|
import com.topjohnwu.magisk.receivers.DownloadReceiver;
|
||||||
@ -49,15 +47,14 @@ import butterknife.OnClick;
|
|||||||
import butterknife.Unbinder;
|
import butterknife.Unbinder;
|
||||||
|
|
||||||
public class MagiskFragment extends Fragment
|
public class MagiskFragment extends Fragment
|
||||||
implements Topic.Subscriber, SwipeRefreshLayout.OnRefreshListener {
|
implements Topic.Subscriber, SwipeRefreshLayout.OnRefreshListener, ExpandableView {
|
||||||
|
|
||||||
public static final String SHOW_DIALOG = "dialog";
|
public static final String SHOW_DIALOG = "dialog";
|
||||||
|
|
||||||
private static final String UNINSTALLER = "magisk_uninstaller.sh";
|
private static final String UNINSTALLER = "magisk_uninstaller.sh";
|
||||||
private static final String UTIL_FUNCTIONS= "util_functions.sh";
|
private static final String UTIL_FUNCTIONS= "util_functions.sh";
|
||||||
|
|
||||||
private static int expandHeight = 0;
|
private Container expandableContainer = new Container();
|
||||||
private static boolean mExpanded = false;
|
|
||||||
|
|
||||||
private MagiskManager magiskManager;
|
private MagiskManager magiskManager;
|
||||||
private Unbinder unbinder;
|
private Unbinder unbinder;
|
||||||
@ -231,23 +228,8 @@ public class MagiskFragment extends Fragment
|
|||||||
unbinder = ButterKnife.bind(this, v);
|
unbinder = ButterKnife.bind(this, v);
|
||||||
magiskManager = getApplication();
|
magiskManager = getApplication();
|
||||||
|
|
||||||
expandLayout.getViewTreeObserver().addOnPreDrawListener(
|
expandableContainer.expandLayout = expandLayout;
|
||||||
new ViewTreeObserver.OnPreDrawListener() {
|
setupExpandable();
|
||||||
@Override
|
|
||||||
public boolean onPreDraw() {
|
|
||||||
if (expandHeight == 0) {
|
|
||||||
final int widthSpec = View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED);
|
|
||||||
final int heightSpec = View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED);
|
|
||||||
expandLayout.measure(widthSpec, heightSpec);
|
|
||||||
expandHeight = expandLayout.getMeasuredHeight();
|
|
||||||
}
|
|
||||||
|
|
||||||
expandLayout.getViewTreeObserver().removeOnPreDrawListener(this);
|
|
||||||
setExpanded();
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
});
|
|
||||||
|
|
||||||
mSwipeRefreshLayout.setOnRefreshListener(this);
|
mSwipeRefreshLayout.setOnRefreshListener(this);
|
||||||
|
|
||||||
@ -306,6 +288,11 @@ public class MagiskFragment extends Fragment
|
|||||||
unbinder.unbind();
|
unbinder.unbind();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Container getContainer() {
|
||||||
|
return expandableContainer;
|
||||||
|
}
|
||||||
|
|
||||||
private void updateUI() {
|
private void updateUI() {
|
||||||
((MainActivity) getActivity()).checkHideSection();
|
((MainActivity) getActivity()).checkHideSection();
|
||||||
|
|
||||||
@ -440,56 +427,5 @@ public class MagiskFragment extends Fragment
|
|||||||
expand();
|
expand();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void setExpanded() {
|
|
||||||
ViewGroup.LayoutParams layoutParams = expandLayout.getLayoutParams();
|
|
||||||
layoutParams.height = mExpanded ? expandHeight : 0;
|
|
||||||
expandLayout.setLayoutParams(layoutParams);
|
|
||||||
expandLayout.setVisibility(mExpanded ? View.VISIBLE : View.GONE);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void expand() {
|
|
||||||
if (mExpanded) return;
|
|
||||||
expandLayout.setVisibility(View.VISIBLE);
|
|
||||||
ValueAnimator mAnimator = slideAnimator(0, expandHeight);
|
|
||||||
mAnimator.start();
|
|
||||||
mExpanded = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
private void collapse() {
|
|
||||||
if (!mExpanded) return;
|
|
||||||
int finalHeight = expandLayout.getHeight();
|
|
||||||
ValueAnimator mAnimator = slideAnimator(finalHeight, 0);
|
|
||||||
mAnimator.addListener(new Animator.AnimatorListener() {
|
|
||||||
@Override
|
|
||||||
public void onAnimationEnd(Animator animator) {
|
|
||||||
expandLayout.setVisibility(View.GONE);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onAnimationStart(Animator animator) {}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onAnimationCancel(Animator animator) {}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onAnimationRepeat(Animator animator) {}
|
|
||||||
});
|
|
||||||
mAnimator.start();
|
|
||||||
mExpanded = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
private ValueAnimator slideAnimator(int start, int end) {
|
|
||||||
|
|
||||||
ValueAnimator animator = ValueAnimator.ofInt(start, end);
|
|
||||||
|
|
||||||
animator.addUpdateListener(valueAnimator -> {
|
|
||||||
int value = (Integer) valueAnimator.getAnimatedValue();
|
|
||||||
ViewGroup.LayoutParams layoutParams = expandLayout.getLayoutParams();
|
|
||||||
layoutParams.height = value;
|
|
||||||
expandLayout.setLayoutParams(layoutParams);
|
|
||||||
});
|
|
||||||
return animator;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -12,7 +12,7 @@ import android.widget.TextView;
|
|||||||
|
|
||||||
import com.topjohnwu.magisk.R;
|
import com.topjohnwu.magisk.R;
|
||||||
import com.topjohnwu.magisk.components.AlertDialogBuilder;
|
import com.topjohnwu.magisk.components.AlertDialogBuilder;
|
||||||
import com.topjohnwu.magisk.components.ExpandableViewHolder;
|
import com.topjohnwu.magisk.components.ExpandableView;
|
||||||
import com.topjohnwu.magisk.components.SnackbarMaker;
|
import com.topjohnwu.magisk.components.SnackbarMaker;
|
||||||
import com.topjohnwu.magisk.database.SuDatabaseHelper;
|
import com.topjohnwu.magisk.database.SuDatabaseHelper;
|
||||||
import com.topjohnwu.magisk.superuser.Policy;
|
import com.topjohnwu.magisk.superuser.Policy;
|
||||||
@ -50,7 +50,7 @@ public class PolicyAdapter extends RecyclerView.Adapter<PolicyAdapter.ViewHolder
|
|||||||
holder.setExpanded(expandList.contains(policy));
|
holder.setExpanded(expandList.contains(policy));
|
||||||
|
|
||||||
holder.itemView.setOnClickListener(view -> {
|
holder.itemView.setOnClickListener(view -> {
|
||||||
if (holder.mExpanded) {
|
if (holder.isExpanded()) {
|
||||||
holder.collapse();
|
holder.collapse();
|
||||||
expandList.remove(policy);
|
expandList.remove(policy);
|
||||||
} else {
|
} else {
|
||||||
@ -119,7 +119,7 @@ public class PolicyAdapter extends RecyclerView.Adapter<PolicyAdapter.ViewHolder
|
|||||||
return policyList.size();
|
return policyList.size();
|
||||||
}
|
}
|
||||||
|
|
||||||
static class ViewHolder extends ExpandableViewHolder {
|
static class ViewHolder extends RecyclerView.ViewHolder implements ExpandableView {
|
||||||
|
|
||||||
@BindView(R.id.app_name) TextView appName;
|
@BindView(R.id.app_name) TextView appName;
|
||||||
@BindView(R.id.package_name) TextView packageName;
|
@BindView(R.id.package_name) TextView packageName;
|
||||||
@ -127,18 +127,23 @@ public class PolicyAdapter extends RecyclerView.Adapter<PolicyAdapter.ViewHolder
|
|||||||
@BindView(R.id.master_switch) Switch masterSwitch;
|
@BindView(R.id.master_switch) Switch masterSwitch;
|
||||||
@BindView(R.id.notification_switch) Switch notificationSwitch;
|
@BindView(R.id.notification_switch) Switch notificationSwitch;
|
||||||
@BindView(R.id.logging_switch) Switch loggingSwitch;
|
@BindView(R.id.logging_switch) Switch loggingSwitch;
|
||||||
|
@BindView(R.id.expand_layout) ViewGroup expandLayout;
|
||||||
|
|
||||||
@BindView(R.id.delete) ImageView delete;
|
@BindView(R.id.delete) ImageView delete;
|
||||||
@BindView(R.id.more_info) ImageView moreInfo;
|
@BindView(R.id.more_info) ImageView moreInfo;
|
||||||
|
|
||||||
|
private Container container = new Container();
|
||||||
|
|
||||||
public ViewHolder(View itemView) {
|
public ViewHolder(View itemView) {
|
||||||
super(itemView);
|
super(itemView);
|
||||||
ButterKnife.bind(this, itemView);
|
ButterKnife.bind(this, itemView);
|
||||||
|
container.expandLayout = expandLayout;
|
||||||
|
setupExpandable();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setExpandLayout(View itemView) {
|
public Container getContainer() {
|
||||||
expandLayout = itemView.findViewById(R.id.expand_layout);
|
return container;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -11,7 +11,7 @@ import android.widget.ImageView;
|
|||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
|
||||||
import com.topjohnwu.magisk.R;
|
import com.topjohnwu.magisk.R;
|
||||||
import com.topjohnwu.magisk.components.ExpandableViewHolder;
|
import com.topjohnwu.magisk.components.ExpandableView;
|
||||||
import com.topjohnwu.magisk.database.SuDatabaseHelper;
|
import com.topjohnwu.magisk.database.SuDatabaseHelper;
|
||||||
import com.topjohnwu.magisk.superuser.SuLogEntry;
|
import com.topjohnwu.magisk.superuser.SuLogEntry;
|
||||||
|
|
||||||
@ -90,7 +90,7 @@ public class SuLogAdapter extends SectionedAdapter<SuLogAdapter.SectionHolder, S
|
|||||||
SuLogEntry entry = new SuLogEntry(suLogCursor);
|
SuLogEntry entry = new SuLogEntry(suLogCursor);
|
||||||
holder.setExpanded(itemExpanded.contains(sqlPosition));
|
holder.setExpanded(itemExpanded.contains(sqlPosition));
|
||||||
holder.itemView.setOnClickListener(view -> {
|
holder.itemView.setOnClickListener(view -> {
|
||||||
if (holder.mExpanded) {
|
if (holder.isExpanded()) {
|
||||||
holder.collapse();
|
holder.collapse();
|
||||||
itemExpanded.remove(sqlPosition);
|
itemExpanded.remove(sqlPosition);
|
||||||
} else {
|
} else {
|
||||||
@ -128,7 +128,7 @@ public class SuLogAdapter extends SectionedAdapter<SuLogAdapter.SectionHolder, S
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static class LogViewHolder extends ExpandableViewHolder {
|
static class LogViewHolder extends RecyclerView.ViewHolder implements ExpandableView {
|
||||||
|
|
||||||
@BindView(R.id.app_name) TextView appName;
|
@BindView(R.id.app_name) TextView appName;
|
||||||
@BindView(R.id.action) TextView action;
|
@BindView(R.id.action) TextView action;
|
||||||
@ -136,15 +136,20 @@ public class SuLogAdapter extends SectionedAdapter<SuLogAdapter.SectionHolder, S
|
|||||||
@BindView(R.id.fromPid) TextView fromPid;
|
@BindView(R.id.fromPid) TextView fromPid;
|
||||||
@BindView(R.id.toUid) TextView toUid;
|
@BindView(R.id.toUid) TextView toUid;
|
||||||
@BindView(R.id.command) TextView command;
|
@BindView(R.id.command) TextView command;
|
||||||
|
@BindView(R.id.expand_layout) ViewGroup expandLayout;
|
||||||
|
|
||||||
|
private Container container = new Container();
|
||||||
|
|
||||||
LogViewHolder(View itemView) {
|
LogViewHolder(View itemView) {
|
||||||
super(itemView);
|
super(itemView);
|
||||||
ButterKnife.bind(this, itemView);
|
ButterKnife.bind(this, itemView);
|
||||||
|
container.expandLayout = expandLayout;
|
||||||
|
setupExpandable();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setExpandLayout(View itemView) {
|
public Container getContainer() {
|
||||||
expandLayout = itemView.findViewById(R.id.expand_layout);
|
return container;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,84 @@
|
|||||||
|
package com.topjohnwu.magisk.components;
|
||||||
|
|
||||||
|
import android.animation.ValueAnimator;
|
||||||
|
import android.view.View;
|
||||||
|
import android.view.ViewGroup;
|
||||||
|
import android.view.ViewTreeObserver;
|
||||||
|
|
||||||
|
public interface ExpandableView {
|
||||||
|
|
||||||
|
class Container {
|
||||||
|
public ViewGroup expandLayout;
|
||||||
|
ValueAnimator expandAnimator, collapseAnimator;
|
||||||
|
boolean mExpanded = false;
|
||||||
|
int expandHeight = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Provide state info
|
||||||
|
Container getContainer();
|
||||||
|
|
||||||
|
default void setupExpandable() {
|
||||||
|
Container container = getContainer();
|
||||||
|
container.expandLayout.getViewTreeObserver().addOnPreDrawListener(
|
||||||
|
new ViewTreeObserver.OnPreDrawListener() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean onPreDraw() {
|
||||||
|
if (container.expandHeight == 0) {
|
||||||
|
final int widthSpec = View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED);
|
||||||
|
final int heightSpec = View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED);
|
||||||
|
container.expandLayout.measure(widthSpec, heightSpec);
|
||||||
|
container.expandHeight = container.expandLayout.getMeasuredHeight();
|
||||||
|
}
|
||||||
|
|
||||||
|
container.expandLayout.getViewTreeObserver().removeOnPreDrawListener(this);
|
||||||
|
container.expandLayout.setVisibility(View.GONE);
|
||||||
|
container.expandAnimator = slideAnimator(0, container.expandHeight);
|
||||||
|
container.collapseAnimator = slideAnimator(container.expandHeight, 0);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
default boolean isExpanded() {
|
||||||
|
return getContainer().mExpanded;
|
||||||
|
}
|
||||||
|
|
||||||
|
default void setExpanded(boolean expanded) {
|
||||||
|
Container container = getContainer();
|
||||||
|
container.mExpanded = expanded;
|
||||||
|
ViewGroup.LayoutParams layoutParams = container.expandLayout.getLayoutParams();
|
||||||
|
layoutParams.height = expanded ? container.expandHeight : 0;
|
||||||
|
container.expandLayout.setLayoutParams(layoutParams);
|
||||||
|
container.expandLayout.setVisibility(expanded ? View.VISIBLE : View.GONE);
|
||||||
|
}
|
||||||
|
|
||||||
|
default void expand() {
|
||||||
|
Container container = getContainer();
|
||||||
|
if (container.mExpanded) return;
|
||||||
|
container.expandLayout.setVisibility(View.VISIBLE);
|
||||||
|
container.expandAnimator.start();
|
||||||
|
container.mExpanded = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
default void collapse() {
|
||||||
|
Container container = getContainer();
|
||||||
|
if (!container.mExpanded) return;
|
||||||
|
container.collapseAnimator.start();
|
||||||
|
container.mExpanded = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
default ValueAnimator slideAnimator(int start, int end) {
|
||||||
|
Container container = getContainer();
|
||||||
|
ValueAnimator animator = ValueAnimator.ofInt(start, end);
|
||||||
|
|
||||||
|
animator.addUpdateListener(valueAnimator -> {
|
||||||
|
int value = (Integer) valueAnimator.getAnimatedValue();
|
||||||
|
ViewGroup.LayoutParams layoutParams = container.expandLayout.getLayoutParams();
|
||||||
|
layoutParams.height = value;
|
||||||
|
container.expandLayout.setLayoutParams(layoutParams);
|
||||||
|
});
|
||||||
|
return animator;
|
||||||
|
}
|
||||||
|
}
|
@ -1,77 +0,0 @@
|
|||||||
package com.topjohnwu.magisk.components;
|
|
||||||
|
|
||||||
import android.animation.ValueAnimator;
|
|
||||||
import android.support.v7.widget.RecyclerView;
|
|
||||||
import android.view.View;
|
|
||||||
import android.view.ViewGroup;
|
|
||||||
import android.view.ViewTreeObserver;
|
|
||||||
|
|
||||||
public abstract class ExpandableViewHolder extends RecyclerView.ViewHolder {
|
|
||||||
|
|
||||||
protected ViewGroup expandLayout;
|
|
||||||
private ValueAnimator expandAnimator, collapseAnimator;
|
|
||||||
private static int expandHeight = 0;
|
|
||||||
|
|
||||||
public boolean mExpanded = false;
|
|
||||||
|
|
||||||
public ExpandableViewHolder(View itemView) {
|
|
||||||
super(itemView);
|
|
||||||
setExpandLayout(itemView);
|
|
||||||
expandLayout.getViewTreeObserver().addOnPreDrawListener(
|
|
||||||
new ViewTreeObserver.OnPreDrawListener() {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean onPreDraw() {
|
|
||||||
if (expandHeight == 0) {
|
|
||||||
final int widthSpec = View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED);
|
|
||||||
final int heightSpec = View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED);
|
|
||||||
expandLayout.measure(widthSpec, heightSpec);
|
|
||||||
expandHeight = expandLayout.getMeasuredHeight();
|
|
||||||
}
|
|
||||||
|
|
||||||
expandLayout.getViewTreeObserver().removeOnPreDrawListener(this);
|
|
||||||
expandLayout.setVisibility(View.GONE);
|
|
||||||
expandAnimator = slideAnimator(0, expandHeight);
|
|
||||||
collapseAnimator = slideAnimator(expandHeight, 0);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setExpanded(boolean expanded) {
|
|
||||||
mExpanded = expanded;
|
|
||||||
ViewGroup.LayoutParams layoutParams = expandLayout.getLayoutParams();
|
|
||||||
layoutParams.height = expanded ? expandHeight : 0;
|
|
||||||
expandLayout.setLayoutParams(layoutParams);
|
|
||||||
expandLayout.setVisibility(expanded ? View.VISIBLE : View.GONE);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void expand() {
|
|
||||||
if (mExpanded) return;
|
|
||||||
expandLayout.setVisibility(View.VISIBLE);
|
|
||||||
expandAnimator.start();
|
|
||||||
mExpanded = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void collapse() {
|
|
||||||
if (!mExpanded) return;
|
|
||||||
collapseAnimator.start();
|
|
||||||
mExpanded = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
public abstract void setExpandLayout(View itemView);
|
|
||||||
|
|
||||||
private ValueAnimator slideAnimator(int start, int end) {
|
|
||||||
|
|
||||||
ValueAnimator animator = ValueAnimator.ofInt(start, end);
|
|
||||||
|
|
||||||
animator.addUpdateListener(valueAnimator -> {
|
|
||||||
int value = (Integer) valueAnimator.getAnimatedValue();
|
|
||||||
ViewGroup.LayoutParams layoutParams = expandLayout.getLayoutParams();
|
|
||||||
layoutParams.height = value;
|
|
||||||
expandLayout.setLayoutParams(layoutParams);
|
|
||||||
});
|
|
||||||
return animator;
|
|
||||||
}
|
|
||||||
}
|
|
@ -34,8 +34,8 @@ public class Topic {
|
|||||||
publish(true);
|
publish(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void publish(boolean b) {
|
public void publish(boolean record) {
|
||||||
hasPublished = b;
|
hasPublished = record;
|
||||||
if (subscribers != null) {
|
if (subscribers != null) {
|
||||||
for (WeakReference<Subscriber> subscriber : subscribers) {
|
for (WeakReference<Subscriber> subscriber : subscribers) {
|
||||||
if (subscriber.get() != null)
|
if (subscriber.get() != null)
|
||||||
|
@ -142,7 +142,7 @@ public class Utils {
|
|||||||
@Override
|
@Override
|
||||||
public void handleResults(Result result) {
|
public void handleResults(Result result) {
|
||||||
getMagiskManager(mActivity).SNCheckResult = result;
|
getMagiskManager(mActivity).SNCheckResult = result;
|
||||||
getMagiskManager(mActivity).safetyNetDone.publish();
|
getMagiskManager(mActivity).safetyNetDone.publish(false);
|
||||||
}
|
}
|
||||||
}.requestTest();
|
}.requestTest();
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user