Fix bad revert from 547849e, refactor up next/remaining time string creation
This commit is contained in:
parent
8f57c0133f
commit
a633a6c3a3
6 changed files with 97 additions and 6 deletions
|
|
@ -32,10 +32,11 @@ import de.psdev.licensesdialog.LicensesDialog;
|
||||||
@SuppressWarnings("FieldCanBeLocal")
|
@SuppressWarnings("FieldCanBeLocal")
|
||||||
public class AboutActivity extends AbsBaseActivity implements View.OnClickListener {
|
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 GOOGLE_PLUS = "https://google.com/+KarimAbouZeid23697";
|
||||||
private static String TWITTER = "https://twitter.com/karim23697";
|
private static String TWITTER = "https://twitter.com/karim23697";
|
||||||
private static String GITHUB = "https://github.com/kabouzeid";
|
private static String WEBSITE = "https://kabouzeid.com/";
|
||||||
private static String WEBSITE = "http://kabouzeid.com/";
|
|
||||||
|
|
||||||
private static String GOOGLE_PLUS_COMMUNITY = "https://plus.google.com/u/0/communities/106227738496107108513";
|
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";
|
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;
|
LinearLayout intro;
|
||||||
@BindView(R.id.licenses)
|
@BindView(R.id.licenses)
|
||||||
LinearLayout licenses;
|
LinearLayout licenses;
|
||||||
|
@BindView(R.id.write_an_email)
|
||||||
|
LinearLayout writeAnEmail;
|
||||||
@BindView(R.id.add_to_google_plus_circles)
|
@BindView(R.id.add_to_google_plus_circles)
|
||||||
LinearLayout addToGooglePlusCircles;
|
LinearLayout addToGooglePlusCircles;
|
||||||
@BindView(R.id.follow_on_twitter)
|
@BindView(R.id.follow_on_twitter)
|
||||||
|
|
@ -132,6 +135,7 @@ public class AboutActivity extends AbsBaseActivity implements View.OnClickListen
|
||||||
forkOnGitHub.setOnClickListener(this);
|
forkOnGitHub.setOnClickListener(this);
|
||||||
visitWebsite.setOnClickListener(this);
|
visitWebsite.setOnClickListener(this);
|
||||||
reportBugs.setOnClickListener(this);
|
reportBugs.setOnClickListener(this);
|
||||||
|
writeAnEmail.setOnClickListener(this);
|
||||||
joinGooglePlusCommunity.setOnClickListener(this);
|
joinGooglePlusCommunity.setOnClickListener(this);
|
||||||
translate.setOnClickListener(this);
|
translate.setOnClickListener(this);
|
||||||
rateOnGooglePlay.setOnClickListener(this);
|
rateOnGooglePlay.setOnClickListener(this);
|
||||||
|
|
@ -180,6 +184,12 @@ public class AboutActivity extends AbsBaseActivity implements View.OnClickListen
|
||||||
openUrl(WEBSITE);
|
openUrl(WEBSITE);
|
||||||
} else if (v == reportBugs) {
|
} else if (v == reportBugs) {
|
||||||
startActivity(new Intent(this, BugReportActivity.class));
|
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) {
|
} else if (v == joinGooglePlusCommunity) {
|
||||||
openUrl(GOOGLE_PLUS_COMMUNITY);
|
openUrl(GOOGLE_PLUS_COMMUNITY);
|
||||||
} else if (v == translate) {
|
} else if (v == translate) {
|
||||||
|
|
|
||||||
|
|
@ -53,6 +53,7 @@ import com.kabouzeid.gramophone.ui.activities.base.AbsSlidingMusicPanelActivity;
|
||||||
import com.kabouzeid.gramophone.util.ArtistSignatureUtil;
|
import com.kabouzeid.gramophone.util.ArtistSignatureUtil;
|
||||||
import com.kabouzeid.gramophone.util.NavigationUtil;
|
import com.kabouzeid.gramophone.util.NavigationUtil;
|
||||||
import com.kabouzeid.gramophone.util.PhonographColorUtil;
|
import com.kabouzeid.gramophone.util.PhonographColorUtil;
|
||||||
|
import com.kabouzeid.gramophone.util.PreferenceUtil;
|
||||||
import com.kabouzeid.gramophone.util.Util;
|
import com.kabouzeid.gramophone.util.Util;
|
||||||
|
|
||||||
import butterknife.BindView;
|
import butterknife.BindView;
|
||||||
|
|
@ -91,6 +92,7 @@ public class ArtistDetailActivity extends AbsSlidingMusicPanelActivity implement
|
||||||
private int artistImageViewHeight;
|
private int artistImageViewHeight;
|
||||||
private int toolbarColor;
|
private int toolbarColor;
|
||||||
private float toolbarAlpha;
|
private float toolbarAlpha;
|
||||||
|
private boolean usePalette;
|
||||||
|
|
||||||
private Artist artist;
|
private Artist artist;
|
||||||
@Nullable
|
@Nullable
|
||||||
|
|
@ -109,6 +111,7 @@ public class ArtistDetailActivity extends AbsSlidingMusicPanelActivity implement
|
||||||
supportPostponeEnterTransition();
|
supportPostponeEnterTransition();
|
||||||
|
|
||||||
lastFMRestClient = new LastFMRestClient(this);
|
lastFMRestClient = new LastFMRestClient(this);
|
||||||
|
usePalette = PreferenceUtil.getInstance(this).albumArtistColoredFooters();
|
||||||
|
|
||||||
initViews();
|
initViews();
|
||||||
setUpObservableListViewParams();
|
setUpObservableListViewParams();
|
||||||
|
|
@ -194,7 +197,7 @@ public class ArtistDetailActivity extends AbsSlidingMusicPanelActivity implement
|
||||||
|
|
||||||
private void setUpAlbumRecyclerView() {
|
private void setUpAlbumRecyclerView() {
|
||||||
albumRecyclerView.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, false));
|
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);
|
albumRecyclerView.setAdapter(albumAdapter);
|
||||||
albumAdapter.registerAdapterDataObserver(new RecyclerView.AdapterDataObserver() {
|
albumAdapter.registerAdapterDataObserver(new RecyclerView.AdapterDataObserver() {
|
||||||
@Override
|
@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() {
|
private void reload() {
|
||||||
getSupportLoaderManager().restartLoader(LOADER_ID, getIntent().getExtras(), this);
|
getSupportLoaderManager().restartLoader(LOADER_ID, getIntent().getExtras(), this);
|
||||||
}
|
}
|
||||||
|
|
@ -309,6 +318,7 @@ public class ArtistDetailActivity extends AbsSlidingMusicPanelActivity implement
|
||||||
@Override
|
@Override
|
||||||
public boolean onCreateOptionsMenu(Menu menu) {
|
public boolean onCreateOptionsMenu(Menu menu) {
|
||||||
getMenuInflater().inflate(R.menu.menu_artist_detail, menu);
|
getMenuInflater().inflate(R.menu.menu_artist_detail, menu);
|
||||||
|
menu.findItem(R.id.action_colored_footers).setChecked(usePalette);
|
||||||
return true;
|
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();
|
Toast.makeText(ArtistDetailActivity.this, getResources().getString(R.string.updating), Toast.LENGTH_SHORT).show();
|
||||||
loadArtistImage(true);
|
loadArtistImage(true);
|
||||||
return true;
|
return true;
|
||||||
|
case R.id.action_colored_footers:
|
||||||
|
item.setChecked(!item.isChecked());
|
||||||
|
setUsePalette(item.isChecked());
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
return super.onOptionsItemSelected(item);
|
return super.onOptionsItemSelected(item);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -25,8 +25,11 @@ import com.kabouzeid.appthemehelper.common.prefs.supportv7.ATEColorPreference;
|
||||||
import com.kabouzeid.appthemehelper.common.prefs.supportv7.ATEPreferenceFragmentCompat;
|
import com.kabouzeid.appthemehelper.common.prefs.supportv7.ATEPreferenceFragmentCompat;
|
||||||
import com.kabouzeid.appthemehelper.util.ColorUtil;
|
import com.kabouzeid.appthemehelper.util.ColorUtil;
|
||||||
import com.kabouzeid.gramophone.R;
|
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.NowPlayingScreenPreference;
|
||||||
import com.kabouzeid.gramophone.preferences.NowPlayingScreenPreferenceDialog;
|
import com.kabouzeid.gramophone.preferences.NowPlayingScreenPreferenceDialog;
|
||||||
|
import com.kabouzeid.gramophone.service.MusicService;
|
||||||
import com.kabouzeid.gramophone.ui.activities.base.AbsBaseActivity;
|
import com.kabouzeid.gramophone.ui.activities.base.AbsBaseActivity;
|
||||||
import com.kabouzeid.gramophone.util.NavigationUtil;
|
import com.kabouzeid.gramophone.util.NavigationUtil;
|
||||||
import com.kabouzeid.gramophone.util.PreferenceUtil;
|
import com.kabouzeid.gramophone.util.PreferenceUtil;
|
||||||
|
|
@ -78,6 +81,10 @@ public class SettingsActivity extends AbsBaseActivity implements ColorChooserDia
|
||||||
.commit();
|
.commit();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N_MR1) {
|
||||||
|
new DynamicShortcutManager(this).updateDynamicShortcuts();
|
||||||
|
}
|
||||||
recreate();
|
recreate();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -122,10 +129,12 @@ public class SettingsActivity extends AbsBaseActivity implements ColorChooserDia
|
||||||
public void onCreatePreferences(Bundle bundle, String s) {
|
public void onCreatePreferences(Bundle bundle, String s) {
|
||||||
addPreferencesFromResource(R.xml.pref_general);
|
addPreferencesFromResource(R.xml.pref_general);
|
||||||
addPreferencesFromResource(R.xml.pref_colors);
|
addPreferencesFromResource(R.xml.pref_colors);
|
||||||
|
addPreferencesFromResource(R.xml.pref_notification);
|
||||||
addPreferencesFromResource(R.xml.pref_now_playing_screen);
|
addPreferencesFromResource(R.xml.pref_now_playing_screen);
|
||||||
addPreferencesFromResource(R.xml.pref_images);
|
addPreferencesFromResource(R.xml.pref_images);
|
||||||
addPreferencesFromResource(R.xml.pref_lockscreen);
|
addPreferencesFromResource(R.xml.pref_lockscreen);
|
||||||
addPreferencesFromResource(R.xml.pref_audio);
|
addPreferencesFromResource(R.xml.pref_audio);
|
||||||
|
addPreferencesFromResource(R.xml.pref_playlists);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
|
|
@ -171,6 +180,13 @@ public class SettingsActivity extends AbsBaseActivity implements ColorChooserDia
|
||||||
ThemeStore.editTheme(getActivity())
|
ThemeStore.editTheme(getActivity())
|
||||||
.activityTheme(PreferenceUtil.getThemeResFromPrefValue((String) o))
|
.activityTheme(PreferenceUtil.getThemeResFromPrefValue((String) o))
|
||||||
.commit();
|
.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();
|
getActivity().recreate();
|
||||||
return true;
|
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());
|
final int primaryColor = ThemeStore.primaryColor(getActivity());
|
||||||
primaryColorPref.setColor(primaryColor, ColorUtil.darkenColor(primaryColor));
|
primaryColorPref.setColor(primaryColor, ColorUtil.darkenColor(primaryColor));
|
||||||
primaryColorPref.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
|
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());
|
final int accentColor = ThemeStore.accentColor(getActivity());
|
||||||
accentColorPref.setColor(accentColor, ColorUtil.darkenColor(accentColor));
|
accentColorPref.setColor(accentColor, ColorUtil.darkenColor(accentColor));
|
||||||
accentColorPref.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
|
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()) {
|
if (!hasEqualizer()) {
|
||||||
equalizer.setEnabled(false);
|
equalizer.setEnabled(false);
|
||||||
equalizer.setSummary(getResources().getString(R.string.no_equalizer));
|
equalizer.setSummary(getResources().getString(R.string.no_equalizer));
|
||||||
|
|
|
||||||
|
|
@ -88,6 +88,10 @@ public abstract class AbsPlayerFragment extends AbsMusicServiceFragment implemen
|
||||||
MusicUtil.toggleFavorite(getActivity(), song);
|
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 onShow();
|
||||||
|
|
||||||
public abstract void onHide();
|
public abstract void onHide();
|
||||||
|
|
|
||||||
|
|
@ -198,6 +198,7 @@ public class CardPlayerFragment extends AbsPlayerFragment implements PlayerAlbum
|
||||||
|
|
||||||
private void updateQueue() {
|
private void updateQueue() {
|
||||||
playingQueueAdapter.swapDataSet(MusicPlayerRemote.getPlayingQueue(), MusicPlayerRemote.getPosition());
|
playingQueueAdapter.swapDataSet(MusicPlayerRemote.getPlayingQueue(), MusicPlayerRemote.getPosition());
|
||||||
|
playerQueueSubHeader.setText(getUpNextAndQueueTime());
|
||||||
if (slidingUpPanelLayout.getPanelState() == SlidingUpPanelLayout.PanelState.COLLAPSED) {
|
if (slidingUpPanelLayout.getPanelState() == SlidingUpPanelLayout.PanelState.COLLAPSED) {
|
||||||
resetToCurrentPosition();
|
resetToCurrentPosition();
|
||||||
}
|
}
|
||||||
|
|
@ -205,6 +206,7 @@ public class CardPlayerFragment extends AbsPlayerFragment implements PlayerAlbum
|
||||||
|
|
||||||
private void updateQueuePosition() {
|
private void updateQueuePosition() {
|
||||||
playingQueueAdapter.setCurrent(MusicPlayerRemote.getPosition());
|
playingQueueAdapter.setCurrent(MusicPlayerRemote.getPosition());
|
||||||
|
playerQueueSubHeader.setText(getUpNextAndQueueTime());
|
||||||
if (slidingUpPanelLayout.getPanelState() == SlidingUpPanelLayout.PanelState.COLLAPSED) {
|
if (slidingUpPanelLayout.getPanelState() == SlidingUpPanelLayout.PanelState.COLLAPSED) {
|
||||||
resetToCurrentPosition();
|
resetToCurrentPosition();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -194,6 +194,7 @@ public class FlatPlayerFragment extends AbsPlayerFragment implements PlayerAlbum
|
||||||
|
|
||||||
private void updateQueue() {
|
private void updateQueue() {
|
||||||
playingQueueAdapter.swapDataSet(MusicPlayerRemote.getPlayingQueue(), MusicPlayerRemote.getPosition());
|
playingQueueAdapter.swapDataSet(MusicPlayerRemote.getPlayingQueue(), MusicPlayerRemote.getPosition());
|
||||||
|
playerQueueSubHeader.setText(getUpNextAndQueueTime());
|
||||||
if (slidingUpPanelLayout == null || slidingUpPanelLayout.getPanelState() == SlidingUpPanelLayout.PanelState.COLLAPSED) {
|
if (slidingUpPanelLayout == null || slidingUpPanelLayout.getPanelState() == SlidingUpPanelLayout.PanelState.COLLAPSED) {
|
||||||
resetToCurrentPosition();
|
resetToCurrentPosition();
|
||||||
}
|
}
|
||||||
|
|
@ -201,6 +202,7 @@ public class FlatPlayerFragment extends AbsPlayerFragment implements PlayerAlbum
|
||||||
|
|
||||||
private void updateQueuePosition() {
|
private void updateQueuePosition() {
|
||||||
playingQueueAdapter.setCurrent(MusicPlayerRemote.getPosition());
|
playingQueueAdapter.setCurrent(MusicPlayerRemote.getPosition());
|
||||||
|
playerQueueSubHeader.setText(getUpNextAndQueueTime());
|
||||||
if (slidingUpPanelLayout == null || slidingUpPanelLayout.getPanelState() == SlidingUpPanelLayout.PanelState.COLLAPSED) {
|
if (slidingUpPanelLayout == null || slidingUpPanelLayout.getPanelState() == SlidingUpPanelLayout.PanelState.COLLAPSED) {
|
||||||
resetToCurrentPosition();
|
resetToCurrentPosition();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue