Fix bad revert from 547849e, refactor up next/remaining time string creation

This commit is contained in:
Eugene Cheung 2017-06-16 15:26:00 -04:00
commit a633a6c3a3
6 changed files with 97 additions and 6 deletions

View file

@ -32,10 +32,11 @@ import de.psdev.licensesdialog.LicensesDialog;
@SuppressWarnings("FieldCanBeLocal")
public class AboutActivity extends AbsBaseActivity implements View.OnClickListener {
private static String GITHUB = "https://github.com/kabouzeid/Phonograph";
private static String GOOGLE_PLUS = "https://google.com/+KarimAbouZeid23697";
private static String TWITTER = "https://twitter.com/karim23697";
private static String GITHUB = "https://github.com/kabouzeid";
private static String WEBSITE = "http://kabouzeid.com/";
private static String WEBSITE = "https://kabouzeid.com/";
private static String GOOGLE_PLUS_COMMUNITY = "https://plus.google.com/u/0/communities/106227738496107108513";
private static String TRANSLATE = "https://phonograph.oneskyapp.com/collaboration/project?id=26521";
@ -61,6 +62,8 @@ public class AboutActivity extends AbsBaseActivity implements View.OnClickListen
LinearLayout intro;
@BindView(R.id.licenses)
LinearLayout licenses;
@BindView(R.id.write_an_email)
LinearLayout writeAnEmail;
@BindView(R.id.add_to_google_plus_circles)
LinearLayout addToGooglePlusCircles;
@BindView(R.id.follow_on_twitter)
@ -132,6 +135,7 @@ public class AboutActivity extends AbsBaseActivity implements View.OnClickListen
forkOnGitHub.setOnClickListener(this);
visitWebsite.setOnClickListener(this);
reportBugs.setOnClickListener(this);
writeAnEmail.setOnClickListener(this);
joinGooglePlusCommunity.setOnClickListener(this);
translate.setOnClickListener(this);
rateOnGooglePlay.setOnClickListener(this);
@ -180,6 +184,12 @@ public class AboutActivity extends AbsBaseActivity implements View.OnClickListen
openUrl(WEBSITE);
} else if (v == reportBugs) {
startActivity(new Intent(this, BugReportActivity.class));
} else if (v == writeAnEmail) {
Intent intent = new Intent(Intent.ACTION_SENDTO);
intent.setData(Uri.parse("mailto:contact@kabouzeid.com"));
intent.putExtra(Intent.EXTRA_EMAIL, "contact@kabouzeid.com");
intent.putExtra(Intent.EXTRA_SUBJECT, "Phonograph");
startActivity(Intent.createChooser(intent, "E-Mail"));
} else if (v == joinGooglePlusCommunity) {
openUrl(GOOGLE_PLUS_COMMUNITY);
} else if (v == translate) {

View file

@ -53,6 +53,7 @@ import com.kabouzeid.gramophone.ui.activities.base.AbsSlidingMusicPanelActivity;
import com.kabouzeid.gramophone.util.ArtistSignatureUtil;
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 butterknife.BindView;
@ -91,6 +92,7 @@ public class ArtistDetailActivity extends AbsSlidingMusicPanelActivity implement
private int artistImageViewHeight;
private int toolbarColor;
private float toolbarAlpha;
private boolean usePalette;
private Artist artist;
@Nullable
@ -109,6 +111,7 @@ public class ArtistDetailActivity extends AbsSlidingMusicPanelActivity implement
supportPostponeEnterTransition();
lastFMRestClient = new LastFMRestClient(this);
usePalette = PreferenceUtil.getInstance(this).albumArtistColoredFooters();
initViews();
setUpObservableListViewParams();
@ -194,7 +197,7 @@ public class ArtistDetailActivity extends AbsSlidingMusicPanelActivity implement
private void setUpAlbumRecyclerView() {
albumRecyclerView.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, false));
albumAdapter = new HorizontalAlbumAdapter(this, getArtist().albums, true, this);
albumAdapter = new HorizontalAlbumAdapter(this, getArtist().albums, usePalette, this);
albumRecyclerView.setAdapter(albumAdapter);
albumAdapter.registerAdapterDataObserver(new RecyclerView.AdapterDataObserver() {
@Override
@ -205,6 +208,12 @@ public class ArtistDetailActivity extends AbsSlidingMusicPanelActivity implement
});
}
protected void setUsePalette(boolean usePalette) {
albumAdapter.usePalette(usePalette);
PreferenceUtil.getInstance(this).setAlbumArtistColoredFooters(usePalette);
this.usePalette = usePalette;
}
private void reload() {
getSupportLoaderManager().restartLoader(LOADER_ID, getIntent().getExtras(), this);
}
@ -309,6 +318,7 @@ public class ArtistDetailActivity extends AbsSlidingMusicPanelActivity implement
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_artist_detail, menu);
menu.findItem(R.id.action_colored_footers).setChecked(usePalette);
return true;
}
@ -339,6 +349,10 @@ public class ArtistDetailActivity extends AbsSlidingMusicPanelActivity implement
Toast.makeText(ArtistDetailActivity.this, getResources().getString(R.string.updating), Toast.LENGTH_SHORT).show();
loadArtistImage(true);
return true;
case R.id.action_colored_footers:
item.setChecked(!item.isChecked());
setUsePalette(item.isChecked());
return true;
}
return super.onOptionsItemSelected(item);
}

