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.bugreport.BugReportActivity;
import com.kabouzeid.gramophone.ui.activities.intro.AppIntroActivity;
import com.kabouzeid.gramophone.util.ViewUtil;
import butterknife.BindView;
import butterknife.ButterKnife;
@ -94,6 +95,8 @@ public class AboutActivity extends AbsBaseActivity implements View.OnClickListen
AppCompatButton maartenCorpelGooglePlus;
@BindView(R.id.aleksandar_tesic_google_plus)
AppCompatButton aleksandarTesicGooglePlus;
@BindView(R.id.status_bar)
View statusBar;
@Override
protected void onCreate(Bundle savedInstanceState) {
@ -105,6 +108,7 @@ public class AboutActivity extends AbsBaseActivity implements View.OnClickListen
setStatusbarColorAuto();
setNavigationbarColorAuto();
setTaskDescriptionColorAuto();
ViewUtil.setStatusBarHeight(this, statusBar);
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.PhonographColorUtil;
import com.kabouzeid.gramophone.util.Util;
import com.kabouzeid.gramophone.util.ViewUtil;
import butterknife.BindView;
import butterknife.ButterKnife;
@ -71,6 +72,8 @@ public class AlbumDetailActivity extends AbsSlidingMusicPanelActivity implements
TextView albumTitleView;
@BindView(R.id.list_background)
View songsBackgroundView;
@BindView(R.id.status_bar)
View statusBar;
private AlbumSongAdapter adapter;
@ -92,6 +95,7 @@ public class AlbumDetailActivity extends AbsSlidingMusicPanelActivity implements
setUpObservableListViewParams();
setUpToolBar();
setUpViews();
ViewUtil.setStatusBarHeight(this, statusBar);
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.PreferenceUtil;
import com.kabouzeid.gramophone.util.Util;
import com.kabouzeid.gramophone.util.ViewUtil;
import butterknife.BindView;
import butterknife.ButterKnife;
@ -82,6 +83,8 @@ public class ArtistDetailActivity extends AbsSlidingMusicPanelActivity implement
TextView artistName;
@BindView(R.id.toolbar)
Toolbar toolbar;
@BindView(R.id.status_bar)
View statusBar;
View songListHeader;
RecyclerView albumRecyclerView;
@ -117,6 +120,7 @@ public class ArtistDetailActivity extends AbsSlidingMusicPanelActivity implement
setUpObservableListViewParams();
setUpViews();
setUpToolbar();
ViewUtil.setStatusBarHeight(this, statusBar);
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.PhonographColorUtil;
import com.kabouzeid.gramophone.util.PlaylistsUtil;
import com.kabouzeid.gramophone.util.ViewUtil;
import java.util.ArrayList;
import java.util.List;
@ -59,6 +60,8 @@ public class PlaylistDetailActivity extends AbsSlidingMusicPanelActivity impleme
Toolbar toolbar;
@BindView(android.R.id.empty)
TextView empty;
@BindView(R.id.status_bar)
View statusBar;
private Playlist playlist;
@ -77,6 +80,7 @@ public class PlaylistDetailActivity extends AbsSlidingMusicPanelActivity impleme
setStatusbarColorAuto();
setNavigationbarColorAuto();
setTaskDescriptionColorAuto();
ViewUtil.setStatusBarHeight(this, statusBar);
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.ui.activities.base.AbsMusicServiceActivity;
import com.kabouzeid.gramophone.util.Util;
import com.kabouzeid.gramophone.util.ViewUtil;
import java.util.ArrayList;
import java.util.Collections;
@ -46,6 +47,8 @@ public class SearchActivity extends AbsMusicServiceActivity implements SearchVie
Toolbar toolbar;
@BindView(android.R.id.empty)
TextView empty;
@BindView(R.id.status_bar)
View statusBar;
SearchView searchView;
@ -62,6 +65,7 @@ public class SearchActivity extends AbsMusicServiceActivity implements SearchVie
setStatusbarColorAuto();
setNavigationbarColorAuto();
setTaskDescriptionColorAuto();
ViewUtil.setStatusBarHeight(this, statusBar);
recyclerView.setLayoutManager(new LinearLayoutManager(this));
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.util.NavigationUtil;
import com.kabouzeid.gramophone.util.PreferenceUtil;
import com.kabouzeid.gramophone.util.ViewUtil;
import butterknife.BindView;
import butterknife.ButterKnife;
@ -42,6 +43,8 @@ public class SettingsActivity extends AbsBaseActivity implements ColorChooserDia
@BindView(R.id.toolbar)
Toolbar toolbar;
@BindView(R.id.status_bar)
View statusBar;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
@ -53,6 +56,7 @@ public class SettingsActivity extends AbsBaseActivity implements ColorChooserDia
setStatusbarColorAuto();
setNavigationbarColorAuto();
setTaskDescriptionColorAuto();
ViewUtil.setStatusBarHeight(this, statusBar);
toolbar.setBackgroundColor(ThemeStore.primaryColor(this));
setSupportActionBar(toolbar);

View file

@ -92,6 +92,8 @@ public class FoldersFragment extends AbsMainActivityFragment implements MainActi
AppBarLayout appbar;
@BindView(R.id.recycler_view)
FastScrollRecyclerView recyclerView;
@BindView(R.id.status_bar)
View statusBar;
private SongFileAdapter adapter;
private MaterialCab cab;
@ -168,6 +170,7 @@ public class FoldersFragment extends AbsMainActivityFragment implements MainActi
setUpBreadCrumbs();
setUpRecyclerView();
setUpAdapter();
ViewUtil.setStatusBarHeight(getActivity(), statusBar);
}
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.PreferenceUtil;
import com.kabouzeid.gramophone.util.Util;
import com.kabouzeid.gramophone.util.ViewUtil;
import butterknife.BindView;
import butterknife.ButterKnife;
@ -57,6 +58,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 +93,8 @@ public class LibraryFragment extends AbsMainActivityFragment implements CabHolde
setUpToolbar();
setUpViewPager();
setUpStatusBar();
ViewUtil.setStatusBarHeight(getActivity(), statusBar);
}
private void setUpToolbar() {
@ -122,6 +127,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());
}

View file

@ -119,6 +119,12 @@ public class CardPlayerFragment extends AbsPlayerFragment implements PlayerAlbum
setUpPlayerToolbar();
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();
slidingUpPanelLayout.addPanelSlideListener(this);

View file

@ -114,7 +114,9 @@ public class FlatPlayerFragment extends AbsPlayerFragment implements PlayerAlbum
impl.init();
setUpPlayerToolbar();
setUpStatusBar();
setUpSubFragments();
ViewUtil.setStatusBarHeight(getActivity(), playerStatusBar);
setUpRecyclerView();
@ -232,6 +234,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()) {

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.util.DisplayMetrics;
import android.view.View;
import android.view.ViewGroup;
import android.view.animation.PathInterpolator;
import android.widget.TextView;
@ -96,4 +97,10 @@ public class ViewUtil {
DisplayMetrics metrics = resources.getDisplayMetrics();
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">
<View
android:id="@+id/status_bar"
android:layout_width="match_parent"
android:layout_height="@dimen/status_bar_padding" />