aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorandroid-build-prod (mdb) <android-build-team-robot@google.com>2017-09-16 03:56:47 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2017-09-16 03:56:47 +0000
commit942da9c9fb47d53fa220ecff9d44cade1f9d2028 (patch)
tree87998b4d9e1dfb846d9ce01a0ba2eed53fc71e32
parenta489792147a62913e9fefe960f1429ad19345e32 (diff)
parentc374345b9684ae2b63abdf5f54e385019fd7b025 (diff)
downloadsupport-942da9c9fb47d53fa220ecff9d44cade1f9d2028.tar.gz
-rw-r--r--v17/leanback/res/values-pt-rPT/strings.xml2
-rw-r--r--v17/leanback/src/android/support/v17/leanback/widget/GridLayoutManager.java14
2 files changed, 10 insertions, 6 deletions
diff --git a/v17/leanback/res/values-pt-rPT/strings.xml b/v17/leanback/res/values-pt-rPT/strings.xml
index 1191a505975..315828dcc8a 100644
--- a/v17/leanback/res/values-pt-rPT/strings.xml
+++ b/v17/leanback/res/values-pt-rPT/strings.xml
@@ -47,7 +47,7 @@ limitations under the License.
<string name="lb_playback_controls_high_quality_disable" msgid="8637371582779057866">"Desativar alta qualidade"</string>
<string name="lb_playback_controls_closed_captioning_enable" msgid="2429655367176440226">"Ativar legendas"</string>
<string name="lb_playback_controls_closed_captioning_disable" msgid="6133362019475930048">"Desativar legendas"</string>
- <string name="lb_playback_controls_picture_in_picture" msgid="3040035547765350690">"Entrar no modo Imagem na imagem"</string>
+ <string name="lb_playback_controls_picture_in_picture" msgid="3040035547765350690">"Entrar no modo de ecrã no ecrã"</string>
<string name="lb_playback_time_separator" msgid="3208380806582304911">"/"</string>
<string name="lb_playback_controls_shown" msgid="6382160135512023238">"Controlos de multimédia apresentados"</string>
<string name="lb_playback_controls_hidden" msgid="8940984081242033574">"Controlos de multimédia ocultados, prima o teclado direcional para mostrar"</string>
diff --git a/v17/leanback/src/android/support/v17/leanback/widget/GridLayoutManager.java b/v17/leanback/src/android/support/v17/leanback/widget/GridLayoutManager.java
index d4e694a97d2..c554cde42ba 100644
--- a/v17/leanback/src/android/support/v17/leanback/widget/GridLayoutManager.java
+++ b/v17/leanback/src/android/support/v17/leanback/widget/GridLayoutManager.java
@@ -3188,9 +3188,13 @@ final class GridLayoutManager extends RecyclerView.LayoutManager {
final View focused = recyclerView.findFocus();
final int focusedIndex = findImmediateChildIndex(focused);
final int focusedPos = getAdapterPositionByIndex(focusedIndex);
+ // Even if focusedPos != NO_POSITION, findViewByPosition could return null if the view
+ // is ignored or getLayoutPosition does not match the adapter position of focused view.
+ final View immediateFocusedChild = (focusedPos == NO_POSITION) ? null
+ : findViewByPosition(focusedPos);
// Add focusables of focused item.
- if (focusedPos != NO_POSITION) {
- findViewByPosition(focusedPos).addFocusables(views, direction, focusableMode);
+ if (immediateFocusedChild != null) {
+ immediateFocusedChild.addFocusables(views, direction, focusableMode);
}
if (mGrid == null || getChildCount() == 0) {
// no grid information, or no child, bail out.
@@ -3201,7 +3205,7 @@ final class GridLayoutManager extends RecyclerView.LayoutManager {
return true;
}
// Add focusables of neighbor depending on the focus search direction.
- final int focusedRow = mGrid != null && focusedPos != NO_POSITION
+ final int focusedRow = mGrid != null && immediateFocusedChild != null
? mGrid.getLocation(focusedPos).row : NO_POSITION;
final int focusableCount = views.size();
int inc = movement == NEXT_ITEM || movement == NEXT_ROW ? 1 : -1;
@@ -3217,9 +3221,9 @@ final class GridLayoutManager extends RecyclerView.LayoutManager {
if (child.getVisibility() != View.VISIBLE || !child.hasFocusable()) {
continue;
}
- // if there wasn't any focusing item, add the very first focusable
+ // if there wasn't any focused item, add the very first focusable
// items and stop.
- if (focusedPos == NO_POSITION) {
+ if (immediateFocusedChild == null) {
child.addFocusables(views, direction, focusableMode);
if (views.size() > focusableCount) {
break;