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

Commit 17cbb019 authored by Thales Lima's avatar Thales Lima Committed by Automerger Merge Worker
Browse files

Merge "sysui: show a drag handler when QS is collapsed in split shade" into...

Merge "sysui: show a drag handler when QS is collapsed in split shade" into sc-v2-dev am: da634dae

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/15235313

Change-Id: Ibeacf92b6531a3e5c1098bdcacdd06f38aa008eb
parents 801681db da634dae
Loading
Loading
Loading
Loading
+24 −0
Original line number Diff line number Diff line
<!--
  ~ 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
  -->
<vector xmlns:android="http://schemas.android.com/apk/res/android"
    android:width="36dp"
    android:height="24dp"
    android:viewportWidth="24.0"
    android:viewportHeight="24.0">
    <path
        android:fillColor="?android:attr/textColorPrimary"
        android:pathData="M5.41,7.59L4,9l8,8 8,-8 -1.41,-1.41L12,14.17" />
</vector>
+23 −5
Original line number Diff line number Diff line
@@ -13,8 +13,8 @@
     See the License for the specific language governing permissions and
     limitations under the License.
-->
<com.android.systemui.qs.QSContainerImpl
    xmlns:android="http://schemas.android.com/apk/res/android"
<com.android.systemui.qs.QSContainerImpl xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/quick_settings_container"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
@@ -40,15 +40,33 @@
            android:accessibilityTraversalBefore="@android:id/edit"
            android:clipToPadding="false"
            android:clipChildren="false">

            <include layout="@layout/qs_footer_impl" />
        </com.android.systemui.qs.QSPanel>
    </com.android.systemui.qs.NonInterceptingScrollView>

    <include layout="@layout/quick_status_bar_expanded_header" />

    <include android:id="@+id/qs_detail" layout="@layout/qs_detail" />
    <include
        android:id="@+id/qs_detail"
        layout="@layout/qs_detail" />

    <include android:id="@+id/qs_customize" layout="@layout/qs_customize_panel"
    <include
        android:id="@+id/qs_customize"
        layout="@layout/qs_customize_panel"
        android:visibility="gone" />

    <ImageView
        android:id="@+id/qs_drag_handle"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:layout_marginTop="24dp"
        android:elevation="4dp"
        android:importantForAccessibility="no"
        android:scaleType="center"
        android:src="@drawable/ic_qs_drag_handle"
        android:tint="@color/qs_detail_button_white"
        tools:ignore="UseAppTint" />

</com.android.systemui.qs.QSContainerImpl>
+6 −0
Original line number Diff line number Diff line
@@ -27,6 +27,7 @@ import android.util.AttributeSet;
import android.view.View;
import android.view.WindowInsets;
import android.widget.FrameLayout;
import android.widget.ImageView;

import com.android.systemui.R;
import com.android.systemui.qs.customize.QSCustomizer;
@@ -47,6 +48,7 @@ public class QSContainerImpl extends FrameLayout {
    private float mQsExpansion;
    private QSCustomizer mQSCustomizer;
    private NonInterceptingScrollView mQSPanelContainer;
    private ImageView mDragHandle;

    private int mSideMargins;
    private boolean mQsDisabled;
@@ -65,6 +67,7 @@ public class QSContainerImpl extends FrameLayout {
        mQSDetail = findViewById(R.id.qs_detail);
        mHeader = findViewById(R.id.header);
        mQSCustomizer = findViewById(R.id.qs_customize);
        mDragHandle = findViewById(R.id.qs_drag_handle);
        setImportantForAccessibility(IMPORTANT_FOR_ACCESSIBILITY_NO);
    }

@@ -195,6 +198,8 @@ public class QSContainerImpl extends FrameLayout {
        mQSDetail.setBottom(getTop() + scrollBottom);
        int qsDetailBottomMargin = ((MarginLayoutParams) mQSDetail.getLayoutParams()).bottomMargin;
        mQSDetail.setBottom(getTop() + scrollBottom - qsDetailBottomMargin);
        // Pin the drag handle to the bottom of the panel.
        mDragHandle.setTranslationY(scrollBottom - mDragHandle.getHeight());
    }

    protected int calculateContainerHeight() {
@@ -216,6 +221,7 @@ public class QSContainerImpl extends FrameLayout {
    public void setExpansion(float expansion) {
        mQsExpansion = expansion;
        mQSPanelContainer.setScrollingEnabled(expansion > 0f);
        mDragHandle.setAlpha(1.0f - expansion);
        updateExpansion();
    }

+11 −3
Original line number Diff line number Diff line
@@ -32,6 +32,7 @@ import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.view.ViewTreeObserver;
import android.widget.FrameLayout.LayoutParams;
import android.widget.ImageView;

import androidx.annotation.Nullable;
import androidx.annotation.VisibleForTesting;
@@ -86,6 +87,7 @@ public class QSFragment extends LifecycleFragment implements QS, CommandQueue.Ca
    private QSFooter mFooter;
    private float mLastQSExpansion = -1;
    private boolean mQsDisabled;
    private ImageView mQsDragHandler;

    private final RemoteInputQuickSettingsDisabler mRemoteInputQuickSettingsDisabler;
    private final InjectionInflationController mInjectionInflater;
@@ -187,6 +189,7 @@ public class QSFragment extends LifecycleFragment implements QS, CommandQueue.Ca
        mHeader = view.findViewById(R.id.header);
        mQSPanelController.setHeaderContainer(view.findViewById(R.id.header_text_container));
        mFooter = qsFragmentComponent.getQSFooter();
        mQsDragHandler = view.findViewById(R.id.qs_drag_handle);

        mQsDetailDisplayer.setQsPanelController(mQSPanelController);

@@ -291,6 +294,7 @@ public class QSFragment extends LifecycleFragment implements QS, CommandQueue.Ca
                mQSAnimator.onRtlChanged();
            }
        }
        updateQsState();
    }

    @Override
@@ -363,8 +367,7 @@ public class QSFragment extends LifecycleFragment implements QS, CommandQueue.Ca
                : View.INVISIBLE);
        mHeader.setExpanded((keyguardShowing && !mHeaderAnimating && !mShowCollapsedOnKeyguard)
                || (mQsExpanded && !mStackScrollerOverscrolling), mQuickQSPanelController);
        mFooter.setVisibility(
                !mQsDisabled && (mQsExpanded || !keyguardShowing || mHeaderAnimating
        mFooter.setVisibility(!mQsDisabled && (mQsExpanded || !keyguardShowing || mHeaderAnimating
                || mShowCollapsedOnKeyguard)
                ? View.VISIBLE
                : View.INVISIBLE);
@@ -372,6 +375,11 @@ public class QSFragment extends LifecycleFragment implements QS, CommandQueue.Ca
                || (mQsExpanded && !mStackScrollerOverscrolling));
        mQSPanelController.setVisibility(
                !mQsDisabled && expandVisually ? View.VISIBLE : View.INVISIBLE);
        mQsDragHandler.setVisibility((mQsExpanded || !keyguardShowing || mHeaderAnimating
                || mShowCollapsedOnKeyguard)
                && Utils.shouldUseSplitNotificationShade(mFeatureFlags, getResources())
                ? View.VISIBLE
                : View.GONE);
    }

    private boolean isKeyguardState() {