diff options
author | Tony Wickham <twickham@google.com> | 2016-02-10 23:36:42 +0000 |
---|---|---|
committer | android-build-merger <android-build-merger@google.com> | 2016-02-10 23:36:42 +0000 |
commit | 654f1b315f291d745e2fc8e39ef410c88331b771 (patch) | |
tree | 9d970b25899cbb96e61874d1941e2572a6bcf1a1 | |
parent | 7c50b31f57e3e3ec1f433d243afe05554dcaf977 (diff) | |
parent | 4df165333131483e1d6b6c156d345a4aeef9806c (diff) | |
download | android_packages_apps_Trebuchet-654f1b315f291d745e2fc8e39ef410c88331b771.tar.gz android_packages_apps_Trebuchet-654f1b315f291d745e2fc8e39ef410c88331b771.tar.bz2 android_packages_apps_Trebuchet-654f1b315f291d745e2fc8e39ef410c88331b771.zip |
Merge "Change widget host view background when giving focus to child." into ub-launcher3-burnaby-polish
am: 4df1653331
* commit '4df165333131483e1d6b6c156d345a4aeef9806c':
Change widget host view background when giving focus to child.
-rw-r--r-- | res/drawable/widget_internal_focus_bg.xml | 28 | ||||
-rw-r--r-- | src/com/android/launcher3/LauncherAppWidgetHostView.java | 13 |
2 files changed, 37 insertions, 4 deletions
diff --git a/res/drawable/widget_internal_focus_bg.xml b/res/drawable/widget_internal_focus_bg.xml new file mode 100644 index 000000000..4d4bea63f --- /dev/null +++ b/res/drawable/widget_internal_focus_bg.xml @@ -0,0 +1,28 @@ +<?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 diff --git a/src/com/android/launcher3/LauncherAppWidgetHostView.java b/src/com/android/launcher3/LauncherAppWidgetHostView.java index 44cd8743d..f659f45f7 100644 --- a/src/com/android/launcher3/LauncherAppWidgetHostView.java +++ b/src/com/android/launcher3/LauncherAppWidgetHostView.java @@ -58,6 +58,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 @@ -242,6 +244,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); } @@ -250,6 +253,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 @@ -263,10 +269,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 |