Merge "Remove owner and logout views from KeyguardStatusView" into sc-dev
diff --git a/packages/SystemUI/res-keyguard/layout/keyguard_status_view.xml b/packages/SystemUI/res-keyguard/layout/keyguard_status_view.xml
index 7f645ba..31d848d 100644
--- a/packages/SystemUI/res-keyguard/layout/keyguard_status_view.xml
+++ b/packages/SystemUI/res-keyguard/layout/keyguard_status_view.xml
@@ -35,43 +35,11 @@
         android:clipChildren="false"
         android:clipToPadding="false"
         android:orientation="vertical">
-        <TextView
-            android:id="@+id/logout"
-            android:layout_height="@dimen/logout_button_layout_height"
-            android:layout_width="wrap_content"
-            android:layout_gravity="center_horizontal"
-            android:layout_centerHorizontal="true"
-            android:layout_marginBottom="@dimen/logout_button_margin_bottom"
-            android:gravity="center"
-            android:paddingLeft="@dimen/logout_button_padding_horizontal"
-            android:paddingRight="@dimen/logout_button_padding_horizontal"
-            android:background="@drawable/logout_button_background"
-            android:fontFamily="@*android:string/config_bodyFontFamilyMedium"
-            android:textAllCaps="true"
-            android:textColor="?android:attr/textColorPrimary"
-            android:textSize="13sp"
-            android:text="@*android:string/global_action_logout" />
-
         <include
             layout="@layout/keyguard_clock_switch"
             android:id="@+id/keyguard_clock_container"
             android:layout_width="match_parent"
             android:layout_height="wrap_content" />
-
-        <TextView
-            android:id="@+id/owner_info"
-            android:layout_marginLeft="16dp"
-            android:layout_marginRight="16dp"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_marginTop="@dimen/date_owner_info_margin"
-            android:layout_gravity="center_horizontal"
-            android:layout_centerHorizontal="true"
-            android:textColor="?attr/wallpaperTextColorSecondary"
-            android:textSize="@dimen/widget_label_font_size"
-            android:letterSpacing="0.05"
-            android:ellipsize="marquee"
-            android:singleLine="true" />
         <FrameLayout
             android:id="@+id/status_view_media_container"
             android:layout_width="wrap_content"
diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardStatusView.java b/packages/SystemUI/src/com/android/keyguard/KeyguardStatusView.java
index 96eda3d..2362a1a 100644
--- a/packages/SystemUI/src/com/android/keyguard/KeyguardStatusView.java
+++ b/packages/SystemUI/src/com/android/keyguard/KeyguardStatusView.java
@@ -20,17 +20,10 @@
 import android.app.IActivityManager;
 import android.content.Context;
 import android.graphics.Color;
-import android.os.Handler;
-import android.os.RemoteException;
-import android.os.UserHandle;
-import android.text.TextUtils;
 import android.util.AttributeSet;
-import android.util.Log;
-import android.util.TypedValue;
 import android.view.View;
 import android.view.ViewGroup;
 import android.widget.GridLayout;
-import android.widget.TextView;
 
 import androidx.core.graphics.ColorUtils;
 
