Merge pull request #128 from syphe/dynamic_size_status_bars

Dynamic size status bars
This commit is contained in:
Lincoln 2017-06-07 00:18:14 -04:00 committed by GitHub
commit bced70f894
13 changed files with 68 additions and 0 deletions

View file

@ -21,6 +21,7 @@ import com.kabouzeid.gramophone.dialogs.DonationsDialog;
import com.kabouzeid.gramophone.ui.activities.base.AbsBaseActivity; import com.kabouzeid.gramophone.ui.activities.base.AbsBaseActivity;
import com.kabouzeid.gramophone.ui.activities.bugreport.BugReportActivity; import com.kabouzeid.gramophone.ui.activities.bugreport.BugReportActivity;
import com.kabouzeid.gramophone.ui.activities.intro.AppIntroActivity; import com.kabouzeid.gramophone.ui.activities.intro.AppIntroActivity;
import com.kabouzeid.gramophone.util.ViewUtil;
import butterknife.BindView; import butterknife.BindView;
import butterknife.ButterKnife; import butterknife.ButterKnife;
@ -94,6 +95,8 @@ public class AboutActivity extends AbsBaseActivity implements View.OnClickListen
AppCompatButton maartenCorpelGooglePlus; AppCompatButton maartenCorpelGooglePlus;
@BindView(R.id.aleksandar_tesic_google_plus) @BindView(R.id.aleksandar_tesic_google_plus)
AppCompatButton aleksandarTesicGooglePlus; AppCompatButton aleksandarTesicGooglePlus;
@BindView(R.id.status_bar)
View statusBar;
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
@ -105,6 +108,7 @@ public class AboutActivity extends AbsBaseActivity implements View.OnClickListen
setStatusbarColorAuto(); setStatusbarColorAuto();
setNavigationbarColorAuto(); setNavigationbarColorAuto();
setTaskDescriptionColorAuto(); setTaskDescriptionColorAuto();
ViewUtil.setStatusBarHeight(this, statusBar);
setUpViews(); setUpViews();
} }

View file

@ -44,6 +44,7 @@ import com.kabouzeid.gramophone.ui.activities.tageditor.AlbumTagEditorActivity;
import com.kabouzeid.gramophone.util.NavigationUtil; import com.kabouzeid.gramophone.util.NavigationUtil;
import com.kabouzeid.gramophone.util.PhonographColorUtil; import com.kabouzeid.gramophone.util.PhonographColorUtil;
import com.kabouzeid.gramophone.util.Util; import com.kabouzeid.gramophone.util.Util;
import com.kabouzeid.gramophone.util.ViewUtil;
import butterknife.BindView; import butterknife.BindView;
import butterknife.ButterKnife; import butterknife.ButterKnife;
@ -71,6 +72,8 @@ public class AlbumDetailActivity extends AbsSlidingMusicPanelActivity implements
TextView albumTitleView; TextView albumTitleView;
@BindView(R.id.list_background) @BindView(R.id.list_background)
View songsBackgroundView; View songsBackgroundView;
@BindView(R.id.status_bar)
View statusBar;
private AlbumSongAdapter adapter; private AlbumSongAdapter adapter;
@ -92,6 +95,7 @@ public class AlbumDetailActivity extends AbsSlidingMusicPanelActivity implements
setUpObservableListViewParams(); setUpObservableListViewParams();
setUpToolBar(); setUpToolBar();
setUpViews(); setUpViews();
ViewUtil.setStatusBarHeight(this, statusBar);
getSupportLoaderManager().initLoader(LOADER_ID, getIntent().getExtras(), this); getSupportLoaderManager().initLoader(LOADER_ID, getIntent().getExtras(), this);
} }

View file

