summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTony Wickham <twickham@google.com>2016-02-10 23:36:42 +0000
committerandroid-build-merger <android-build-merger@google.com>2016-02-10 23:36:42 +0000
commit654f1b315f291d745e2fc8e39ef410c88331b771 (patch)
tree9d970b25899cbb96e61874d1941e2572a6bcf1a1
parent7c50b31f57e3e3ec1f433d243afe05554dcaf977 (diff)
parent4df165333131483e1d6b6c156d345a4aeef9806c (diff)
downloadandroid_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.xml28
-rw-r--r--src/com/android/launcher3/LauncherAppWidgetHostView.java13
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