diff options
author | android-build-prod (mdb) <android-build-team-robot@google.com> | 2017-09-16 03:56:47 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2017-09-16 03:56:47 +0000 |
commit | 942da9c9fb47d53fa220ecff9d44cade1f9d2028 (patch) | |
tree | 87998b4d9e1dfb846d9ce01a0ba2eed53fc71e32 | |
parent | a489792147a62913e9fefe960f1429ad19345e32 (diff) | |
parent | c374345b9684ae2b63abdf5f54e385019fd7b025 (diff) | |
download | support-942da9c9fb47d53fa220ecff9d44cade1f9d2028.tar.gz |
Merge "release-request-8a6a1d17-d673-453b-8612-ea961499cd38-for-aosp-oreo-cts-release-4341710 snap-temp-L24800000103383547" into oreo-cts-releaseandroid-cts-8.0_r9android-cts-8.0_r8android-cts-8.0_r7android-cts-8.0_r6android-cts-8.0_r5android-cts-8.0_r4android-cts-8.0_r3android-cts-8.0_r26android-cts-8.0_r25android-cts-8.0_r24android-cts-8.0_r23android-cts-8.0_r22android-cts-8.0_r21android-cts-8.0_r20android-cts-8.0_r2android-cts-8.0_r19android-cts-8.0_r18android-cts-8.0_r17android-cts-8.0_r16android-cts-8.0_r15android-cts-8.0_r14android-cts-8.0_r13android-cts-8.0_r12android-cts-8.0_r11android-cts-8.0_r10oreo-cts-release
-rw-r--r-- | v17/leanback/res/values-pt-rPT/strings.xml | 2 | ||||
-rw-r--r-- | v17/leanback/src/android/support/v17/leanback/widget/GridLayoutManager.java | 14 |
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; |