客户 想要去掉声音 菜单里面 一些 不常用的功能
包括:默认闹钟提示音 ,充电提示音,拨号提示音,默认通知提示音,默认手机铃声,
锁屏提示音,触摸提示音,有来电时响铃并振动,勿扰模式。
diff --git a/alps/vendor/mediatek/proprietary/packages/apps/MtkSettings/src/com/android/settings/notification/AlarmRingtonePreferenceController.java b/alps/vendor/mediatek/proprietary/packages/apps/MtkSettings/src/com/android/settings/notification/AlarmRingtonePreferenceController.java
index 2e7aab09a1..0daba35741 100644
--- a/alps/vendor/mediatek/proprietary/packages/apps/MtkSettings/src/com/android/settings/notification/AlarmRingtonePreferenceController.java
+++ b/alps/vendor/mediatek/proprietary/packages/apps/MtkSettings/src/com/android/settings/notification/AlarmRingtonePreferenceController.java
@@ -31,7 +31,10 @@ public class AlarmRingtonePreferenceController extends RingtonePreferenceControl
public String getPreferenceKey() {
return KEY_ALARM_RINGTONE;
}
-
+ @Override
+ public boolean isAvailable() {
+ return false;
+ }
@Override
public int getRingtoneType() {
return RingtoneManager.TYPE_ALARM;
diff --git a/alps/vendor/mediatek/proprietary/packages/apps/MtkSettings/src/com/android/settings/notification/ChargingSoundPreferenceController.java b/alps/vendor/mediatek/proprietary/packages/apps/MtkSettings/src/com/android/settings/notification/ChargingSoundPreferenceController.java
index 55cba9677f..7de52a7aac 100644
--- a/alps/vendor/mediatek/proprietary/packages/apps/MtkSettings/src/com/android/settings/notification/ChargingSoundPreferenceController.java
+++ b/alps/vendor/mediatek/proprietary/packages/apps/MtkSettings/src/com/android/settings/notification/ChargingSoundPreferenceController.java
@@ -32,7 +32,13 @@ public class ChargingSoundPreferenceController extends SettingPrefController {
Lifecycle lifecycle) {
super(context, parent, lifecycle);
mPreference = new SettingPref(
- TYPE_GLOBAL, KEY_CHARGING_SOUNDS, Global.CHARGING_SOUNDS_ENABLED, DEFAULT_ON);
+ TYPE_GLOBAL, KEY_CHARGING_SOUNDS, Global.CHARGING_SOUNDS_ENABLED, DEFAULT_ON){
+ @Override
+ public boolean isApplicable(Context context) {
+ return context.getResources().getBoolean(
+ com.android.settings.R.bool.has_dock_settings);
+ }
+ };
}
diff --git a/alps/vendor/mediatek/proprietary/packages/apps/MtkSettings/src/com/android/settings/notification/DialPadTonePreferenceController.java b/alps/vendor/mediatek/proprietary/packages/apps/MtkSettings/src/com/android/settings/notification/DialPadTonePreferenceController.java
index e0ca299683..906b1cdc96 100644
--- a/alps/vendor/mediatek/proprietary/packages/apps/MtkSettings/src/com/android/settings/notification/DialPadTonePreferenceController.java
+++ b/alps/vendor/mediatek/proprietary/packages/apps/MtkSettings/src/com/android/settings/notification/DialPadTonePreferenceController.java
@@ -36,7 +36,8 @@ public class DialPadTonePreferenceController extends SettingPrefController {
TYPE_SYSTEM, KEY_DIAL_PAD_TONES, System.DTMF_TONE_WHEN_DIALING, DEFAULT_ON) {
@Override
public boolean isApplicable(Context context) {
- return Utils.isVoiceCapable(context);
+ return Utils.isVoiceCapable(context) && context.getResources().getBoolean(
+ com.android.settings.R.bool.has_dock_settings);
}
};
}
diff --git a/alps/vendor/mediatek/proprietary/packages/apps/MtkSettings/src/com/android/settings/notification/NotificationRingtonePreferenceController.java b/alps/vendor/mediatek/proprietary/packages/apps/MtkSettings/src/com/android/settings/notification/NotificationRingtonePreferenceController.java
index 72e8d8f54d..e0cd0e6cef 100644
--- a/alps/vendor/mediatek/proprietary/packages/apps/MtkSettings/src/com/android/settings/notification/NotificationRingtonePreferenceController.java
+++ b/alps/vendor/mediatek/proprietary/packages/apps/MtkSettings/src/com/android/settings/notification/NotificationRingtonePreferenceController.java
@@ -31,7 +31,10 @@ public class NotificationRingtonePreferenceController extends RingtonePreference
public String getPreferenceKey() {
return KEY_NOTIFICATION_RINGTONE;
}
-
+ @Override
+ public boolean isAvailable() {
+ return false;
+ }
@Override
public int getRingtoneType() {
return RingtoneManager.TYPE_NOTIFICATION;
diff --git a/alps/vendor/mediatek/proprietary/packages/apps/MtkSettings/src/com/android/settings/notification/PhoneRingtonePreferenceController.java b/alps/vendor/mediatek/proprietary/packages/apps/MtkSettings/src/com/android/settings/notification/PhoneRingtonePreferenceController.java
index cb1115165f..0d84a5032a 100644
--- a/alps/vendor/mediatek/proprietary/packages/apps/MtkSettings/src/com/android/settings/notification/PhoneRingtonePreferenceController.java
+++ b/alps/vendor/mediatek/proprietary/packages/apps/MtkSettings/src/com/android/settings/notification/PhoneRingtonePreferenceController.java
@@ -35,7 +35,7 @@ public class PhoneRingtonePreferenceController extends RingtonePreferenceControl
@Override
public boolean isAvailable() {
- return Utils.isVoiceCapable(mContext);
+ return false;//Utils.isVoiceCapable(mContext);
}
@Override
diff --git a/alps/vendor/mediatek/proprietary/packages/apps/MtkSettings/src/com/android/settings/notification/ScreenLockSoundPreferenceController.java b/alps/vendor/mediatek/proprietary/packages/apps/MtkSettings/src/com/android/settings/notification/ScreenLockSoundPreferenceController.java
index b08b8f8409..f9003f25bf 100644
--- a/alps/vendor/mediatek/proprietary/packages/apps/MtkSettings/src/com/android/settings/notification/ScreenLockSoundPreferenceController.java
+++ b/alps/vendor/mediatek/proprietary/packages/apps/MtkSettings/src/com/android/settings/notification/ScreenLockSoundPreferenceController.java
@@ -32,7 +32,13 @@ public class ScreenLockSoundPreferenceController extends SettingPrefController {
Lifecycle lifecycle) {
super(context, parent, lifecycle);
mPreference = new SettingPref(
- TYPE_SYSTEM, KEY_SCREEN_LOCKING_SOUNDS, System.LOCKSCREEN_SOUNDS_ENABLED, DEFAULT_ON);
+ TYPE_SYSTEM, KEY_SCREEN_LOCKING_SOUNDS, System.LOCKSCREEN_SOUNDS_ENABLED, DEFAULT_ON){
+ @Override
+ public boolean isApplicable(Context context) {
+ return context.getResources().getBoolean(
+ com.android.settings.R.bool.has_dock_settings);
+ }
+ };
}
}
diff --git a/alps/vendor/mediatek/proprietary/packages/apps/MtkSettings/src/com/android/settings/notification/VibrateOnTouchPreferenceController.java b/alps/vendor/mediatek/proprietary/packages/apps/MtkSettings/src/com/android/settings/notification/VibrateOnTouchPreferenceController.java
index acb6b4d52c..1bb19ede83 100644
--- a/alps/vendor/mediatek/proprietary/packages/apps/MtkSettings/src/com/android/settings/notification/VibrateOnTouchPreferenceController.java
+++ b/alps/vendor/mediatek/proprietary/packages/apps/MtkSettings/src/com/android/settings/notification/VibrateOnTouchPreferenceController.java
@@ -43,7 +43,8 @@ public class VibrateOnTouchPreferenceController extends SettingPrefController {
private static boolean hasHaptic(Context context) {
final Vibrator vibrator = (Vibrator) context.getSystemService(Context.VIBRATOR_SERVICE);
- return vibrator != null && vibrator.hasVibrator();
+ return vibrator != null && vibrator.hasVibrator() && context.getResources().getBoolean(
+ com.android.settings.R.bool.has_dock_settings);
}
}
diff --git a/alps/vendor/mediatek/proprietary/packages/apps/MtkSettings/src/com/android/settings/notification/VibrateWhenRingPreferenceController.java b/alps/vendor/mediatek/proprietary/packages/apps/MtkSettings/src/com/android/settings/notification/VibrateWhenRingPreferenceController.java
index d41e16bc5a..8a3802b3f1 100644
--- a/alps/vendor/mediatek/proprietary/packages/apps/MtkSettings/src/com/android/settings/notification/VibrateWhenRingPreferenceController.java
+++ b/alps/vendor/mediatek/proprietary/packages/apps/MtkSettings/src/com/android/settings/notification/VibrateWhenRingPreferenceController.java
@@ -82,7 +82,7 @@ public class VibrateWhenRingPreferenceController extends AbstractPreferenceContr
@Override
public boolean isAvailable() {
- return Utils.isVoiceCapable(mContext);
+ return false;//Utils.isVoiceCapable(mContext);
}
@Override
diff --git a/alps/vendor/mediatek/proprietary/packages/apps/MtkSettings/src/com/android/settings/notification/ZenModePreferenceController.java b/alps/vendor/mediatek/proprietary/packages/apps/MtkSettings/src/com/android/settings/notification/ZenModePreferenceController.java
index e11b422572..3e9fcf73a2 100644
--- a/alps/vendor/mediatek/proprietary/packages/apps/MtkSettings/src/com/android/settings/notification/ZenModePreferenceController.java
+++ b/alps/vendor/mediatek/proprietary/packages/apps/MtkSettings/src/com/android/settings/notification/ZenModePreferenceController.java
@@ -37,7 +37,7 @@ public class ZenModePreferenceController extends AdjustVolumeRestrictedPreferenc
@Override
public boolean isAvailable() {
- return true;
+ return false;
}
@Override
diff --git a/alps/vendor/mediatek/proprietary/packages/apps/MtkSettings/src/com/android/settings/wifi/WifiMasterSwitchPreferenceController.java b/alps/vendor/mediatek/proprietary/packages/apps/MtkSettings/src/com/android/settings/wifi/WifiMasterSwitchPreferenceController.java
index 2fadede220..56485b63a1 100644
--- a/alps/vendor/mediatek/proprietary/packages/apps/MtkSettings/src/com/android/settings/wifi/WifiMasterSwitchPreferenceController.java
+++ b/alps/vendor/mediatek/proprietary/packages/apps/MtkSettings/src/com/android/settings/wifi/WifiMasterSwitchPreferenceController.java
@@ -56,7 +56,7 @@ public class WifiMasterSwitchPreferenceController extends AbstractPreferenceCont
@Override
public boolean isAvailable() {
- return true;
+ return false;
}
@Override
分析:隐藏掉充电提示音 修改的文件ChargingSoundPreferenceController.java ,刚看到的时候 ,里面代码很简单,不知道怎么下手。后面通过 查看对应的 布局文件 sound_settings.xml
发现 基座提示音 在机器上没有显示 打开 DockingSoundPreferenceController.java 发现 了
文件里面 复写 isApplicable 方法。
mPreference = new SettingPref(
TYPE_GLOBAL, KEY_DOCKING_SOUNDS, Global.DOCK_SOUNDS_ENABLED, DEFAULT_ON) {
@Override
public boolean isApplicable(Context context) {
return context.getResources().getBoolean(R.bool.has_dock_settings);
}
};
通过查找父类SettingPref.java发现 ,
final Context context = settings.getActivity();
Preference p = settings.getPreferenceScreen().findPreference(mKey);
if (p != null && !isApplicable(context)) {
settings.getPreferenceScreen().removePreference(p);
p = null;
}
来判断是否移除掉对应的 Preference 控件。
去掉默认闹钟提示音 在 AlarmRingtonePreferenceController.java 中添加了
@Override
public boolean isAvailable() {
return false;
}
方法。次方法 也是通过 查看同类型的文件 了解的 。
通过 跟踪查看父类 。发现了 AbstractPreferenceController.java 中 有
/**
* Displays preference in this controller.
*/
public void displayPreference(PreferenceScreen screen) {
if (isAvailable()) {
if (this instanceof Preference.OnPreferenceChangeListener) {
final Preference preference = screen.findPreference(getPreferenceKey());
preference.setOnPreferenceChangeListener(
(Preference.OnPreferenceChangeListener) this);
}
} else {
removePreference(screen, getPreferenceKey());
}
}