From 93e39d895c73a507c51eeb3e4c40d9cd51a8c95e Mon Sep 17 00:00:00 2001 From: Peter Serwylo Date: Wed, 12 Apr 2017 16:51:46 +1000 Subject: [PATCH] Fix for API 15- having really busted navigation --- .../java/org/fdroid/fdroid/views/main/MainActivity.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/app/src/main/java/org/fdroid/fdroid/views/main/MainActivity.java b/app/src/main/java/org/fdroid/fdroid/views/main/MainActivity.java index 839626207..59768ed58 100644 --- a/app/src/main/java/org/fdroid/fdroid/views/main/MainActivity.java +++ b/app/src/main/java/org/fdroid/fdroid/views/main/MainActivity.java @@ -6,12 +6,14 @@ import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.net.Uri; +import android.os.Build; import android.os.Bundle; import android.support.annotation.Nullable; import android.support.v4.content.LocalBroadcastManager; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.LinearLayoutManager; import android.text.TextUtils; +import android.view.ViewGroup; import android.widget.Toast; import android.support.v7.widget.RecyclerView; @@ -81,6 +83,13 @@ public class MainActivity extends AppCompatActivity implements BottomNavigationB pager.setLayoutManager(new NonScrollingHorizontalLayoutManager(this)); pager.setAdapter(adapter); + // Without this, the focus is completely busted on pre 15 devices. Trying to use them + // without this ends up with each child view showing for a fraction of a second, then + // reverting back to the "Latest" screen again, in completely non-deterministic ways. + if (Build.VERSION.SDK_INT <= 15) { + pager.setDescendantFocusability(ViewGroup.FOCUS_BEFORE_DESCENDANTS); + } + updatesBadge = new BadgeItem().hide(false); bottomNavigation = (BottomNavigationBar) findViewById(R.id.bottom_navigation);