Loading core/java/com/android/internal/logging/MetricsLogger.java +7 −0 Original line number Diff line number Diff line Loading @@ -26,6 +26,13 @@ import android.view.View; * @hide */ public class MetricsLogger implements MetricsConstants { public static final int VOLUME_DIALOG = 207; public static final int VOLUME_DIALOG_DETAILS = 208; public static final int ACTION_VOLUME_SLIDER = 209; public static final int ACTION_VOLUME_STREAM = 210; public static final int ACTION_VOLUME_KEY = 211; public static final int ACTION_VOLUME_ICON = 212; public static final int ACTION_RINGER_MODE = 213; // Temporary constants go here, to await migration to MetricsConstants. public static void visible(Context context, int category) throws IllegalArgumentException { Loading packages/SystemUI/src/com/android/systemui/volume/Events.java +29 −2 Original line number Diff line number Diff line Loading @@ -16,11 +16,13 @@ package com.android.systemui.volume; import android.content.Context; import android.media.AudioManager; import android.media.AudioSystem; import android.provider.Settings.Global; import android.util.Log; import com.android.internal.logging.MetricsLogger; import com.android.systemui.volume.VolumeDialogController.State; import java.util.Arrays; Loading @@ -47,6 +49,7 @@ public class Events { public static final int EVENT_ZEN_MODE_CHANGED = 13; // (mode|int) public static final int EVENT_SUPPRESSOR_CHANGED = 14; // (component|string) (name|string) public static final int EVENT_MUTE_CHANGED = 15; // (stream|int) (muted|bool) public static final int EVENT_TOUCH_LEVEL_DONE = 16; // (stream|int) (level|bool) private static final String[] EVENT_TAGS = { "show_dialog", Loading @@ -65,6 +68,7 @@ public class Events { "zen_mode_changed", "suppressor_changed", "mute_changed", "touch_level_done", }; public static final int DISMISS_REASON_UNKNOWN = 0; Loading Loading @@ -100,36 +104,59 @@ public class Events { public static Callback sCallback; public static void writeEvent(int tag, Object... list) { public static void writeEvent(Context context, int tag, Object... list) { final long time = System.currentTimeMillis(); final StringBuilder sb = new StringBuilder("writeEvent ").append(EVENT_TAGS[tag]); if (list != null && list.length > 0) { sb.append(" "); switch (tag) { case EVENT_SHOW_DIALOG: MetricsLogger.visible(context, MetricsLogger.VOLUME_DIALOG); MetricsLogger.histogram(context, "volume_from_keyguard", (Boolean) list[1] ? 1 : 0); sb.append(SHOW_REASONS[(Integer) list[0]]).append(" keyguard=").append(list[1]); break; case EVENT_EXPAND: MetricsLogger.visibility(context, MetricsLogger.VOLUME_DIALOG_DETAILS, (Boolean) list[0]); sb.append(list[0]); break; case EVENT_DISMISS_DIALOG: MetricsLogger.hidden(context, MetricsLogger.VOLUME_DIALOG); sb.append(DISMISS_REASONS[(Integer) list[0]]); break; case EVENT_ACTIVE_STREAM_CHANGED: MetricsLogger.action(context, MetricsLogger.ACTION_VOLUME_STREAM, (Integer) list[0]); sb.append(AudioSystem.streamToString((Integer) list[0])); break; case EVENT_ICON_CLICK: MetricsLogger.action(context, MetricsLogger.ACTION_VOLUME_ICON, (Integer) list[1]); sb.append(AudioSystem.streamToString((Integer) list[0])).append(' ') .append(iconStateToString((Integer) list[1])); break; case EVENT_TOUCH_LEVEL_DONE: MetricsLogger.action(context, MetricsLogger.ACTION_VOLUME_SLIDER, (Integer) list[1]); // fall through case EVENT_TOUCH_LEVEL_CHANGED: case EVENT_LEVEL_CHANGED: case EVENT_MUTE_CHANGED: sb.append(AudioSystem.streamToString((Integer) list[0])).append(' ') .append(list[1]); break; case EVENT_INTERNAL_RINGER_MODE_CHANGED: case EVENT_KEY: MetricsLogger.action(context, MetricsLogger.ACTION_VOLUME_KEY, (Integer) list[1]); sb.append(AudioSystem.streamToString((Integer) list[0])).append(' ') .append(list[1]); break; case EVENT_EXTERNAL_RINGER_MODE_CHANGED: MetricsLogger.action(context, MetricsLogger.ACTION_RINGER_MODE, (Integer) list[0]); // fall through case EVENT_INTERNAL_RINGER_MODE_CHANGED: sb.append(ringerModeToString((Integer) list[0])); break; case EVENT_ZEN_MODE_CHANGED: Loading packages/SystemUI/src/com/android/systemui/volume/VolumeDialog.java +8 −6 Original line number Diff line number Diff line Loading @@ -369,7 +369,7 @@ public class VolumeDialog { row.icon.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Events.writeEvent(Events.EVENT_ICON_CLICK, row.stream, row.iconState); Events.writeEvent(mContext, Events.EVENT_ICON_CLICK, row.stream, row.iconState); mController.setActiveStream(row.stream); if (row.stream == AudioManager.STREAM_RING) { final boolean hasVibrator = mController.hasVibrator(); Loading Loading @@ -417,7 +417,7 @@ public class VolumeDialog { if (mShowing) return; mShowing = true; mDialog.show(); Events.writeEvent(Events.EVENT_SHOW_DIALOG, reason, mKeyguard.isKeyguardLocked()); Events.writeEvent(mContext, Events.EVENT_SHOW_DIALOG, reason, mKeyguard.isKeyguardLocked()); mController.notifyVisible(true); } Loading @@ -444,7 +444,7 @@ public class VolumeDialog { if (!mShowing) return; mShowing = false; mDialog.dismiss(); Events.writeEvent(Events.EVENT_DISMISS_DIALOG, reason); Events.writeEvent(mContext, Events.EVENT_DISMISS_DIALOG, reason); setExpandedH(false); mController.notifyVisible(false); synchronized (mSafetyWarningLock) { Loading Loading @@ -834,7 +834,7 @@ public class VolumeDialog { public void onClick(View v) { if (mExpanding) return; final boolean newExpand = !mExpanded; Events.writeEvent(Events.EVENT_EXPAND, v); Events.writeEvent(mContext, Events.EVENT_EXPAND, newExpand); setExpandedH(newExpand); } }; Loading @@ -845,7 +845,7 @@ public class VolumeDialog { mSettingsButton.postDelayed(new Runnable() { @Override public void run() { Events.writeEvent(Events.EVENT_SETTINGS_CLICK); Events.writeEvent(mContext, Events.EVENT_SETTINGS_CLICK); if (mCallback != null) { mCallback.onSettingsClicked(); } Loading Loading @@ -933,7 +933,8 @@ public class VolumeDialog { if (mRow.requestedLevel != userLevel) { mController.setStreamVolume(mRow.stream, userLevel); mRow.requestedLevel = userLevel; Events.writeEvent(Events.EVENT_TOUCH_LEVEL_CHANGED, mRow.stream, userLevel); Events.writeEvent(mContext, Events.EVENT_TOUCH_LEVEL_CHANGED, mRow.stream, userLevel); } } } Loading @@ -951,6 +952,7 @@ public class VolumeDialog { mRow.tracking = false; mRow.userAttempt = SystemClock.uptimeMillis(); int userLevel = getImpliedLevel(seekBar, seekBar.getProgress()); Events.writeEvent(mContext, Events.EVENT_TOUCH_LEVEL_DONE, mRow.stream, userLevel); if (mRow.ss.level != userLevel) { mHandler.sendMessageDelayed(mHandler.obtainMessage(H.RECHECK, mRow), USER_ATTEMPT_GRACE_PERIOD); Loading packages/SystemUI/src/com/android/systemui/volume/VolumeDialogController.java +12 −11 Original line number Diff line number Diff line Loading @@ -104,7 +104,7 @@ public class VolumeDialogController { public VolumeDialogController(Context context, ComponentName component) { mContext = context.getApplicationContext(); Events.writeEvent(Events.EVENT_COLLECTION_STARTED); Events.writeEvent(mContext, Events.EVENT_COLLECTION_STARTED); mComponent = component; mWorkerThread = new HandlerThread(VolumeDialogController.class.getSimpleName()); mWorkerThread.start(); Loading Loading @@ -168,7 +168,7 @@ public class VolumeDialogController { if (D.BUG) Log.d(TAG, "destroy"); if (mDestroyed) return; mDestroyed = true; Events.writeEvent(Events.EVENT_COLLECTION_STOPPED); Events.writeEvent(mContext, Events.EVENT_COLLECTION_STOPPED); mMediaSessions.destroy(); mObserver.destroy(); mReceiver.destroy(); Loading Loading @@ -293,7 +293,8 @@ public class VolumeDialogController { if (showUI) { changed |= updateActiveStreamW(stream); } changed |= updateStreamLevelW(stream, mAudio.getLastAudibleStreamVolume(stream)); int lastAudibleStreamVolume = mAudio.getLastAudibleStreamVolume(stream); changed |= updateStreamLevelW(stream, lastAudibleStreamVolume); changed |= checkRoutedToBluetoothW(showUI ? AudioManager.STREAM_MUSIC : stream); if (changed) { mCallbacks.onStateChanged(mState); Loading @@ -308,14 +309,14 @@ public class VolumeDialogController { mCallbacks.onShowSilentHint(); } if (changed && fromKey) { Events.writeEvent(Events.EVENT_KEY); Events.writeEvent(mContext, Events.EVENT_KEY, stream, lastAudibleStreamVolume); } } private boolean updateActiveStreamW(int activeStream) { if (activeStream == mState.activeStream) return false; mState.activeStream = activeStream; Events.writeEvent(Events.EVENT_ACTIVE_STREAM_CHANGED, activeStream); Events.writeEvent(mContext, Events.EVENT_ACTIVE_STREAM_CHANGED, activeStream); if (D.BUG) Log.d(TAG, "updateActiveStreamW " + activeStream); final int s = activeStream < DYNAMIC_STREAM_START_INDEX ? activeStream : -1; if (D.BUG) Log.d(TAG, "forceVolumeControlStream " + s); Loading Loading @@ -364,7 +365,7 @@ public class VolumeDialogController { if (ss.level == level) return false; ss.level = level; if (isLogWorthy(stream)) { Events.writeEvent(Events.EVENT_LEVEL_CHANGED, stream, level); Events.writeEvent(mContext, Events.EVENT_LEVEL_CHANGED, stream, level); } return true; } Loading @@ -387,7 +388,7 @@ public class VolumeDialogController { if (ss.muted == muted) return false; ss.muted = muted; if (isLogWorthy(stream)) { Events.writeEvent(Events.EVENT_MUTE_CHANGED, stream, muted); Events.writeEvent(mContext, Events.EVENT_MUTE_CHANGED, stream, muted); } if (muted && isRinger(stream)) { updateRingerModeInternalW(mAudio.getRingerModeInternal()); Loading @@ -410,7 +411,7 @@ public class VolumeDialogController { if (Objects.equals(mState.effectsSuppressor, effectsSuppressor)) return false; mState.effectsSuppressor = effectsSuppressor; mState.effectsSuppressorName = getApplicationName(mContext, mState.effectsSuppressor); Events.writeEvent(Events.EVENT_SUPPRESSOR_CHANGED, mState.effectsSuppressor, Events.writeEvent(mContext, Events.EVENT_SUPPRESSOR_CHANGED, mState.effectsSuppressor, mState.effectsSuppressorName); return true; } Loading @@ -434,21 +435,21 @@ public class VolumeDialogController { Settings.Global.ZEN_MODE, Settings.Global.ZEN_MODE_OFF); if (mState.zenMode == zen) return false; mState.zenMode = zen; Events.writeEvent(Events.EVENT_ZEN_MODE_CHANGED, zen); Events.writeEvent(mContext, Events.EVENT_ZEN_MODE_CHANGED, zen); return true; } private boolean updateRingerModeExternalW(int rm) { if (rm == mState.ringerModeExternal) return false; mState.ringerModeExternal = rm; Events.writeEvent(Events.EVENT_EXTERNAL_RINGER_MODE_CHANGED, rm); Events.writeEvent(mContext, Events.EVENT_EXTERNAL_RINGER_MODE_CHANGED, rm); return true; } private boolean updateRingerModeInternalW(int rm) { if (rm == mState.ringerModeInternal) return false; mState.ringerModeInternal = rm; Events.writeEvent(Events.EVENT_INTERNAL_RINGER_MODE_CHANGED, rm); Events.writeEvent(mContext, Events.EVENT_INTERNAL_RINGER_MODE_CHANGED, rm); return true; } Loading Loading
core/java/com/android/internal/logging/MetricsLogger.java +7 −0 Original line number Diff line number Diff line Loading @@ -26,6 +26,13 @@ import android.view.View; * @hide */ public class MetricsLogger implements MetricsConstants { public static final int VOLUME_DIALOG = 207; public static final int VOLUME_DIALOG_DETAILS = 208; public static final int ACTION_VOLUME_SLIDER = 209; public static final int ACTION_VOLUME_STREAM = 210; public static final int ACTION_VOLUME_KEY = 211; public static final int ACTION_VOLUME_ICON = 212; public static final int ACTION_RINGER_MODE = 213; // Temporary constants go here, to await migration to MetricsConstants. public static void visible(Context context, int category) throws IllegalArgumentException { Loading
packages/SystemUI/src/com/android/systemui/volume/Events.java +29 −2 Original line number Diff line number Diff line Loading @@ -16,11 +16,13 @@ package com.android.systemui.volume; import android.content.Context; import android.media.AudioManager; import android.media.AudioSystem; import android.provider.Settings.Global; import android.util.Log; import com.android.internal.logging.MetricsLogger; import com.android.systemui.volume.VolumeDialogController.State; import java.util.Arrays; Loading @@ -47,6 +49,7 @@ public class Events { public static final int EVENT_ZEN_MODE_CHANGED = 13; // (mode|int) public static final int EVENT_SUPPRESSOR_CHANGED = 14; // (component|string) (name|string) public static final int EVENT_MUTE_CHANGED = 15; // (stream|int) (muted|bool) public static final int EVENT_TOUCH_LEVEL_DONE = 16; // (stream|int) (level|bool) private static final String[] EVENT_TAGS = { "show_dialog", Loading @@ -65,6 +68,7 @@ public class Events { "zen_mode_changed", "suppressor_changed", "mute_changed", "touch_level_done", }; public static final int DISMISS_REASON_UNKNOWN = 0; Loading Loading @@ -100,36 +104,59 @@ public class Events { public static Callback sCallback; public static void writeEvent(int tag, Object... list) { public static void writeEvent(Context context, int tag, Object... list) { final long time = System.currentTimeMillis(); final StringBuilder sb = new StringBuilder("writeEvent ").append(EVENT_TAGS[tag]); if (list != null && list.length > 0) { sb.append(" "); switch (tag) { case EVENT_SHOW_DIALOG: MetricsLogger.visible(context, MetricsLogger.VOLUME_DIALOG); MetricsLogger.histogram(context, "volume_from_keyguard", (Boolean) list[1] ? 1 : 0); sb.append(SHOW_REASONS[(Integer) list[0]]).append(" keyguard=").append(list[1]); break; case EVENT_EXPAND: MetricsLogger.visibility(context, MetricsLogger.VOLUME_DIALOG_DETAILS, (Boolean) list[0]); sb.append(list[0]); break; case EVENT_DISMISS_DIALOG: MetricsLogger.hidden(context, MetricsLogger.VOLUME_DIALOG); sb.append(DISMISS_REASONS[(Integer) list[0]]); break; case EVENT_ACTIVE_STREAM_CHANGED: MetricsLogger.action(context, MetricsLogger.ACTION_VOLUME_STREAM, (Integer) list[0]); sb.append(AudioSystem.streamToString((Integer) list[0])); break; case EVENT_ICON_CLICK: MetricsLogger.action(context, MetricsLogger.ACTION_VOLUME_ICON, (Integer) list[1]); sb.append(AudioSystem.streamToString((Integer) list[0])).append(' ') .append(iconStateToString((Integer) list[1])); break; case EVENT_TOUCH_LEVEL_DONE: MetricsLogger.action(context, MetricsLogger.ACTION_VOLUME_SLIDER, (Integer) list[1]); // fall through case EVENT_TOUCH_LEVEL_CHANGED: case EVENT_LEVEL_CHANGED: case EVENT_MUTE_CHANGED: sb.append(AudioSystem.streamToString((Integer) list[0])).append(' ') .append(list[1]); break; case EVENT_INTERNAL_RINGER_MODE_CHANGED: case EVENT_KEY: MetricsLogger.action(context, MetricsLogger.ACTION_VOLUME_KEY, (Integer) list[1]); sb.append(AudioSystem.streamToString((Integer) list[0])).append(' ') .append(list[1]); break; case EVENT_EXTERNAL_RINGER_MODE_CHANGED: MetricsLogger.action(context, MetricsLogger.ACTION_RINGER_MODE, (Integer) list[0]); // fall through case EVENT_INTERNAL_RINGER_MODE_CHANGED: sb.append(ringerModeToString((Integer) list[0])); break; case EVENT_ZEN_MODE_CHANGED: Loading
packages/SystemUI/src/com/android/systemui/volume/VolumeDialog.java +8 −6 Original line number Diff line number Diff line Loading @@ -369,7 +369,7 @@ public class VolumeDialog { row.icon.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Events.writeEvent(Events.EVENT_ICON_CLICK, row.stream, row.iconState); Events.writeEvent(mContext, Events.EVENT_ICON_CLICK, row.stream, row.iconState); mController.setActiveStream(row.stream); if (row.stream == AudioManager.STREAM_RING) { final boolean hasVibrator = mController.hasVibrator(); Loading Loading @@ -417,7 +417,7 @@ public class VolumeDialog { if (mShowing) return; mShowing = true; mDialog.show(); Events.writeEvent(Events.EVENT_SHOW_DIALOG, reason, mKeyguard.isKeyguardLocked()); Events.writeEvent(mContext, Events.EVENT_SHOW_DIALOG, reason, mKeyguard.isKeyguardLocked()); mController.notifyVisible(true); } Loading @@ -444,7 +444,7 @@ public class VolumeDialog { if (!mShowing) return; mShowing = false; mDialog.dismiss(); Events.writeEvent(Events.EVENT_DISMISS_DIALOG, reason); Events.writeEvent(mContext, Events.EVENT_DISMISS_DIALOG, reason); setExpandedH(false); mController.notifyVisible(false); synchronized (mSafetyWarningLock) { Loading Loading @@ -834,7 +834,7 @@ public class VolumeDialog { public void onClick(View v) { if (mExpanding) return; final boolean newExpand = !mExpanded; Events.writeEvent(Events.EVENT_EXPAND, v); Events.writeEvent(mContext, Events.EVENT_EXPAND, newExpand); setExpandedH(newExpand); } }; Loading @@ -845,7 +845,7 @@ public class VolumeDialog { mSettingsButton.postDelayed(new Runnable() { @Override public void run() { Events.writeEvent(Events.EVENT_SETTINGS_CLICK); Events.writeEvent(mContext, Events.EVENT_SETTINGS_CLICK); if (mCallback != null) { mCallback.onSettingsClicked(); } Loading Loading @@ -933,7 +933,8 @@ public class VolumeDialog { if (mRow.requestedLevel != userLevel) { mController.setStreamVolume(mRow.stream, userLevel); mRow.requestedLevel = userLevel; Events.writeEvent(Events.EVENT_TOUCH_LEVEL_CHANGED, mRow.stream, userLevel); Events.writeEvent(mContext, Events.EVENT_TOUCH_LEVEL_CHANGED, mRow.stream, userLevel); } } } Loading @@ -951,6 +952,7 @@ public class VolumeDialog { mRow.tracking = false; mRow.userAttempt = SystemClock.uptimeMillis(); int userLevel = getImpliedLevel(seekBar, seekBar.getProgress()); Events.writeEvent(mContext, Events.EVENT_TOUCH_LEVEL_DONE, mRow.stream, userLevel); if (mRow.ss.level != userLevel) { mHandler.sendMessageDelayed(mHandler.obtainMessage(H.RECHECK, mRow), USER_ATTEMPT_GRACE_PERIOD); Loading
packages/SystemUI/src/com/android/systemui/volume/VolumeDialogController.java +12 −11 Original line number Diff line number Diff line Loading @@ -104,7 +104,7 @@ public class VolumeDialogController { public VolumeDialogController(Context context, ComponentName component) { mContext = context.getApplicationContext(); Events.writeEvent(Events.EVENT_COLLECTION_STARTED); Events.writeEvent(mContext, Events.EVENT_COLLECTION_STARTED); mComponent = component; mWorkerThread = new HandlerThread(VolumeDialogController.class.getSimpleName()); mWorkerThread.start(); Loading Loading @@ -168,7 +168,7 @@ public class VolumeDialogController { if (D.BUG) Log.d(TAG, "destroy"); if (mDestroyed) return; mDestroyed = true; Events.writeEvent(Events.EVENT_COLLECTION_STOPPED); Events.writeEvent(mContext, Events.EVENT_COLLECTION_STOPPED); mMediaSessions.destroy(); mObserver.destroy(); mReceiver.destroy(); Loading Loading @@ -293,7 +293,8 @@ public class VolumeDialogController { if (showUI) { changed |= updateActiveStreamW(stream); } changed |= updateStreamLevelW(stream, mAudio.getLastAudibleStreamVolume(stream)); int lastAudibleStreamVolume = mAudio.getLastAudibleStreamVolume(stream); changed |= updateStreamLevelW(stream, lastAudibleStreamVolume); changed |= checkRoutedToBluetoothW(showUI ? AudioManager.STREAM_MUSIC : stream); if (changed) { mCallbacks.onStateChanged(mState); Loading @@ -308,14 +309,14 @@ public class VolumeDialogController { mCallbacks.onShowSilentHint(); } if (changed && fromKey) { Events.writeEvent(Events.EVENT_KEY); Events.writeEvent(mContext, Events.EVENT_KEY, stream, lastAudibleStreamVolume); } } private boolean updateActiveStreamW(int activeStream) { if (activeStream == mState.activeStream) return false; mState.activeStream = activeStream; Events.writeEvent(Events.EVENT_ACTIVE_STREAM_CHANGED, activeStream); Events.writeEvent(mContext, Events.EVENT_ACTIVE_STREAM_CHANGED, activeStream); if (D.BUG) Log.d(TAG, "updateActiveStreamW " + activeStream); final int s = activeStream < DYNAMIC_STREAM_START_INDEX ? activeStream : -1; if (D.BUG) Log.d(TAG, "forceVolumeControlStream " + s); Loading Loading @@ -364,7 +365,7 @@ public class VolumeDialogController { if (ss.level == level) return false; ss.level = level; if (isLogWorthy(stream)) { Events.writeEvent(Events.EVENT_LEVEL_CHANGED, stream, level); Events.writeEvent(mContext, Events.EVENT_LEVEL_CHANGED, stream, level); } return true; } Loading @@ -387,7 +388,7 @@ public class VolumeDialogController { if (ss.muted == muted) return false; ss.muted = muted; if (isLogWorthy(stream)) { Events.writeEvent(Events.EVENT_MUTE_CHANGED, stream, muted); Events.writeEvent(mContext, Events.EVENT_MUTE_CHANGED, stream, muted); } if (muted && isRinger(stream)) { updateRingerModeInternalW(mAudio.getRingerModeInternal()); Loading @@ -410,7 +411,7 @@ public class VolumeDialogController { if (Objects.equals(mState.effectsSuppressor, effectsSuppressor)) return false; mState.effectsSuppressor = effectsSuppressor; mState.effectsSuppressorName = getApplicationName(mContext, mState.effectsSuppressor); Events.writeEvent(Events.EVENT_SUPPRESSOR_CHANGED, mState.effectsSuppressor, Events.writeEvent(mContext, Events.EVENT_SUPPRESSOR_CHANGED, mState.effectsSuppressor, mState.effectsSuppressorName); return true; } Loading @@ -434,21 +435,21 @@ public class VolumeDialogController { Settings.Global.ZEN_MODE, Settings.Global.ZEN_MODE_OFF); if (mState.zenMode == zen) return false; mState.zenMode = zen; Events.writeEvent(Events.EVENT_ZEN_MODE_CHANGED, zen); Events.writeEvent(mContext, Events.EVENT_ZEN_MODE_CHANGED, zen); return true; } private boolean updateRingerModeExternalW(int rm) { if (rm == mState.ringerModeExternal) return false; mState.ringerModeExternal = rm; Events.writeEvent(Events.EVENT_EXTERNAL_RINGER_MODE_CHANGED, rm); Events.writeEvent(mContext, Events.EVENT_EXTERNAL_RINGER_MODE_CHANGED, rm); return true; } private boolean updateRingerModeInternalW(int rm) { if (rm == mState.ringerModeInternal) return false; mState.ringerModeInternal = rm; Events.writeEvent(Events.EVENT_INTERNAL_RINGER_MODE_CHANGED, rm); Events.writeEvent(mContext, Events.EVENT_INTERNAL_RINGER_MODE_CHANGED, rm); return true; } Loading