@@ -45,26 +38,18 @@
 /**
  * View consisting of:
  * - keyguard clock
- * - logout button (on certain managed devices)
- * - owner information (if set)
  * - media player (split shade mode only)
  */
 public class KeyguardStatusView extends GridLayout {
     private static final boolean DEBUG = KeyguardConstants.DEBUG;
     private static final String TAG = "KeyguardStatusView";
-    private static final int MARQUEE_DELAY_MS = 2000;
 
     private final LockPatternUtils mLockPatternUtils;
     private final IActivityManager mIActivityManager;
 
     private ViewGroup mStatusViewContainer;
-    private TextView mLogoutView;
     private KeyguardClockSwitch mClockView;
-    private TextView mOwnerInfo;
-    private boolean mCanShowOwnerInfo = true; // by default, try to show the owner information here
     private KeyguardSliceView mKeyguardSlice;
-    private Runnable mPendingMarqueeStart;
-    private Handler mHandler;
     private View mMediaHostContainer;
 
     private float mDarkAmount = 0;
@@ -91,64 +76,17 @@
         super(context, attrs, defStyle);
         mIActivityManager = ActivityManager.getService();
         mLockPatternUtils = new LockPatternUtils(getContext());
-        mHandler = new Handler();
-        onDensityOrFontScaleChanged();
-    }
-
-    void setEnableMarquee(boolean enabled) {
-        if (DEBUG) Log.v(TAG, "Schedule setEnableMarquee: " + (enabled ? "Enable" : "Disable"));
-        if (enabled) {
-            if (mPendingMarqueeStart == null) {
-                mPendingMarqueeStart = () -> {
-                    setEnableMarqueeImpl(true);
-                    mPendingMarqueeStart = null;
-                };
-                mHandler.postDelayed(mPendingMarqueeStart, MARQUEE_DELAY_MS);
-            }
-        } else {
-            if (mPendingMarqueeStart != null) {
-                mHandler.removeCallbacks(mPendingMarqueeStart);
-                mPendingMarqueeStart = null;
-            }
-            setEnableMarqueeImpl(false);
-        }
-    }
-
-    private void setEnableMarqueeImpl(boolean enabled) {
-        if (DEBUG) Log.v(TAG, (enabled ? "Enable" : "Disable") + " transport text marquee");
-        if (mOwnerInfo != null) mOwnerInfo.setSelected(enabled);
-    }
-
-    void setCanShowOwnerInfo(boolean canShowOwnerInfo) {
-        mCanShowOwnerInfo = canShowOwnerInfo;
-        mOwnerInfo = findViewById(R.id.owner_info);
-        if (mOwnerInfo != null) {
-            if (mCanShowOwnerInfo) {
-                mOwnerInfo.setVisibility(VISIBLE);
-                updateOwnerInfo();
-            } else {
-                mOwnerInfo.setVisibility(GONE);
-                mOwnerInfo = null;
-            }
-        }
     }
 
     @Override
     protected void onFinishInflate() {
         super.onFinishInflate();
         mStatusViewContainer = findViewById(R.id.status_view_container);
-        mLogoutView = findViewById(R.id.logout);
-        if (mLogoutView != null) {
-            mLogoutView.setOnClickListener(this::onLogoutClicked);
-        }
 
         mClockView = findViewById(R.id.keyguard_clock_container);
         if (KeyguardClockAccessibilityDelegate.isNeeded(mContext)) {
             mClockView.setAccessibilityDelegate(new KeyguardClockAccessibilityDelegate(mContext));
         }
-        if (mCanShowOwnerInfo) {
-            mOwnerInfo = findViewById(R.id.owner_info);
-        }
 
         mKeyguardSlice = findViewById(R.id.keyguard_status_area);
         mTextColor = mClockView.getCurrentTextColor();
@@ -158,7 +96,6 @@
 
         mMediaHostContainer = findViewById(R.id.status_view_media_container);
 
-        updateOwnerInfo();
         updateDark();
     }
 
@@ -173,60 +110,6 @@
         mShowingHeader = hasHeader;
     }
 
