v2.0.00
This commit is contained in:
parent
a8dfe106bb
commit
3d7ba2afc6
193 changed files with 3667 additions and 2662 deletions
|
@ -32,6 +32,7 @@ import androidx.fragment.app.FragmentTransaction;
|
|||
import butterknife.BindView;
|
||||
import butterknife.ButterKnife;
|
||||
import code.name.monkey.retromusic.R;
|
||||
import code.name.monkey.retromusic.RetroApplication;
|
||||
import code.name.monkey.retromusic.dialogs.ChangelogDialog;
|
||||
import code.name.monkey.retromusic.helper.MusicPlayerRemote;
|
||||
import code.name.monkey.retromusic.helper.SearchQueryHelper;
|
||||
|
@ -43,7 +44,6 @@ import code.name.monkey.retromusic.model.Song;
|
|||
import code.name.monkey.retromusic.service.MusicService;
|
||||
import code.name.monkey.retromusic.ui.activities.base.AbsSlidingMusicPanelActivity;
|
||||
import code.name.monkey.retromusic.ui.fragments.mainactivity.LibraryFragment;
|
||||
import code.name.monkey.retromusic.ui.fragments.mainactivity.folders.FoldersFragment;
|
||||
import code.name.monkey.retromusic.ui.fragments.mainactivity.home.BannerHomeFragment;
|
||||
import code.name.monkey.retromusic.ui.fragments.mainactivity.home.HomeFragment;
|
||||
import code.name.monkey.retromusic.util.PreferenceUtil;
|
||||
|
@ -82,7 +82,6 @@ public class MainActivity extends AbsSlidingMusicPanelActivity implements Shared
|
|||
}
|
||||
}
|
||||
};
|
||||
private int insideFragment = R.id.action_song;
|
||||
|
||||
@Override
|
||||
protected View createContentView() {
|
||||
|
@ -99,17 +98,20 @@ public class MainActivity extends AbsSlidingMusicPanelActivity implements Shared
|
|||
super.onCreate(savedInstanceState);
|
||||
ButterKnife.bind(this);
|
||||
|
||||
setBottomBarVisibility(View.VISIBLE);
|
||||
getBottomNavigationView().setOnNavigationItemSelectedListener(this);
|
||||
|
||||
drawerLayout.setOnApplyWindowInsetsListener((view, windowInsets) -> windowInsets.replaceSystemWindowInsets(0, 0, 0, 0));
|
||||
|
||||
if (savedInstanceState == null) {
|
||||
setCurrentFragment(PreferenceUtil.getInstance(this).getLastMusicChooser());
|
||||
selectedFragment(PreferenceUtil.getInstance(this).getLastPage());
|
||||
} else {
|
||||
restoreCurrentFragment();
|
||||
}
|
||||
checkShowChangelog();
|
||||
|
||||
if (!RetroApplication.isProVersion() && !PreferenceManager.getDefaultSharedPreferences(this).getBoolean("shown", false)) {
|
||||
showPromotionalOffer();
|
||||
}
|
||||
}
|
||||
|
||||
private void checkShowChangelog() {
|
||||
|
@ -153,7 +155,7 @@ public class MainActivity extends AbsSlidingMusicPanelActivity implements Shared
|
|||
PreferenceUtil.getInstance(this).unregisterOnSharedPreferenceChangedListener(this);
|
||||
}
|
||||
|
||||
public void setCurrentFragment(@Nullable Fragment fragment, boolean isStackAdd, String tag) {
|
||||
public void setCurrentFragment(@NonNull Fragment fragment, boolean isStackAdd, String tag) {
|
||||
|
||||
FragmentManager fragmentManager = getSupportFragmentManager();
|
||||
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
|
||||
|
@ -179,8 +181,7 @@ public class MainActivity extends AbsSlidingMusicPanelActivity implements Shared
|
|||
String mimeType = intent.getType();
|
||||
boolean handled = false;
|
||||
|
||||
if (intent.getAction() != null && intent.getAction()
|
||||
.equals(MediaStore.INTENT_ACTION_MEDIA_PLAY_FROM_SEARCH)) {
|
||||
if (intent.getAction() != null && intent.getAction().equals(MediaStore.INTENT_ACTION_MEDIA_PLAY_FROM_SEARCH)) {
|
||||
final ArrayList<Song> songs = SearchQueryHelper.getSongs(this, intent.getExtras());
|
||||
|
||||
if (MusicPlayerRemote.getShuffleMode() == MusicService.SHUFFLE_MODE_SHUFFLE) {
|
||||
|
@ -291,7 +292,6 @@ public class MainActivity extends AbsSlidingMusicPanelActivity implements Shared
|
|||
key.equals(PreferenceUtil.USER_NAME) ||
|
||||
key.equals(PreferenceUtil.TOGGLE_FULL_SCREEN) ||
|
||||
key.equals(PreferenceUtil.TOGGLE_VOLUME) ||
|
||||
key.equals(PreferenceUtil.TOGGLE_TAB_TITLES) ||
|
||||
key.equals(PreferenceUtil.ROUND_CORNERS) ||
|
||||
key.equals(PreferenceUtil.CAROUSEL_EFFECT) ||
|
||||
key.equals(PreferenceUtil.NOW_PLAYING_SCREEN_ID) ||
|
||||
|
@ -305,7 +305,10 @@ public class MainActivity extends AbsSlidingMusicPanelActivity implements Shared
|
|||
key.equals(PreferenceUtil.ARTIST_GRID_STYLE) ||
|
||||
key.equals(PreferenceUtil.TOGGLE_HOME_BANNER) ||
|
||||
key.equals(PreferenceUtil.TOGGLE_ADD_CONTROLS) ||
|
||||
key.equals(PreferenceUtil.ALBUM_COVER_STYLE)) postRecreate();
|
||||
key.equals(PreferenceUtil.ALBUM_COVER_STYLE) ||
|
||||
key.equals(PreferenceUtil.HOME_ARTIST_GRID_STYLE) ||
|
||||
key.equals(PreferenceUtil.ALBUM_COVER_TRANSFORM) ||
|
||||
key.equals(PreferenceUtil.TAB_TEXT_MODE)) postRecreate();
|
||||
}
|
||||
|
||||
private void showPromotionalOffer() {
|
||||
|
@ -332,42 +335,18 @@ public class MainActivity extends AbsSlidingMusicPanelActivity implements Shared
|
|||
}
|
||||
|
||||
private void selectedFragment(int itemId) {
|
||||
insideFragment = itemId;
|
||||
switch (itemId) {
|
||||
case R.id.action_album:
|
||||
setCurrentFragment(LIBRARY);
|
||||
break;
|
||||
case R.id.action_artist:
|
||||
setCurrentFragment(LIBRARY);
|
||||
break;
|
||||
case R.id.action_playlist:
|
||||
setCurrentFragment(LIBRARY);
|
||||
break;
|
||||
case R.id.action_song:
|
||||
setCurrentFragment(LIBRARY);
|
||||
setCurrentFragment(LibraryFragment.newInstance(itemId), false, LibraryFragment.TAG);
|
||||
break;
|
||||
default:
|
||||
case R.id.action_home:
|
||||
setCurrentFragment(HOME);
|
||||
break;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public void setCurrentFragment(int key) {
|
||||
PreferenceUtil.getInstance(this).setLastMusicChooser(key);
|
||||
switch (key) {
|
||||
case LIBRARY:
|
||||
setCurrentFragment(LibraryFragment.newInstance(insideFragment), false, LibraryFragment.TAG);
|
||||
break;
|
||||
case FOLDERS:
|
||||
setCurrentFragment(FoldersFragment.newInstance(this), false, FoldersFragment.TAG);
|
||||
break;
|
||||
case HOME:
|
||||
setCurrentFragment(PreferenceUtil.getInstance(this).toggleHomeBanner() ? HomeFragment.newInstance() :
|
||||
BannerHomeFragment.newInstance(), false, HomeFragment.TAG);
|
||||
break;
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,23 +1,25 @@
|
|||
package code.name.monkey.retromusic.ui.activities;
|
||||
|
||||
import android.content.SharedPreferences;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import androidx.annotation.ColorInt;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.annotation.StringRes;
|
||||
import com.google.android.material.appbar.AppBarLayout;
|
||||
import androidx.transition.TransitionManager;
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.fragment.app.FragmentManager;
|
||||
import androidx.fragment.app.FragmentTransaction;
|
||||
import androidx.appcompat.widget.Toolbar;
|
||||
import android.util.Log;
|
||||
import android.view.MenuItem;
|
||||
import android.widget.FrameLayout;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.afollestad.materialdialogs.color.ColorChooserDialog;
|
||||
import com.google.android.material.appbar.AppBarLayout;
|
||||
|
||||
import androidx.annotation.ColorInt;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.annotation.StringRes;
|
||||
import androidx.appcompat.widget.Toolbar;
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.fragment.app.FragmentManager;
|
||||
import androidx.fragment.app.FragmentTransaction;
|
||||
import androidx.transition.TransitionManager;
|
||||
import butterknife.BindView;
|
||||
import butterknife.ButterKnife;
|
||||
import code.name.monkey.appthemehelper.ThemeStore;
|
||||
|
@ -28,7 +30,7 @@ import code.name.monkey.retromusic.ui.activities.base.AbsBaseActivity;
|
|||
import code.name.monkey.retromusic.ui.fragments.settings.MainSettingsFragment;
|
||||
import code.name.monkey.retromusic.util.PreferenceUtil;
|
||||
|
||||
public class SettingsActivity extends AbsBaseActivity implements ColorChooserDialog.ColorCallback {
|
||||
public class SettingsActivity extends AbsBaseActivity implements ColorChooserDialog.ColorCallback, SharedPreferences.OnSharedPreferenceChangeListener {
|
||||
|
||||
@BindView(R.id.toolbar)
|
||||
Toolbar toolbar;
|
||||
|
@ -102,8 +104,9 @@ public class SettingsActivity extends AbsBaseActivity implements ColorChooserDia
|
|||
|
||||
|
||||
public void setupFragment(Fragment fragment, @StringRes int titleName) {
|
||||
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction()
|
||||
.setCustomAnimations(R.animator.slide_up, 0, 0, R.animator.slide_down);
|
||||
FragmentTransaction fragmentTransaction = fragmentManager
|
||||
.beginTransaction()
|
||||
.setCustomAnimations(R.anim.sliding_in_left, R.anim.sliding_out_right, android.R.anim.slide_in_left, android.R.anim.slide_out_right);
|
||||
|
||||
title.setText(titleName);
|
||||
|
||||
|
@ -115,8 +118,6 @@ public class SettingsActivity extends AbsBaseActivity implements ColorChooserDia
|
|||
fragmentTransaction.replace(R.id.detail_content_frame, fragment, fragment.getTag());
|
||||
fragmentTransaction.commit();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
@ -143,4 +144,26 @@ public class SettingsActivity extends AbsBaseActivity implements ColorChooserDia
|
|||
TransitionManager.beginDelayedTransition(appBarLayout);
|
||||
appBarLayout.setElevation(v);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void onPause() {
|
||||
super.onPause();
|
||||
PreferenceUtil.getInstance(this).unregisterOnSharedPreferenceChangedListener(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onResume() {
|
||||
super.onResume();
|
||||
PreferenceUtil.getInstance(this).registerOnSharedPreferenceChangedListener(this);
|
||||
}
|
||||
|
||||
private static final String TAG = "SettingsActivity";
|
||||
@Override
|
||||
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
|
||||
Log.i(TAG, "onSharedPreferenceChanged: ");
|
||||
if (key.equals(PreferenceUtil.PROFILE_IMAGE_PATH)) {
|
||||
recreate();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -37,7 +37,6 @@ import code.name.monkey.retromusic.util.Compressor;
|
|||
import code.name.monkey.retromusic.util.ImageUtil;
|
||||
import code.name.monkey.retromusic.util.PreferenceUtil;
|
||||
import code.name.monkey.retromusic.views.CircularImageView;
|
||||
import code.name.monkey.retromusic.views.IconImageView;
|
||||
import io.reactivex.android.schedulers.AndroidSchedulers;
|
||||
import io.reactivex.disposables.CompositeDisposable;
|
||||
import io.reactivex.schedulers.Schedulers;
|
||||
|
@ -63,12 +62,9 @@ public class UserInfoActivity extends AbsBaseActivity {
|
|||
@BindView(R.id.user_image)
|
||||
CircularImageView userImage;
|
||||
|
||||
@BindView(R.id.image)
|
||||
@BindView(R.id.banner_image)
|
||||
ImageView image;
|
||||
|
||||
@BindView(R.id.banner_select)
|
||||
IconImageView imageView;
|
||||
|
||||
@BindView(R.id.next)
|
||||
FloatingActionButton nextButton;
|
||||
|
||||
|
@ -171,11 +167,10 @@ public class UserInfoActivity extends AbsBaseActivity {
|
|||
} else {
|
||||
PreferenceUtil.getInstance(this).setBannerImagePath("");
|
||||
image.setImageResource(android.R.color.transparent);
|
||||
imageView.setImageResource(R.drawable.ic_edit_white_24dp);
|
||||
}
|
||||
}
|
||||
|
||||
@OnClick(R.id.image)
|
||||
@OnClick(R.id.user_image)
|
||||
public void onViewClicked() {
|
||||
//noinspection ConstantConditions
|
||||
new MaterialDialog.Builder(this)
|
||||
|
|
|
@ -2,9 +2,7 @@ package code.name.monkey.retromusic.ui.activities.base;
|
|||
|
||||
import android.os.Bundle;
|
||||
import android.util.Log;
|
||||
import android.view.Menu;
|
||||
|
||||
import com.google.android.gms.cast.framework.CastButtonFactory;
|
||||
import com.google.android.gms.cast.framework.CastContext;
|
||||
import com.google.android.gms.cast.framework.CastSession;
|
||||
import com.google.android.gms.cast.framework.SessionManagerListener;
|
||||
|
@ -13,7 +11,6 @@ import com.google.android.gms.common.GoogleApiAvailability;
|
|||
|
||||
import java.io.IOException;
|
||||
|
||||
import code.name.monkey.retromusic.R;
|
||||
import code.name.monkey.retromusic.cast.WebServer;
|
||||
|
||||
public abstract class AbsCastActivity extends AbsBaseActivity {
|
||||
|
@ -134,14 +131,14 @@ public abstract class AbsCastActivity extends AbsBaseActivity {
|
|||
castSession = castContext.getSessionManager().getCurrentCastSession();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCreateOptionsMenu(Menu menu) {
|
||||
getMenuInflater().inflate(R.menu.menu_cast, menu);
|
||||
if (playServicesAvailable) {
|
||||
CastButtonFactory.setUpMediaRouteButton(getApplicationContext(), menu, R.id.media_route_menu_item);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
/* @Override
|
||||
public boolean onCreateOptionsMenu(Menu menu) {
|
||||
getMenuInflater().inflate(R.menu.menu_cast, menu);
|
||||
if (playServicesAvailable) {
|
||||
CastButtonFactory.setUpMediaRouteButton(getApplicationContext(), menu, R.id.media_route_menu_item);
|
||||
}
|
||||
return true;
|
||||
}*/
|
||||
|
||||
public void showCastMiniController() {
|
||||
//implement by overriding in activities
|
||||
|
|
|
@ -10,7 +10,6 @@ import android.view.animation.PathInterpolator;
|
|||
|
||||
import com.google.android.gms.cast.framework.CastSession;
|
||||
import com.google.android.material.bottomnavigation.BottomNavigationView;
|
||||
import com.google.android.material.bottomnavigation.LabelVisibilityMode;
|
||||
import com.sothree.slidinguppanel.SlidingUpPanelLayout;
|
||||
import com.sothree.slidinguppanel.SlidingUpPanelLayout.PanelState;
|
||||
|
||||
|
@ -167,7 +166,6 @@ public abstract class AbsSlidingMusicPanelActivity extends AbsMusicServiceActivi
|
|||
postRecreate();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDestroy() {
|
||||
super.onDestroy();
|
||||
|
@ -445,10 +443,7 @@ public abstract class AbsSlidingMusicPanelActivity extends AbsMusicServiceActivi
|
|||
int accentColor = ThemeStore.accentColor(this);
|
||||
NavigationViewUtil.setItemIconColors(bottomNavigationView, ColorUtil.withAlpha(iconColor, 0.5f), accentColor);
|
||||
NavigationViewUtil.setItemTextColors(bottomNavigationView, ColorUtil.withAlpha(iconColor, 0.5f), accentColor);
|
||||
|
||||
if (!PreferenceUtil.getInstance(this).tabTitles()) {
|
||||
bottomNavigationView.setLabelVisibilityMode(LabelVisibilityMode.LABEL_VISIBILITY_UNLABELED);
|
||||
}
|
||||
bottomNavigationView.setLabelVisibilityMode(PreferenceUtil.getInstance(this).getTabTitleMode());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -473,4 +468,6 @@ public abstract class AbsSlidingMusicPanelActivity extends AbsMusicServiceActivi
|
|||
public BottomNavigationView getBottomNavigationView() {
|
||||
return bottomNavigationView;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
|
@ -5,6 +5,9 @@ import android.annotation.SuppressLint;
|
|||
import android.content.Context;
|
||||
import android.content.res.ColorStateList;
|
||||
import android.os.Bundle;
|
||||
import android.text.SpannableString;
|
||||
import android.text.SpannableStringBuilder;
|
||||
import android.text.style.ForegroundColorSpan;
|
||||
import android.view.GestureDetector;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.MotionEvent;
|
||||
|
@ -21,11 +24,14 @@ import butterknife.ButterKnife;
|
|||
import butterknife.OnClick;
|
||||
import butterknife.Unbinder;
|
||||
import code.name.monkey.appthemehelper.ThemeStore;
|
||||
import code.name.monkey.appthemehelper.util.ColorUtil;
|
||||
import code.name.monkey.retromusic.R;
|
||||
import code.name.monkey.retromusic.helper.MusicPlayerRemote;
|
||||
import code.name.monkey.retromusic.helper.MusicProgressViewUpdateHelper;
|
||||
import code.name.monkey.retromusic.helper.PlayPauseButtonOnClickHandler;
|
||||
import code.name.monkey.retromusic.model.Song;
|
||||
import code.name.monkey.retromusic.ui.fragments.base.AbsMusicServiceFragment;
|
||||
import code.name.monkey.retromusic.util.NavigationUtil;
|
||||
import code.name.monkey.retromusic.util.PreferenceUtil;
|
||||
import code.name.monkey.retromusic.util.RetroUtil;
|
||||
import me.zhanghai.android.materialprogressbar.MaterialProgressBar;
|
||||
|
@ -44,6 +50,9 @@ public class MiniPlayerFragment extends AbsMusicServiceFragment implements Music
|
|||
@BindView(R.id.action_prev)
|
||||
View previous;
|
||||
|
||||
@BindView(R.id.action_playing_queue)
|
||||
View playingQueue;
|
||||
|
||||
@BindView(R.id.progress_bar)
|
||||
MaterialProgressBar progressBar;
|
||||
|
||||
|
@ -68,17 +77,18 @@ public class MiniPlayerFragment extends AbsMusicServiceFragment implements Music
|
|||
@Override
|
||||
public void onViewCreated(@NonNull View view, Bundle savedInstanceState) {
|
||||
super.onViewCreated(view, savedInstanceState);
|
||||
|
||||
//noinspection ConstantConditions
|
||||
view.setBackgroundColor(ThemeStore.primaryColor(getContext()));
|
||||
view.setBackgroundColor(ColorUtil.darkenColor(ThemeStore.primaryColor(getContext())));
|
||||
view.setOnTouchListener(new FlingPlayBackController(getActivity()));
|
||||
setUpMiniPlayer();
|
||||
|
||||
if (RetroUtil.isTablet(getResources())) {
|
||||
next.setVisibility(View.VISIBLE);
|
||||
previous.setVisibility(View.VISIBLE);
|
||||
playingQueue.setVisibility(View.VISIBLE);
|
||||
} else {
|
||||
next.setVisibility(PreferenceUtil.getInstance(getContext()).isExtraMiniExtraControls() ? View.VISIBLE : View.GONE);
|
||||
playingQueue.setVisibility(PreferenceUtil.getInstance(getContext()).isExtraMiniExtraControls() ? View.GONE : View.VISIBLE);
|
||||
previous.setVisibility(PreferenceUtil.getInstance(getContext()).isExtraMiniExtraControls() ? View.VISIBLE : View.GONE);
|
||||
}
|
||||
}
|
||||
|
@ -101,7 +111,22 @@ public class MiniPlayerFragment extends AbsMusicServiceFragment implements Music
|
|||
}
|
||||
|
||||
private void updateSongTitle() {
|
||||
miniPlayerTitle.setText(MusicPlayerRemote.getCurrentSong().title);
|
||||
SpannableStringBuilder builder = new SpannableStringBuilder();
|
||||
|
||||
Song song = MusicPlayerRemote.getCurrentSong();
|
||||
if (song == null) {
|
||||
return;
|
||||
}
|
||||
SpannableString title = new SpannableString(song.title);
|
||||
title.setSpan(new ForegroundColorSpan(ThemeStore.textColorPrimary(getContext())), 0, title.length(), 0);
|
||||
|
||||
SpannableString text = new SpannableString(song.artistName);
|
||||
text.setSpan(new ForegroundColorSpan(ThemeStore.textColorSecondary(getContext())), 0, text.length(), 0);
|
||||
|
||||
builder.append(title).append(" • ").append(text);
|
||||
|
||||
miniPlayerTitle.setSelected(true);
|
||||
miniPlayerTitle.setText(builder);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -154,9 +179,12 @@ public class MiniPlayerFragment extends AbsMusicServiceFragment implements Music
|
|||
getView().setBackgroundColor(playerFragmentColor);
|
||||
}
|
||||
|
||||
@OnClick({R.id.action_prev, R.id.action_next})
|
||||
@OnClick({R.id.action_prev, R.id.action_playing_queue, R.id.action_next})
|
||||
void onClicks(View view) {
|
||||
switch (view.getId()) {
|
||||
case R.id.action_playing_queue:
|
||||
NavigationUtil.goToPlayingQueue(getActivity());
|
||||
break;
|
||||
case R.id.action_next:
|
||||
MusicPlayerRemote.playNextSong();
|
||||
break;
|
||||
|
|
|
@ -4,17 +4,18 @@ import android.content.Context;
|
|||
import android.content.res.ColorStateList;
|
||||
import android.graphics.Color;
|
||||
import android.graphics.PorterDuff;
|
||||
import android.graphics.drawable.ColorDrawable;
|
||||
import android.media.AudioManager;
|
||||
import android.os.Bundle;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.fragment.app.Fragment;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.SeekBar;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.fragment.app.Fragment;
|
||||
import butterknife.BindView;
|
||||
import butterknife.ButterKnife;
|
||||
import butterknife.OnClick;
|
||||
|
@ -155,4 +156,8 @@ public class VolumeFragment extends Fragment implements SeekBar.OnSeekBarChangeL
|
|||
public void setTintable(int color) {
|
||||
setProgressBarColor(color);
|
||||
}
|
||||
|
||||
public void removeThumb() {
|
||||
volumeSeekbar.setThumb(null);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -21,11 +21,12 @@ public abstract class AbsMainActivityFragment extends AbsMusicServiceFragment {
|
|||
public void onActivityCreated(Bundle savedInstanceState) {
|
||||
super.onActivityCreated(savedInstanceState);
|
||||
setHasOptionsMenu(true);
|
||||
//getMainActivity().setStatusbarColorAuto();
|
||||
|
||||
getMainActivity().setNavigationbarColorAuto();
|
||||
getMainActivity().setLightNavigationBar(true);
|
||||
getMainActivity().setTaskDescriptionColorAuto();
|
||||
getMainActivity().hideStatusBar();
|
||||
getMainActivity().setBottomBarVisibility(View.VISIBLE);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -42,7 +42,6 @@ import code.name.monkey.retromusic.ui.activities.SettingsActivity;
|
|||
import code.name.monkey.retromusic.ui.fragments.base.AbsLibraryPagerRecyclerViewCustomGridSizeFragment;
|
||||
import code.name.monkey.retromusic.ui.fragments.base.AbsMainActivityFragment;
|
||||
import code.name.monkey.retromusic.util.NavigationUtil;
|
||||
import code.name.monkey.retromusic.util.PreferenceUtil;
|
||||
import code.name.monkey.retromusic.util.RetroColorUtil;
|
||||
import code.name.monkey.retromusic.util.RetroUtil;
|
||||
|
||||
|
@ -150,7 +149,7 @@ public class LibraryFragment extends AbsMainActivityFragment implements CabHolde
|
|||
getMainActivity().setLightStatusbar(!ATHUtil.isWindowBackgroundDark(getContext())));
|
||||
getMainActivity().setTitle(null);
|
||||
getMainActivity().setSupportActionBar(toolbar);
|
||||
toolbar.setNavigationOnClickListener(v -> showMainMenu( ));
|
||||
toolbar.setNavigationOnClickListener(v -> showMainMenu());
|
||||
}
|
||||
|
||||
private Fragment getCurrentFragment() {
|
||||
|
|
|
@ -200,6 +200,7 @@ public class FoldersFragment extends AbsMainActivityFragment implements
|
|||
public void onActivityCreated(Bundle savedInstanceState) {
|
||||
super.onActivityCreated(savedInstanceState);
|
||||
getMainActivity().setBottomBarVisibility(View.GONE);
|
||||
|
||||
if (savedInstanceState == null) {
|
||||
//noinspection ConstantConditions
|
||||
setCrumb(new BreadCrumbLayout.Crumb(
|
||||
|
|
|
@ -10,6 +10,7 @@ import android.view.LayoutInflater;
|
|||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.bumptech.glide.Glide;
|
||||
|
@ -27,6 +28,7 @@ import androidx.annotation.Nullable;
|
|||
import androidx.appcompat.widget.Toolbar;
|
||||
import androidx.core.content.ContextCompat;
|
||||
import androidx.recyclerview.widget.GridLayoutManager;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
import butterknife.BindView;
|
||||
import butterknife.ButterKnife;
|
||||
|
@ -49,6 +51,7 @@ import code.name.monkey.retromusic.model.smartplaylist.LastAddedPlaylist;
|
|||
import code.name.monkey.retromusic.model.smartplaylist.MyTopTracksPlaylist;
|
||||
import code.name.monkey.retromusic.mvp.contract.HomeContract;
|
||||
import code.name.monkey.retromusic.mvp.presenter.HomePresenter;
|
||||
import code.name.monkey.retromusic.ui.adapter.GenreAdapter;
|
||||
import code.name.monkey.retromusic.ui.adapter.album.AlbumFullWithAdapter;
|
||||
import code.name.monkey.retromusic.ui.adapter.artist.ArtistAdapter;
|
||||
import code.name.monkey.retromusic.ui.fragments.base.AbsMainActivityFragment;
|
||||
|
@ -108,6 +111,12 @@ public class BannerHomeFragment extends AbsMainActivityFragment implements MainA
|
|||
@BindView(R.id.top_albums_container)
|
||||
View topAlbumContainer;
|
||||
|
||||
@BindView(R.id.genres)
|
||||
RecyclerView genresRecyclerView;
|
||||
|
||||
@BindView(R.id.genre_container)
|
||||
LinearLayout genreContainer;
|
||||
|
||||
@BindView(R.id.container)
|
||||
View container;
|
||||
|
||||
|
@ -290,7 +299,7 @@ public class BannerHomeFragment extends AbsMainActivityFragment implements MainA
|
|||
recentArtistRV.setLayoutManager(new GridLayoutManager(getMainActivity(),
|
||||
1, GridLayoutManager.HORIZONTAL, false));
|
||||
ArtistAdapter artistAdapter = new ArtistAdapter(getMainActivity(), artists,
|
||||
R.layout.item_artist, false, null);
|
||||
PreferenceUtil.getInstance(getContext()).getHomeGridStyle(getContext()), false, null);
|
||||
recentArtistRV.setAdapter(artistAdapter);
|
||||
}
|
||||
|
||||
|
@ -309,7 +318,7 @@ public class BannerHomeFragment extends AbsMainActivityFragment implements MainA
|
|||
topArtistRV.setLayoutManager(new GridLayoutManager(getMainActivity(),
|
||||
1, GridLayoutManager.HORIZONTAL, false));
|
||||
ArtistAdapter artistAdapter = new ArtistAdapter(getMainActivity(), artists,
|
||||
R.layout.item_artist, false, null);
|
||||
PreferenceUtil.getInstance(getContext()).getHomeGridStyle(getContext()), false, null);
|
||||
topArtistRV.setAdapter(artistAdapter);
|
||||
|
||||
}
|
||||
|
@ -339,9 +348,13 @@ public class BannerHomeFragment extends AbsMainActivityFragment implements MainA
|
|||
|
||||
@Override
|
||||
public void geners(ArrayList<Genre> genres) {
|
||||
genreContainer.setVisibility(View.VISIBLE);
|
||||
genresRecyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
|
||||
//noinspection ConstantConditions
|
||||
GenreAdapter genreAdapter = new GenreAdapter(getActivity(), genres, R.layout.item_list);
|
||||
genresRecyclerView.setAdapter(genreAdapter);
|
||||
}
|
||||
|
||||
|
||||
@OnClick({R.id.last_added, R.id.top_played, R.id.action_shuffle, R.id.history,
|
||||
R.id.user_image, R.id.search})
|
||||
void startUserInfo(View view) {
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
package code.name.monkey.retromusic.ui.fragments.mainactivity.home;
|
||||
|
||||
import android.animation.AnimatorSet;
|
||||
import android.animation.ObjectAnimator;
|
||||
import android.app.Activity;
|
||||
import android.content.res.ColorStateList;
|
||||
import android.graphics.Bitmap;
|
||||
import android.os.Bundle;
|
||||
import android.util.DisplayMetrics;
|
||||
|
@ -10,8 +10,8 @@ import android.view.Display;
|
|||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.view.animation.AccelerateInterpolator;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.google.android.material.appbar.AppBarLayout;
|
||||
|
@ -25,6 +25,7 @@ import androidx.appcompat.widget.Toolbar;
|
|||
import androidx.core.content.ContextCompat;
|
||||
import androidx.core.widget.NestedScrollView;
|
||||
import androidx.recyclerview.widget.GridLayoutManager;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
import butterknife.BindView;
|
||||
import butterknife.ButterKnife;
|
||||
|
@ -46,6 +47,7 @@ import code.name.monkey.retromusic.model.smartplaylist.LastAddedPlaylist;
|
|||
import code.name.monkey.retromusic.model.smartplaylist.MyTopTracksPlaylist;
|
||||
import code.name.monkey.retromusic.mvp.contract.HomeContract;
|
||||
import code.name.monkey.retromusic.mvp.presenter.HomePresenter;
|
||||
import code.name.monkey.retromusic.ui.adapter.GenreAdapter;
|
||||
import code.name.monkey.retromusic.ui.adapter.album.AlbumFullWithAdapter;
|
||||
import code.name.monkey.retromusic.ui.adapter.artist.ArtistAdapter;
|
||||
import code.name.monkey.retromusic.ui.fragments.base.AbsMainActivityFragment;
|
||||
|
@ -65,6 +67,7 @@ public class HomeFragment extends AbsMainActivityFragment implements MainActivit
|
|||
private final AnimatorSet animatorSet = new AnimatorSet();
|
||||
|
||||
Unbinder unbinder;
|
||||
|
||||
@BindView(R.id.toolbar)
|
||||
Toolbar toolbar;
|
||||
|
||||
|
@ -98,12 +101,21 @@ public class HomeFragment extends AbsMainActivityFragment implements MainActivit
|
|||
@BindView(R.id.top_albums_container)
|
||||
View topAlbumContainer;
|
||||
|
||||
@BindView(R.id.genres)
|
||||
RecyclerView genresRecyclerView;
|
||||
|
||||
@BindView(R.id.genre_container)
|
||||
LinearLayout genreContainer;
|
||||
|
||||
@BindView(R.id.content_container)
|
||||
NestedScrollView contentContainer;
|
||||
|
||||
@BindView(R.id.title)
|
||||
TextView title;
|
||||
|
||||
@BindView(R.id.search_icon)
|
||||
ImageView searchIcon;
|
||||
|
||||
private HomePresenter homePresenter;
|
||||
private CompositeDisposable disposable;
|
||||
|
||||
|
@ -172,22 +184,7 @@ public class HomeFragment extends AbsMainActivityFragment implements MainActivit
|
|||
getMainActivity().setSupportActionBar(toolbar);
|
||||
toolbar.setNavigationOnClickListener(v -> showMainMenu());
|
||||
title.setTextColor(ThemeStore.textColorPrimary(getContext()));
|
||||
}
|
||||
|
||||
private void toggleMenu(boolean backdropShown) {
|
||||
// Cancel the existing animations
|
||||
animatorSet.removeAllListeners();
|
||||
animatorSet.end();
|
||||
animatorSet.cancel();
|
||||
|
||||
|
||||
final int translateY = 300;
|
||||
|
||||
ObjectAnimator animator = ObjectAnimator.ofFloat(contentContainer, "translationY", backdropShown ? translateY : 0);
|
||||
animator.setDuration(500);
|
||||
animator.setInterpolator(new AccelerateInterpolator());
|
||||
animatorSet.play(animator);
|
||||
animator.start();
|
||||
searchIcon.setImageTintList(ColorStateList.valueOf(ThemeStore.accentColor(getContext())));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -227,7 +224,7 @@ public class HomeFragment extends AbsMainActivityFragment implements MainActivit
|
|||
public void recentArtist(ArrayList<Artist> artists) {
|
||||
recentArtistContainer.setVisibility(View.VISIBLE);
|
||||
recentArtistRV.setLayoutManager(new GridLayoutManager(getMainActivity(), 1, GridLayoutManager.HORIZONTAL, false));
|
||||
ArtistAdapter artistAdapter = new ArtistAdapter(getMainActivity(), artists, R.layout.item_artist, false, null);
|
||||
ArtistAdapter artistAdapter = new ArtistAdapter(getMainActivity(), artists, PreferenceUtil.getInstance(getContext()).getHomeGridStyle(getContext()), false, null);
|
||||
recentArtistRV.setAdapter(artistAdapter);
|
||||
}
|
||||
|
||||
|
@ -243,9 +240,8 @@ public class HomeFragment extends AbsMainActivityFragment implements MainActivit
|
|||
public void topArtists(ArrayList<Artist> artists) {
|
||||
topArtistContainer.setVisibility(View.VISIBLE);
|
||||
topArtistRV.setLayoutManager(new GridLayoutManager(getMainActivity(), 1, GridLayoutManager.HORIZONTAL, false));
|
||||
ArtistAdapter artistAdapter = new ArtistAdapter(getMainActivity(), artists, R.layout.item_artist, false, null);
|
||||
ArtistAdapter artistAdapter = new ArtistAdapter(getMainActivity(), artists, PreferenceUtil.getInstance(getContext()).getHomeGridStyle(getContext()), false, null);
|
||||
topArtistRV.setAdapter(artistAdapter);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -260,7 +256,6 @@ public class HomeFragment extends AbsMainActivityFragment implements MainActivit
|
|||
Display display = getMainActivity().getWindowManager().getDefaultDisplay();
|
||||
DisplayMetrics metrics = new DisplayMetrics();
|
||||
display.getMetrics(metrics);
|
||||
|
||||
return metrics;
|
||||
}
|
||||
|
||||
|
@ -272,9 +267,13 @@ public class HomeFragment extends AbsMainActivityFragment implements MainActivit
|
|||
|
||||
@Override
|
||||
public void geners(ArrayList<Genre> genres) {
|
||||
genreContainer.setVisibility(View.VISIBLE);
|
||||
genresRecyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
|
||||
//noinspection ConstantConditions
|
||||
GenreAdapter genreAdapter = new GenreAdapter(getActivity(), genres, R.layout.item_list);
|
||||
genresRecyclerView.setAdapter(genreAdapter);
|
||||
}
|
||||
|
||||
|
||||
@OnClick({R.id.last_added, R.id.top_played, R.id.action_shuffle, R.id.history, R.id.user_image, R.id.search})
|
||||
void startUserInfo(View view) {
|
||||
Activity activity = getActivity();
|
||||
|
|
|
@ -12,8 +12,7 @@ import butterknife.ButterKnife;
|
|||
import butterknife.Unbinder;
|
||||
import code.name.monkey.retromusic.R;
|
||||
import code.name.monkey.retromusic.helper.MusicPlayerRemote;
|
||||
import code.name.monkey.retromusic.transform.CustPagerTransformer;
|
||||
import code.name.monkey.retromusic.transform.NormalPageTransformer;
|
||||
import code.name.monkey.retromusic.transform.CarousalPagerTransformer;
|
||||
import code.name.monkey.retromusic.transform.ParallaxPagerTransformer;
|
||||
import code.name.monkey.retromusic.ui.adapter.album.AlbumCoverPagerAdapter;
|
||||
import code.name.monkey.retromusic.ui.fragments.NowPlayingScreen;
|
||||
|
@ -67,9 +66,9 @@ public class PlayerAlbumCoverFragment extends AbsMusicServiceFragment implements
|
|||
viewPager.setClipToPadding(false);
|
||||
viewPager.setPadding(96, 0, 96, 0);
|
||||
viewPager.setPageMargin(18);
|
||||
viewPager.setPageTransformer(false, new CustPagerTransformer(getContext()));
|
||||
viewPager.setPageTransformer(false, new CarousalPagerTransformer(getContext()));
|
||||
} else {
|
||||
viewPager.setPageTransformer(true, new NormalPageTransformer());
|
||||
viewPager.setPageTransformer(true, PreferenceUtil.getInstance(getContext()).getAlbumCoverTransform(getContext()));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -4,10 +4,6 @@ import android.app.Activity;
|
|||
import android.graphics.Color;
|
||||
import android.os.Bundle;
|
||||
import android.preference.PreferenceManager;
|
||||
import androidx.annotation.ColorInt;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.appcompat.widget.Toolbar;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
|
@ -15,6 +11,10 @@ import android.widget.ImageView;
|
|||
|
||||
import com.bumptech.glide.Glide;
|
||||
|
||||
import androidx.annotation.ColorInt;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.appcompat.widget.Toolbar;
|
||||
import butterknife.BindView;
|
||||
import butterknife.ButterKnife;
|
||||
import butterknife.Unbinder;
|
||||
|
@ -25,6 +25,7 @@ import code.name.monkey.retromusic.glide.RetroMusicColoredTarget;
|
|||
import code.name.monkey.retromusic.glide.SongGlideRequest;
|
||||
import code.name.monkey.retromusic.helper.MusicPlayerRemote;
|
||||
import code.name.monkey.retromusic.model.Song;
|
||||
import code.name.monkey.retromusic.ui.fragments.VolumeFragment;
|
||||
import code.name.monkey.retromusic.ui.fragments.base.AbsPlayerFragment;
|
||||
import code.name.monkey.retromusic.ui.fragments.player.PlayerAlbumCoverFragment;
|
||||
import code.name.monkey.retromusic.ui.fragments.player.normal.PlayerFragment;
|
||||
|
@ -137,6 +138,8 @@ public class CardBlurFragment extends AbsPlayerFragment implements
|
|||
(PlayerAlbumCoverFragment) getChildFragmentManager().findFragmentById(R.id.player_album_cover_fragment);
|
||||
playerAlbumCoverFragment.setCallbacks(this);
|
||||
playerAlbumCoverFragment.removeEffect();
|
||||
|
||||
|
||||
}
|
||||
|
||||
private void setUpPlayerToolbar() {
|
||||
|
|
|
@ -5,9 +5,6 @@ import android.content.res.ColorStateList;
|
|||
import android.graphics.Color;
|
||||
import android.graphics.PorterDuff;
|
||||
import android.os.Bundle;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.appcompat.widget.AppCompatSeekBar;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
|
@ -18,6 +15,9 @@ import android.widget.ImageButton;
|
|||
import android.widget.SeekBar;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.appcompat.widget.AppCompatSeekBar;
|
||||
import butterknife.BindView;
|
||||
import butterknife.ButterKnife;
|
||||
import butterknife.OnClick;
|
||||
|
@ -41,26 +41,37 @@ import code.name.monkey.retromusic.views.PlayPauseDrawable;
|
|||
public class CardBlurPlaybackControlsFragment extends AbsPlayerControlsFragment {
|
||||
@BindView(R.id.player_play_pause_button)
|
||||
ImageButton playPauseFab;
|
||||
|
||||
@BindView(R.id.player_prev_button)
|
||||
ImageButton prevButton;
|
||||
|
||||
@BindView(R.id.player_next_button)
|
||||
ImageButton nextButton;
|
||||
|
||||
@BindView(R.id.player_repeat_button)
|
||||
ImageButton repeatButton;
|
||||
|
||||
@BindView(R.id.player_shuffle_button)
|
||||
ImageButton shuffleButton;
|
||||
|
||||
@BindView(R.id.player_progress_slider)
|
||||
AppCompatSeekBar progressSlider;
|
||||
|
||||
@BindView(R.id.player_song_total_time)
|
||||
TextView songTotalTime;
|
||||
|
||||
@BindView(R.id.player_song_current_progress)
|
||||
TextView songCurrentProgress;
|
||||
|
||||
@BindView(R.id.volume_fragment_container)
|
||||
View volumeContainer;
|
||||
|
||||
@BindView(R.id.text)
|
||||
TextView text;
|
||||
|
||||
@BindView(R.id.title)
|
||||
TextView title;
|
||||
|
||||
private Unbinder unbinder;
|
||||
private PlayPauseDrawable playerFabPlayPauseDrawable;
|
||||
private int lastPlaybackControlsColor;
|
||||
|
@ -88,12 +99,12 @@ public class CardBlurPlaybackControlsFragment extends AbsPlayerControlsFragment
|
|||
}
|
||||
|
||||
@Override
|
||||
public void onViewCreated(View view, Bundle savedInstanceState) {
|
||||
public void onViewCreated(@NonNull View view, Bundle savedInstanceState) {
|
||||
super.onViewCreated(view, savedInstanceState);
|
||||
unbinder = ButterKnife.bind(this, view);
|
||||
setUpMusicControllers();
|
||||
hideVolumeIfAvailable();
|
||||
|
||||
title.setSelected(true);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -198,7 +209,9 @@ public class CardBlurPlaybackControlsFragment extends AbsPlayerControlsFragment
|
|||
private void setupVolumeControls() {
|
||||
VolumeFragment volumeFragment = (VolumeFragment) getChildFragmentManager()
|
||||
.findFragmentById(R.id.volume_fragment);
|
||||
volumeFragment.tintWhiteColor();
|
||||
if (volumeFragment != null) {
|
||||
volumeFragment.tintWhiteColor();
|
||||
}
|
||||
}
|
||||
|
||||
private void setUpPrevNext() {
|
||||
|
|
|
@ -1,16 +1,21 @@
|
|||
package code.name.monkey.retromusic.ui.fragments.settings;
|
||||
|
||||
import android.graphics.Bitmap;
|
||||
import android.graphics.PorterDuff;
|
||||
import android.os.Bundle;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.Calendar;
|
||||
import java.util.List;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.annotation.StringRes;
|
||||
import androidx.appcompat.widget.AppCompatTextView;
|
||||
import androidx.core.content.ContextCompat;
|
||||
import androidx.fragment.app.Fragment;
|
||||
import butterknife.BindView;
|
||||
import butterknife.BindViews;
|
||||
|
@ -20,7 +25,16 @@ import butterknife.Unbinder;
|
|||
import code.name.monkey.appthemehelper.ThemeStore;
|
||||
import code.name.monkey.retromusic.R;
|
||||
import code.name.monkey.retromusic.ui.activities.SettingsActivity;
|
||||
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.views.CircularImageView;
|
||||
import code.name.monkey.retromusic.views.IconImageView;
|
||||
import io.reactivex.android.schedulers.AndroidSchedulers;
|
||||
import io.reactivex.disposables.CompositeDisposable;
|
||||
import io.reactivex.schedulers.Schedulers;
|
||||
|
||||
import static code.name.monkey.retromusic.Constants.USER_PROFILE;
|
||||
|
||||
public class MainSettingsFragment extends Fragment {
|
||||
|
||||
|
@ -31,12 +45,18 @@ public class MainSettingsFragment extends Fragment {
|
|||
|
||||
@BindView(R.id.container)
|
||||
ViewGroup container;
|
||||
|
||||
@BindView(R.id.user_image_bottom)
|
||||
CircularImageView userImageBottom;
|
||||
@BindView(R.id.title_welcome)
|
||||
AppCompatTextView titleWelcome;
|
||||
@BindView(R.id.text)
|
||||
AppCompatTextView text;
|
||||
private Unbinder unbinder;
|
||||
private ButterKnife.Action<View> apply = (view, index) -> {
|
||||
//noinspection ConstantConditions
|
||||
((IconImageView) view).setColorFilter(ThemeStore.accentColor(getContext()), PorterDuff.Mode.SRC_IN);
|
||||
};
|
||||
private CompositeDisposable disposable = new CompositeDisposable();
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
|
@ -48,15 +68,26 @@ public class MainSettingsFragment extends Fragment {
|
|||
return layout;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
|
||||
super.onViewCreated(view, savedInstanceState);
|
||||
|
||||
text.setTextColor(ThemeStore.textColorSecondary(getContext()));
|
||||
titleWelcome.setTextColor(ThemeStore.textColorPrimary(getContext()));
|
||||
titleWelcome.setText(String.format("%s %s!", getTimeOfTheDay(), PreferenceUtil.getInstance(getContext()).getUserName()));
|
||||
loadImageFromStorage();
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void onDestroyView() {
|
||||
super.onDestroyView();
|
||||
disposable.clear();
|
||||
unbinder.unbind();
|
||||
}
|
||||
|
||||
@OnClick({R.id.general_settings, R.id.audio_settings, R.id.now_playing_settings,
|
||||
R.id.image_settings, R.id.personalize_settings, R.id.notification_settings, R.id.other_settings})
|
||||
R.id.user_info_container, R.id.image_settings, R.id.personalize_settings, R.id.notification_settings, R.id.other_settings})
|
||||
public void onViewClicked(View view) {
|
||||
switch (view.getId()) {
|
||||
case R.id.general_settings:
|
||||
|
@ -65,6 +96,9 @@ public class MainSettingsFragment extends Fragment {
|
|||
case R.id.audio_settings:
|
||||
inflateFragment(new AudioSettings(), R.string.pref_header_audio);
|
||||
break;
|
||||
case R.id.user_info_container:
|
||||
NavigationUtil.goToUserInfo(getActivity());
|
||||
break;
|
||||
case R.id.now_playing_settings:
|
||||
inflateFragment(new NowPlayingSettingsFragment(), R.string.now_playing);
|
||||
break;
|
||||
|
@ -88,4 +122,41 @@ public class MainSettingsFragment extends Fragment {
|
|||
((SettingsActivity) getActivity()).setupFragment(fragment, title);
|
||||
}
|
||||
}
|
||||
|
||||
private String getTimeOfTheDay() {
|
||||
String message = getString(R.string.title_good_day);
|
||||
Calendar c = Calendar.getInstance();
|
||||
int timeOfDay = c.get(Calendar.HOUR_OF_DAY);
|
||||
|
||||
if (timeOfDay >= 0 && timeOfDay < 6) {
|
||||
message = getString(R.string.title_good_night);
|
||||
} else if (timeOfDay >= 6 && timeOfDay < 12) {
|
||||
message = getString(R.string.title_good_morning);
|
||||
} else if (timeOfDay >= 12 && timeOfDay < 16) {
|
||||
message = getString(R.string.title_good_afternoon);
|
||||
} else if (timeOfDay >= 16 && timeOfDay < 20) {
|
||||
message = getString(R.string.title_good_evening);
|
||||
} else if (timeOfDay >= 20 && timeOfDay < 24) {
|
||||
message = getString(R.string.title_good_night);
|
||||
}
|
||||
return message;
|
||||
}
|
||||
|
||||
|
||||
private void loadImageFromStorage() {
|
||||
//noinspection ConstantConditions
|
||||
disposable.add(new Compressor(getContext())
|
||||
.setMaxHeight(300)
|
||||
.setMaxWidth(300)
|
||||
.setQuality(75)
|
||||
.setCompressFormat(Bitmap.CompressFormat.WEBP)
|
||||
.compressToBitmapAsFlowable(
|
||||
new File(PreferenceUtil.getInstance(getContext()).getProfileImage(), USER_PROFILE))
|
||||
.subscribeOn(Schedulers.io())
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.subscribe(userImageBottom::setImageBitmap,
|
||||
throwable -> userImageBottom.setImageDrawable(ContextCompat
|
||||
.getDrawable(getContext(), R.drawable.ic_person_flat))));
|
||||
}
|
||||
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue