Merge "Fix startWrite for cases where multiple levels parent directory is missing." into mnc-ub-dev
diff --git a/v17/leanback/res/layout/lb_row_header.xml b/v17/leanback/res/layout/lb_row_header.xml
index 69fac46..67da907 100644
--- a/v17/leanback/res/layout/lb_row_header.xml
+++ b/v17/leanback/res/layout/lb_row_header.xml
@@ -18,6 +18,7 @@
<android.support.v17.leanback.widget.RowHeaderView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/row_header"
+ android:importantForAccessibility="no"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="?rowHeaderStyle"
diff --git a/v17/leanback/src/android/support/v17/leanback/widget/GuidedActionAdapterGroup.java b/v17/leanback/src/android/support/v17/leanback/widget/GuidedActionAdapterGroup.java
index 9fafd33..858a0ed 100644
--- a/v17/leanback/src/android/support/v17/leanback/widget/GuidedActionAdapterGroup.java
+++ b/v17/leanback/src/android/support/v17/leanback/widget/GuidedActionAdapterGroup.java
@@ -127,6 +127,9 @@
}
InputMethodManager mgr = (InputMethodManager)
v.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
+ // Make the TextView focusable during editing, avoid the TextView gets accessibility focus
+ // before editing started. see also GuidedActionEditText where setFocusable(false).
+ v.setFocusable(true);
v.requestFocus();
mgr.showSoftInput(v, 0);
if (!mImeOpened) {
diff --git a/v17/leanback/src/android/support/v17/leanback/widget/GuidedActionEditText.java b/v17/leanback/src/android/support/v17/leanback/widget/GuidedActionEditText.java
index 8e052fb..b2edfe9 100644
--- a/v17/leanback/src/android/support/v17/leanback/widget/GuidedActionEditText.java
+++ b/v17/leanback/src/android/support/v17/leanback/widget/GuidedActionEditText.java
@@ -14,10 +14,11 @@
package android.support.v17.leanback.widget;
import android.content.Context;
-import android.support.v17.leanback.widget.ImeKeyMonitor.ImeKeyListener;
+import android.graphics.Rect;
import android.util.AttributeSet;
import android.widget.EditText;
import android.view.KeyEvent;
+import android.view.accessibility.AccessibilityNodeInfo;
/**
* A custom EditText that satisfies the IME key monitoring requirements of GuidedStepFragment.
@@ -55,4 +56,22 @@
return result;
}
+ @Override
+ public void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info) {
+ super.onInitializeAccessibilityNodeInfo(info);
+ // Dont let the TextView gets accessibility focus if it's not focused.
+ if (!isFocused()) {
+ info.setVisibleToUser(false);
+ }
+ }
+
+ @Override
+ protected void onFocusChanged(boolean focused, int direction, Rect previouslyFocusedRect) {
+ super.onFocusChanged(focused, direction, previouslyFocusedRect);
+ // Make the TextView focusable during editing, avoid the TextView gets accessibility focus
+ // before editing started. see also GuidedActionAdapterGroup where setFocusable(true).
+ if (!focused) {
+ setFocusable(false);
+ }
+ }
}
diff --git a/v17/leanback/src/android/support/v17/leanback/widget/GuidedActionsStylist.java b/v17/leanback/src/android/support/v17/leanback/widget/GuidedActionsStylist.java
index aab4511..2a95dfe 100644
--- a/v17/leanback/src/android/support/v17/leanback/widget/GuidedActionsStylist.java
+++ b/v17/leanback/src/android/support/v17/leanback/widget/GuidedActionsStylist.java
@@ -517,7 +517,7 @@
if (vh.mTitleView != null) {
vh.mTitleView.setText(action.getTitle());
vh.mTitleView.setAlpha(action.isEnabled() ? mEnabledTextAlpha : mDisabledTextAlpha);
- vh.mTitleView.setFocusable(action.isEditable());
+ vh.mTitleView.setFocusable(false);
}
if (vh.mDescriptionView != null) {
vh.mDescriptionView.setText(action.getDescription());
@@ -525,7 +525,7 @@
View.GONE : View.VISIBLE);
vh.mDescriptionView.setAlpha(action.isEnabled() ? mEnabledDescriptionAlpha :
mDisabledDescriptionAlpha);
- vh.mDescriptionView.setFocusable(action.isDescriptionEditable());
+ vh.mDescriptionView.setFocusable(false);
}
// Clients might want the check mark view to be gone entirely, in which case, ignore it.
if (vh.mCheckmarkView != null) {