@ -55,6 +55,7 @@ import com.kabouzeid.gramophone.util.NavigationUtil;
import com.kabouzeid.gramophone.util.PhonographColorUtil; import com.kabouzeid.gramophone.util.PhonographColorUtil;
import com.kabouzeid.gramophone.util.PreferenceUtil; import com.kabouzeid.gramophone.util.PreferenceUtil;
import com.kabouzeid.gramophone.util.Util; import com.kabouzeid.gramophone.util.Util;
import com.kabouzeid.gramophone.util.ViewUtil;
import butterknife.BindView; import butterknife.BindView;
import butterknife.ButterKnife; import butterknife.ButterKnife;
@ -82,6 +83,8 @@ public class ArtistDetailActivity extends AbsSlidingMusicPanelActivity implement
TextView artistName; TextView artistName;
@BindView(R.id.toolbar) @BindView(R.id.toolbar)
Toolbar toolbar; Toolbar toolbar;
@BindView(R.id.status_bar)
View statusBar;
View songListHeader; View songListHeader;
RecyclerView albumRecyclerView; RecyclerView albumRecyclerView;
@ -117,6 +120,7 @@ public class ArtistDetailActivity extends AbsSlidingMusicPanelActivity implement
setUpObservableListViewParams(); setUpObservableListViewParams();
setUpViews(); setUpViews();
setUpToolbar(); setUpToolbar();
ViewUtil.setStatusBarHeight(this, statusBar);
getSupportLoaderManager().initLoader(LOADER_ID, getIntent().getExtras(), this); getSupportLoaderManager().initLoader(LOADER_ID, getIntent().getExtras(), this);
} }

View file

@ -37,6 +37,7 @@ import com.kabouzeid.gramophone.ui.activities.base.AbsSlidingMusicPanelActivity;
import com.kabouzeid.gramophone.util.NavigationUtil; import com.kabouzeid.gramophone.util.NavigationUtil;
import com.kabouzeid.gramophone.util.PhonographColorUtil; import com.kabouzeid.gramophone.util.PhonographColorUtil;
import com.kabouzeid.gramophone.util.PlaylistsUtil; import com.kabouzeid.gramophone.util.PlaylistsUtil;
import com.kabouzeid.gramophone.util.ViewUtil;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
@ -59,6 +60,8 @@ public class PlaylistDetailActivity extends AbsSlidingMusicPanelActivity impleme
Toolbar toolbar; Toolbar toolbar;
@BindView(android.R.id.empty) @BindView(android.R.id.empty)
TextView empty; TextView empty;
@BindView(R.id.status_bar)
View statusBar;
private Playlist playlist; private Playlist playlist;
@ -77,6 +80,7 @@ public class PlaylistDetailActivity extends AbsSlidingMusicPanelActivity impleme
setStatusbarColorAuto(); setStatusbarColorAuto();
setNavigationbarColorAuto(); setNavigationbarColorAuto();
setTaskDescriptionColorAuto(); setTaskDescriptionColorAuto();
ViewUtil.setStatusBarHeight(this, statusBar);
playlist = getIntent().getExtras().getParcelable(EXTRA_PLAYLIST); playlist = getIntent().getExtras().getParcelable(EXTRA_PLAYLIST);

View file

@ -27,6 +27,7 @@ import com.kabouzeid.gramophone.loader.SongLoader;
import com.kabouzeid.gramophone.misc.WrappedAsyncTaskLoader; import com.kabouzeid.gramophone.misc.WrappedAsyncTaskLoader;
import com.kabouzeid.gramophone.ui.activities.base.AbsMusicServiceActivity; import com.kabouzeid.gramophone.ui.activities.base.AbsMusicServiceActivity;
import com.kabouzeid.gramophone.util.Util; import com.kabouzeid.gramophone.util.Util;
import com.kabouzeid.gramophone.util.ViewUtil;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
@ -46,6 +47,8 @@ public class SearchActivity extends AbsMusicServiceActivity implements SearchVie
Toolbar toolbar; Toolbar toolbar;
@BindView(android.R.id.empty) @BindView(android.R.id.empty)
TextView empty; TextView empty;
@BindView(R.id.status_bar)
View statusBar;
SearchView searchView; SearchView searchView;
@ -62,6 +65,7 @@ public class SearchActivity extends AbsMusicServiceActivity implements SearchVie
setStatusbarColorAuto(); setStatusbarColorAuto();
setNavigationbarColorAuto(); setNavigationbarColorAuto();
setTaskDescriptionColorAuto(); setTaskDescriptionColorAuto();
ViewUtil.setStatusBarHeight(this, statusBar);
recyclerView.setLayoutManager(new LinearLayoutManager(this)); recyclerView.setLayoutManager(new LinearLayoutManager(this));
adapter = new SearchAdapter(this, Collections.emptyList()); adapter = new SearchAdapter(this, Collections.emptyList());

