Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e22a7bc9 authored by Lucas Dupin's avatar Lucas Dupin Committed by Android (Google) Code Review
Browse files

Merge "Update date during time tick event" into pi-dev

parents 7ca1b03e 9fedb89f
Loading
Loading
Loading
Loading
+6 −0
Original line number Original line Diff line number Diff line
@@ -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;
@@ -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 {


        /**
        /**
+6 −1
Original line number Original line Diff line number Diff line
@@ -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();
    }
    }


+3 −22
Original line number Original line Diff line number Diff line
@@ -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;
@@ -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;
    }
    }
@@ -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);
@@ -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
+2 −2
Original line number Original line Diff line number Diff line
@@ -2267,7 +2267,7 @@ public class NotificationPanelView extends PanelView implements
    }
    }


    public void onScreenTurningOn() {
    public void onScreenTurningOn() {
        mKeyguardStatusView.refreshTime();
        mKeyguardStatusView.dozeTimeTick();
    }
    }


    @Override
    @Override
@@ -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();
+11 −0
Original line number Original line Diff line number Diff line
@@ -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