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

Commit e0daa268 authored by Bruno Martins's avatar Bruno Martins
Browse files

Revert "SystemUI: Add support for clock auto-hiding"

This reverts commit 7c39df7c.

Reason for the revert: It has bugs and will be implemented differently
without messing up with AOSP code.

Steps to reproduce clock visibility issues:

 - Enable auto-hide feature
 - Go to home screen (clock will hidden) 
 - Open any app (clock will appear) 
 - Lock device and notice that clock will show up in the statusbar 

Change-Id: I6946c10b670807f47eb6c9d2e735d2f675ed7fd7
parent 5dea887b
Loading
Loading
Loading
Loading
+1 −3
Original line number Diff line number Diff line
@@ -20,7 +20,7 @@
<!--    android:background="@drawable/status_bar_closed_default_background" -->
<com.android.systemui.statusbar.phone.PhoneStatusBarView
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:systemui="http://schemas.android.com/apk/res-auto"
    xmlns:systemui="http://schemas.android.com/apk/res/com.android.systemui"
    android:layout_width="match_parent"
    android:layout_height="@dimen/status_bar_height"
    android:id="@+id/status_bar"
@@ -102,7 +102,6 @@
                        android:paddingStart="@dimen/status_bar_left_clock_starting_padding"
                        android:paddingEnd="@dimen/status_bar_left_clock_end_padding"
                        android:gravity="center_vertical|start"
                        systemui:isStatusBar="true"
                    />

                    <include layout="@layout/ongoing_activity_chip_primary"
@@ -184,7 +183,6 @@
            android:singleLine="true"
            android:gravity="center"
            android:visibility="gone"
            systemui:isStatusBar="true"
        />
    </com.android.keyguard.AlphaOptimizedLinearLayout>

+0 −1
Original line number Diff line number Diff line
@@ -63,7 +63,6 @@
            android:paddingEnd="@dimen/status_bar_clock_end_padding"
            android:gravity="center_vertical"
            android:visibility="gone"
            systemui:isStatusBar="true"
        />
    </com.android.keyguard.AlphaOptimizedLinearLayout>
</LinearLayout>
+0 −1
Original line number Diff line number Diff line
@@ -46,7 +46,6 @@
            <enum name="small" value="1" />
            <enum name="gone" value="2" />
        </attr>
        <attr name="isStatusBar" format="boolean" />
        <attr name="showDark" format="boolean" />
    </declare-styleable>
    <attr name="orientation">
+0 −12
Original line number Diff line number Diff line
@@ -424,8 +424,6 @@ constructor(
                                activeClock.setIsActiveClock(true)
                            }

                            val showClock = finalVisibility.visibility == View.VISIBLE

                            // Hide all clocks first
                            leftClock.visibility = View.GONE
                            centerClock.visibility = View.GONE
@@ -433,16 +431,6 @@ constructor(

                            // Show only the active one
                            activeClock.adjustVisibility(finalVisibility)

                            leftClock.setVisibleByModernization(
                                showClock && activeClock === leftClock
                            )
                            centerClock.setVisibleByModernization(
                                showClock && activeClock === centerClock
                            )
                            rightClock.setVisibleByModernization(
                                showClock && activeClock === rightClock
                            )
                        }
                    }

+16 −120
Original line number Diff line number Diff line
@@ -17,9 +17,7 @@
package com.android.systemui.statusbar.policy;

