Skip to content

Commit 7c436e4

Browse files
committed
fix: ControlCenterStyle hook failed on HyperOS3
1 parent bf62c42 commit 7c436e4

4 files changed

Lines changed: 20 additions & 12 deletions

File tree

library/core/src/main/java/com/sevtinge/hyperceiler/hooker/SystemSettingsFragment.java

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -19,25 +19,23 @@
1919
package com.sevtinge.hyperceiler.hooker;
2020

2121
import static com.sevtinge.hyperceiler.hook.utils.devicesdk.MiDeviceAppUtilsKt.isPad;
22-
import static com.sevtinge.hyperceiler.hook.utils.devicesdk.SystemSDKKt.isMoreHyperOSVersion;
2322

2423
import android.os.Bundle;
2524
import android.widget.SeekBar;
2625

2726
import androidx.preference.SwitchPreference;
2827

2928
import com.sevtinge.hyperceiler.common.prefs.RecommendPreference;
29+
import com.sevtinge.hyperceiler.core.R;
3030
import com.sevtinge.hyperceiler.dashboard.DashboardFragment;
3131
import com.sevtinge.hyperceiler.hook.utils.ToastHelper;
3232
import com.sevtinge.hyperceiler.hook.utils.log.AndroidLogUtils;
3333
import com.sevtinge.hyperceiler.hook.utils.shell.ShellUtils;
34-
import com.sevtinge.hyperceiler.core.R;
3534

3635
import fan.preference.SeekBarPreferenceCompat;
3736

3837
public class SystemSettingsFragment extends DashboardFragment {
3938
SwitchPreference mUiMode;
40-
SwitchPreference mControlCenter;
4139
RecommendPreference mRecommend;
4240

4341
@Override
@@ -48,14 +46,9 @@ public int getPreferenceScreenResId() {
4846
@Override
4947
public void initPrefs() {
5048
mUiMode = findPreference("prefs_key_system_settings_unlock_ui_mode");
51-
mControlCenter = findPreference("prefs_key_system_control_center_unlock_old");
5249

5350
mUiMode.setVisible(isPad());
5451

55-
if (isMoreHyperOSVersion(3f)) {
56-
setFuncHint(mControlCenter, 1);
57-
}
58-
5952
Bundle args1 = new Bundle();
6053
mRecommend = new RecommendPreference(requireContext());
6154
getPreferenceScreen().addPreference(mRecommend);

library/hook/src/main/java/com/sevtinge/hyperceiler/hook/module/app/SystemUI/Pad/SystemUIB.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
import com.sevtinge.hyperceiler.hook.module.rules.systemui.UnlockClipboard;
1212
import com.sevtinge.hyperceiler.hook.module.rules.systemui.base.controlcenter.MediaControlBgFactory;
1313
import com.sevtinge.hyperceiler.hook.module.rules.systemui.controlcenter.AutoDismissExpandedPopupsHook;
14+
import com.sevtinge.hyperceiler.hook.module.rules.systemui.controlcenter.ControlCenterStyle;
1415
import com.sevtinge.hyperceiler.hook.module.rules.systemui.controlcenter.ExpandNotificationKt;
1516
import com.sevtinge.hyperceiler.hook.module.rules.systemui.controlcenter.FixTilesList;
1617
import com.sevtinge.hyperceiler.hook.module.rules.systemui.controlcenter.GmsTile;
@@ -125,6 +126,7 @@ public void handleLoadPackage() {
125126
initHook(AutoDismissExpandedPopupsHook.INSTANCE, mPrefsMap.getBoolean("system_ui_control_center_auto_clean_expand_notification"));
126127
initHook(ExpandNotificationKt.INSTANCE, !mPrefsMap.getStringSet("system_ui_control_center_expand_notification").isEmpty());
127128
initHook(new UnimportantNotification(), mPrefsMap.getBoolean("system_ui_control_center_unimportant_notification"));
129+
initHook(ControlCenterStyle.INSTANCE, mPrefsMap.getBoolean("system_control_center_unlock_old"));
128130

129131
// 磁贴
130132
initHook(new AutoCollapse(), mPrefsMap.getBoolean("system_ui_control_auto_close"));

library/hook/src/main/java/com/sevtinge/hyperceiler/hook/module/app/SystemUI/Phone/SystemUIB.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
import com.sevtinge.hyperceiler.hook.module.rules.systemui.base.api.MiuiStub;
3131
import com.sevtinge.hyperceiler.hook.module.rules.systemui.base.controlcenter.MediaControlBgFactory;
3232
import com.sevtinge.hyperceiler.hook.module.rules.systemui.controlcenter.AutoDismissExpandedPopupsHook;
33+
import com.sevtinge.hyperceiler.hook.module.rules.systemui.controlcenter.ControlCenterStyle;
3334
import com.sevtinge.hyperceiler.hook.module.rules.systemui.controlcenter.ExpandNotificationKt;
3435
import com.sevtinge.hyperceiler.hook.module.rules.systemui.controlcenter.FiveGTile;
3536
import com.sevtinge.hyperceiler.hook.module.rules.systemui.controlcenter.FixTilesList;
@@ -166,6 +167,7 @@ public void handleLoadPackage() {
166167
initHook(AutoDismissExpandedPopupsHook.INSTANCE, mPrefsMap.getBoolean("system_ui_control_center_auto_clean_expand_notification"));
167168
initHook(ExpandNotificationKt.INSTANCE, !mPrefsMap.getStringSet("system_ui_control_center_expand_notification").isEmpty());
168169
initHook(new UnimportantNotification(), mPrefsMap.getBoolean("system_ui_control_center_unimportant_notification"));
170+
initHook(ControlCenterStyle.INSTANCE, mPrefsMap.getBoolean("system_control_center_unlock_old"));
169171

170172
// 磁贴
171173
initHook(new AutoCollapse(), mPrefsMap.getBoolean("system_ui_control_auto_close"));

library/hook/src/main/java/com/sevtinge/hyperceiler/hook/module/rules/systemui/controlcenter/ControlCenterStyle.kt

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,16 +19,27 @@
1919
package com.sevtinge.hyperceiler.hook.module.rules.systemui.controlcenter
2020

2121
import com.sevtinge.hyperceiler.hook.module.base.BaseHook
22+
import com.sevtinge.hyperceiler.hook.utils.devicesdk.isMoreAndroidVersion
2223
import com.sevtinge.hyperceiler.hook.utils.setObjectField
2324
import io.github.kyuubiran.ezxhelper.core.util.ClassUtil.loadClass
2425
import io.github.kyuubiran.ezxhelper.xposed.dsl.HookFactory.`-Static`.createHooks
2526

2627
object ControlCenterStyle : BaseHook() {
2728
override fun init() {
28-
loadClass("com.android.systemui.controlcenter.policy.ControlCenterControllerImpl").declaredConstructors.createHooks {
29-
after {
30-
it.thisObject.setObjectField("forceUseControlCenterPanel", false)
31-
}
29+
if (isMoreAndroidVersion(36)) {
30+
loadClass("com.miui.systemui.controlcenter.data.repository.ControlCenterSettingsRepositoryImpl")
31+
.constructors.createHooks {
32+
after {
33+
it.thisObject.setObjectField("forceUseControlCenter", false)
34+
}
35+
}
36+
} else {
37+
loadClass("com.android.systemui.controlcenter.policy.ControlCenterControllerImpl")
38+
.declaredConstructors.createHooks {
39+
after {
40+
it.thisObject.setObjectField("forceUseControlCenterPanel", false)
41+
}
42+
}
3243
}
3344
}
3445
}

0 commit comments

Comments
 (0)