View file

@ -33,6 +33,7 @@ import com.kabouzeid.gramophone.service.MusicService;
import com.kabouzeid.gramophone.ui.activities.base.AbsBaseActivity; import com.kabouzeid.gramophone.ui.activities.base.AbsBaseActivity;
import com.kabouzeid.gramophone.util.NavigationUtil; import com.kabouzeid.gramophone.util.NavigationUtil;
import com.kabouzeid.gramophone.util.PreferenceUtil; import com.kabouzeid.gramophone.util.PreferenceUtil;
import com.kabouzeid.gramophone.util.ViewUtil;
import butterknife.BindView; import butterknife.BindView;
import butterknife.ButterKnife; import butterknife.ButterKnife;
@ -42,6 +43,8 @@ public class SettingsActivity extends AbsBaseActivity implements ColorChooserDia
@BindView(R.id.toolbar) @BindView(R.id.toolbar)
Toolbar toolbar; Toolbar toolbar;
@BindView(R.id.status_bar)
View statusBar;
@Override @Override
protected void onCreate(@Nullable Bundle savedInstanceState) { protected void onCreate(@Nullable Bundle savedInstanceState) {
@ -53,6 +56,7 @@ public class SettingsActivity extends AbsBaseActivity implements ColorChooserDia
setStatusbarColorAuto(); setStatusbarColorAuto();
setNavigationbarColorAuto(); setNavigationbarColorAuto();
setTaskDescriptionColorAuto(); setTaskDescriptionColorAuto();
ViewUtil.setStatusBarHeight(this, statusBar);
toolbar.setBackgroundColor(ThemeStore.primaryColor(this)); toolbar.setBackgroundColor(ThemeStore.primaryColor(this));
setSupportActionBar(toolbar); setSupportActionBar(toolbar);

View file

@ -92,6 +92,8 @@ public class FoldersFragment extends AbsMainActivityFragment implements MainActi
AppBarLayout appbar; AppBarLayout appbar;
@BindView(R.id.recycler_view) @BindView(R.id.recycler_view)
FastScrollRecyclerView recyclerView; FastScrollRecyclerView recyclerView;
@BindView(R.id.status_bar)
View statusBar;
private SongFileAdapter adapter; private SongFileAdapter adapter;
private MaterialCab cab; private MaterialCab cab;
@ -168,6 +170,7 @@ public class FoldersFragment extends AbsMainActivityFragment implements MainActi
setUpBreadCrumbs(); setUpBreadCrumbs();
setUpRecyclerView(); setUpRecyclerView();
setUpAdapter(); setUpAdapter();
ViewUtil.setStatusBarHeight(getActivity(), statusBar);
} }
private void setUpAppbarColor() { private void setUpAppbarColor() {

View file

@ -39,6 +39,7 @@ import com.kabouzeid.gramophone.util.NavigationUtil;
import com.kabouzeid.gramophone.util.PhonographColorUtil; import com.kabouzeid.gramophone.util.PhonographColorUtil;
import com.kabouzeid.gramophone.util.PreferenceUtil; import com.kabouzeid.gramophone.util.PreferenceUtil;
import com.kabouzeid.gramophone.util.Util; import com.kabouzeid.gramophone.util.Util;
import com.kabouzeid.gramophone.util.ViewUtil;
import butterknife.BindView; import butterknife.BindView;
import butterknife.ButterKnife; import butterknife.ButterKnife;
@ -57,6 +58,8 @@ public class LibraryFragment extends AbsMainActivityFragment implements CabHolde
AppBarLayout appbar; AppBarLayout appbar;
@BindView(R.id.pager) @BindView(R.id.pager)
ViewPager pager; ViewPager pager;
@BindView(R.id.status_bar)
View statusBar;
private MusicLibraryPagerAdapter pagerAdapter; private MusicLibraryPagerAdapter pagerAdapter;
private MaterialCab cab; private MaterialCab cab;
@ -90,6 +93,8 @@ public class LibraryFragment extends AbsMainActivityFragment implements CabHolde
setUpToolbar(); setUpToolbar();
setUpViewPager(); setUpViewPager();
setUpStatusBar();
ViewUtil.setStatusBarHeight(getActivity(), statusBar);
} }
private void setUpToolbar() { private void setUpToolbar() {
@ -122,6 +127,12 @@ public class LibraryFragment extends AbsMainActivityFragment implements CabHolde
pager.addOnPageChangeListener(this); pager.addOnPageChangeListener(this);
} }
private void setUpStatusBar() {
ViewGroup.LayoutParams layoutParams = statusBar.getLayoutParams();
layoutParams.height = Util.getStatusBarHeight(getMainActivity());
statusBar.setLayoutParams(layoutParams);
}
public Fragment getCurrentFragment() { public Fragment getCurrentFragment() {
return pagerAdapter.getFragment(pager.getCurrentItem()); return pagerAdapter.getFragment(pager.getCurrentItem());
} }