-    @Override
-    protected void onLayout(boolean changed, int left, int top, int right, int bottom) {
-        super.onLayout(changed, left, top, right, bottom);
-        layoutOwnerInfo();
-    }
-
-    int getLogoutButtonHeight() {
-        if (mLogoutView == null) {
-            return 0;
-        }
-        return mLogoutView.getVisibility() == VISIBLE ? mLogoutView.getHeight() : 0;
-    }
-
-    int getOwnerInfoHeight() {
-        if (mOwnerInfo == null) {
-            return 0;
-        }
-        return mOwnerInfo.getVisibility() == VISIBLE ? mOwnerInfo.getHeight() : 0;
-    }
-
-    void updateLogoutView(boolean shouldShowLogout) {
-        if (mLogoutView == null) {
-            return;
-        }
-        mLogoutView.setVisibility(shouldShowLogout ? VISIBLE : GONE);
-        // Logout button will stay in language of user 0 if we don't set that manually.
-        mLogoutView.setText(mContext.getResources().getString(
-                com.android.internal.R.string.global_action_logout));
-    }
-
-    void onDensityOrFontScaleChanged() {
-        if (mOwnerInfo != null) {
-            mOwnerInfo.setTextSize(TypedValue.COMPLEX_UNIT_PX,
-                    getResources().getDimensionPixelSize(
-                            com.android.systemui.R.dimen.widget_label_font_size));
-            loadBottomMargin();
-        }
-    }
-
-    void updateOwnerInfo() {
-        if (mOwnerInfo == null) return;
-        String info = mLockPatternUtils.getDeviceOwnerInfo();
-        if (info == null) {
-            // Use the current user owner information if enabled.
-            final boolean ownerInfoEnabled = mLockPatternUtils.isOwnerInfoEnabled(
-                    KeyguardUpdateMonitor.getCurrentUser());
-            if (ownerInfoEnabled) {
-                info = mLockPatternUtils.getOwnerInfo(KeyguardUpdateMonitor.getCurrentUser());
-            }
-        }
-        mOwnerInfo.setText(info);
-        updateDark();
-    }
-
     void setDarkAmount(float darkAmount) {
         if (mDarkAmount == darkAmount) {
             return;
@@ -238,17 +121,6 @@
     }
 
     void updateDark() {
-        boolean dark = mDarkAmount == 1;
-        if (mLogoutView != null) {
-            mLogoutView.setAlpha(dark ? 0 : 1);
-        }
-
-        if (mOwnerInfo != null) {
-            boolean hasText = !TextUtils.isEmpty(mOwnerInfo.getText());
-            mOwnerInfo.setVisibility(hasText ? VISIBLE : GONE);
-            layoutOwnerInfo();
-        }
-
         final int blendedTextColor = ColorUtils.blendARGB(mTextColor, Color.WHITE, mDarkAmount);
         mKeyguardSlice.setDarkAmount(mDarkAmount);
         mClockView.setTextColor(blendedTextColor);
@@ -277,13 +149,8 @@
 
     public void dump(FileDescriptor fd, PrintWriter pw, String[] args) {
         pw.println("KeyguardStatusView:");
-        pw.println("  mOwnerInfo: " + (mOwnerInfo == null
-                ? "null" : mOwnerInfo.getVisibility() == VISIBLE));
         pw.println("  mDarkAmount: " + mDarkAmount);
         pw.println("  mTextColor: " + Integer.toHexString(mTextColor));
-        if (mLogoutView != null) {
-            pw.println("  logout visible: " + (mLogoutView.getVisibility() == VISIBLE));
-        }
         if (mClockView != null) {
             mClockView.dump(fd, pw, args);
         }
@@ -297,28 +164,4 @@
         mIconTopMarginWithHeader = getResources().getDimensionPixelSize(
                 R.dimen.widget_vertical_padding_with_header);
     }
-
-    private void layoutOwnerInfo() {
-        if (mOwnerInfo != null && mOwnerInfo.getVisibility() != GONE) {
-            // Animate owner info during wake-up transition
-            mOwnerInfo.setAlpha(1f - mDarkAmount);
-
-            float ratio = mDarkAmount;
-            // Calculate how much of it we should crop in order to have a smooth transition
-            int collapsed = mOwnerInfo.getTop() - mOwnerInfo.getPaddingTop();
-            int expanded = mOwnerInfo.getBottom() + mOwnerInfo.getPaddingBottom();
-            int toRemove = (int) ((expanded - collapsed) * ratio);
-            setBottom(getMeasuredHeight() - toRemove);
-        }
-    }
-
-    private void onLogoutClicked(View view) {
-        int currentUserId = KeyguardUpdateMonitor.getCurrentUser();
-        try {
-            mIActivityManager.switchUser(UserHandle.USER_SYSTEM);
-            mIActivityManager.stopUser(currentUserId, true /*force*/, null);
-        } catch (RemoteException re) {
-            Log.e(TAG, "Failed to logout user", re);
-        }
-    }
 }
diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardStatusViewController.java b/packages/SystemUI/src/com/android/keyguard/KeyguardStatusViewController.java
index e4cabcb..32935c2 100644
--- a/packages/SystemUI/src/com/android/keyguard/KeyguardStatusViewController.java
+++ b/packages/SystemUI/src/com/android/keyguard/KeyguardStatusViewController.java
@@ -17,7 +17,6 @@
 package com.android.keyguard;
 
 import android.graphics.Rect;
-import android.os.UserHandle;
 import android.util.Slog;
 
 import com.android.systemui.keyguard.KeyguardUnlockAnimationController;
@@ -97,8 +96,6 @@
     @Override
     public void onInit() {
         mKeyguardClockSwitchController.init();
-        mView.setEnableMarquee(mKeyguardUpdateMonitor.isDeviceInteractive());
-        mView.updateLogoutView(shouldShowLogout());
     }
 
     @Override
@@ -143,20 +140,6 @@
     }
 
     /**
-     * Get the height of the logout button.
-     */
-    public int getLogoutButtonHeight() {
-        return mView.getLogoutButtonHeight();
-    }
-
-    /**
-     * Get the height of the owner information view.
-     */
-    public int getOwnerInfoHeight() {
-        return mView.getOwnerInfoHeight();
-    }
-
-    /**
      * Set keyguard status view alpha.
      */
     public void setAlpha(float alpha) {
@@ -254,11 +237,6 @@
         mKeyguardClockSwitchController.refresh();
     }
 
