diff --git a/app/src/main/java/com/fox2code/mmm/Constants.java b/app/src/main/java/com/fox2code/mmm/Constants.java index 5b48506..d1d1dff 100644 --- a/app/src/main/java/com/fox2code/mmm/Constants.java +++ b/app/src/main/java/com/fox2code/mmm/Constants.java @@ -25,6 +25,9 @@ public class Constants { public static final String EXTRA_MARKDOWN_CONFIG = "extra_markdown_config"; public static final String EXTRA_MARKDOWN_CHANGE_BOOT = "extra_markdown_change_boot"; public static final String EXTRA_MARKDOWN_NEEDS_RAMDISK = "extra_markdown_needs_ramdisk"; + public static final String EXTRA_MARKDOWN_MIN_MAGISK = "extra_markdown_min_magisk"; + public static final String EXTRA_MARKDOWN_MIN_API= "extra_markdown_min_api"; + public static final String EXTRA_MARKDOWN_MAX_API = "extra_markdown_max_api"; public static final String EXTRA_FADE_OUT = "extra_fade_out"; public static final String EXTRA_FROM_MANAGER = "extra_from_manager"; } diff --git a/app/src/main/java/com/fox2code/mmm/markdown/MarkdownActivity.java b/app/src/main/java/com/fox2code/mmm/markdown/MarkdownActivity.java index 27cfc7a..bf2df21 100644 --- a/app/src/main/java/com/fox2code/mmm/markdown/MarkdownActivity.java +++ b/app/src/main/java/com/fox2code/mmm/markdown/MarkdownActivity.java @@ -13,6 +13,7 @@ import android.widget.TextView; import android.widget.Toast; import androidx.annotation.Nullable; +import androidx.annotation.StringRes; import androidx.core.graphics.ColorUtils; import com.fox2code.mmm.Constants; @@ -23,6 +24,7 @@ import com.fox2code.mmm.compat.CompatActivity; import com.fox2code.mmm.utils.Http; import com.fox2code.mmm.utils.IntentHelper; import com.google.android.material.chip.Chip; +import com.google.android.material.chip.ChipGroup; import com.google.android.material.dialog.MaterialAlertDialogBuilder; import com.topjohnwu.superuser.Shell; import com.topjohnwu.superuser.internal.UiThreadHandler; @@ -87,6 +89,12 @@ public class MarkdownActivity extends CompatActivity { .getBoolean(Constants.EXTRA_MARKDOWN_CHANGE_BOOT); boolean needs_ramdisk = intent.getExtras() .getBoolean(Constants.EXTRA_MARKDOWN_NEEDS_RAMDISK); + int min_magisk = intent.getExtras() + .getInt(Constants.EXTRA_MARKDOWN_MIN_MAGISK); + int min_api = intent.getExtras() + .getInt(Constants.EXTRA_MARKDOWN_MIN_API); + int max_api = intent.getExtras() + .getInt(Constants.EXTRA_MARKDOWN_MAX_API); if (title != null && !title.isEmpty()) { this.setTitle(title); } @@ -111,10 +119,7 @@ public class MarkdownActivity extends CompatActivity { setContentView(R.layout.markdown_view); final ViewGroup markdownBackground = findViewById(R.id.markdownBackground); final TextView textView = findViewById(R.id.markdownView); - final Chip chip_can_change_boot = findViewById(R.id.chip_change_boot); - final Chip chip_needs_ramdisk = findViewById(R.id.chip_needs_ramdisk); final HorizontalScrollView chip_holder = findViewById(R.id.chip_holder); - final Chip min_magisk = findViewById(R.id.chip_min_magisk); final TextView footer = findViewById(R.id.markdownFooter); UiThreadHandler.handler.postDelayed(() -> // Fix footer height footer.setMinHeight(this.getNavigationBarHeight()), 1L); @@ -123,38 +128,19 @@ public class MarkdownActivity extends CompatActivity { if (MainApplication.isChipsDisabled()) { chip_holder.setVisibility(View.GONE); } else { - if (change_boot) { - chip_can_change_boot.setVisibility(View.VISIBLE); - chip_can_change_boot.setOnClickListener(_view -> { - MaterialAlertDialogBuilder builder = - new MaterialAlertDialogBuilder(this); - - builder - .setTitle(R.string.module_can_change_boot) - .setMessage("This module may change the boot image") - .setCancelable(true) - .setPositiveButton(R.string.ok, (x, y) -> { - x.dismiss(); - }).show(); - - }); - } - if (needs_ramdisk) { - chip_needs_ramdisk.setVisibility(View.VISIBLE); - chip_needs_ramdisk.setOnClickListener(_view -> { - MaterialAlertDialogBuilder builder = - new MaterialAlertDialogBuilder(this); - - builder - .setTitle(R.string.module_needs_ramdisk) - .setMessage("This module need boot ramdisk to be installed") - .setCancelable(true) - .setPositiveButton(R.string.ok, (x, y) -> { - x.dismiss(); - }).show(); - - }); - } + // set "message" to null to disable dialog + this.setChips(change_boot, + getString(R.string.module_can_change_boot), + "This module may change the boot image"); + this.setChips(needs_ramdisk, + getString(R.string.module_needs_ramdisk), + "This module need boot ramdisk to be installed"); + this.setChips(min_magisk, "Min. Magisk \"" + min_magisk + "\"", + null); + this.setChips(min_api, "Min. Android " + min_api, + null); + this.setChips(max_api, "Max. Android " + max_api, + null); } new Thread(() -> { @@ -185,6 +171,56 @@ public class MarkdownActivity extends CompatActivity { }, "Markdown load thread").start(); } + private void setChips(boolean bool, String title, String message) { + final ChipGroup chip_group_holder = findViewById(R.id.chip_group_holder); + if (bool) { + Chip chip = new Chip(this); + chip.setText(title); + chip.setVisibility(View.VISIBLE); + if (message != null) { + chip.setOnClickListener(_view -> { + MaterialAlertDialogBuilder builder = + new MaterialAlertDialogBuilder(this); + + builder + .setTitle(title) + .setMessage(message) + .setCancelable(true) + .setPositiveButton(R.string.ok, (x, y) -> { + x.dismiss(); + }).show(); + + }); + } + chip_group_holder.addView(chip); + } + } + + private void setChips(int i, String title, String message) { + final ChipGroup chip_group_holder = findViewById(R.id.chip_group_holder); + if (i != 0) { + Chip chip = new Chip(this); + chip.setText(title); + chip.setVisibility(View.VISIBLE); + if (message != null) { + chip.setOnClickListener(_view -> { + MaterialAlertDialogBuilder builder = + new MaterialAlertDialogBuilder(this); + + builder + .setTitle(title) + .setMessage(message) + .setCancelable(true) + .setPositiveButton(R.string.ok, (x, y) -> { + x.dismiss(); + }).show(); + + }); + } + chip_group_holder.addView(chip); + } + } + @Override protected void onResume() { super.onResume(); diff --git a/app/src/main/java/com/fox2code/mmm/module/ActionButtonType.java b/app/src/main/java/com/fox2code/mmm/module/ActionButtonType.java index 551a61f..f248376 100644 --- a/app/src/main/java/com/fox2code/mmm/module/ActionButtonType.java +++ b/app/src/main/java/com/fox2code/mmm/module/ActionButtonType.java @@ -49,7 +49,11 @@ public enum ActionButtonType { moduleHolder.repoModule.moduleInfo.name, moduleHolder.getMainModuleConfig(), moduleHolder.repoModule.moduleInfo.changeBoot, - moduleHolder.repoModule.moduleInfo.needRamdisk); + moduleHolder.repoModule.moduleInfo.needRamdisk, + moduleHolder.repoModule.moduleInfo.minMagisk, + moduleHolder.repoModule.moduleInfo.minApi, + moduleHolder.repoModule.moduleInfo.maxApi + ); } } diff --git a/app/src/main/java/com/fox2code/mmm/utils/IntentHelper.java b/app/src/main/java/com/fox2code/mmm/utils/IntentHelper.java index 65989e3..2a77007 100644 --- a/app/src/main/java/com/fox2code/mmm/utils/IntentHelper.java +++ b/app/src/main/java/com/fox2code/mmm/utils/IntentHelper.java @@ -165,7 +165,7 @@ public class IntentHelper { } } - public static void openMarkdown(Context context, String url, String title, String config, Boolean changeBoot, Boolean needsRamdisk) { + public static void openMarkdown(Context context, String url, String title, String config, Boolean changeBoot, Boolean needsRamdisk,int minMagisk, int minApi, int maxApi) { try { Intent intent = new Intent(context, MarkdownActivity.class); MainApplication.addSecret(intent); @@ -173,6 +173,9 @@ public class IntentHelper { intent.putExtra(Constants.EXTRA_MARKDOWN_TITLE, title); intent.putExtra(Constants.EXTRA_MARKDOWN_CHANGE_BOOT, changeBoot); intent.putExtra(Constants.EXTRA_MARKDOWN_NEEDS_RAMDISK, needsRamdisk); + intent.putExtra(Constants.EXTRA_MARKDOWN_MIN_MAGISK, minMagisk); + intent.putExtra(Constants.EXTRA_MARKDOWN_MIN_API, minApi); + intent.putExtra(Constants.EXTRA_MARKDOWN_MAX_API, maxApi); if (config != null && !config.isEmpty()) intent.putExtra(Constants.EXTRA_MARKDOWN_CONFIG, config); startActivity(context, intent, true); diff --git a/app/src/main/res/layout/markdown_view.xml b/app/src/main/res/layout/markdown_view.xml index 31b13ec..dfb1b41 100644 --- a/app/src/main/res/layout/markdown_view.xml +++ b/app/src/main/res/layout/markdown_view.xml @@ -41,32 +41,14 @@ android:layout_height="wrap_content"> - - - - - - +