This commit is contained in:
h4h13 2018-11-13 09:00:08 +05:30
parent a531a1e723
commit ca4e9e7ef0
194 changed files with 1286 additions and 2256 deletions

View file

@ -17,7 +17,6 @@ import android.widget.TextView;
import com.bumptech.glide.Glide;
import com.google.android.material.appbar.AppBarLayout;
import com.google.android.material.appbar.CollapsingToolbarLayout;
import com.google.android.material.button.MaterialButton;
import java.util.ArrayList;
@ -27,6 +26,7 @@ import androidx.appcompat.widget.AppCompatTextView;
import androidx.appcompat.widget.Toolbar;
import androidx.core.app.ActivityCompat;
import androidx.core.util.Pair;
import androidx.core.widget.NestedScrollView;
import androidx.recyclerview.widget.DefaultItemAnimator;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.LinearLayoutManager;
@ -36,7 +36,6 @@ import butterknife.ButterKnife;
import butterknife.OnClick;
import code.name.monkey.appthemehelper.ThemeStore;
import code.name.monkey.appthemehelper.util.ColorUtil;
import code.name.monkey.appthemehelper.util.MaterialUtil;
import code.name.monkey.appthemehelper.util.TintHelper;
import code.name.monkey.appthemehelper.util.ToolbarContentTintHelper;
import code.name.monkey.retromusic.R;
@ -63,12 +62,14 @@ import code.name.monkey.retromusic.util.MusicUtil;
import code.name.monkey.retromusic.util.NavigationUtil;
import code.name.monkey.retromusic.util.PreferenceUtil;
import code.name.monkey.retromusic.util.RetroUtil;
import code.name.monkey.retromusic.views.CollapsingFAB;
public class AlbumDetailsActivity extends AbsSlidingMusicPanelActivity implements
AlbumDetailsContract.AlbumDetailsView {
public static final String EXTRA_ALBUM_ID = "extra_album_id";
private static final int TAG_EDITOR_REQUEST = 2001;
@BindView(R.id.image)
ImageView image;
@ -85,7 +86,7 @@ public class AlbumDetailsActivity extends AbsSlidingMusicPanelActivity implement
AppCompatTextView songTitle;
@BindView(R.id.action_shuffle_all)
MaterialButton shuffleButton;
CollapsingFAB shuffleButton;
@BindView(R.id.collapsing_toolbar)
@Nullable
@ -96,7 +97,7 @@ public class AlbumDetailsActivity extends AbsSlidingMusicPanelActivity implement
AppBarLayout appBarLayout;
@BindView(R.id.content)
View contentContainer;
NestedScrollView contentContainer;
@BindView(R.id.toolbar)
Toolbar toolbar;
@ -141,16 +142,32 @@ public class AlbumDetailsActivity extends AbsSlidingMusicPanelActivity implement
ActivityCompat.postponeEnterTransition(this);
int albumId = getIntent().getIntExtra(EXTRA_ALBUM_ID, -1);
albumDetailsPresenter = new AlbumDetailsPresenter(this, albumId);
albumDetailsPresenter.subscribe();
setupRecyclerView();
setupToolbarMarginHeight();
contentContainer.setOnScrollChangeListener((NestedScrollView.OnScrollChangeListener) (v, scrollX, scrollY, oldScrollX, oldScrollY) -> {
if (scrollY > oldScrollY) {
shuffleButton.setShowTitle(false);
}
if (scrollY < oldScrollY) {
shuffleButton.setShowTitle(true);
}
});
}
private void setupRecyclerView() {
adapter = new SimpleSongAdapter(this, new ArrayList<>(), R.layout.item_song);
recyclerView.setLayoutManager(new LinearLayoutManager(this));
recyclerView.setItemAnimator(new DefaultItemAnimator());
recyclerView.setNestedScrollingEnabled(false);
recyclerView.setAdapter(adapter);
setupToolbarMarginHeight();
int albumId = getIntent().getIntExtra(EXTRA_ALBUM_ID, -1);
albumDetailsPresenter = new AlbumDetailsPresenter(this, albumId);
}
private void setupToolbarMarginHeight() {
@ -213,12 +230,6 @@ public class AlbumDetailsActivity extends AbsSlidingMusicPanelActivity implement
}
}
@Override
protected void onResume() {
super.onResume();
albumDetailsPresenter.subscribe();
}
@Override
protected void onPause() {
super.onPause();
@ -287,8 +298,6 @@ public class AlbumDetailsActivity extends AbsSlidingMusicPanelActivity implement
AlbumAdapter albumAdapter = new HorizontalAlbumAdapter(this, albums, false, null);
moreRecyclerView.setLayoutManager(new GridLayoutManager(this, 1, GridLayoutManager.HORIZONTAL, false));
moreRecyclerView.setAdapter(albumAdapter);
ActivityCompat.startPostponedEnterTransition(this);
}
public Album getAlbum() {
@ -314,8 +323,7 @@ public class AlbumDetailsActivity extends AbsSlidingMusicPanelActivity implement
songTitle.setTextColor(themeColor);
moreTitle.setTextColor(themeColor);
MaterialUtil.setTint(shuffleButton, true, themeColor);
//findViewById(R.id.root).setBackgroundColor(ThemeStore.primaryColor(this));
shuffleButton.setColor(themeColor);
}

