Small changes

This commit is contained in:
topjohnwu
2019-04-04 02:30:03 -04:00
parent 86789a8694
commit ceb21ced2b
36 changed files with 51 additions and 105 deletions

View File

@@ -15,6 +15,7 @@ import androidx.annotation.Nullable;
import androidx.annotation.StyleRes;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.app.AppCompatDelegate;
import androidx.collection.SparseArrayCompat;
import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;
@@ -32,7 +33,7 @@ public abstract class BaseActivity extends AppCompatActivity implements Event.Au
static int[] EMPTY_INT_ARRAY = new int[0];
private ActivityResultListener activityResultListener;
private SparseArrayCompat<ActivityResultListener> resultListeners = new SparseArrayCompat<>();
public App app = App.self;
static {
@@ -117,13 +118,15 @@ public abstract class BaseActivity extends AppCompatActivity implements Event.Au
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (activityResultListener != null)
activityResultListener.onActivityResult(requestCode, resultCode, data);
activityResultListener = null;
ActivityResultListener listener = resultListeners.get(requestCode);
if (listener != null) {
resultListeners.remove(requestCode);
listener.onActivityResult(resultCode, data);
}
}
public void startActivityForResult(Intent intent, int requestCode, ActivityResultListener listener) {
activityResultListener = listener;
resultListeners.put(requestCode, listener);
super.startActivityForResult(intent, requestCode);
}
@@ -145,7 +148,7 @@ public abstract class BaseActivity extends AppCompatActivity implements Event.Au
}
public interface ActivityResultListener {
void onActivityResult(int requestCode, int resultCode, Intent data);
void onActivityResult(int resultCode, Intent data);
}
@Override

View File

@@ -35,10 +35,12 @@ public abstract class BaseFragment extends Fragment implements Event.AutoListene
@Override
public void startActivityForResult(Intent intent, int requestCode) {
startActivityForResult(intent, requestCode, this::onActivityResult);
startActivityForResult(intent, requestCode, (resultCode, data) ->
onActivityResult(requestCode, resultCode, data));
}
public void startActivityForResult(Intent intent, int requestCode, BaseActivity.ActivityResultListener listener) {
public void startActivityForResult(Intent intent, int requestCode,
BaseActivity.ActivityResultListener listener) {
((BaseActivity) requireActivity()).startActivityForResult(intent, requestCode, listener);
}

View File

@@ -26,7 +26,7 @@ class InstallMethodDialog extends AlertDialog.Builder {
InstallMethodDialog(BaseActivity activity, List<String> options) {
super(activity);
setTitle(R.string.select_method);
setItems(options.toArray(new String [0]), (dialog, idx) -> {
setItems(options.toArray(new String[0]), (dialog, idx) -> {
Intent intent;
switch (idx) {
case 1:
@@ -48,25 +48,26 @@ class InstallMethodDialog extends AlertDialog.Builder {
});
}
private void patchBoot(BaseActivity a) {
Utils.toast(R.string.boot_file_patch_msg, Toast.LENGTH_LONG);
Intent intent = new Intent(Intent.ACTION_GET_CONTENT).setType("*/*").addCategory(Intent.CATEGORY_OPENABLE);
a.runWithExternalRW(() ->
a.startActivityForResult(intent, Const.ID.SELECT_BOOT,
(requestCode, resultCode, data) -> {
if (requestCode == Const.ID.SELECT_BOOT &&
resultCode == Activity.RESULT_OK && data != null) {
Intent i = new Intent(a, ClassMap.get(FlashActivity.class))
.setData(data.getData())
.putExtra(Const.Key.FLASH_ACTION, Const.Value.PATCH_BOOT);
a.startActivity(i);
}
})
);
private void patchBoot(BaseActivity activity) {
activity.runWithExternalRW(() -> {
Utils.toast(R.string.patch_file_msg, Toast.LENGTH_LONG);
Intent intent = new Intent(Intent.ACTION_GET_CONTENT)
.setType("*/*")
.addCategory(Intent.CATEGORY_OPENABLE);
activity.startActivityForResult(intent, Const.ID.SELECT_BOOT,
(resultCode, data) -> {
if (resultCode == Activity.RESULT_OK && data != null) {
Intent i = new Intent(activity, ClassMap.get(FlashActivity.class))
.setData(data.getData())
.putExtra(Const.Key.FLASH_ACTION, Const.Value.PATCH_BOOT);
activity.startActivity(i);
}
});
});
}
private void downloadOnly(BaseActivity a) {
a.runWithExternalRW(() -> {
private void downloadOnly(BaseActivity activity) {
activity.runWithExternalRW(() -> {
String filename = Utils.fmt("Magisk-v%s(%d).zip",
Config.remoteMagiskVersionString, Config.remoteMagiskVersionCode);
File zip = new File(Const.EXTERNAL_PATH, filename);
@@ -76,8 +77,8 @@ class InstallMethodDialog extends AlertDialog.Builder {
.setErrorHandler(((conn, e) -> progress.dlFail()))
.getAsFile(zip, f -> {
progress.dlDone();
SnackbarMaker.make(a,
a.getString(R.string.internal_storage, "/Download/" + filename),
SnackbarMaker.make(activity,
activity.getString(R.string.internal_storage, "/Download/" + filename),
Snackbar.LENGTH_LONG).show();
});
});

View File

@@ -25,7 +25,7 @@ public class MagiskInstallDialog extends CustomAlertDialog {
setPositiveButton(R.string.install, (d, i) -> {
List<String> options = new ArrayList<>();
options.add(a.getString(R.string.download_zip_only));
options.add(a.getString(R.string.patch_boot_file));
options.add(a.getString(R.string.select_patch_file));
if (Shell.rootAccess()) {
options.add(a.getString(R.string.direct_install));
String s = ShellUtils.fastCmd("grep_prop ro.build.ab_update");