Skip to content

Commit b2c2a6f

Browse files
committed
Add switch to hide module icon
1 parent 4c4c6af commit b2c2a6f

File tree

3 files changed

+52
-1
lines changed

3 files changed

+52
-1
lines changed

app/src/main/AndroidManifest.xml

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,33 @@
2020
android:name="xposedminversion"
2121
android:value="53" />
2222

23-
<activity android:name="top.trumeet.mipush.settings.PreferenceActivity">
23+
<activity
24+
android:label="@string/app_name"
25+
android:name="top.trumeet.mipush.settings.PreferenceActivity">
2426
<intent-filter>
2527
<action android:name="android.intent.action.MAIN" />
28+
<action android:name="android.intent.action.VIEW" />
29+
2630
<category android:name="android.intent.category.LAUNCHER" />
31+
<category android:name="android.intent.category.DEFAULT" />
32+
<category android:name="de.robv.android.xposed.category.MODULE_SETTINGS" />
2733
</intent-filter>
2834
</activity>
35+
36+
37+
<activity-alias
38+
android:name="HiddenMainActivity"
39+
android:label="@string/app_name"
40+
android:targetActivity="top.trumeet.mipush.settings.PreferenceActivity">
41+
42+
<intent-filter>
43+
<action android:name="android.intent.action.MAIN" />
44+
<action android:name="android.intent.action.VIEW" />
45+
46+
<category android:name="android.intent.category.DEFAULT" />
47+
<category android:name="de.robv.android.xposed.category.MODULE_SETTINGS" />
48+
</intent-filter>
49+
50+
</activity-alias>
2951
</application>
3052
</manifest>

app/src/main/java/org/meowcat/xposed/mipush/Utils.java

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
package org.meowcat.xposed.mipush;
22

33
import android.app.Application;
4+
import android.content.ComponentName;
45
import android.content.Context;
6+
import android.content.pm.PackageManager;
57
import android.system.Os;
68
import android.system.OsConstants;
79
import android.util.Base64;
@@ -71,4 +73,19 @@ public static boolean getParamAvailability(final XC_MethodHook.MethodHookParam m
7173
public static boolean isEnhancementEnabled() {
7274
return false;
7375
}
76+
77+
/**
78+
* Hide or show app icon
79+
* @param packageManager packageNamager
80+
* @param componentName compoentName
81+
* @param hide hide or show icon
82+
*/
83+
public static void hideIcon(PackageManager packageManager, ComponentName componentName, boolean hide) {
84+
packageManager.getComponentEnabledSetting(componentName);
85+
if (hide) {
86+
packageManager.setComponentEnabledSetting(componentName, PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP);
87+
} else {
88+
packageManager.setComponentEnabledSetting(componentName, PackageManager.COMPONENT_ENABLED_STATE_DEFAULT, PackageManager.DONT_KILL_APP);
89+
}
90+
}
7491
}

app/src/main/java/top/trumeet/mipush/settings/PreferenceFragment.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package top.trumeet.mipush.settings;
22

33
import android.app.AlertDialog;
4+
import android.content.ComponentName;
45
import android.content.SharedPreferences;
56
import android.os.Build;
67
import android.os.Bundle;
@@ -15,6 +16,7 @@
1516
import androidx.annotation.NonNull;
1617
import androidx.annotation.Nullable;
1718

19+
import org.meowcat.xposed.mipush.BuildConfig;
1820
import org.meowcat.xposed.mipush.R;
1921
import org.meowcat.xposed.mipush.Utils;
2022

@@ -31,11 +33,13 @@
3133
import moe.shizuku.preference.MultiSelectListPreference;
3234
import moe.shizuku.preference.Preference;
3335
import moe.shizuku.preference.SimpleMenuPreference;
36+
import moe.shizuku.preference.SwitchPreference;
3437
import top.trumeet.mipush.settings.ini.IniConf;
3538
import top.trumeet.mipush.settings.ini.IniConstants;
3639
import top.trumeet.mipush.settings.ini.IniUtils;
3740

3841
import static org.meowcat.xposed.mipush.Constants.TAG;
42+
import static org.meowcat.xposed.mipush.Utils.hideIcon;
3943

4044
public class PreferenceFragment extends moe.shizuku.preference.PreferenceFragment implements
4145
SharedPreferences.OnSharedPreferenceChangeListener {
@@ -54,13 +58,17 @@ public void onCreate(Bundle savedInstanceState) {
5458
throw new RuntimeException(e);
5559
}
5660
render();
61+
62+
SwitchPreference hide_icon = (SwitchPreference) findPreference("hide_icon");
63+
hide_icon.setChecked(mConf.get(IniUtils.convertKeyToIni("hide_icon"), "false").equalsIgnoreCase("true"));
5764
}
5865
}
5966

6067
@Override
6168
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
6269
getPreferenceManager().setSharedPreferencesName("settings");
6370
addPreferencesFromResource(R.xml.preferences);
71+
6472
Preference device_status = findPreference("device_status");
6573
String status = Utils.isEnhancementEnabled() ? getString(R.string.pref_enhancement_status_success) : getString(R.string.pref_enhancement_status_failed);
6674
status = String.format("%s\n\n%s", status, String.format(getString(R.string.pref_enhancement_status_summary), Build.MANUFACTURER, SystemProperties.get("ro.product.manufacturer", "failed"), SystemProperties.get("ro.product.vendor.manufacturer", "failed"), Build.BRAND, SystemProperties.get("ro.product.brand", "failed"), SystemProperties.get("ro.product.vendor.brand", "failed"), SystemProperties.get("ro.miui.ui.version.name", "failed"), SystemProperties.get("ro.miui.ui.version.code", "failed"), SystemProperties.get("ro.miui.version.code_time", "failed")));
@@ -111,6 +119,10 @@ public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, Strin
111119
Log.d(TAG, "onSharedPreferenceChanged(): " + key);
112120
if (key.equals("module_blacklist") || key.equals("module_whitelist")) {
113121
mConf.putAll(IniUtils.convertKeyToIni(key), new ArrayList<>(Objects.requireNonNull(sharedPreferences.getStringSet(key, Collections.emptySet()))));
122+
} else if (key.equals("hide_icon")) {
123+
boolean isChecked = sharedPreferences.getBoolean(key, false);
124+
mConf.put(IniUtils.convertKeyToIni(key), isChecked ? "true" : "false");
125+
hideIcon(requireContext().getPackageManager(), new ComponentName(requireContext(), PreferenceActivity.class.getName()), isChecked);
114126
} else {
115127
mConf.put(IniUtils.convertKeyToIni(key), sharedPreferences.getString(key, null));
116128
}

0 commit comments

Comments
 (0)