Loading packages/SystemUI/src/com/android/keyguard/KeyguardSliceView.java +6 −0 Original line number Original line Diff line number Diff line Loading @@ -57,6 +57,7 @@ import java.util.function.Consumer; import androidx.slice.Slice; import androidx.slice.Slice; import androidx.slice.SliceItem; import androidx.slice.SliceItem; import androidx.slice.SliceManager; import androidx.slice.core.SliceQuery; import androidx.slice.core.SliceQuery; import androidx.slice.widget.ListContent; import androidx.slice.widget.ListContent; import androidx.slice.widget.RowContent; import androidx.slice.widget.RowContent; Loading Loading @@ -390,6 +391,11 @@ public class KeyguardSliceView extends LinearLayout implements View.OnClickListe } } } } public void refresh() { Slice slice = SliceManager.getInstance(getContext()).bindSlice(mKeyguardSliceUri); onChanged(slice); } public static class Row extends LinearLayout { public static class Row extends LinearLayout { /** /** Loading packages/SystemUI/src/com/android/keyguard/KeyguardStatusView.java +6 −1 Original line number Original line Diff line number Diff line Loading @@ -287,7 +287,12 @@ public class KeyguardStatusView extends GridLayout implements } } } } public void refreshTime() { public void dozeTimeTick() { refreshTime(); mKeyguardSlice.refresh(); } private void refreshTime() { mClockView.refresh(); mClockView.refresh(); } } Loading packages/SystemUI/src/com/android/systemui/keyguard/KeyguardSliceProvider.java +3 −22 Original line number Original line Diff line number Diff line Loading @@ -79,7 +79,6 @@ public class KeyguardSliceProvider extends SliceProvider implements private DateFormat mDateFormat; private DateFormat mDateFormat; private String mLastText; private String mLastText; private boolean mRegistered; private boolean mRegistered; private boolean mRegisteredEveryMinute; private String mNextAlarm; private String mNextAlarm; private NextAlarmController mNextAlarmController; private NextAlarmController mNextAlarmController; protected AlarmManager mAlarmManager; protected AlarmManager mAlarmManager; Loading Loading @@ -175,7 +174,7 @@ public class KeyguardSliceProvider extends SliceProvider implements mZenModeController = new ZenModeControllerImpl(getContext(), mHandler); mZenModeController = new ZenModeControllerImpl(getContext(), mHandler); mZenModeController.addCallback(this); mZenModeController.addCallback(this); mDatePattern = getContext().getString(R.string.system_ui_aod_date_pattern); mDatePattern = getContext().getString(R.string.system_ui_aod_date_pattern); registerClockUpdate(false /* everyMinute */); registerClockUpdate(); updateClock(); updateClock(); return true; return true; } } Loading Loading @@ -214,22 +213,13 @@ public class KeyguardSliceProvider extends SliceProvider implements /** /** * Registers a broadcast receiver for clock updates, include date, time zone and manually * Registers a broadcast receiver for clock updates, include date, time zone and manually * changing the date/time via the settings app. * changing the date/time via the settings app. * * @param everyMinute {@code true} if you also want updates every minute. */ */ protected void registerClockUpdate(boolean everyMinute) { private void registerClockUpdate() { if (mRegistered) { if (mRegistered) { if (mRegisteredEveryMinute == everyMinute) { return; return; } else { unregisterClockUpdate(); } } } IntentFilter filter = new IntentFilter(); IntentFilter filter = new IntentFilter(); if (everyMinute) { filter.addAction(Intent.ACTION_TIME_TICK); } filter.addAction(Intent.ACTION_DATE_CHANGED); filter.addAction(Intent.ACTION_DATE_CHANGED); filter.addAction(Intent.ACTION_TIME_CHANGED); filter.addAction(Intent.ACTION_TIME_CHANGED); filter.addAction(Intent.ACTION_TIMEZONE_CHANGED); filter.addAction(Intent.ACTION_TIMEZONE_CHANGED); Loading @@ -237,15 +227,6 @@ public class KeyguardSliceProvider extends SliceProvider implements getContext().registerReceiver(mIntentReceiver, filter, null /* permission*/, getContext().registerReceiver(mIntentReceiver, filter, null /* permission*/, null /* scheduler */); null /* scheduler */); mRegistered = true; mRegistered = true; mRegisteredEveryMinute = everyMinute; } protected void unregisterClockUpdate() { if (!mRegistered) { return; } getContext().unregisterReceiver(mIntentReceiver); mRegistered = false; } } @VisibleForTesting @VisibleForTesting Loading packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java +2 −2 Original line number Original line Diff line number Diff line Loading @@ -2267,7 +2267,7 @@ public class NotificationPanelView extends PanelView implements } } public void onScreenTurningOn() { public void onScreenTurningOn() { mKeyguardStatusView.refreshTime(); mKeyguardStatusView.dozeTimeTick(); } } @Override @Override Loading Loading @@ -2690,7 +2690,7 @@ public class NotificationPanelView extends PanelView implements } } public void dozeTimeTick() { public void dozeTimeTick() { mKeyguardStatusView.refreshTime(); mKeyguardStatusView.dozeTimeTick(); mKeyguardBottomArea.dozeTimeTick(); mKeyguardBottomArea.dozeTimeTick(); if (mDarkAmount > 0) { if (mDarkAmount > 0) { positionClockAndNotifications(); positionClockAndNotifications(); Loading packages/SystemUI/tests/src/com/android/keyguard/KeyguardSliceViewTest.java +11 −0 Original line number Original line Diff line number Diff line Loading @@ -89,6 +89,17 @@ public class KeyguardSliceViewTest extends SysuiTestCase { Assert.assertTrue("View should have a header", mKeyguardSliceView.hasHeader()); Assert.assertTrue("View should have a header", mKeyguardSliceView.hasHeader()); } } @Test public void refresh_replacesSliceContentAndNotifiesListener() { AtomicBoolean notified = new AtomicBoolean(); mKeyguardSliceView.setContentChangeListener((hasHeader)-> { notified.set(true); }); mKeyguardSliceView.refresh(); Assert.assertTrue("Listener should be notified about slice changes.", notified.get()); } @Test @Test public void getTextColor_whiteTextWhenAOD() { public void getTextColor_whiteTextWhenAOD() { // Set text color to red since the default is white and test would always pass // Set text color to red since the default is white and test would always pass Loading Loading
packages/SystemUI/src/com/android/keyguard/KeyguardSliceView.java +6 −0 Original line number Original line Diff line number Diff line Loading @@ -57,6 +57,7 @@ import java.util.function.Consumer; import androidx.slice.Slice; import androidx.slice.Slice; import androidx.slice.SliceItem; import androidx.slice.SliceItem; import androidx.slice.SliceManager; import androidx.slice.core.SliceQuery; import androidx.slice.core.SliceQuery; import androidx.slice.widget.ListContent; import androidx.slice.widget.ListContent; import androidx.slice.widget.RowContent; import androidx.slice.widget.RowContent; Loading Loading @@ -390,6 +391,11 @@ public class KeyguardSliceView extends LinearLayout implements View.OnClickListe } } } } public void refresh() { Slice slice = SliceManager.getInstance(getContext()).bindSlice(mKeyguardSliceUri); onChanged(slice); } public static class Row extends LinearLayout { public static class Row extends LinearLayout { /** /** Loading
packages/SystemUI/src/com/android/keyguard/KeyguardStatusView.java +6 −1 Original line number Original line Diff line number Diff line Loading @@ -287,7 +287,12 @@ public class KeyguardStatusView extends GridLayout implements } } } } public void refreshTime() { public void dozeTimeTick() { refreshTime(); mKeyguardSlice.refresh(); } private void refreshTime() { mClockView.refresh(); mClockView.refresh(); } } Loading
packages/SystemUI/src/com/android/systemui/keyguard/KeyguardSliceProvider.java +3 −22 Original line number Original line Diff line number Diff line Loading @@ -79,7 +79,6 @@ public class KeyguardSliceProvider extends SliceProvider implements private DateFormat mDateFormat; private DateFormat mDateFormat; private String mLastText; private String mLastText; private boolean mRegistered; private boolean mRegistered; private boolean mRegisteredEveryMinute; private String mNextAlarm; private String mNextAlarm; private NextAlarmController mNextAlarmController; private NextAlarmController mNextAlarmController; protected AlarmManager mAlarmManager; protected AlarmManager mAlarmManager; Loading Loading @@ -175,7 +174,7 @@ public class KeyguardSliceProvider extends SliceProvider implements mZenModeController = new ZenModeControllerImpl(getContext(), mHandler); mZenModeController = new ZenModeControllerImpl(getContext(), mHandler); mZenModeController.addCallback(this); mZenModeController.addCallback(this); mDatePattern = getContext().getString(R.string.system_ui_aod_date_pattern); mDatePattern = getContext().getString(R.string.system_ui_aod_date_pattern); registerClockUpdate(false /* everyMinute */); registerClockUpdate(); updateClock(); updateClock(); return true; return true; } } Loading Loading @@ -214,22 +213,13 @@ public class KeyguardSliceProvider extends SliceProvider implements /** /** * Registers a broadcast receiver for clock updates, include date, time zone and manually * Registers a broadcast receiver for clock updates, include date, time zone and manually * changing the date/time via the settings app. * changing the date/time via the settings app. * * @param everyMinute {@code true} if you also want updates every minute. */ */ protected void registerClockUpdate(boolean everyMinute) { private void registerClockUpdate() { if (mRegistered) { if (mRegistered) { if (mRegisteredEveryMinute == everyMinute) { return; return; } else { unregisterClockUpdate(); } } } IntentFilter filter = new IntentFilter(); IntentFilter filter = new IntentFilter(); if (everyMinute) { filter.addAction(Intent.ACTION_TIME_TICK); } filter.addAction(Intent.ACTION_DATE_CHANGED); filter.addAction(Intent.ACTION_DATE_CHANGED); filter.addAction(Intent.ACTION_TIME_CHANGED); filter.addAction(Intent.ACTION_TIME_CHANGED); filter.addAction(Intent.ACTION_TIMEZONE_CHANGED); filter.addAction(Intent.ACTION_TIMEZONE_CHANGED); Loading @@ -237,15 +227,6 @@ public class KeyguardSliceProvider extends SliceProvider implements getContext().registerReceiver(mIntentReceiver, filter, null /* permission*/, getContext().registerReceiver(mIntentReceiver, filter, null /* permission*/, null /* scheduler */); null /* scheduler */); mRegistered = true; mRegistered = true; mRegisteredEveryMinute = everyMinute; } protected void unregisterClockUpdate() { if (!mRegistered) { return; } getContext().unregisterReceiver(mIntentReceiver); mRegistered = false; } } @VisibleForTesting @VisibleForTesting Loading
packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java +2 −2 Original line number Original line Diff line number Diff line Loading @@ -2267,7 +2267,7 @@ public class NotificationPanelView extends PanelView implements } } public void onScreenTurningOn() { public void onScreenTurningOn() { mKeyguardStatusView.refreshTime(); mKeyguardStatusView.dozeTimeTick(); } } @Override @Override Loading Loading @@ -2690,7 +2690,7 @@ public class NotificationPanelView extends PanelView implements } } public void dozeTimeTick() { public void dozeTimeTick() { mKeyguardStatusView.refreshTime(); mKeyguardStatusView.dozeTimeTick(); mKeyguardBottomArea.dozeTimeTick(); mKeyguardBottomArea.dozeTimeTick(); if (mDarkAmount > 0) { if (mDarkAmount > 0) { positionClockAndNotifications(); positionClockAndNotifications(); Loading
packages/SystemUI/tests/src/com/android/keyguard/KeyguardSliceViewTest.java +11 −0 Original line number Original line Diff line number Diff line Loading @@ -89,6 +89,17 @@ public class KeyguardSliceViewTest extends SysuiTestCase { Assert.assertTrue("View should have a header", mKeyguardSliceView.hasHeader()); Assert.assertTrue("View should have a header", mKeyguardSliceView.hasHeader()); } } @Test public void refresh_replacesSliceContentAndNotifiesListener() { AtomicBoolean notified = new AtomicBoolean(); mKeyguardSliceView.setContentChangeListener((hasHeader)-> { notified.set(true); }); mKeyguardSliceView.refresh(); Assert.assertTrue("Listener should be notified about slice changes.", notified.get()); } @Test @Test public void getTextColor_whiteTextWhenAOD() { public void getTextColor_whiteTextWhenAOD() { // Set text color to red since the default is white and test would always pass // Set text color to red since the default is white and test would always pass Loading