Merge pull request #128 from syphe/dynamic_size_status_bars
Dynamic size status bars
This commit is contained in:
commit
bced70f894
13 changed files with 68 additions and 0 deletions
|
|
@ -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();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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());
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
|
|
|
||||||
|
|
@ -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() {
|
||||||
|
|
|
||||||
|
|
@ -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());
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
|
|
|
||||||
|
|
@ -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()) {
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -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();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -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" />
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue