Prevent flash screen close when tapping outside

This commit is contained in:
topjohnwu
2017-09-29 13:20:34 +08:00
parent 773c24b7fc
commit c1a0f520f9
4 changed files with 41 additions and 45 deletions
@@ -16,9 +16,9 @@ import android.widget.TextView;
import com.topjohnwu.magisk.asyncs.FlashZip;
import com.topjohnwu.magisk.asyncs.InstallMagisk;
import com.topjohnwu.magisk.components.Activity;
import com.topjohnwu.magisk.utils.AdaptiveList;
import com.topjohnwu.magisk.utils.Shell;
import java.util.ArrayList;
import java.util.List;
import butterknife.BindView;
@@ -63,6 +63,7 @@ public class FlashActivity extends Activity {
ab.setTitle(R.string.flashing);
}
setFloating();
setFinishOnTouchOutside(false);
if (!Shell.rootAccess())
reboot.setVisibility(View.GONE);
@@ -148,4 +149,35 @@ public class FlashActivity extends Activity {
ButterKnife.bind(this, itemView);
}
}
public static class AdaptiveList<E> extends ArrayList<E> {
private Runnable callback;
private RecyclerView mView;
public AdaptiveList(RecyclerView v) {
mView = v;
}
public void updateView() {
mView.getAdapter().notifyDataSetChanged();
mView.scrollToPosition(mView.getAdapter().getItemCount() - 1);
}
public void setCallback(Runnable cb) {
callback = cb;
}
public boolean add(E e) {
boolean ret = super.add(e);
if (ret) {
if (callback == null) {
updateView();
} else {
callback.run();
}
}
return ret;
}
}
}