Loading packages/SystemUI/src/com/android/keyguard/AnimatableClockController.java +60 −23 Original line number Diff line number Diff line Loading @@ -37,7 +37,8 @@ import java.util.Objects; import java.util.TimeZone; /** * Controller for an AnimatableClockView. Instantiated by {@link KeyguardClockSwitchController}. * Controller for an AnimatableClockView on the keyguard. Instantiated by * {@link KeyguardClockSwitchController}. */ public class AnimatableClockController extends ViewController<AnimatableClockView> { private static final int FORMAT_NUMBER = 1234567890; Loading @@ -46,6 +47,7 @@ public class AnimatableClockController extends ViewController<AnimatableClockVie private final BroadcastDispatcher mBroadcastDispatcher; private final KeyguardUpdateMonitor mKeyguardUpdateMonitor; private final KeyguardBypassController mBypassController; private final BatteryController mBatteryController; private final int mDozingColor = Color.WHITE; private int mLockScreenColor; Loading @@ -53,6 +55,7 @@ public class AnimatableClockController extends ViewController<AnimatableClockVie private boolean mIsCharging; private float mDozeAmount; private Locale mLocale; private boolean mAttached; // if keyguard isn't showing, mAttached = false private final NumberFormat mBurmeseNf = NumberFormat.getInstance(Locale.forLanguageTag("my")); private final String mBurmeseNumerals; Loading @@ -73,14 +76,17 @@ public class AnimatableClockController extends ViewController<AnimatableClockVie mBroadcastDispatcher = broadcastDispatcher; mKeyguardUpdateMonitor = keyguardUpdateMonitor; mBypassController = bypassController; mBatteryController = batteryController; mBurmeseNumerals = mBurmeseNf.format(FORMAT_NUMBER); mBurmeseLineSpacing = getContext().getResources().getFloat( R.dimen.keyguard_clock_line_spacing_scale_burmese); mDefaultLineSpacing = getContext().getResources().getFloat( R.dimen.keyguard_clock_line_spacing_scale); } batteryController.addCallback(new BatteryController.BatteryStateChangeCallback() { private final BatteryController.BatteryStateChangeCallback mBatteryCallback = new BatteryController.BatteryStateChangeCallback() { @Override public void onBatteryLevelChanged(int level, boolean pluggedIn, boolean charging) { if (!mIsCharging && charging) { Loading @@ -88,29 +94,29 @@ public class AnimatableClockController extends ViewController<AnimatableClockVie } mIsCharging = charging; } }); } }; private BroadcastReceiver mLocaleBroadcastReceiver = new BroadcastReceiver() { private final BroadcastReceiver mLocaleBroadcastReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { updateLocale(); } }; private final KeyguardUpdateMonitorCallback mKeyguardPersistentCallback = new KeyguardUpdateMonitorCallback() { @Override protected void onViewAttached() { updateLocale(); mBroadcastDispatcher.registerReceiver(mLocaleBroadcastReceiver, new IntentFilter(Intent.ACTION_LOCALE_CHANGED)); mStatusBarStateController.addCallback(mStatusBarStateListener); mIsDozing = mStatusBarStateController.isDozing(); mDozeAmount = mStatusBarStateController.getDozeAmount(); mKeyguardUpdateMonitor.registerCallback(mKeyguardUpdateMonitorCallback); refreshTime(); initColors(); public void onKeyguardVisibilityChanged(boolean showing) { // call attached/detached methods on visibility changes. benefits include: // - no animations when keyguard/clock view aren't visible // - resets state when keyguard is visible again (ie: font weight) if (showing) { onViewAttached(); } else { onViewDetached(); } } }; private final KeyguardUpdateMonitorCallback mKeyguardUpdateMonitorCallback = new KeyguardUpdateMonitorCallback() { Loading @@ -124,11 +130,42 @@ public class AnimatableClockController extends ViewController<AnimatableClockVie } }; @Override protected void onViewAttached() { if (mAttached) { return; } mAttached = true; updateLocale(); mBroadcastDispatcher.registerReceiver(mLocaleBroadcastReceiver, new IntentFilter(Intent.ACTION_LOCALE_CHANGED)); mStatusBarStateController.addCallback(mStatusBarStateListener); mIsDozing = mStatusBarStateController.isDozing(); mDozeAmount = mStatusBarStateController.getDozeAmount(); mBatteryController.addCallback(mBatteryCallback); mKeyguardUpdateMonitor.registerCallback(mKeyguardUpdateMonitorCallback); mKeyguardUpdateMonitor.removeCallback(mKeyguardPersistentCallback); mKeyguardUpdateMonitor.registerCallback(mKeyguardPersistentCallback); refreshTime(); initColors(); } @Override protected void onViewDetached() { if (!mAttached) { return; } mAttached = false; mBroadcastDispatcher.unregisterReceiver(mLocaleBroadcastReceiver); mStatusBarStateController.removeCallback(mStatusBarStateListener); mKeyguardUpdateMonitor.removeCallback(mKeyguardUpdateMonitorCallback); mBatteryController.removeCallback(mBatteryCallback); if (!mView.isAttachedToWindow()) { mKeyguardUpdateMonitor.removeCallback(mKeyguardPersistentCallback); } } /** Animate the clock appearance */ Loading packages/SystemUI/src/com/android/keyguard/KeyguardClockSwitchController.java +10 −10 Original line number Diff line number Diff line Loading @@ -124,16 +124,6 @@ public class KeyguardClockSwitchController extends ViewController<KeyguardClockS @Override public void onInit() { mKeyguardSliceViewController.init(); } @Override protected void onViewAttached() { if (CUSTOM_CLOCKS_ENABLED) { mClockManager.addOnClockChangedListener(mClockChangedListener); } mColorExtractor.addOnColorsChangedListener(mColorsListener); mView.updateColors(getGradientColors()); updateAodIcons(); mClockFrame = mView.findViewById(R.id.lockscreen_clock_view); mLargeClockFrame = mView.findViewById(R.id.lockscreen_clock_view_large); Loading @@ -157,6 +147,16 @@ public class KeyguardClockSwitchController extends ViewController<KeyguardClockS mKeyguardUpdateMonitor, mBypassController); mLargeClockViewController.init(); } @Override protected void onViewAttached() { if (CUSTOM_CLOCKS_ENABLED) { mClockManager.addOnClockChangedListener(mClockChangedListener); } mColorExtractor.addOnColorsChangedListener(mColorsListener); mView.updateColors(getGradientColors()); updateAodIcons(); if (mSmartspaceController.isEnabled()) { mSmartspaceView = mSmartspaceController.buildAndConnectView(mView); Loading Loading
packages/SystemUI/src/com/android/keyguard/AnimatableClockController.java +60 −23 Original line number Diff line number Diff line Loading @@ -37,7 +37,8 @@ import java.util.Objects; import java.util.TimeZone; /** * Controller for an AnimatableClockView. Instantiated by {@link KeyguardClockSwitchController}. * Controller for an AnimatableClockView on the keyguard. Instantiated by * {@link KeyguardClockSwitchController}. */ public class AnimatableClockController extends ViewController<AnimatableClockView> { private static final int FORMAT_NUMBER = 1234567890; Loading @@ -46,6 +47,7 @@ public class AnimatableClockController extends ViewController<AnimatableClockVie private final BroadcastDispatcher mBroadcastDispatcher; private final KeyguardUpdateMonitor mKeyguardUpdateMonitor; private final KeyguardBypassController mBypassController; private final BatteryController mBatteryController; private final int mDozingColor = Color.WHITE; private int mLockScreenColor; Loading @@ -53,6 +55,7 @@ public class AnimatableClockController extends ViewController<AnimatableClockVie private boolean mIsCharging; private float mDozeAmount; private Locale mLocale; private boolean mAttached; // if keyguard isn't showing, mAttached = false private final NumberFormat mBurmeseNf = NumberFormat.getInstance(Locale.forLanguageTag("my")); private final String mBurmeseNumerals; Loading @@ -73,14 +76,17 @@ public class AnimatableClockController extends ViewController<AnimatableClockVie mBroadcastDispatcher = broadcastDispatcher; mKeyguardUpdateMonitor = keyguardUpdateMonitor; mBypassController = bypassController; mBatteryController = batteryController; mBurmeseNumerals = mBurmeseNf.format(FORMAT_NUMBER); mBurmeseLineSpacing = getContext().getResources().getFloat( R.dimen.keyguard_clock_line_spacing_scale_burmese); mDefaultLineSpacing = getContext().getResources().getFloat( R.dimen.keyguard_clock_line_spacing_scale); } batteryController.addCallback(new BatteryController.BatteryStateChangeCallback() { private final BatteryController.BatteryStateChangeCallback mBatteryCallback = new BatteryController.BatteryStateChangeCallback() { @Override public void onBatteryLevelChanged(int level, boolean pluggedIn, boolean charging) { if (!mIsCharging && charging) { Loading @@ -88,29 +94,29 @@ public class AnimatableClockController extends ViewController<AnimatableClockVie } mIsCharging = charging; } }); } }; private BroadcastReceiver mLocaleBroadcastReceiver = new BroadcastReceiver() { private final BroadcastReceiver mLocaleBroadcastReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { updateLocale(); } }; private final KeyguardUpdateMonitorCallback mKeyguardPersistentCallback = new KeyguardUpdateMonitorCallback() { @Override protected void onViewAttached() { updateLocale(); mBroadcastDispatcher.registerReceiver(mLocaleBroadcastReceiver, new IntentFilter(Intent.ACTION_LOCALE_CHANGED)); mStatusBarStateController.addCallback(mStatusBarStateListener); mIsDozing = mStatusBarStateController.isDozing(); mDozeAmount = mStatusBarStateController.getDozeAmount(); mKeyguardUpdateMonitor.registerCallback(mKeyguardUpdateMonitorCallback); refreshTime(); initColors(); public void onKeyguardVisibilityChanged(boolean showing) { // call attached/detached methods on visibility changes. benefits include: // - no animations when keyguard/clock view aren't visible // - resets state when keyguard is visible again (ie: font weight) if (showing) { onViewAttached(); } else { onViewDetached(); } } }; private final KeyguardUpdateMonitorCallback mKeyguardUpdateMonitorCallback = new KeyguardUpdateMonitorCallback() { Loading @@ -124,11 +130,42 @@ public class AnimatableClockController extends ViewController<AnimatableClockVie } }; @Override protected void onViewAttached() { if (mAttached) { return; } mAttached = true; updateLocale(); mBroadcastDispatcher.registerReceiver(mLocaleBroadcastReceiver, new IntentFilter(Intent.ACTION_LOCALE_CHANGED)); mStatusBarStateController.addCallback(mStatusBarStateListener); mIsDozing = mStatusBarStateController.isDozing(); mDozeAmount = mStatusBarStateController.getDozeAmount(); mBatteryController.addCallback(mBatteryCallback); mKeyguardUpdateMonitor.registerCallback(mKeyguardUpdateMonitorCallback); mKeyguardUpdateMonitor.removeCallback(mKeyguardPersistentCallback); mKeyguardUpdateMonitor.registerCallback(mKeyguardPersistentCallback); refreshTime(); initColors(); } @Override protected void onViewDetached() { if (!mAttached) { return; } mAttached = false; mBroadcastDispatcher.unregisterReceiver(mLocaleBroadcastReceiver); mStatusBarStateController.removeCallback(mStatusBarStateListener); mKeyguardUpdateMonitor.removeCallback(mKeyguardUpdateMonitorCallback); mBatteryController.removeCallback(mBatteryCallback); if (!mView.isAttachedToWindow()) { mKeyguardUpdateMonitor.removeCallback(mKeyguardPersistentCallback); } } /** Animate the clock appearance */ Loading
packages/SystemUI/src/com/android/keyguard/KeyguardClockSwitchController.java +10 −10 Original line number Diff line number Diff line Loading @@ -124,16 +124,6 @@ public class KeyguardClockSwitchController extends ViewController<KeyguardClockS @Override public void onInit() { mKeyguardSliceViewController.init(); } @Override protected void onViewAttached() { if (CUSTOM_CLOCKS_ENABLED) { mClockManager.addOnClockChangedListener(mClockChangedListener); } mColorExtractor.addOnColorsChangedListener(mColorsListener); mView.updateColors(getGradientColors()); updateAodIcons(); mClockFrame = mView.findViewById(R.id.lockscreen_clock_view); mLargeClockFrame = mView.findViewById(R.id.lockscreen_clock_view_large); Loading @@ -157,6 +147,16 @@ public class KeyguardClockSwitchController extends ViewController<KeyguardClockS mKeyguardUpdateMonitor, mBypassController); mLargeClockViewController.init(); } @Override protected void onViewAttached() { if (CUSTOM_CLOCKS_ENABLED) { mClockManager.addOnClockChangedListener(mClockChangedListener); } mColorExtractor.addOnColorsChangedListener(mColorsListener); mView.updateColors(getGradientColors()); updateAodIcons(); if (mSmartspaceController.isEnabled()) { mSmartspaceView = mSmartspaceController.buildAndConnectView(mView); Loading