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

Commit 68efd087 authored by Ned Burns's avatar Ned Burns Committed by Android (Google) Code Review
Browse files

Merge "Focus behavior for scroll containers in watch mode" into cw-f-dev

parents f7b93f30 2fe301db
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -21,6 +21,7 @@ import android.annotation.DrawableRes;
import android.annotation.NonNull;
import android.content.Context;
import android.content.Intent;
import android.content.res.Configuration;
import android.content.res.TypedArray;
import android.graphics.Canvas;
import android.graphics.Rect;
@@ -857,6 +858,10 @@ public abstract class AbsListView extends AdapterView<ListAdapter> implements Te
                R.styleable.AbsListView_fastScrollAlwaysVisible, false));

        a.recycle();

        if (context.getResources().getConfiguration().uiMode == Configuration.UI_MODE_TYPE_WATCH) {
            setRevealOnFocusHint(false);
        }
    }

    private void initAbsListView() {
+12 −5
Original line number Diff line number Diff line
@@ -18,6 +18,7 @@ package android.widget;

import android.annotation.NonNull;
import android.content.Context;
import android.content.res.Configuration;
import android.content.res.TypedArray;
import android.graphics.Canvas;
import android.graphics.Rect;
@@ -165,6 +166,10 @@ public class HorizontalScrollView extends FrameLayout {
        setFillViewport(a.getBoolean(android.R.styleable.HorizontalScrollView_fillViewport, false));

        a.recycle();

        if (context.getResources().getConfiguration().uiMode == Configuration.UI_MODE_TYPE_WATCH) {
            setRevealOnFocusHint(false);
        }
    }

    @Override
@@ -1430,12 +1435,14 @@ public class HorizontalScrollView extends FrameLayout {

    @Override
    public void requestChildFocus(View child, View focused) {
        if (focused.getRevealOnFocusHint()) {
            if (!mIsLayoutDirty) {
                scrollToChild(focused);
            } else {
                // The child may not be laid out yet, we can't compute the scroll yet
                mChildToScrollTo = focused;
            }
        }
        super.requestChildFocus(child, focused);
    }

+12 −5
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@
package android.widget;

import android.annotation.NonNull;
import android.content.res.Configuration;
import android.os.Build;
import android.os.Build.VERSION_CODES;
import android.os.Parcel;
@@ -186,6 +187,10 @@ public class ScrollView extends FrameLayout {
        setFillViewport(a.getBoolean(R.styleable.ScrollView_fillViewport, false));

        a.recycle();

        if (context.getResources().getConfiguration().uiMode == Configuration.UI_MODE_TYPE_WATCH) {
            setRevealOnFocusHint(false);
        }
    }

    @Override
@@ -1455,12 +1460,14 @@ public class ScrollView extends FrameLayout {

    @Override
    public void requestChildFocus(View child, View focused) {
        if (focused.getRevealOnFocusHint()) {
            if (!mIsLayoutDirty) {
                scrollToChild(focused);
            } else {
                // The child may not be laid out yet, we can't compute the scroll yet
                mChildToScrollTo = focused;
            }
        }
        super.requestChildFocus(child, focused);
    }

+5 −0
Original line number Diff line number Diff line
@@ -57,4 +57,9 @@

    <!-- Use a custom transition for RemoteViews. -->
    <bool name="config_overrideRemoteViewsActivityTransition">true</bool>

    <!-- Default value for android:focusableInTouchMode for some framework scrolling containers.
         ListView/GridView are notably absent since this is their default anyway.
         Set to true for watch devices. -->
    <bool name="config_focusScrollContainersInTouchMode">true</bool>
</resources>
+5 −0
Original line number Diff line number Diff line
@@ -2567,6 +2567,11 @@
    <string-array translatable="false" name="config_defaultFirstUserRestrictions">
    </string-array>

    <!-- Default value for android:focusableInTouchMode for some framework scrolling containers.
         ListView/GridView are notably absent since this is their default anyway.
         Set to true for watch devices. -->
    <bool name="config_focusScrollContainersInTouchMode">false</bool>

    <string name="config_networkOverLimitComponent" translatable="false">com.android.systemui/com.android.systemui.net.NetworkOverLimitActivity</string>
    <string name="config_dataUsageSummaryComponent" translatable="false">com.android.settings/com.android.settings.Settings$DataUsageSummaryActivity</string>

Loading