View file

@ -25,8 +25,11 @@ import com.kabouzeid.appthemehelper.common.prefs.supportv7.ATEColorPreference;
import com.kabouzeid.appthemehelper.common.prefs.supportv7.ATEPreferenceFragmentCompat;
import com.kabouzeid.appthemehelper.util.ColorUtil;
import com.kabouzeid.gramophone.R;
import com.kabouzeid.gramophone.appshortcuts.DynamicShortcutManager;
import com.kabouzeid.gramophone.helper.MusicPlayerRemote;
import com.kabouzeid.gramophone.preferences.NowPlayingScreenPreference;
import com.kabouzeid.gramophone.preferences.NowPlayingScreenPreferenceDialog;
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;
@ -78,6 +81,10 @@ public class SettingsActivity extends AbsBaseActivity implements ColorChooserDia
.commit();
break;
}
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N_MR1) {
new DynamicShortcutManager(this).updateDynamicShortcuts();
}
recreate();
}
@ -122,10 +129,12 @@ public class SettingsActivity extends AbsBaseActivity implements ColorChooserDia
public void onCreatePreferences(Bundle bundle, String s) {
addPreferencesFromResource(R.xml.pref_general);
addPreferencesFromResource(R.xml.pref_colors);
addPreferencesFromResource(R.xml.pref_notification);
addPreferencesFromResource(R.xml.pref_now_playing_screen);
addPreferencesFromResource(R.xml.pref_images);
addPreferencesFromResource(R.xml.pref_lockscreen);
addPreferencesFromResource(R.xml.pref_audio);
addPreferencesFromResource(R.xml.pref_playlists);
}
@Nullable
@ -171,6 +180,13 @@ public class SettingsActivity extends AbsBaseActivity implements ColorChooserDia
ThemeStore.editTheme(getActivity())
.activityTheme(PreferenceUtil.getThemeResFromPrefValue((String) o))
.commit();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N_MR1) {
//Set the new theme so that updateAppShortcuts can pull it
getActivity().setTheme(PreferenceUtil.getThemeResFromPrefValue((String) o));
new DynamicShortcutManager(getActivity()).updateDynamicShortcuts();
}
getActivity().recreate();
return true;
}
@ -186,7 +202,7 @@ public class SettingsActivity extends AbsBaseActivity implements ColorChooserDia
}
});
ATEColorPreference primaryColorPref = (ATEColorPreference) findPreference("primary_color");
final ATEColorPreference primaryColorPref = (ATEColorPreference) findPreference("primary_color");
final int primaryColor = ThemeStore.primaryColor(getActivity());
primaryColorPref.setColor(primaryColor, ColorUtil.darkenColor(primaryColor));
primaryColorPref.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
@ -202,7 +218,7 @@ public class SettingsActivity extends AbsBaseActivity implements ColorChooserDia
}
});
ATEColorPreference accentColorPref = (ATEColorPreference) findPreference("accent_color");
final ATEColorPreference accentColorPref = (ATEColorPreference) findPreference("accent_color");
final int accentColor = ThemeStore.accentColor(getActivity());
accentColorPref.setColor(accentColor, ColorUtil.darkenColor(accentColor));
accentColorPref.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
@ -236,7 +252,50 @@ public class SettingsActivity extends AbsBaseActivity implements ColorChooserDia
});
}
Preference equalizer = findPreference("equalizer");
final TwoStatePreference classicNotification = (TwoStatePreference) findPreference("classic_notification");
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.N_MR1) {
classicNotification.setEnabled(false);
classicNotification.setSummary(R.string.pref_only_nougat);
} else {
classicNotification.setChecked(PreferenceUtil.getInstance(getActivity()).classicNotification());
classicNotification.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
//Save preference
PreferenceUtil.getInstance(getActivity()).setClassicNotification((Boolean)newValue);
final MusicService service = MusicPlayerRemote.musicService;
if (service != null) {
service.initNotification();
service.updateNotification();
}
return true;
}
});
}
final TwoStatePreference colorAppShortcuts = (TwoStatePreference) findPreference("should_color_app_shortcuts");
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.N_MR1) {
colorAppShortcuts.setEnabled(false);
colorAppShortcuts.setSummary(R.string.pref_only_nougat_mr1);
} else {
colorAppShortcuts.setChecked(PreferenceUtil.getInstance(getActivity()).coloredAppShortcuts());
colorAppShortcuts.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
//Save preference
PreferenceUtil.getInstance(getActivity()).setColoredAppShortcuts((Boolean)newValue);
//Update app shortcuts
new DynamicShortcutManager(getActivity()).updateDynamicShortcuts();
return true;
}
});
}
final Preference equalizer = findPreference("equalizer");
if (!hasEqualizer()) {
equalizer.setEnabled(false);
equalizer.setSummary(getResources().getString(R.string.no_equalizer));

View file

@ -88,6 +88,10 @@ public abstract class AbsPlayerFragment extends AbsMusicServiceFragment implemen
MusicUtil.toggleFavorite(getActivity(), song);
}
protected String getUpNextAndQueueTime() {
return getResources().getString(R.string.up_next) + "" + MusicUtil.getReadableDurationString(MusicPlayerRemote.getQueueDurationMillis(MusicPlayerRemote.getPosition()));
}
public abstract void onShow();
public abstract void onHide();