import android.annotation.NonNull;
import android.app.ActivityManager;
import android.app.StatusBarManager;
import android.app.WindowConfiguration;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
@@ -30,7 +28,6 @@ import android.database.ContentObserver;
import android.graphics.Rect;
import android.icu.lang.UCharacter;
import android.icu.text.DateTimePatternGenerator;
import android.net.Uri;
import android.os.Bundle;
import android.os.Handler;
import android.os.Parcelable;
@@ -58,9 +55,6 @@ import com.android.systemui.plugins.DarkIconDispatcher.DarkReceiver;
import com.android.systemui.res.R;
import com.android.systemui.settings.UserTracker;
import com.android.systemui.shade.shared.flag.ShadeWindowGoesAround;
import com.android.systemui.shared.system.ActivityManagerWrapper;
import com.android.systemui.shared.system.TaskStackChangeListener;
import com.android.systemui.shared.system.TaskStackChangeListeners;
import com.android.systemui.statusbar.CommandQueue;
import com.android.systemui.statusbar.core.StatusBarRootModernization;
import com.android.systemui.statusbar.phone.ui.StatusBarIconController;
@@ -96,13 +90,11 @@ public class Clock extends TextView implements
    private final CommandQueue mCommandQueue;
    private int mCurrentUserId;

    private boolean mClockAutoHide = false;
    private boolean mClockVisibleByPolicy = true;
    private boolean mClockVisibleByUser = true;

    private boolean mAttached;
    private boolean mScreenReceiverRegistered;
    private boolean mTaskStackListenerRegistered;
    private Calendar mCalendar;
    private String mContentDescriptionFormatString;
    private SimpleDateFormat mClockFormat;
@@ -120,10 +112,6 @@ public class Clock extends TextView implements
    private boolean mShowSeconds;
    private Handler mSecondsHandler;

    private boolean mIsStatusBar;
    private boolean mIsActiveClock = true;
    private boolean mVisibleByModernization = true;

    /**
     * Color to be set on this {@link TextView}, when wallpaperTextColor is <b>not</b> utilized.
     */
@@ -155,14 +143,8 @@ public class Clock extends TextView implements
            mAmPmStyle = LineageSettings.System.getInt(mContext.getContentResolver(),
                    LineageSettings.System.STATUS_BAR_AM_PM, AM_PM_STYLE_GONE);
            mContentObserver = new ContentObserver(null) {
                final Uri clockAmPmUri = LineageSettings.System.getUriFor(
                        LineageSettings.System.STATUS_BAR_AM_PM);
                final Uri clockAutoHideUri = LineageSettings.System.getUriFor(
                        LineageSettings.System.STATUS_BAR_CLOCK_AUTO_HIDE);

                @Override
                public void onChange(boolean selfChange, Uri uri) {
                    if (clockAmPmUri.equals(uri)) {
                public void onChange(boolean selfChange) {
                    mAmPmStyle = LineageSettings.System.getInt(
                            mContext.getContentResolver(),
                            LineageSettings.System.STATUS_BAR_AM_PM, AM_PM_STYLE_GONE);
@@ -172,14 +154,8 @@ public class Clock extends TextView implements
                    mContext.getMainExecutor().execute(() -> {
                        updateClock(true);
                    });
                    } else if (clockAutoHideUri.equals(uri)) {
                        handleTaskStackListener(
                                LineageSettings.System.getInt(mContext.getContentResolver(),
                                        LineageSettings.System.STATUS_BAR_CLOCK_AUTO_HIDE, 0) != 0);
                    }
                }
            };
            mIsStatusBar = a.getBoolean(R.styleable.Clock_isStatusBar, mIsStatusBar);
            mNonAdaptedColor = getCurrentTextColor();
        } finally {
            a.recycle();
@@ -220,7 +196,7 @@ public class Clock extends TextView implements
        mClockVisibleByUser = bundle.getBoolean(VISIBLE_BY_USER, true);
        mShowSeconds = bundle.getBoolean(SHOW_SECONDS, false);
        if (bundle.containsKey(VISIBILITY)) {
            setVisibility(bundle.getInt(VISIBILITY));
            super.setVisibility(bundle.getInt(VISIBILITY));
        }
    }

@@ -247,12 +223,6 @@ public class Clock extends TextView implements
            mContext.getContentResolver().registerContentObserver(
                    LineageSettings.System.getUriFor(LineageSettings.System.STATUS_BAR_AM_PM),
                    false, mContentObserver);
            mContext.getContentResolver().registerContentObserver(
                    LineageSettings.System.getUriFor(
                            LineageSettings.System.STATUS_BAR_CLOCK_AUTO_HIDE),
                    false, mContentObserver);
            mContentObserver.onChange(false, LineageSettings.System.getUriFor(
                    LineageSettings.System.STATUS_BAR_CLOCK_AUTO_HIDE));
            mCommandQueue.addCallback(this);
            mUserTracker.addCallback(mUserChangedCallback, mContext.getMainExecutor());
            mCurrentUserId = mUserTracker.getUserId();
