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

Commit 4827a7d5 authored by Sunny Goyal's avatar Sunny Goyal
Browse files

Fixing widget accessibility node order

Making sure that that search and prediction bar are on top of
RecyclerView/PagedView. This is determined by the widget of the
drawn width of the views if their top matches

Bug: 209579563
Test: Verified that the tite is focused first when opening widgets
Change-Id: Ib800b3743ece915ac4894029462d5776d389ff3f
parent 24d7de43
Loading
Loading
Loading
Loading
+7 −6
Original line number Diff line number Diff line
@@ -16,37 +16,35 @@
<merge xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:launcher="http://schemas.android.com/apk/res-auto">

    <com.android.launcher3.workprofile.PersonalWorkPagedView
    <com.android.launcher3.widget.picker.WidgetPagedView
        android:id="@+id/widgets_view_pager"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:clipToPadding="false"
        android:layout_below="@id/collapse_handle"
        android:descendantFocusability="afterDescendants"
        android:paddingHorizontal="@dimen/widget_list_horizontal_margin"
        launcher:pageIndicator="@+id/tabs" >

        <com.android.launcher3.widget.picker.WidgetsRecyclerView
            android:id="@+id/primary_widgets_list_view"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:paddingHorizontal="@dimen/widget_list_horizontal_margin"
            android:clipToPadding="false" />

        <com.android.launcher3.widget.picker.WidgetsRecyclerView
            android:id="@+id/work_widgets_list_view"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:paddingHorizontal="@dimen/widget_list_horizontal_margin"
            android:clipToPadding="false" />

    </com.android.launcher3.workprofile.PersonalWorkPagedView>
    </com.android.launcher3.widget.picker.WidgetPagedView>

    <!-- SearchAndRecommendationsView contains the tab layout as well -->
    <com.android.launcher3.widget.picker.SearchAndRecommendationsView
        android:id="@+id/search_and_recommendations_container"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginHorizontal="@dimen/widget_list_horizontal_margin"
        android:layout_below="@id/collapse_handle"
        android:paddingBottom="0dp"
        android:orientation="vertical">
@@ -58,6 +56,7 @@
            android:gravity="center_horizontal"
            android:textSize="24sp"
            android:layout_marginTop="24dp"
            android:paddingHorizontal="@dimen/widget_list_horizontal_margin"
            android:textColor="?android:attr/textColorSecondary"
            android:text="@string/widget_button_text"/>

@@ -68,6 +67,7 @@
            android:elevation="0.1dp"
            android:background="?android:attr/colorBackground"
            android:paddingBottom="8dp"
            android:paddingHorizontal="@dimen/widget_list_horizontal_margin"
            android:clipToPadding="false">
            <include layout="@layout/widgets_search_bar" />
        </FrameLayout>
@@ -79,6 +79,7 @@
            android:layout_marginTop="8dp"
            android:background="@drawable/widgets_recommendation_background"
            android:paddingVertical="@dimen/recommended_widgets_table_vertical_padding"
            android:layout_marginHorizontal="@dimen/widget_list_horizontal_margin"
            android:visibility="gone" />

        <com.android.launcher3.workprofile.PersonalWorkSlidingTabStrip
+4 −2
Original line number Diff line number Diff line
@@ -19,7 +19,7 @@
        android:layout_below="@id/collapse_handle"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:paddingHorizontal="@dimen/widget_list_horizontal_margin"
        android:layout_marginHorizontal="@dimen/widget_list_horizontal_margin"
        android:clipToPadding="false" />

    <!-- SearchAndRecommendationsView without the tab layout as well -->
@@ -27,7 +27,6 @@
        android:id="@+id/search_and_recommendations_container"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginHorizontal="@dimen/widget_list_horizontal_margin"
        android:layout_below="@id/collapse_handle"
        android:paddingBottom="16dp"
        android:orientation="vertical">
@@ -40,6 +39,7 @@
            android:textSize="24sp"
            android:layout_marginTop="24dp"
            android:textColor="?android:attr/textColorSecondary"
            android:paddingHorizontal="@dimen/widget_list_horizontal_margin"
            android:text="@string/widget_button_text"/>

        <FrameLayout
@@ -48,6 +48,7 @@
            android:layout_height="wrap_content"
            android:elevation="0.1dp"
            android:background="?android:attr/colorBackground"
            android:paddingHorizontal="@dimen/widget_list_horizontal_margin"
            android:paddingBottom="8dp"
            android:clipToPadding="false">
            <include layout="@layout/widgets_search_bar" />
@@ -60,6 +61,7 @@
            android:layout_marginTop="8dp"
            android:background="@drawable/widgets_recommendation_background"
            android:paddingVertical="@dimen/recommended_widgets_table_vertical_padding"
            android:paddingHorizontal="@dimen/widget_list_horizontal_margin"
            android:visibility="gone" />
    </com.android.launcher3.widget.picker.SearchAndRecommendationsView>

+49 −0
Original line number Diff line number Diff line
/*
 * Copyright (C) 2022 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.
 */
package com.android.launcher3.widget.picker;

import android.content.Context;
import android.graphics.Rect;
import android.util.AttributeSet;

import com.android.launcher3.PagedView;
import com.android.launcher3.workprofile.PersonalWorkPagedView;

/**
 * A {@link PagedView} for showing different widgets for the personal and work profile.
 */
public class WidgetPagedView extends PersonalWorkPagedView {

    public WidgetPagedView(Context context) {
        this(context, null);
    }

    public WidgetPagedView(Context context, AttributeSet attrs) {
        this(context, attrs, 0);
    }

    public WidgetPagedView(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
        setPageSpacing(getPaddingLeft());
    }

    @Override
    public void getDrawingRect(Rect outRect) {
        super.getDrawingRect(outRect);
        outRect.left += getPaddingLeft();
        outRect.right -= getPaddingRight();
    }
}