View file

@ -198,6 +198,7 @@ public class CardPlayerFragment extends AbsPlayerFragment implements PlayerAlbum
private void updateQueue() {
playingQueueAdapter.swapDataSet(MusicPlayerRemote.getPlayingQueue(), MusicPlayerRemote.getPosition());
playerQueueSubHeader.setText(getUpNextAndQueueTime());
if (slidingUpPanelLayout.getPanelState() == SlidingUpPanelLayout.PanelState.COLLAPSED) {
resetToCurrentPosition();
}
@ -205,6 +206,7 @@ public class CardPlayerFragment extends AbsPlayerFragment implements PlayerAlbum
private void updateQueuePosition() {
playingQueueAdapter.setCurrent(MusicPlayerRemote.getPosition());
playerQueueSubHeader.setText(getUpNextAndQueueTime());
if (slidingUpPanelLayout.getPanelState() == SlidingUpPanelLayout.PanelState.COLLAPSED) {
resetToCurrentPosition();
}

View file

@ -194,6 +194,7 @@ public class FlatPlayerFragment extends AbsPlayerFragment implements PlayerAlbum
private void updateQueue() {
playingQueueAdapter.swapDataSet(MusicPlayerRemote.getPlayingQueue(), MusicPlayerRemote.getPosition());
playerQueueSubHeader.setText(getUpNextAndQueueTime());
if (slidingUpPanelLayout == null || slidingUpPanelLayout.getPanelState() == SlidingUpPanelLayout.PanelState.COLLAPSED) {
resetToCurrentPosition();
}
@ -201,6 +202,7 @@ public class FlatPlayerFragment extends AbsPlayerFragment implements PlayerAlbum
private void updateQueuePosition() {
playingQueueAdapter.setCurrent(MusicPlayerRemote.getPosition());
playerQueueSubHeader.setText(getUpNextAndQueueTime());
if (slidingUpPanelLayout == null || slidingUpPanelLayout.getPanelState() == SlidingUpPanelLayout.PanelState.COLLAPSED) {
resetToCurrentPosition();
}