Skip to content

Commit

Permalink
fix: native volume bar
Browse files Browse the repository at this point in the history
  • Loading branch information
xzakota committed Feb 2, 2025
1 parent 1072113 commit 9d6d928
Showing 1 changed file with 43 additions and 42 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -97,67 +97,68 @@ public void initPrefs() {
mVolume1.setVisible(false);
}

mVolume.setOnPreferenceChangeListener(
(preference, o) -> {
ComponentName componentName = new ComponentName("miui.systemui.plugin",
"miui.systemui.volume.VolumeDialogPlugin");
PackageManager packageManager = requireContext().getPackageManager();
if ((boolean) o) {
packageManager.setComponentEnabledSetting(componentName,
PackageManager.COMPONENT_ENABLED_STATE_DISABLED,
PackageManager.DONT_KILL_APP);
} else {
packageManager.setComponentEnabledSetting(componentName,
PackageManager.COMPONENT_ENABLED_STATE_ENABLED,
PackageManager.DONT_KILL_APP);
}
return true;
}
);
mVolume.setOnPreferenceChangeListener(generateListener(
new ComponentName(
"miui.systemui.plugin",
"miui.systemui.volume.VolumeDialogPlugin"
)
));

mPower.setOnPreferenceChangeListener(generateListener(
new ComponentName(
"miui.systemui.plugin",
"miui.systemui.globalactions.GlobalActionsPlugin"
)
));
}

@Override
public boolean onPreferenceChange(@NonNull Preference preference, Object o) {
if (preference == mPctStyle) {
setStyleMode(Integer.parseInt((String) o));
}
return true;
}

private void setStyleMode(int mode) {
mBrightness1.setVisible(mode == 1);
mVolume1.setVisible(mode == 1);
mBrightness2.setVisible(mode == 2);
mVolume2.setVisible(mode == 2);
mShowPctTop.setVisible(mode == 2);
mShowPctBlur.setVisible(mode == 2);
}

mPower.setOnPreferenceChangeListener((preference, o) -> {
private Preference.OnPreferenceChangeListener generateListener(ComponentName componentName) {
return (preference, o) -> {
boolean value = (boolean) o;
boolean result = true;

ComponentName componentName = new ComponentName("miui.systemui.plugin",
"miui.systemui.globalactions.GlobalActionsPlugin");
try {
PackageManager packageManager = requireContext().getPackageManager();
if (value) {
packageManager.setComponentEnabledSetting(componentName,
PackageManager.COMPONENT_ENABLED_STATE_DISABLED,
PackageManager.DONT_KILL_APP);
PackageManager.DONT_KILL_APP
);
} else {
packageManager.setComponentEnabledSetting(componentName,
PackageManager.COMPONENT_ENABLED_STATE_ENABLED,
PackageManager.DONT_KILL_APP);
PackageManager.DONT_KILL_APP
);
}
} catch (Exception e) {
result = ShellPackageManager.enableOrDisable(componentName, !value);
} finally {
if (!result) {
ToastHelper.makeText(requireContext(),
getString(R.string.preference_enable_failed, preference.getTitle()));
ToastHelper.makeText(
requireContext(),
getString(R.string.preference_enable_failed, preference.getTitle())
);
}
}
return result;
});
}

@Override
public boolean onPreferenceChange(@NonNull Preference preference, Object o) {
if (preference == mPctStyle) {
setStyleMode(Integer.parseInt((String) o));
}
return true;
}

private void setStyleMode(int mode) {
mBrightness1.setVisible(mode == 1);
mVolume1.setVisible(mode == 1);
mBrightness2.setVisible(mode == 2);
mVolume2.setVisible(mode == 2);
mShowPctTop.setVisible(mode == 2);
mShowPctBlur.setVisible(mode == 2);
return result;
};
}
}

0 comments on commit 9d6d928

Please sign in to comment.