@@ -289,21 +259,6 @@ public class Clock extends TextView implements
            Dependency.get(TunerService.class).removeTunable(this);
            mCommandQueue.removeCallback(this);
            mUserTracker.removeCallback(mUserChangedCallback);
            handleTaskStackListener(false);
        }
    }

    private void handleTaskStackListener(boolean register) {
        if (!mIsStatusBar) {
            // We don't support clock auto hide for quick settings.
            return;
        }
        if (register && !mTaskStackListenerRegistered) {
            TaskStackChangeListeners.getInstance().registerTaskStackListener(mTaskStackListener);
            mTaskStackListenerRegistered = true;
        } else if (!register && mTaskStackListenerRegistered) {
            TaskStackChangeListeners.getInstance().unregisterTaskStackListener(mTaskStackListener);
            mTaskStackListenerRegistered = false;
        }
    }

@@ -345,30 +300,13 @@ public class Clock extends TextView implements

    @Override
    public void setVisibility(int visibility) {
        // In a multi clock setup, only the active clock is allowed to become visible.
        // Inactive clocks can still be hidden.
        if (!mIsActiveClock && visibility == View.VISIBLE) {
            return;
        }

        if (!StatusBarRootModernization.isEnabled()) {
            if (visibility == View.VISIBLE && !shouldBeVisible()) {
                return;
            }

        super.setVisibility(visibility);
    }

    public void setIsActiveClock(boolean active) {
        mIsActiveClock = active;
        }

    public void setVisibleByModernization(boolean visible) {
        if (mVisibleByModernization == visible) return;
        mVisibleByModernization = visible;

        if (StatusBarRootModernization.isEnabled()) {
            setVisibility(shouldBeVisible() ? View.VISIBLE : View.GONE);
        }
        super.setVisibility(visibility);
    }

    private void setClockVisibleByUser(boolean visible) {
@@ -386,11 +324,7 @@ public class Clock extends TextView implements
    }

    private boolean shouldBeVisible() {
        if (StatusBarRootModernization.isEnabled()) {
            return mVisibleByModernization && !mClockAutoHide;
        }

        return !mClockAutoHide && mClockVisibleByPolicy && mClockVisibleByUser;
        return mClockVisibleByPolicy && mClockVisibleByUser;
    }

    private void updateClockVisibility() {
@@ -527,27 +461,6 @@ public class Clock extends TextView implements
        }
    }

    private void updateShowClock() {
        ActivityManager.RunningTaskInfo runningTask =
                ActivityManagerWrapper.getInstance().getRunningTask();
        final int activityType = runningTask != null
                ? runningTask.configuration.windowConfiguration.getActivityType()
                : WindowConfiguration.ACTIVITY_TYPE_UNDEFINED;
        final boolean clockAutoHide = activityType == WindowConfiguration.ACTIVITY_TYPE_HOME;

        if (mClockAutoHide == clockAutoHide) {
            return;
        }

        mClockAutoHide = clockAutoHide;

        if (StatusBarRootModernization.isEnabled()) {
            setVisibility(shouldBeVisible() ? View.VISIBLE : View.GONE);
        } else {
            updateClockVisibility();
        }
    }

    private final CharSequence getSmallTime() {
        Context context = getContext();
        boolean is24 = DateFormat.is24HourFormat(context, mCurrentUserId);
@@ -687,22 +600,5 @@ public class Clock extends TextView implements
            mSecondsHandler.postAtTime(this, SystemClock.uptimeMillis() / 1000 * 1000 + 1000);
        }
    };

    private final TaskStackChangeListener mTaskStackListener = new TaskStackChangeListener() {
        @Override
        public void onTaskStackChanged() {
            updateShowClock();
        }

        @Override
        public void onTaskRemoved(int taskId) {
            updateShowClock();
        }

        @Override
        public void onTaskMovedToFront(int taskId) {
            updateShowClock();
        }
    };
}