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

Commit 4df16533 authored by Tony Wickham's avatar Tony Wickham Committed by Android (Google) Code Review
Browse files

Merge "Change widget host view background when giving focus to child." into...

Merge "Change widget host view background when giving focus to child." into ub-launcher3-burnaby-polish
parents 3826bab2 fb788564
Loading
Loading
Loading
Loading
+28 −0
Original line number Diff line number Diff line
<?xml version="1.0" encoding="utf-8"?>
<!--
/*
**
** Copyright 2015, 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.
*/
-->

<!-- Used as the widget host view background when giving focus to a child via keyboard. -->
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_selected="true">
        <shape android:shape="rectangle">
            <stroke android:color="#fff" android:width="2dp" />
        </shape>
    </item>
</selector>
 No newline at end of file
+9 −4
Original line number Diff line number Diff line
@@ -57,6 +57,8 @@ public class LauncherAppWidgetHostView extends AppWidgetHostView implements Touc
        mInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        mDragLayer = ((Launcher) context).getDragLayer();
        setAccessibilityDelegate(LauncherAppState.getInstance().getAccessibilityDelegate());

        setBackgroundResource(R.drawable.widget_internal_focus_bg);
    }

    @Override
@@ -241,6 +243,7 @@ public class LauncherAppWidgetHostView extends AppWidgetHostView implements Touc
    protected void onFocusChanged(boolean gainFocus, int direction, Rect previouslyFocusedRect) {
        if (gainFocus) {
            mChildrenFocused = false;
            dispatchChildFocus(false);
        }
        super.onFocusChanged(gainFocus, direction, previouslyFocusedRect);
    }
@@ -249,6 +252,9 @@ public class LauncherAppWidgetHostView extends AppWidgetHostView implements Touc
    public void requestChildFocus(View child, View focused) {
        super.requestChildFocus(child, focused);
        dispatchChildFocus(focused != null);
        if (focused != null) {
            focused.setFocusableInTouchMode(false);
        }
    }

    @Override
@@ -262,10 +268,9 @@ public class LauncherAppWidgetHostView extends AppWidgetHostView implements Touc
        return mChildrenFocused;
    }

    private void dispatchChildFocus(boolean focused) {
        if (getOnFocusChangeListener() != null) {
            getOnFocusChangeListener().onFocusChange(this, focused || isFocused());
        }
    private void dispatchChildFocus(boolean childIsFocused) {
        // The host view's background changes when selected, to indicate the focus is inside.
        setSelected(childIsFocused);
    }

    @Override