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

Commit c93c1dec authored by Peter Kalauskas's avatar Peter Kalauskas
Browse files

Add keyguard shortcut for opening QS user panel

 - Introduce config_keyguard_user_switch_opens_qs_details. When set to
   true, the user icon that appears when config_keyguardUserSwitcher=true
   will open the "user" QS panel instead of taking over the keyguard

 - Add user icon positioning calculation to
   KeyguardClockPositionAlgorithm

 - Add option to QS DetailAdapter for turning off the circular reveal
   animation

 - Add callback to QS DetailAdapter for when "Done" button is pressed

 - Fix typo: showDetailDapater -> showDetailAdapter

Test: Manual
Bug: 169783558
Change-Id: I50133feaf02ca0990c40aa9d8a046abd95ea9d4e
parent bb62a307
Loading
Loading
Loading
Loading
+15 −0
Original line number Diff line number Diff line
@@ -46,6 +46,21 @@ public interface DetailAdapter {
        return true;
    }

    /**
     * @return if detail panel should animate when shown or closed
     */
    default boolean shouldAnimate() {
        return true;
    }

    /**
     * @return true if the callback handled the event and wants to keep the detail panel open, false
     * otherwise. Returning false will close the panel.
     */
    default boolean onDoneButtonClicked() {
        return false;
    }

    default UiEventLogger.UiEventEnum openDetailEvent() {
        return INVALID;
    }
+32 −0
Original line number Diff line number Diff line
<?xml version="1.0" encoding="utf-8"?>
<!--
  ~ Copyright (C) 2021 The Android Open Source Project
  ~
  ~ Licensed under the Apache License, Version 2.0 (the "License");
  ~ you may not use this file except in compliance with the License.
  ~ You may obtain a copy of the License at
  ~
  ~      http://www.apache.org/licenses/LICENSE-2.0
  ~
  ~ Unless required by applicable law or agreed to in writing, software
  ~ distributed under the License is distributed on an "AS IS" BASIS,
  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  ~ See the License for the specific language governing permissions and
  ~ limitations under the License
  -->
<!-- This is a view that shows a user switcher in Keyguard. -->
<com.android.systemui.statusbar.phone.UserAvatarView
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:systemui="http://schemas.android.com/apk/res-auto"
    android:id="@+id/keyguard_qs_user_switch_view"
    android:layout_width="@dimen/kg_framed_avatar_size"
    android:layout_height="@dimen/kg_framed_avatar_size"
    android:layout_centerHorizontal="true"
    android:layout_gravity="center_horizontal|bottom"
    systemui:avatarPadding="0dp"
    systemui:badgeDiameter="18dp"
    systemui:badgeMargin="1dp"
    systemui:frameColor="@color/kg_user_avatar_frame"
    systemui:framePadding="0dp"
    systemui:frameWidth="0dp">
</com.android.systemui.statusbar.phone.UserAvatarView>
+6 −0
Original line number Diff line number Diff line
@@ -31,6 +31,12 @@
        android:layout_height="match_parent"
        android:visibility="gone" />

    <ViewStub
        android:id="@+id/keyguard_qs_user_switch_stub"
        android:layout="@layout/keyguard_qs_user_switch"
        android:layout_height="match_parent"
        android:layout_width="match_parent" />

    <ViewStub
        android:id="@+id/keyguard_user_switcher_stub"
        android:layout="@layout/keyguard_user_switcher"
+5 −0
Original line number Diff line number Diff line
@@ -279,6 +279,11 @@
    <!-- Whether to show the full screen user switcher. -->
    <bool name="config_enableFullscreenUserSwitcher">false</bool>

    <!-- Whether the multi-user switch on the keyguard opens QS user panel. If false, clicking the
         user switch on the keyguard will replace the notifications and status area with the user
         switcher. The multi-user switch is only shown if config_keyguardUserSwitcher=false. -->
    <bool name="config_keyguard_user_switch_opens_qs_details">false</bool>

    <!-- SystemUIFactory component -->
    <string name="config_systemUIFactoryComponent" translatable="false">com.android.systemui.SystemUIFactory</string>

+1 −1
Original line number Diff line number Diff line
@@ -802,7 +802,7 @@
    <!-- Size of user icon + frame in the qs user picker (incl. frame) -->
    <dimen name="qs_framed_avatar_size">54dp</dimen>
    <!-- Size of user icon + frame in the keyguard user picker (incl. frame) -->
    <dimen name="kg_framed_avatar_size">32dp</dimen>
    <dimen name="kg_framed_avatar_size">48dp</dimen>

    <!-- Margin on the left side of the carrier text on Keyguard -->
    <dimen name="keyguard_carrier_text_margin">16dp</dimen>
Loading