-    private boolean shouldShowLogout() {
-        return mKeyguardUpdateMonitor.isLogoutEnabled()
-                && KeyguardUpdateMonitor.getCurrentUser() != UserHandle.USER_SYSTEM;
-    }
-
     private final ConfigurationController.ConfigurationListener mConfigurationListener =
             new ConfigurationController.ConfigurationListener() {
         @Override
@@ -269,7 +247,6 @@
         @Override
         public void onDensityOrFontScaleChanged() {
             mKeyguardClockSwitchController.onDensityOrFontScaleChanged();
-            mView.onDensityOrFontScaleChanged();
         }
     };
 
@@ -277,8 +254,6 @@
         @Override
         public void onLockScreenModeChanged(int mode) {
             mKeyguardSliceViewController.updateLockScreenMode(mode);
-            mView.setCanShowOwnerInfo(false);
-            mView.updateLogoutView(false);
         }
 
         @Override
@@ -301,31 +276,12 @@
             if (showing) {
                 if (DEBUG) Slog.v(TAG, "refresh statusview showing:" + showing);
                 refreshTime();
-                mView.updateOwnerInfo();
-                mView.updateLogoutView(shouldShowLogout());
             }
         }
 
         @Override
-        public void onStartedWakingUp() {
-            mView.setEnableMarquee(true);
-        }
-
-        @Override
-        public void onFinishedGoingToSleep(int why) {
-            mView.setEnableMarquee(false);
-        }
-
-        @Override
         public void onUserSwitchComplete(int userId) {
             mKeyguardClockSwitchController.refreshFormat();
-            mView.updateOwnerInfo();
-            mView.updateLogoutView(shouldShowLogout());
-        }
-
-        @Override
-        public void onLogoutEnabledChanged() {
-            mView.updateLogoutView(shouldShowLogout());
         }
     };
 
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelViewController.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelViewController.java
index 9c5f95a..5ebcd61 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelViewController.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelViewController.java
@@ -1322,8 +1322,7 @@
                 mNotificationStackScrollLayoutController.getHeight()
                         - minPadding
                         - shelfSize
-                        - bottomPadding
-                        - mKeyguardStatusViewController.getLogoutButtonHeight();
+                        - bottomPadding;
 
         int count = 0;
         ExpandableView previousView = null;