View file

@ -119,6 +119,12 @@ public class CardPlayerFragment extends AbsPlayerFragment implements PlayerAlbum
setUpPlayerToolbar(); setUpPlayerToolbar();
setUpSubFragments(); setUpSubFragments();
// portrait view doesn't have a statusBar, so can't bind it up top as will throw an exception.
View statusBar = view.findViewById(R.id.status_bar);
if (statusBar != null) {
ViewUtil.setStatusBarHeight(getActivity(), statusBar);
}
setUpRecyclerView(); setUpRecyclerView();
slidingUpPanelLayout.addPanelSlideListener(this); slidingUpPanelLayout.addPanelSlideListener(this);

View file

@ -114,7 +114,9 @@ public class FlatPlayerFragment extends AbsPlayerFragment implements PlayerAlbum
impl.init(); impl.init();
setUpPlayerToolbar(); setUpPlayerToolbar();
setUpStatusBar();
setUpSubFragments(); setUpSubFragments();
ViewUtil.setStatusBarHeight(getActivity(), playerStatusBar);
setUpRecyclerView(); setUpRecyclerView();
@ -232,6 +234,12 @@ public class FlatPlayerFragment extends AbsPlayerFragment implements PlayerAlbum
toolbar.setOnMenuItemClickListener(this); toolbar.setOnMenuItemClickListener(this);
} }
private void setUpStatusBar() {
ViewGroup.LayoutParams layoutParams = playerStatusBar.getLayoutParams();
layoutParams.height = Util.getStatusBarHeight(getActivity());
playerStatusBar.setLayoutParams(layoutParams);
}
@Override @Override
public boolean onMenuItemClick(MenuItem item) { public boolean onMenuItemClick(MenuItem item) {
switch (item.getItemId()) { switch (item.getItemId()) {

View file

@ -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;
}
} }

View file

@ -16,6 +16,7 @@ import android.support.annotation.ColorInt;
import android.support.v4.view.ViewCompat; import android.support.v4.view.ViewCompat;
import android.util.DisplayMetrics; import android.util.DisplayMetrics;
import android.view.View; import android.view.View;
import android.view.ViewGroup;
import android.view.animation.PathInterpolator; import android.view.animation.PathInterpolator;
import android.widget.TextView; import android.widget.TextView;
@ -96,4 +97,10 @@ public class ViewUtil {
DisplayMetrics metrics = resources.getDisplayMetrics(); DisplayMetrics metrics = resources.getDisplayMetrics();
return px / metrics.density; return px / metrics.density;
} }
public static void setStatusBarHeight(final Context context, View statusBar) {
ViewGroup.LayoutParams lp = statusBar.getLayoutParams();
lp.height = Util.getStatusBarHeight(context);
statusBar.requestLayout();
}
} }

View file

@ -11,6 +11,7 @@
android:layout_height="wrap_content"> android:layout_height="wrap_content">
<View <View
android:id="@+id/status_bar"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="@dimen/status_bar_padding" /> android:layout_height="@dimen/status_bar_padding" />