mirror of
https://github.com/topjohnwu/Magisk.git
synced 2025-03-31 07:32:16 +00:00
54 lines
2.2 KiB
Java
54 lines
2.2 KiB
Java
package com.topjohnwu.magisk.components;
|
|
|
|
import android.content.Intent;
|
|
import android.net.Uri;
|
|
import android.text.TextUtils;
|
|
|
|
import com.topjohnwu.magisk.MagiskManager;
|
|
import com.topjohnwu.magisk.R;
|
|
import com.topjohnwu.magisk.asyncs.MarkDownWindow;
|
|
import com.topjohnwu.magisk.utils.Utils;
|
|
import com.topjohnwu.superuser.Shell;
|
|
import com.topjohnwu.superuser.ShellUtils;
|
|
|
|
import java.util.ArrayList;
|
|
import java.util.List;
|
|
|
|
public class MagiskInstallDialog extends CustomAlertDialog {
|
|
public MagiskInstallDialog(Activity activity) {
|
|
super(activity);
|
|
MagiskManager mm = Utils.getMagiskManager(activity);
|
|
String filename = Utils.fmt("Magisk-v%s(%d).zip",
|
|
mm.remoteMagiskVersionString, mm.remoteMagiskVersionCode);
|
|
setTitle(mm.getString(R.string.repo_install_title, mm.getString(R.string.magisk)));
|
|
setMessage(mm.getString(R.string.repo_install_msg, filename));
|
|
setCancelable(true);
|
|
setPositiveButton(R.string.install, (d, i) -> {
|
|
List<String> options = new ArrayList<>();
|
|
options.add(mm.getString(R.string.download_zip_only));
|
|
options.add(mm.getString(R.string.patch_boot_file));
|
|
if (Shell.rootAccess()) {
|
|
options.add(mm.getString(R.string.direct_install));
|
|
}
|
|
String s = ShellUtils.fastCmd("grep_prop ro.build.ab_update");
|
|
if (!s.isEmpty() && Boolean.parseBoolean(s)) {
|
|
options.add(mm.getString(R.string.install_second_slot));
|
|
}
|
|
new InstallMethodDialog(activity, options, filename).show();
|
|
});
|
|
setNegativeButton(R.string.no_thanks, null);
|
|
if (!TextUtils.isEmpty(mm.magiskNoteLink)) {
|
|
setNeutralButton(R.string.release_notes, (d, i) -> {
|
|
if (mm.magiskNoteLink.contains("forum.xda-developers")) {
|
|
// Open forum links in browser
|
|
Intent openLink = new Intent(Intent.ACTION_VIEW, Uri.parse(mm.magiskNoteLink));
|
|
openLink.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
|
mm.startActivity(openLink);
|
|
} else {
|
|
new MarkDownWindow(activity, null, mm.magiskNoteLink).exec();
|
|
}
|
|
});
|
|
}
|
|
}
|
|
}
|