Improvements (Read below)

- Removed red card color and added an chip if an module.prop isn't well formatted
- Added dialog for Low-quality module
- String fixes
pull/27/head
DerGoogler 3 years ago
parent ad2f59922f
commit 74e49369b7

@ -1,7 +1,9 @@
package com.fox2code.mmm.markdown; package com.fox2code.mmm.markdown;
import android.annotation.SuppressLint;
import android.content.Intent; import android.content.Intent;
import android.content.pm.PackageManager; import android.content.pm.PackageManager;
import android.content.res.ColorStateList;
import android.content.res.Configuration; import android.content.res.Configuration;
import android.content.res.Resources; import android.content.res.Resources;
import android.graphics.Color; import android.graphics.Color;
@ -276,9 +278,7 @@ public class MarkdownActivity extends CompatActivity {
.setTitle(title) .setTitle(title)
.setMessage(message) .setMessage(message)
.setCancelable(true) .setCancelable(true)
.setPositiveButton(R.string.ok, (x, y) -> { .setPositiveButton(R.string.ok, (x, y) -> x.dismiss()).show();
x.dismiss();
}).show();
}); });
} }

@ -27,6 +27,7 @@ import com.fox2code.mmm.manager.ModuleInfo;
import com.fox2code.mmm.manager.ModuleManager; import com.fox2code.mmm.manager.ModuleManager;
import com.fox2code.mmm.repo.RepoModule; import com.fox2code.mmm.repo.RepoModule;
import com.google.android.material.chip.Chip; import com.google.android.material.chip.Chip;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import com.google.android.material.switchmaterial.SwitchMaterial; import com.google.android.material.switchmaterial.SwitchMaterial;
import com.topjohnwu.superuser.internal.UiThreadHandler; import com.topjohnwu.superuser.internal.UiThreadHandler;
@ -67,6 +68,7 @@ public final class ModuleViewAdapter extends RecyclerView.Adapter<ModuleViewAdap
public static class ViewHolder extends RecyclerView.ViewHolder { public static class ViewHolder extends RecyclerView.ViewHolder {
private final CardView cardView; private final CardView cardView;
private final Chip invalidPropsChip;
private final ImageButton buttonAction; private final ImageButton buttonAction;
private final SwitchMaterial switchMaterial; private final SwitchMaterial switchMaterial;
private final TextView titleText; private final TextView titleText;
@ -84,6 +86,7 @@ public final class ModuleViewAdapter extends RecyclerView.Adapter<ModuleViewAdap
super(itemView); super(itemView);
this.initState = true; this.initState = true;
this.cardView = itemView.findViewById(R.id.card_view); this.cardView = itemView.findViewById(R.id.card_view);
this.invalidPropsChip = itemView.findViewById(R.id.invalid_module_props);
this.buttonAction = itemView.findViewById(R.id.button_action); this.buttonAction = itemView.findViewById(R.id.button_action);
this.switchMaterial = itemView.findViewById(R.id.switch_action); this.switchMaterial = itemView.findViewById(R.id.switch_action);
this.titleText = itemView.findViewById(R.id.title_text); this.titleText = itemView.findViewById(R.id.title_text);
@ -115,7 +118,7 @@ public final class ModuleViewAdapter extends RecyclerView.Adapter<ModuleViewAdap
this.buttonAction.setClickable(false); this.buttonAction.setClickable(false);
this.switchMaterial.setEnabled(false); this.switchMaterial.setEnabled(false);
this.switchMaterial.setOnCheckedChangeListener((v, checked) -> { this.switchMaterial.setOnCheckedChangeListener((v, checked) -> {
if (this.initState) return; // Skip if non user if (this.initState) return; // Skip if non user
ModuleHolder moduleHolder = this.moduleHolder; ModuleHolder moduleHolder = this.moduleHolder;
if (moduleHolder != null && moduleHolder.moduleInfo != null) { if (moduleHolder != null && moduleHolder.moduleInfo != null) {
ModuleInfo moduleInfo = moduleHolder.moduleInfo; ModuleInfo moduleInfo = moduleHolder.moduleInfo;
@ -319,8 +322,21 @@ public final class ModuleViewAdapter extends RecyclerView.Adapter<ModuleViewAdap
backgroundAttr = moduleHolder.notificationType.backgroundAttr; backgroundAttr = moduleHolder.notificationType.backgroundAttr;
} else if (type == ModuleHolder.Type.INSTALLED && } else if (type == ModuleHolder.Type.INSTALLED &&
moduleHolder.hasFlag(ModuleInfo.FLAG_METADATA_INVALID)) { moduleHolder.hasFlag(ModuleInfo.FLAG_METADATA_INVALID)) {
foregroundAttr = R.attr.colorOnError; invalidPropsChip.setOnClickListener(_view -> {
backgroundAttr = R.attr.colorError; MaterialAlertDialogBuilder builder =
new MaterialAlertDialogBuilder(_view.getContext());
builder
.setTitle(R.string.low_quality_module)
.setMessage("Actual description for Low-quality module")
.setCancelable(true)
.setPositiveButton(R.string.ok, (x, y) -> x.dismiss()).show();
});
this.invalidPropsChip.setVisibility(View.VISIBLE);
// Backup restore
// foregroundAttr = R.attr.colorOnError;
// backgroundAttr = R.attr.colorError;
} }
Resources.Theme theme = this.cardView.getContext().getTheme(); Resources.Theme theme = this.cardView.getContext().getTheme();
TypedValue value = new TypedValue(); TypedValue value = new TypedValue();

@ -28,7 +28,7 @@
android:layout_height="194dp" android:layout_height="194dp"
android:visibility="gone" android:visibility="gone"
android:scaleType="centerCrop" android:scaleType="centerCrop"
/> tools:ignore="ContentDescription" />
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
@ -43,6 +43,19 @@
android:orientation="horizontal" android:orientation="horizontal"
android:gravity="center_vertical"> android:gravity="center_vertical">
<com.google.android.material.chip.Chip
android:id="@+id/invalid_module_props"
android:layout_width="wrap_content"
android:layout_height="40dp"
android:text="@string/low_quality_module"
android:textSize="12sp"
android:layout_marginEnd="4dp"
android:visibility="gone"
app:chipStartPadding="4dp"
app:chipEndPadding="2dp"
app:chipIconSize="15dp"
app:chipIcon="@drawable/ic_baseline_error_24" />
<TextView <TextView
android:id="@+id/title_text" android:id="@+id/title_text"
android:layout_width="0dp" android:layout_width="0dp"
@ -116,7 +129,8 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"> app:layout_constraintTop_toTopOf="parent"
tools:ignore="UselessParent">
<com.google.android.material.chip.ChipGroup <com.google.android.material.chip.ChipGroup
android:layout_width="wrap_content" android:layout_width="wrap_content"

@ -36,7 +36,6 @@
<string name="master_delete_no">Dateien behalten</string> <string name="master_delete_no">Dateien behalten</string>
<string name="master_delete_yes">Dateien löschen</string> <string name="master_delete_yes">Dateien löschen</string>
<string name="master_delete_fail">Fehler beim Löschen der Moduldateien</string> <string name="master_delete_fail">Fehler beim Löschen der Moduldateien</string>
<string name="module_id_prefix">" "</string>
<string name="install_from_storage">Module aus dem Speicher installieren</string> <string name="install_from_storage">Module aus dem Speicher installieren</string>
<string name="invalid_format">Das ausgewählte Modul hat ein ungültiges Format</string> <string name="invalid_format">Das ausgewählte Modul hat ein ungültiges Format</string>
<string name="local_install_title">Lokale Installation</string> <string name="local_install_title">Lokale Installation</string>

@ -74,6 +74,7 @@
<string name="module_id_prefix">Module ID: </string> <string name="module_id_prefix">Module ID: </string>
<string name="install_from_storage">Install module from storage</string> <string name="install_from_storage">Install module from storage</string>
<string name="invalid_format">The selected module has an invalid format</string> <string name="invalid_format">The selected module has an invalid format</string>
<string name="low_quality_module">Low-quality module</string>
<string name="local_install_title">Local install</string> <string name="local_install_title">Local install</string>
<string name="source_code">Source code</string> <string name="source_code">Source code</string>
<string name="magisk_builtin_module">Magisk built-in module</string> <string name="magisk_builtin_module">Magisk built-in module</string>
@ -105,7 +106,10 @@
terminal extensions.\nUseful if a module misuses Fox\'s Mmm extensions. terminal extensions.\nUseful if a module misuses Fox\'s Mmm extensions.
</string> </string>
<string name="wrap_text_pref">Text wrapping</string> <string name="wrap_text_pref">Text wrapping</string>
<string name="wrap_text_desc">" Show text on multiple lines instead of putting all text on the same line when installing a module. "</string> <string name="wrap_text_desc">
Show text on multiple lines instead of putting
all text on the same line when installing a module.
</string>
<string name="enable_blur_pref">Blur</string> <string name="enable_blur_pref">Blur</string>
<string name="disable_chips_in_description">Disable chips in description</string> <string name="disable_chips_in_description">Disable chips in description</string>
<string name="repo_enabled">Repo on</string> <string name="repo_enabled">Repo on</string>

Loading…
Cancel
Save