Skip to content
This repository was archived by the owner on May 4, 2023. It is now read-only.

Commit 5541516

Browse files
committed
Make chips dynamic in markdown view
1 parent a9a329f commit 5541516

File tree

5 files changed

+86
-58
lines changed

5 files changed

+86
-58
lines changed

app/src/main/java/com/fox2code/mmm/Constants.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,9 @@ public class Constants {
2525
public static final String EXTRA_MARKDOWN_CONFIG = "extra_markdown_config";
2626
public static final String EXTRA_MARKDOWN_CHANGE_BOOT = "extra_markdown_change_boot";
2727
public static final String EXTRA_MARKDOWN_NEEDS_RAMDISK = "extra_markdown_needs_ramdisk";
28+
public static final String EXTRA_MARKDOWN_MIN_MAGISK = "extra_markdown_min_magisk";
29+
public static final String EXTRA_MARKDOWN_MIN_API= "extra_markdown_min_api";
30+
public static final String EXTRA_MARKDOWN_MAX_API = "extra_markdown_max_api";
2831
public static final String EXTRA_FADE_OUT = "extra_fade_out";
2932
public static final String EXTRA_FROM_MANAGER = "extra_from_manager";
3033
}

app/src/main/java/com/fox2code/mmm/markdown/MarkdownActivity.java

Lines changed: 71 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
import android.widget.Toast;
1414

1515
import androidx.annotation.Nullable;
16+
import androidx.annotation.StringRes;
1617
import androidx.core.graphics.ColorUtils;
1718

1819
import com.fox2code.mmm.Constants;
@@ -23,6 +24,7 @@
2324
import com.fox2code.mmm.utils.Http;
2425
import com.fox2code.mmm.utils.IntentHelper;
2526
import com.google.android.material.chip.Chip;
27+
import com.google.android.material.chip.ChipGroup;
2628
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
2729
import com.topjohnwu.superuser.Shell;
2830
import com.topjohnwu.superuser.internal.UiThreadHandler;
@@ -87,6 +89,12 @@ protected void onCreate(@Nullable Bundle savedInstanceState) {
8789
.getBoolean(Constants.EXTRA_MARKDOWN_CHANGE_BOOT);
8890
boolean needs_ramdisk = intent.getExtras()
8991
.getBoolean(Constants.EXTRA_MARKDOWN_NEEDS_RAMDISK);
92+
int min_magisk = intent.getExtras()
93+
.getInt(Constants.EXTRA_MARKDOWN_MIN_MAGISK);
94+
int min_api = intent.getExtras()
95+
.getInt(Constants.EXTRA_MARKDOWN_MIN_API);
96+
int max_api = intent.getExtras()
97+
.getInt(Constants.EXTRA_MARKDOWN_MAX_API);
9098
if (title != null && !title.isEmpty()) {
9199
this.setTitle(title);
92100
}
@@ -111,10 +119,7 @@ protected void onCreate(@Nullable Bundle savedInstanceState) {
111119
setContentView(R.layout.markdown_view);
112120
final ViewGroup markdownBackground = findViewById(R.id.markdownBackground);
113121
final TextView textView = findViewById(R.id.markdownView);
114-
final Chip chip_can_change_boot = findViewById(R.id.chip_change_boot);
115-
final Chip chip_needs_ramdisk = findViewById(R.id.chip_needs_ramdisk);
116122
final HorizontalScrollView chip_holder = findViewById(R.id.chip_holder);
117-
final Chip min_magisk = findViewById(R.id.chip_min_magisk);
118123
final TextView footer = findViewById(R.id.markdownFooter);
119124
UiThreadHandler.handler.postDelayed(() -> // Fix footer height
120125
footer.setMinHeight(this.getNavigationBarHeight()), 1L);
@@ -123,38 +128,19 @@ protected void onCreate(@Nullable Bundle savedInstanceState) {
123128
if (MainApplication.isChipsDisabled()) {
124129
chip_holder.setVisibility(View.GONE);
125130
} else {
126-
if (change_boot) {
127-
chip_can_change_boot.setVisibility(View.VISIBLE);
128-
chip_can_change_boot.setOnClickListener(_view -> {
129-
MaterialAlertDialogBuilder builder =
130-
new MaterialAlertDialogBuilder(this);
131-
132-
builder
133-
.setTitle(R.string.module_can_change_boot)
134-
.setMessage("This module may change the boot image")
135-
.setCancelable(true)
136-
.setPositiveButton(R.string.ok, (x, y) -> {
137-
x.dismiss();
138-
}).show();
139-
140-
});
141-
}
142-
if (needs_ramdisk) {
143-
chip_needs_ramdisk.setVisibility(View.VISIBLE);
144-
chip_needs_ramdisk.setOnClickListener(_view -> {
145-
MaterialAlertDialogBuilder builder =
146-
new MaterialAlertDialogBuilder(this);
147-
148-
builder
149-
.setTitle(R.string.module_needs_ramdisk)
150-
.setMessage("This module need boot ramdisk to be installed")
151-
.setCancelable(true)
152-
.setPositiveButton(R.string.ok, (x, y) -> {
153-
x.dismiss();
154-
}).show();
155-
156-
});
157-
}
131+
// set "message" to null to disable dialog
132+
this.setChips(change_boot,
133+
getString(R.string.module_can_change_boot),
134+
"This module may change the boot image");
135+
this.setChips(needs_ramdisk,
136+
getString(R.string.module_needs_ramdisk),
137+
"This module need boot ramdisk to be installed");
138+
this.setChips(min_magisk, "Min. Magisk \"" + min_magisk + "\"",
139+
null);
140+
this.setChips(min_api, "Min. Android " + min_api,
141+
null);
142+
this.setChips(max_api, "Max. Android " + max_api,
143+
null);
158144
}
159145

160146
new Thread(() -> {
@@ -185,6 +171,56 @@ protected void onCreate(@Nullable Bundle savedInstanceState) {
185171
}, "Markdown load thread").start();
186172
}
187173

174+
private void setChips(boolean bool, String title, String message) {
175+
final ChipGroup chip_group_holder = findViewById(R.id.chip_group_holder);
176+
if (bool) {
177+
Chip chip = new Chip(this);
178+
chip.setText(title);
179+
chip.setVisibility(View.VISIBLE);
180+
if (message != null) {
181+
chip.setOnClickListener(_view -> {
182+
MaterialAlertDialogBuilder builder =
183+
new MaterialAlertDialogBuilder(this);
184+
185+
builder
186+
.setTitle(title)
187+
.setMessage(message)
188+
.setCancelable(true)
189+
.setPositiveButton(R.string.ok, (x, y) -> {
190+
x.dismiss();
191+
}).show();
192+
193+
});
194+
}
195+
chip_group_holder.addView(chip);
196+
}
197+
}
198+
199+
private void setChips(int i, String title, String message) {
200+
final ChipGroup chip_group_holder = findViewById(R.id.chip_group_holder);
201+
if (i != 0) {
202+
Chip chip = new Chip(this);
203+
chip.setText(title);
204+
chip.setVisibility(View.VISIBLE);
205+
if (message != null) {
206+
chip.setOnClickListener(_view -> {
207+
MaterialAlertDialogBuilder builder =
208+
new MaterialAlertDialogBuilder(this);
209+
210+
builder
211+
.setTitle(title)
212+
.setMessage(message)
213+
.setCancelable(true)
214+
.setPositiveButton(R.string.ok, (x, y) -> {
215+
x.dismiss();
216+
}).show();
217+
218+
});
219+
}
220+
chip_group_holder.addView(chip);
221+
}
222+
}
223+
188224
@Override
189225
protected void onResume() {
190226
super.onResume();

app/src/main/java/com/fox2code/mmm/module/ActionButtonType.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,11 @@ public void doAction(Chip button, ModuleHolder moduleHolder) {
4949
moduleHolder.repoModule.moduleInfo.name,
5050
moduleHolder.getMainModuleConfig(),
5151
moduleHolder.repoModule.moduleInfo.changeBoot,
52-
moduleHolder.repoModule.moduleInfo.needRamdisk);
52+
moduleHolder.repoModule.moduleInfo.needRamdisk,
53+
moduleHolder.repoModule.moduleInfo.minMagisk,
54+
moduleHolder.repoModule.moduleInfo.minApi,
55+
moduleHolder.repoModule.moduleInfo.maxApi
56+
);
5357
}
5458
}
5559

app/src/main/java/com/fox2code/mmm/utils/IntentHelper.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -165,14 +165,17 @@ public void onAddElement(String str) {
165165
}
166166
}
167167

