From 823f0ca8564665e3866675c6b4179593b6239dd9 Mon Sep 17 00:00:00 2001 From: simonfi Date: Thu, 23 Mar 2017 08:54:06 +1300 Subject: [PATCH] start to resize status bar area based on device dimensions so that devices with nonstandard status bars don't draw the app window beneath the statusbar. --- .../fragments/mainactivity/library/LibraryFragment.java | 9 +++++++++ .../ui/fragments/player/flat/FlatPlayerFragment.java | 7 +++++++ .../main/java/com/kabouzeid/gramophone/util/Util.java | 8 ++++++++ 3 files changed, 24 insertions(+) diff --git a/app/src/main/java/com/kabouzeid/gramophone/ui/fragments/mainactivity/library/LibraryFragment.java b/app/src/main/java/com/kabouzeid/gramophone/ui/fragments/mainactivity/library/LibraryFragment.java index ab2487af..9aa3cfbc 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/ui/fragments/mainactivity/library/LibraryFragment.java +++ b/app/src/main/java/com/kabouzeid/gramophone/ui/fragments/mainactivity/library/LibraryFragment.java @@ -57,6 +57,8 @@ public class LibraryFragment extends AbsMainActivityFragment implements CabHolde AppBarLayout appbar; @BindView(R.id.pager) ViewPager pager; + @BindView(R.id.status_bar) + View statusBar; private MusicLibraryPagerAdapter pagerAdapter; private MaterialCab cab; @@ -90,6 +92,7 @@ public class LibraryFragment extends AbsMainActivityFragment implements CabHolde setUpToolbar(); setUpViewPager(); + setUpStatusBar(); } private void setUpToolbar() { @@ -122,6 +125,12 @@ public class LibraryFragment extends AbsMainActivityFragment implements CabHolde pager.addOnPageChangeListener(this); } + private void setUpStatusBar() { + ViewGroup.LayoutParams layoutParams = statusBar.getLayoutParams(); + layoutParams.height = Util.getStatusBarHeight(getMainActivity()); + statusBar.setLayoutParams(layoutParams); + } + public Fragment getCurrentFragment() { return pagerAdapter.getFragment(pager.getCurrentItem()); } diff --git a/app/src/main/java/com/kabouzeid/gramophone/ui/fragments/player/flat/FlatPlayerFragment.java b/app/src/main/java/com/kabouzeid/gramophone/ui/fragments/player/flat/FlatPlayerFragment.java index d80dbd57..85747263 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/ui/fragments/player/flat/FlatPlayerFragment.java +++ b/app/src/main/java/com/kabouzeid/gramophone/ui/fragments/player/flat/FlatPlayerFragment.java @@ -114,6 +114,7 @@ public class FlatPlayerFragment extends AbsPlayerFragment implements PlayerAlbum impl.init(); setUpPlayerToolbar(); + setUpStatusBar(); setUpSubFragments(); setUpRecyclerView(); @@ -230,6 +231,12 @@ public class FlatPlayerFragment extends AbsPlayerFragment implements PlayerAlbum toolbar.setOnMenuItemClickListener(this); } + private void setUpStatusBar() { + ViewGroup.LayoutParams layoutParams = playerStatusBar.getLayoutParams(); + layoutParams.height = Util.getStatusBarHeight(getActivity()); + playerStatusBar.setLayoutParams(layoutParams); + } + @Override public boolean onMenuItemClick(MenuItem item) { switch (item.getItemId()) { diff --git a/app/src/main/java/com/kabouzeid/gramophone/util/Util.java b/app/src/main/java/com/kabouzeid/gramophone/util/Util.java index 567f782a..b71c550b 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/util/Util.java +++ b/app/src/main/java/com/kabouzeid/gramophone/util/Util.java @@ -135,4 +135,12 @@ public class Util { } } + public static int getStatusBarHeight(final Context context) { + int result = 0; + int resourceId = context.getResources().getIdentifier("status_bar_height", "dimen", "android"); + if (resourceId > 0) { + result = context.getResources().getDimensionPixelSize(resourceId); + } + return result; + } } \ No newline at end of file