public RingerSwitchObserver(Context context) { mContext = context; ThemeUtils.registerThemeChangeReceiver( context, new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { mUiContext = null; } }); mHandler = new Handler(); mVolumeChangeUiRunnable = new Runnable() { @Override public void run() { getVolumePanel() .postVolumeChanged( AudioManager.STREAM_RING, AudioManager.FLAG_SHOW_UI | AudioManager.FLAG_VIBRATE); } }; PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE); mWakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "RingerSwitchObserver"); mWakeLock.setReferenceCounted(false); startObserving(RINGER_SWITCH_UEVENT_MATCH); init(); // set initial status }