168-
public static void openMarkdown(Context context, String url, String title, String config, Boolean changeBoot, Boolean needsRamdisk) {
168+
public static void openMarkdown(Context context, String url, String title, String config, Boolean changeBoot, Boolean needsRamdisk,int minMagisk, int minApi, int maxApi) {
169169
try {
170170
Intent intent = new Intent(context, MarkdownActivity.class);
171171
MainApplication.addSecret(intent);
172172
intent.putExtra(Constants.EXTRA_MARKDOWN_URL, url);
173173
intent.putExtra(Constants.EXTRA_MARKDOWN_TITLE, title);
174174
intent.putExtra(Constants.EXTRA_MARKDOWN_CHANGE_BOOT, changeBoot);
175175
intent.putExtra(Constants.EXTRA_MARKDOWN_NEEDS_RAMDISK, needsRamdisk);
176+
intent.putExtra(Constants.EXTRA_MARKDOWN_MIN_MAGISK, minMagisk);
177+
intent.putExtra(Constants.EXTRA_MARKDOWN_MIN_API, minApi);
178+
intent.putExtra(Constants.EXTRA_MARKDOWN_MAX_API, maxApi);
176179
if (config != null && !config.isEmpty())
177180
intent.putExtra(Constants.EXTRA_MARKDOWN_CONFIG, config);
178181
startActivity(context, intent, true);

app/src/main/res/layout/markdown_view.xml

Lines changed: 3 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -41,32 +41,14 @@
4141
android:layout_height="wrap_content">
4242

4343
<com.google.android.material.chip.ChipGroup
44+
android:id="@+id/chip_group_holder"
4445
android:layout_width="wrap_content"
4546
android:layout_height="wrap_content"
47+
android:layout_gravity="end"
4648
android:padding="8dp"
4749
app:singleLine="true">
4850

49-
<com.google.android.material.chip.Chip
50-
android:id="@+id/chip_change_boot"
51-
android:layout_width="wrap_content"
52-
android:layout_height="wrap_content"
53-
android:text="@string/module_can_change_boot"
54-
android:visibility="gone" />
55-
56-
<com.google.android.material.chip.Chip
57-
android:id="@+id/chip_needs_ramdisk"
58-
android:layout_width="wrap_content"
59-
android:layout_height="wrap_content"
60-
android:text="@string/module_needs_ramdisk"
61-
android:visibility="gone" />
62-
63-
<!-- Leaving string hard codded -->
64-
<com.google.android.material.chip.Chip
65-
android:id="@+id/chip_min_magisk"
66-
android:layout_width="wrap_content"
67-
android:layout_height="wrap_content"
68-
android:text="Minimum Magisk 24.3+"
69-
android:visibility="gone" />
51+
<!-- Dynamically added -->
7052

7153
</com.google.android.material.chip.ChipGroup>
7254
</HorizontalScrollView>

0 commit comments

Comments
 (0)