View file

@ -21,7 +21,6 @@ import android.widget.Toast;
import com.bumptech.glide.Glide;
import com.google.android.material.appbar.AppBarLayout;
import com.google.android.material.appbar.CollapsingToolbarLayout;
import com.google.android.material.button.MaterialButton;
import java.util.ArrayList;
import java.util.Locale;
@ -31,6 +30,7 @@ import androidx.annotation.Nullable;
import androidx.appcompat.widget.AppCompatTextView;
import androidx.appcompat.widget.Toolbar;
import androidx.core.app.ActivityCompat;
import androidx.core.widget.NestedScrollView;
import androidx.recyclerview.widget.DefaultItemAnimator;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.LinearLayoutManager;
@ -40,7 +40,6 @@ import butterknife.ButterKnife;
import butterknife.OnClick;
import code.name.monkey.appthemehelper.ThemeStore;
import code.name.monkey.appthemehelper.util.ColorUtil;
import code.name.monkey.appthemehelper.util.MaterialUtil;
import code.name.monkey.appthemehelper.util.TintHelper;
import code.name.monkey.appthemehelper.util.ToolbarContentTintHelper;
import code.name.monkey.retromusic.R;
@ -64,6 +63,7 @@ import code.name.monkey.retromusic.util.DensityUtil;
import code.name.monkey.retromusic.util.MusicUtil;
import code.name.monkey.retromusic.util.PreferenceUtil;
import code.name.monkey.retromusic.util.RetroUtil;
import code.name.monkey.retromusic.views.CollapsingFAB;
import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
@ -109,7 +109,7 @@ public class ArtistDetailActivity extends AbsSlidingMusicPanelActivity implement
TextView text;
@BindView(R.id.action_shuffle_all)
MaterialButton shuffleButton;
CollapsingFAB shuffleButton;
@BindView(R.id.gradient_background)
@Nullable
@ -120,7 +120,7 @@ public class ArtistDetailActivity extends AbsSlidingMusicPanelActivity implement
View imageContainer;
@BindView(R.id.content)
View contentContainer;
NestedScrollView contentContainer;
@BindView(R.id.toolbar)
Toolbar toolbar;
@ -167,6 +167,15 @@ public class ArtistDetailActivity extends AbsSlidingMusicPanelActivity implement
artistDetailsPresenter = new ArtistDetailsPresenter(this, getIntent().getExtras());
artistDetailsPresenter.subscribe();
contentContainer.setOnScrollChangeListener((NestedScrollView.OnScrollChangeListener) (v, scrollX, scrollY, oldScrollX, oldScrollY) -> {
if (scrollY > oldScrollY) {
shuffleButton.setShowTitle(false);
}
if (scrollY < oldScrollY) {
shuffleButton.setShowTitle(true);
}
});
}
private void setUpViews() {
@ -257,12 +266,6 @@ public class ArtistDetailActivity extends AbsSlidingMusicPanelActivity implement
}
}
@Override
protected void onResume() {
super.onResume();
}
@Override
protected void onPause() {
super.onPause();
@ -383,7 +386,7 @@ public class ArtistDetailActivity extends AbsSlidingMusicPanelActivity implement
songTitle.setTextColor(textColor);
biographyTitle.setTextColor(textColor);
MaterialUtil.setTint(shuffleButton, true, textColor);
shuffleButton.setColor(textColor);
if (background != null) {
background.setBackgroundTintList(ColorStateList.valueOf(color));

View file

@ -4,14 +4,11 @@ import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.animation.AccelerateInterpolator;
import android.view.animation.DecelerateInterpolator;
import android.widget.ProgressBar;
import android.widget.TextView;
import com.afollestad.materialcab.MaterialCab;
import com.google.android.material.appbar.AppBarLayout;
import com.google.android.material.floatingactionbutton.FloatingActionButton;
import com.simplecityapps.recyclerview_fastscroll.views.FastScrollRecyclerView;
import java.util.ArrayList;
@ -25,7 +22,6 @@ import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.OnClick;
import code.name.monkey.appthemehelper.ThemeStore;
import code.name.monkey.appthemehelper.util.TintHelper;
import code.name.monkey.appthemehelper.util.ToolbarContentTintHelper;
import code.name.monkey.retromusic.R;
import code.name.monkey.retromusic.helper.MusicPlayerRemote;
@ -39,6 +35,7 @@ import code.name.monkey.retromusic.ui.activities.base.AbsSlidingMusicPanelActivi
import code.name.monkey.retromusic.ui.adapter.song.SongAdapter;
import code.name.monkey.retromusic.util.RetroColorUtil;
import code.name.monkey.retromusic.util.ViewUtil;
import code.name.monkey.retromusic.views.CollapsingFAB;
/**
* @author Hemanth S (h4h13).
@ -57,7 +54,7 @@ public class GenreDetailsActivity extends AbsSlidingMusicPanelActivity implement
TextView empty;
@BindView(R.id.action_shuffle)
FloatingActionButton shuffleButton;
CollapsingFAB shuffleButton;
@BindView(R.id.progress_bar)
ProgressBar progressBar;
@ -85,7 +82,6 @@ public class GenreDetailsActivity extends AbsSlidingMusicPanelActivity implement
super.onCreate(savedInstanceState);
ButterKnife.bind(this);
setStatusbarColorAuto();
setNavigationbarColorAuto();
setTaskDescriptionColorAuto();
toggleBottomNavigationView(true);
@ -119,7 +115,7 @@ public class GenreDetailsActivity extends AbsSlidingMusicPanelActivity implement
ToolbarContentTintHelper.colorBackButton(toolbar, ThemeStore.accentColor(this));
setTitle(null);
setSupportActionBar(toolbar);
TintHelper.setTintAuto(shuffleButton, ThemeStore.accentColor(this), true);
shuffleButton.setColor(ThemeStore.accentColor(this));
}
@Override
@ -172,11 +168,21 @@ public class GenreDetailsActivity extends AbsSlidingMusicPanelActivity implement
private void setupRecyclerView() {
ViewUtil.setUpFastScrollRecyclerViewColor(this,
((FastScrollRecyclerView) recyclerView), ThemeStore.accentColor(this));
songAdapter = new SongAdapter(this, new ArrayList<Song>(), R.layout.item_list, false, this);
songAdapter = new SongAdapter(this, new ArrayList<>(), R.layout.item_list, false, this);
recyclerView.setItemAnimator(new DefaultItemAnimator());
recyclerView.setLayoutManager(new LinearLayoutManager(this));
recyclerView.setAdapter(songAdapter);
recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) {
super.onScrolled(recyclerView, dx, dy);
if (dy > 0) {
shuffleButton.setShowTitle(false);
} else if (dy < 0) {
shuffleButton.setShowTitle(true);
}
}
});
songAdapter.registerAdapterDataObserver(new RecyclerView.AdapterDataObserver() {
@Override
public void onChanged() {

View file

@ -66,14 +66,18 @@ public class NowPayingActivity extends AbsMusicServiceActivity implements AbsPla
public void onPaletteColorChanged() {
int paletteColor = playerFragment.getPaletteColor();
if ((currentNowPlayingScreen == NowPlayingScreen.FLAT || currentNowPlayingScreen == NowPlayingScreen.NORMAL) && PreferenceUtil.getInstance().getAdaptiveColor()) {
setNavigationbarColor(Color.TRANSPARENT);
setLightNavigationBar(true);
setLightStatusbar(ColorUtil.isColorLight(paletteColor));
} else if (currentNowPlayingScreen == NowPlayingScreen.COLOR) {
setLightStatusbar(ColorUtil.isColorLight(paletteColor));
} else if (currentNowPlayingScreen == NowPlayingScreen.BLUR || currentNowPlayingScreen == NowPlayingScreen.BLUR_CARD) {
setLightStatusbar(false);
} else if (currentNowPlayingScreen == NowPlayingScreen.CARD || currentNowPlayingScreen == NowPlayingScreen.FULL) {
setNavigationbarColor(Color.TRANSPARENT);
} else {
setStatusbarColor(Color.TRANSPARENT);
setLightStatusbar(isOneOfTheseThemes() && ColorUtil.isColorLight(ThemeStore.primaryColor(this)));
setNavigationbarColorAuto();
}
}

View file

@ -4,13 +4,10 @@ import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.animation.AccelerateInterpolator;
import android.view.animation.DecelerateInterpolator;
import android.widget.TextView;
import com.afollestad.materialcab.MaterialCab;
import com.google.android.material.appbar.AppBarLayout;
import com.google.android.material.floatingactionbutton.FloatingActionButton;
import com.h6ah4i.android.widget.advrecyclerview.animator.GeneralItemAnimator;
import com.h6ah4i.android.widget.advrecyclerview.animator.RefactoredDefaultItemAnimator;
import com.h6ah4i.android.widget.advrecyclerview.draggable.RecyclerViewDragDropManager;
@ -27,7 +24,6 @@ import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.OnClick;
import code.name.monkey.appthemehelper.ThemeStore;
import code.name.monkey.appthemehelper.util.TintHelper;
import code.name.monkey.appthemehelper.util.ToolbarContentTintHelper;
import code.name.monkey.retromusic.R;
import code.name.monkey.retromusic.helper.MusicPlayerRemote;
@ -47,6 +43,7 @@ import code.name.monkey.retromusic.ui.adapter.song.SongAdapter;
import code.name.monkey.retromusic.util.PlaylistsUtil;
import code.name.monkey.retromusic.util.RetroColorUtil;
import code.name.monkey.retromusic.util.ViewUtil;
import code.name.monkey.retromusic.views.CollapsingFAB;
public class PlaylistDetailActivity extends AbsSlidingMusicPanelActivity implements CabHolder,
PlaylistSongsContract.PlaylistSongsView {
@ -64,7 +61,7 @@ public class PlaylistDetailActivity extends AbsSlidingMusicPanelActivity impleme
TextView empty;
@BindView(R.id.action_shuffle)
FloatingActionButton shuffleButton;
CollapsingFAB shuffleButton;
@BindView(R.id.app_bar)
AppBarLayout appBarLayout;
@ -101,31 +98,6 @@ public class PlaylistDetailActivity extends AbsSlidingMusicPanelActivity impleme
setUpRecyclerView();
}
public void showHeartAnimation() {
shuffleButton.clearAnimation();
shuffleButton.setScaleX(0.9f);
shuffleButton.setScaleY(0.9f);
shuffleButton.show();
shuffleButton.setPivotX(shuffleButton.getWidth() / 2);
shuffleButton.setPivotY(shuffleButton.getHeight() / 2);
shuffleButton.animate()
.setDuration(200)
.setInterpolator(new DecelerateInterpolator())
.scaleX(1.1f)
.scaleY(1.1f)
.withEndAction(() -> shuffleButton.animate()
.setDuration(200)
.setInterpolator(new AccelerateInterpolator())
.scaleX(1f)
.scaleY(1f)
.alpha(1f)
.start())
.start();
}
@Override
protected View createContentView() {
return wrapSlidingMusicPanel(R.layout.activity_playlist_detail);
@ -165,6 +137,17 @@ public class PlaylistDetailActivity extends AbsSlidingMusicPanelActivity impleme
checkIsEmpty();
}
});
recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) {
super.onScrolled(recyclerView, dx, dy);
if (dy > 0) {
shuffleButton.setShowTitle(false);
} else if (dy < 0) {
shuffleButton.setShowTitle(true);
}
}
});
}
@Override
@ -176,7 +159,7 @@ public class PlaylistDetailActivity extends AbsSlidingMusicPanelActivity impleme
private void setUpToolBar() {
title.setText(playlist.name);
title.setTextColor(ThemeStore.textColorPrimary(this));
TintHelper.setTintAuto(shuffleButton, ThemeStore.accentColor(this), true);
shuffleButton.setColor(ThemeStore.accentColor(this));
int primaryColor = ThemeStore.primaryColor(this);
toolbar.setBackgroundColor(primaryColor);
@ -320,7 +303,6 @@ public class PlaylistDetailActivity extends AbsSlidingMusicPanelActivity impleme
@OnClick(R.id.action_shuffle)
public void onViewClicked() {
showHeartAnimation();
if (adapter.getDataSet().isEmpty()) {
return;
}

View file

@ -3,13 +3,13 @@ package code.name.monkey.retromusic.ui.activities;
import android.content.Context;
import android.content.ContextWrapper;
import android.content.Intent;
import android.content.res.ColorStateList;
import android.graphics.Bitmap;
import android.net.Uri;
import android.os.Bundle;
import android.provider.MediaStore;
import android.provider.MediaStore.Images.Media;
import android.text.TextUtils;
import android.view.MenuItem;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
@ -31,7 +31,7 @@ import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.OnClick;
import code.name.monkey.appthemehelper.ThemeStore;
import code.name.monkey.appthemehelper.util.TintHelper;
import code.name.monkey.appthemehelper.util.ToolbarContentTintHelper;
import code.name.monkey.retromusic.R;
import code.name.monkey.retromusic.ui.activities.base.AbsBaseActivity;
import code.name.monkey.retromusic.util.Compressor;
@ -46,7 +46,6 @@ import static code.name.monkey.retromusic.Constants.USER_BANNER;
import static code.name.monkey.retromusic.Constants.USER_PROFILE;
public class UserInfoActivity extends AbsBaseActivity {
private static final String TAG = "UserInfoActivity";
private static final int PICK_IMAGE_REQUEST = 9002;
private static final int PICK_BANNER_REQUEST = 9003;
@ -82,7 +81,6 @@ public class UserInfoActivity extends AbsBaseActivity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_user_info);
ButterKnife.bind(this);
setStatusbarColorAuto();
@ -106,10 +104,22 @@ public class UserInfoActivity extends AbsBaseActivity {
}
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (item.getItemId() == android.R.id.home) {
onBackPressed();
}
return super.onOptionsItemSelected(item);
}
private void setupToolbar() {
toolbar.setBackgroundColor(ThemeStore.primaryColor(this));
appBarLayout.setBackgroundColor(ThemeStore.primaryColor(this));
TintHelper.setTintAuto(nextButton, ThemeStore.accentColor(this), true);
int primaryColor = ThemeStore.primaryColor(this);
toolbar.setNavigationIcon(R.drawable.ic_keyboard_backspace_black_24dp);
toolbar.setBackgroundColor(primaryColor);
appBarLayout.setBackgroundColor(primaryColor);
ToolbarContentTintHelper.colorBackButton(toolbar, ThemeStore.accentColor(this));
setTitle(null);
setSupportActionBar(toolbar);
}
@OnClick({R.id.next, R.id.banner_select})
@ -176,8 +186,7 @@ public class UserInfoActivity extends AbsBaseActivity {
//noinspection ConstantConditions
new MaterialDialog.Builder(this)
.title("Set a profile photo")
.items(Arrays.asList(getString(R.string.new_profile_photo),
getString(R.string.remove_profile_photo)))
.items(Arrays.asList(getString(R.string.new_profile_photo), getString(R.string.remove_profile_photo)))
.itemsCallback((dialog, itemView, position, text) -> {
switch (position) {
case 0:

View file

@ -21,13 +21,14 @@ import code.name.monkey.retromusic.cast.CastHelper;
import code.name.monkey.retromusic.helper.MusicPlayerRemote;
import code.name.monkey.retromusic.ui.fragments.MiniPlayerFragment;
import code.name.monkey.retromusic.util.PreferenceUtil;
import code.name.monkey.retromusic.views.BottomNavigationBarTinted;
public abstract class AbsSlidingMusicPanelActivity extends AbsMusicServiceActivity {
public static final String TAG = AbsSlidingMusicPanelActivity.class.getSimpleName();
@BindView(R.id.bottom_navigation)
BottomNavigationView bottomNavigationView;
BottomNavigationBarTinted bottomNavigationView;
@BindView(R.id.parentPanel)
ViewGroup parentPanel;
@ -47,7 +48,7 @@ public abstract class AbsSlidingMusicPanelActivity extends AbsMusicServiceActivi
ButterKnife.bind(this);
setLightStatusbar(true);
setLightNavigationBar(true);
setupBottomView();
//setupBottomView();
miniPlayerFragment = (MiniPlayerFragment) getSupportFragmentManager().findFragmentById(R.id.mini_player_fragment);
}

View file

@ -106,20 +106,18 @@ public abstract class AbsThemeActivity extends ATHActivity implements Runnable {
if (VersionUtils.hasKitKat()) {
final View statusBar = getWindow().getDecorView().getRootView().findViewById(R.id.status_bar);
if (statusBar != null) {
if (VersionUtils.hasLollipop()) {
if (VersionUtils.hasMarshmallow()) {
getWindow().setStatusBarColor(color);
} else if (VersionUtils.hasLollipop()) {
statusBar.setBackgroundColor(ColorUtil.darkenColor(color));
setLightStatusbarAuto(color);
} else {
statusBar.setBackgroundColor(color);
}
} else if (VersionUtils.hasMarshmallow()) {
getWindow().setStatusBarColor(color);
setLightStatusbarAuto(color);
} else if (Build.VERSION.SDK_INT >= 21) {
getWindow().setStatusBarColor(ColorUtil.darkenColor(color));
setLightStatusbarAuto(color);
}
}
setLightStatusbarAuto(color);
}
public void setStatusbarColorAuto() {

View file

@ -345,14 +345,7 @@ public abstract class AbsTagEditorActivity extends AbsBaseActivity {
}
}
@Nullable
protected String getComposer() {
try {
return getAudioFile(songPaths.get(0)).getTagOrCreateAndSetDefault().getFirst(FieldKey.COMPOSER);
} catch (Exception ignored) {
return null;
}
}
@Nullable
protected Bitmap getAlbumArt() {

View file

@ -61,9 +61,6 @@ public class SongTagEditorActivity extends AbsTagEditorActivity implements TextW
@BindView(R.id.album_artist)
EditText albumArtist;
@BindView(R.id.composer)
EditText composer;
private void setupToolbar() {
appBarLayout.setBackgroundColor(ThemeStore.primaryColor(this));
toolbar.setBackgroundColor(ThemeStore.primaryColor(this));
@ -94,7 +91,6 @@ public class SongTagEditorActivity extends AbsTagEditorActivity implements TextW
year.addTextChangedListener(this);
trackNumber.addTextChangedListener(this);
lyrics.addTextChangedListener(this);
composer.addTextChangedListener(this);
}
private void fillViewsWithFileTags() {
@ -106,7 +102,6 @@ public class SongTagEditorActivity extends AbsTagEditorActivity implements TextW
year.setText(getSongYear());
trackNumber.setText(getTrackNumber());
lyrics.setText(getLyrics());
composer.setText(getComposer());
}
@Override
@ -140,7 +135,6 @@ public class SongTagEditorActivity extends AbsTagEditorActivity implements TextW
fieldKeyValueMap.put(FieldKey.TRACK, trackNumber.getText().toString());
fieldKeyValueMap.put(FieldKey.LYRICS, lyrics.getText().toString());
fieldKeyValueMap.put(FieldKey.ALBUM_ARTIST, albumArtist.getText().toString());
fieldKeyValueMap.put(FieldKey.COMPOSER, composer.getText().toString());
writeValuesToFiles(fieldKeyValueMap, null);
}

View file

@ -1,10 +1,12 @@
package code.name.monkey.retromusic.ui.adapter;
import android.app.Activity;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import com.bumptech.glide.Glide;
@ -14,8 +16,12 @@ import java.util.List;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.recyclerview.widget.RecyclerView;
import butterknife.BindView;
import butterknife.BindViews;
import butterknife.ButterKnife;
import code.name.monkey.appthemehelper.ThemeStore;
import code.name.monkey.appthemehelper.util.ColorUtil;
import code.name.monkey.appthemehelper.util.MaterialValueHelper;
import code.name.monkey.retromusic.R;
import code.name.monkey.retromusic.glide.SongGlideRequest;
import code.name.monkey.retromusic.helper.MusicPlayerRemote;
@ -39,8 +45,8 @@ public class CollageSongAdapter extends RecyclerView.Adapter<CollageSongViewHold
@Override
public void onBindViewHolder(@NonNull CollageSongViewHolder holder, int position) {
holder.bindSongs();
if (dataSet.size() > 9) {
for (int i = 0; i < dataSet.subList(0, 9).size(); i++) {
if (dataSet.size() > 8) {
for (int i = 0; i < dataSet.subList(0, 8).size(); i++) {
if (holder.imageViews != null) {
SongGlideRequest.Builder.from(Glide.with(activity), dataSet.get(i))
.checkIgnoreMediaStore(activity)
@ -59,20 +65,25 @@ public class CollageSongAdapter extends RecyclerView.Adapter<CollageSongViewHold
@NonNull
@Override
public CollageSongViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
return new CollageSongViewHolder(
LayoutInflater.from(activity).inflate(R.layout.item_collage, parent, false));
return new CollageSongViewHolder(LayoutInflater.from(activity).inflate(R.layout.item_collage, parent, false));
}
class CollageSongViewHolder extends MediaEntryViewHolder {
@BindViews({R.id.image_1, R.id.image_2, R.id.image_3, R.id.image_4, R.id.image_5, R.id.image_6,
@BindViews({R.id.image_2, R.id.image_3, R.id.image_4, R.id.image_5, R.id.image_6,
R.id.image_7, R.id.image_8, R.id.image_9})
@Nullable
List<ImageView> imageViews;
@BindView(R.id.image_1)
TextView view;
CollageSongViewHolder(View itemView) {
super(itemView);
ButterKnife.bind(this, itemView);
Context context = itemView.getContext();
int color = ThemeStore.accentColor(context);
view.setBackgroundColor(color);
view.setTextColor(MaterialValueHelper.getPrimaryTextColor(context, ColorUtil.isColorLight(color)));
}
void bindSongs() {

View file

@ -1,5 +1,6 @@
package code.name.monkey.retromusic.ui.adapter.album;
import android.content.res.ColorStateList;
import android.graphics.drawable.Drawable;
import android.view.LayoutInflater;
import android.view.MenuItem;
@ -60,10 +61,6 @@ public class AlbumAdapter extends AbsMultiSelectAdapter<AlbumAdapter.ViewHolder,
}
public AlbumAdapter(@NonNull AppCompatActivity activity, ArrayList<Album> dataSet,
@LayoutRes int itemLayoutRes) {
this(activity, dataSet, itemLayoutRes, false, null);
}
public void useItemLayout(int itemLayoutRes) {
this.itemLayoutRes = itemLayoutRes;
@ -142,6 +139,9 @@ public class AlbumAdapter extends AbsMultiSelectAdapter<AlbumAdapter.ViewHolder,
holder.text.setTextColor(MaterialValueHelper.getSecondaryTextColor(activity, ColorUtil.isColorLight(color)));
}
}
if (holder.mask != null) {
holder.mask.setBackgroundTintList(ColorStateList.valueOf(color));
}
}
protected void loadAlbumCover(Album album, final ViewHolder holder) {
@ -235,7 +235,6 @@ public class AlbumAdapter extends AbsMultiSelectAdapter<AlbumAdapter.ViewHolder,
if (isInQuickSelectMode()) {
toggleChecked(getAdapterPosition());
} else {
Pair[] albumPairs = new Pair[]{Pair.create(image, activity.getResources().getString(R.string.transition_album_art))};
NavigationUtil.goToAlbum(activity, dataSet.get(getAdapterPosition()).getId(), albumPairs);
}

View file

@ -1,10 +1,6 @@
package code.name.monkey.retromusic.ui.adapter.artist;
import androidx.annotation.LayoutRes;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.core.util.Pair;
import androidx.appcompat.app.AppCompatActivity;
import android.content.res.ColorStateList;
import android.view.LayoutInflater;
import android.view.MenuItem;
import android.view.View;
@ -16,6 +12,11 @@ import com.simplecityapps.recyclerview_fastscroll.views.FastScrollRecyclerView;
import java.util.ArrayList;
import java.util.List;
import androidx.annotation.LayoutRes;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.util.Pair;
import code.name.monkey.appthemehelper.util.ColorUtil;
import code.name.monkey.appthemehelper.util.MaterialValueHelper;
import code.name.monkey.retromusic.R;
@ -115,6 +116,9 @@ public class ArtistAdapter extends AbsMultiSelectAdapter<ArtistAdapter.ViewHolde
MaterialValueHelper.getPrimaryTextColor(activity, ColorUtil.isColorLight(color)));
}
}
if (holder.mask != null) {
holder.mask.setBackgroundTintList(ColorStateList.valueOf(color));
}
}
private void loadArtistImage(Artist artist, final ViewHolder holder) {

View file

@ -1,16 +1,16 @@
package code.name.monkey.retromusic.ui.adapter.base;
import android.os.Build;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.cardview.widget.CardView;
import androidx.recyclerview.widget.RecyclerView;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.cardview.widget.CardView;
import androidx.recyclerview.widget.RecyclerView;
import butterknife.BindView;
import butterknife.ButterKnife;
import code.name.monkey.appthemehelper.ThemeStore;
@ -61,6 +61,9 @@ public class MediaEntryViewHolder extends RecyclerView.ViewHolder implements Vie
@BindView(R.id.play_songs)
@Nullable
public ImageButton playSongs;
@BindView(R.id.mask)
@Nullable
public View mask;
@BindView(R.id.image_text_container)
@Nullable
public CardView imageTextContainer;

View file

@ -13,6 +13,7 @@ import com.h6ah4i.android.widget.advrecyclerview.draggable.annotation.DraggableI
import java.util.ArrayList;
import androidx.annotation.ColorInt;
import androidx.annotation.LayoutRes;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
@ -30,6 +31,7 @@ public class PlayingQueueAdapter extends SongAdapter implements DraggableItemAda
private static final int UP_NEXT = 2;
private int current;
private int color = -1;
public PlayingQueueAdapter(AppCompatActivity activity, ArrayList<Song> dataSet, int current,
@LayoutRes int itemLayoutRes) {
@ -37,6 +39,13 @@ public class PlayingQueueAdapter extends SongAdapter implements DraggableItemAda
this.current = current;
}
public PlayingQueueAdapter(AppCompatActivity activity, ArrayList<Song> dataSet, int current,
@LayoutRes int itemLayoutRes, @ColorInt int color) {
super(activity, dataSet, itemLayoutRes, false, null);
this.current = current;
this.color = color;
}
@Override
protected SongAdapter.ViewHolder createViewHolder(View view) {
return new ViewHolder(view);
@ -63,6 +72,9 @@ public class PlayingQueueAdapter extends SongAdapter implements DraggableItemAda
if (holder.title != null) {
holder.title.setTextColor(white);
if (color != -1) {
holder.title.setTextColor(color);
}
}
if (holder.text != null) {
holder.text.setTextColor(white);

View file

@ -211,9 +211,7 @@ public class SongAdapter extends AbsMultiSelectAdapter<SongAdapter.ViewHolder, S
break;
case SortOrder.SongSortOrder.SONG_YEAR:
return MusicUtil.getYearString(dataSet.get(position).year);
case SortOrder.SongSortOrder.COMPOSER:
sectionName = dataSet.get(position).composer;
break;
}
return MusicUtil.getSectionName(sectionName);

View file

@ -80,14 +80,14 @@ public class MiniPlayerFragment extends AbsMusicServiceFragment implements Music
//noinspection ConstantConditions
view.setBackgroundColor(ThemeStore.primaryColor(getContext()));
view.setOnTouchListener(new FlingPlayBackController(getActivity()));
view.setOnClickListener(v -> NavigationUtil.gotoNowPlayingActivity(getContext(), Pair.create(v, getString(R.string.transition_mini_player))));
view.setOnClickListener(v -> NavigationUtil.gotoNowPlayingActivity(getContext()));
setUpMiniPlayer();
if (RetroUtil.isTablet(getResources())) {
if (RetroUtil.isTablet()) {
next.setVisibility(View.VISIBLE);
previous.setVisibility(View.VISIBLE);
playingQueue.setVisibility(View.VISIBLE);
} else {
} else{
next.setVisibility(PreferenceUtil.getInstance().isExtraMiniExtraControls() ? View.VISIBLE : View.GONE);
playingQueue.setVisibility(PreferenceUtil.getInstance().isExtraMiniExtraControls() ? View.GONE : View.VISIBLE);
previous.setVisibility(PreferenceUtil.getInstance().isExtraMiniExtraControls() ? View.VISIBLE : View.GONE);

View file

@ -162,7 +162,7 @@ public abstract class AbsLibraryPagerRecyclerViewCustomGridSizeFragment<A extend
}
protected final boolean isLandscape() {
return RetroUtil.isLandscape(getResources());
return RetroUtil.isLandscape( );
}

View file

@ -30,8 +30,6 @@ public abstract class AbsMainActivityFragment extends AbsMusicServiceFragment {
getMainActivity().setBottomBarVisibility(View.VISIBLE);
}
// WORKAROUND
private void setStatusbarColor(View view, int color) {
final View statusBar = view.findViewById(R.id.status_bar);
if (statusBar != null) {

View file

@ -210,7 +210,7 @@ public class LibraryFragment extends AbsMainActivityFragment implements CabHolde
AbsLibraryPagerRecyclerViewCustomGridSizeFragment fragment = (AbsLibraryPagerRecyclerViewCustomGridSizeFragment) currentFragment;
MenuItem gridSizeItem = menu.findItem(R.id.action_grid_size);
if (RetroUtil.isLandscape(getResources())) {
if (RetroUtil.isLandscape()) {
gridSizeItem.setTitle(R.string.action_grid_size_land);
}
setUpGridSizeMenu(fragment, gridSizeItem.getSubMenu());
@ -272,8 +272,7 @@ public class LibraryFragment extends AbsMainActivityFragment implements CabHolde
.setChecked(currentSortOrder.equals(SortOrder.SongSortOrder.SONG_YEAR));
sortOrderMenu.add(0, R.id.action_song_sort_order_date, 4, R.string.sort_order_date)
.setChecked(currentSortOrder.equals(SortOrder.SongSortOrder.SONG_DATE));
sortOrderMenu.add(0, R.id.action_song_sort_composer, 4, R.string.composer)
.setChecked(currentSortOrder.equals(SortOrder.SongSortOrder.COMPOSER));
}
sortOrderMenu.setGroupCheckable(0, true, true);
@ -327,9 +326,7 @@ public class LibraryFragment extends AbsMainActivityFragment implements CabHolde
case R.id.action_song_sort_order_date:
sortOrder = SortOrder.SongSortOrder.SONG_DATE;
break;
case R.id.action_song_sort_composer:
sortOrder = SortOrder.SongSortOrder.COMPOSER;
break;
}
}

View file

@ -59,6 +59,7 @@ import code.name.monkey.retromusic.ui.fragments.base.AbsMainActivityFragment;
import code.name.monkey.retromusic.util.Compressor;
import code.name.monkey.retromusic.util.NavigationUtil;
import code.name.monkey.retromusic.util.PreferenceUtil;
import code.name.monkey.retromusic.util.RetroUtil;
import code.name.monkey.retromusic.views.CircularImageView;
import code.name.monkey.retromusic.views.MetalRecyclerViewPager;
import io.reactivex.android.schedulers.AndroidSchedulers;
@ -223,6 +224,7 @@ public class BannerHomeFragment extends AbsMainActivityFragment implements MainA
View view = inflater.inflate(PreferenceUtil.getInstance().toggleHomeBanner() ? R.layout.fragment_banner_home : R.layout.fragment_home,
container, false);
unbinder = ButterKnife.bind(this, view);
setStatusbarColorAuto(view);
return view;
}
@ -330,7 +332,7 @@ public class BannerHomeFragment extends AbsMainActivityFragment implements MainA
if (!songs.isEmpty()) {
suggestionsContainer.setVisibility(View.VISIBLE);
CollageSongAdapter artistAdapter = new CollageSongAdapter(getMainActivity(), songs);
suggestionsSongs.setLayoutManager(new LinearLayoutManager(getMainActivity()));
suggestionsSongs.setLayoutManager(RetroUtil.isTablet() ? new GridLayoutManager(getMainActivity(), 2) : new LinearLayoutManager(getMainActivity()));
suggestionsSongs.setAdapter(artistAdapter);
}
}

View file

@ -226,7 +226,7 @@ public class BlurPlayerFragment extends AbsPlayerFragment implements PlayerAlbum
(AppCompatActivity) getActivity(),
MusicPlayerRemote.getPlayingQueue(),
MusicPlayerRemote.getPosition(),
R.layout.item_song);
R.layout.item_song, Color.WHITE);
layoutManager = new LinearLayoutManager(getContext());
recyclerView.setLayoutManager(layoutManager);

View file

@ -138,7 +138,6 @@ public class PlayerFragment extends AbsPlayerFragment implements PlayerAlbumCove
unbinder = ButterKnife.bind(this, view);
if (getPlayerActivity() != null) {
getPlayerActivity().setDrawUnderNavigationBar();
//getPlayerActivity().setNavigationbarColorAuto();
addSafeArea(view);
}
return view;

View file

@ -102,22 +102,6 @@ public class ThemeSettingsFragment extends AbsSettingsFragment {
return true;
});
TwoStatePreference colorNavBar = (TwoStatePreference) findPreference(
"should_color_navigation_bar");
if (!VersionUtils.hasLollipop()) {
colorNavBar.setEnabled(false);
colorNavBar.setSummary(R.string.pref_only_lollipop);
} else {
colorNavBar.setChecked(ThemeStore.coloredNavigationBar(getActivity()));
colorNavBar.setOnPreferenceChangeListener((preference, newValue) -> {
ThemeStore.editTheme(getActivity())
.coloredNavigationBar((Boolean) newValue)
.commit();
getActivity().recreate();
return true;
});
}
TwoStatePreference colorAppShortcuts = (TwoStatePreference) findPreference(
"should_color_app_shortcuts");
if (!VersionUtils.hasNougatMR()) {