diff --git a/app/src/main/java/com/simplecity/amp_library/lyrics/LyricsFragment.java b/app/src/main/java/com/simplecity/amp_library/lyrics/LyricsFragment.java index a336dfaf4..bb156df60 100644 --- a/app/src/main/java/com/simplecity/amp_library/lyrics/LyricsFragment.java +++ b/app/src/main/java/com/simplecity/amp_library/lyrics/LyricsFragment.java @@ -3,6 +3,7 @@ import android.content.ActivityNotFoundException; import android.graphics.Color; import android.os.Bundle; +import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.support.v4.app.FragmentTransaction; import android.view.GestureDetector; @@ -15,6 +16,7 @@ import android.widget.TextView; import com.simplecity.amp_library.R; +import com.simplecity.amp_library.model.Song; import com.simplecity.amp_library.ui.fragments.BaseFragment; import com.simplecity.amp_library.utils.DialogUtils; import com.simplecity.amp_library.utils.ThemeUtils; @@ -30,6 +32,8 @@ public class LyricsFragment extends BaseFragment implements LyricsView { private View noLyricsView; + private View quickLyricInfo; + /** * Empty constructor as per the {@link android.app.Fragment} docs */ @@ -48,10 +52,10 @@ public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle sa Button quickLyricButton = (Button) rootView.findViewById(R.id.quickLyricButton); quickLyricButton.setText(QuickLyricUtils.getSpannedString()); - quickLyricButton.setOnClickListener(v -> lyricsPresenter.launchQuickLyric()); + quickLyricButton.setOnClickListener(v -> lyricsPresenter.downloadOrLaunchQuickLyric()); - View quickLyricInfo = rootView.findViewById(R.id.quickLyricInfo); - quickLyricInfo.setOnClickListener(v -> lyricsPresenter.showQuickLyricInfo()); + quickLyricInfo = rootView.findViewById(R.id.quickLyricInfo); + quickLyricInfo.setOnClickListener(v -> lyricsPresenter.showQuickLyricInfoDialog()); ScrollView scrollView = (ScrollView) rootView.findViewById(R.id.scrollView); @@ -132,7 +136,17 @@ public void showNoLyricsView(boolean show) { } @Override - public void launchQuickLyric() { + public void showQuickLyricInfoButton(boolean show) { + quickLyricInfo.setVisibility(show ? View.VISIBLE : View.GONE); + } + + @Override + public void launchQuickLyric(@NonNull Song song) { + QuickLyricUtils.getLyricsFor(getContext(), song); + } + + @Override + public void downloadQuickLyric() { try { startActivity(QuickLyricUtils.getQuickLyricIntent()); } catch (ActivityNotFoundException ignored) { @@ -141,14 +155,16 @@ public void launchQuickLyric() { } @Override - public void showQuickLyricInfo() { + public void showQuickLyricInfoDialog() { DialogUtils.getBuilder(getContext()) .iconRes(R.drawable.quicklyric) .title(R.string.quicklyric) .content(getString(R.string.quicklyric_info)) .positiveText(R.string.download) - .onPositive((dialog, which) -> lyricsPresenter.launchQuickLyric()) + .onPositive((dialog, which) -> lyricsPresenter.downloadOrLaunchQuickLyric()) .negativeText(R.string.close) .show(); } + + } diff --git a/app/src/main/java/com/simplecity/amp_library/lyrics/LyricsPresenter.java b/app/src/main/java/com/simplecity/amp_library/lyrics/LyricsPresenter.java index 44e46572b..84c03eb38 100644 --- a/app/src/main/java/com/simplecity/amp_library/lyrics/LyricsPresenter.java +++ b/app/src/main/java/com/simplecity/amp_library/lyrics/LyricsPresenter.java @@ -10,6 +10,7 @@ import com.f2prateek.rx.receivers.RxBroadcastReceiver; import com.simplecity.amp_library.ShuttleApplication; import com.simplecity.amp_library.model.Query; +import com.simplecity.amp_library.model.Song; import com.simplecity.amp_library.playback.MusicService; import com.simplecity.amp_library.sql.SqlUtils; import com.simplecity.amp_library.ui.presenters.Presenter; @@ -41,17 +42,24 @@ public void bindView(@NonNull LyricsView view) { .subscribe(intent -> updateLyrics())); } - void launchQuickLyric() { + void downloadOrLaunchQuickLyric() { LyricsView lyricsView = getView(); if (lyricsView != null) { - lyricsView.launchQuickLyric(); + if (QuickLyricUtils.isQLInstalled()) { + Song song = MusicUtils.getSong(); + if (song != null) { + lyricsView.launchQuickLyric(song); + } + } else { + lyricsView.downloadQuickLyric(); + } } } - void showQuickLyricInfo() { + void showQuickLyricInfoDialog() { LyricsView lyricsView = getView(); if (lyricsView != null) { - lyricsView.showQuickLyricInfo(); + lyricsView.showQuickLyricInfoDialog(); } } @@ -108,6 +116,7 @@ private void updateLyrics() { if (lyricsView != null) { lyricsView.updateLyrics(lyrics); lyricsView.showNoLyricsView(lyrics == null); + lyricsView.showQuickLyricInfoButton(!QuickLyricUtils.isQLInstalled()); } })); } diff --git a/app/src/main/java/com/simplecity/amp_library/lyrics/LyricsView.java b/app/src/main/java/com/simplecity/amp_library/lyrics/LyricsView.java index bb3fe4e40..abfc4b6a7 100644 --- a/app/src/main/java/com/simplecity/amp_library/lyrics/LyricsView.java +++ b/app/src/main/java/com/simplecity/amp_library/lyrics/LyricsView.java @@ -1,14 +1,21 @@ package com.simplecity.amp_library.lyrics; +import android.support.annotation.NonNull; import android.support.annotation.Nullable; +import com.simplecity.amp_library.model.Song; + interface LyricsView { void updateLyrics(@Nullable String lyrics); void showNoLyricsView(boolean show); - void showQuickLyricInfo(); + void showQuickLyricInfoButton(boolean show); + + void showQuickLyricInfoDialog(); + + void downloadQuickLyric(); - void launchQuickLyric(); + void launchQuickLyric(@NonNull Song song); } diff --git a/app/src/main/java/com/simplecity/amp_library/lyrics/QuickLyricUtils.java b/app/src/main/java/com/simplecity/amp_library/lyrics/QuickLyricUtils.java index 28aa84cca..e95e6843d 100644 --- a/app/src/main/java/com/simplecity/amp_library/lyrics/QuickLyricUtils.java +++ b/app/src/main/java/com/simplecity/amp_library/lyrics/QuickLyricUtils.java @@ -22,9 +22,9 @@ public class QuickLyricUtils { private static final String QUICKLYRIC_URL = "https://d3khd.app.goo.gl/jdF1"; - public static boolean isQLInstalled(Context context) { + public static boolean isQLInstalled() { - PackageManager pm = context.getPackageManager(); + PackageManager pm = ShuttleApplication.getInstance().getPackageManager(); try { pm.getPackageInfo("com.geecko.QuickLyric", PackageManager.GET_ACTIVITIES); return true; @@ -33,7 +33,7 @@ public static boolean isQLInstalled(Context context) { } } - public static void getLyricsFor(Context context, Song song) { + static void getLyricsFor(Context context, Song song) { Intent intent = new Intent("com.geecko.QuickLyric.getLyrics"); intent.putExtra("TAGS", new String[]{song.artistName, song.name}); if (intent.resolveActivity(ShuttleApplication.getInstance().getPackageManager()) != null) { diff --git a/app/src/main/java/com/simplecity/amp_library/ui/activities/MainActivity.java b/app/src/main/java/com/simplecity/amp_library/ui/activities/MainActivity.java index 541cc2832..71564d716 100644 --- a/app/src/main/java/com/simplecity/amp_library/ui/activities/MainActivity.java +++ b/app/src/main/java/com/simplecity/amp_library/ui/activities/MainActivity.java @@ -58,7 +58,6 @@ import com.simplecity.amp_library.constants.Config; import com.simplecity.amp_library.interfaces.BackPressListener; import com.simplecity.amp_library.lyrics.LyricsFragment; -import com.simplecity.amp_library.lyrics.QuickLyricUtils; import com.simplecity.amp_library.model.Album; import com.simplecity.amp_library.model.AlbumArtist; import com.simplecity.amp_library.model.DrawerGroupItem; @@ -531,7 +530,6 @@ public boolean onCreateOptionsMenu(Menu menu) { menu.findItem(R.id.menu_share).setVisible(false); menu.findItem(R.id.menu_queue).setVisible(false); menu.findItem(R.id.menu_lyrics).setVisible(false); - menu.findItem(R.id.menu_quicklyric).setVisible(false); if (menu.findItem(GO_TO) != null) { menu.findItem(GO_TO).setVisible(false); } @@ -540,7 +538,7 @@ public boolean onCreateOptionsMenu(Menu menu) { } else { menu.findItem(R.id.action_search).setVisible(false); menu.findItem(R.id.menu_favorite).setVisible(true); - menu.findItem(QuickLyricUtils.isQLInstalled(this) ? R.id.menu_quicklyric : R.id.menu_lyrics).setVisible(true); + menu.findItem(R.id.menu_lyrics).setVisible(true); menu.findItem(R.id.menu_share).setVisible(true); if (!ShuttleUtils.isTablet() && ShuttleUtils.isLandscape()) { menu.findItem(R.id.menu_queue).setVisible(true); @@ -730,9 +728,6 @@ public boolean onOptionsItemSelected(MenuItem item) { } return true; - case R.id.menu_quicklyric: - QuickLyricUtils.getLyricsFor(this, MusicUtils.getSong()); - return true; case android.R.id.home: playingFragment = getSupportFragmentManager().findFragmentById(R.id.player_container); if (playingFragment != null) { diff --git a/app/src/main/java/com/simplecity/amp_library/ui/activities/PlayerActivity.java b/app/src/main/java/com/simplecity/amp_library/ui/activities/PlayerActivity.java index fbefd03ad..4bca6f2ab 100644 --- a/app/src/main/java/com/simplecity/amp_library/ui/activities/PlayerActivity.java +++ b/app/src/main/java/com/simplecity/amp_library/ui/activities/PlayerActivity.java @@ -50,7 +50,6 @@ import com.simplecity.amp_library.utils.MusicServiceConnectionUtils; import com.simplecity.amp_library.utils.MusicUtils; import com.simplecity.amp_library.utils.PlaylistUtils; -import com.simplecity.amp_library.lyrics.QuickLyricUtils; import com.simplecity.amp_library.utils.SettingsManager; import com.simplecity.amp_library.utils.ShuttleUtils; import com.simplecity.amp_library.utils.SleepTimer; @@ -317,11 +316,6 @@ public boolean onCreateOptionsMenu(Menu menu) { } } - if (QuickLyricUtils.isQLInstalled(this)) { - menu.findItem(R.id.menu_lyrics).setVisible(false); - menu.findItem(R.id.menu_quicklyric).setVisible(true); - } - return super.onCreateOptionsMenu(menu); } @@ -450,11 +444,6 @@ public boolean onOptionsItemSelected(MenuItem item) { return true; } - if (item.getItemId() == R.id.menu_quicklyric) { - QuickLyricUtils.getLyricsFor(this, MusicUtils.getSong()); - return true; - } - return false; } diff --git a/app/src/main/java/com/simplecity/amp_library/ui/fragments/ArtworkFragment.java b/app/src/main/java/com/simplecity/amp_library/ui/fragments/ArtworkFragment.java index 79d14971d..84d0d27a3 100644 --- a/app/src/main/java/com/simplecity/amp_library/ui/fragments/ArtworkFragment.java +++ b/app/src/main/java/com/simplecity/amp_library/ui/fragments/ArtworkFragment.java @@ -23,7 +23,6 @@ import com.simplecity.amp_library.glide.utils.GlideUtils; import com.simplecity.amp_library.model.Song; import com.simplecity.amp_library.ui.activities.PlayerActivity; -import com.simplecity.amp_library.lyrics.QuickLyricUtils; import com.simplecity.amp_library.utils.SettingsManager; import java.lang.ref.WeakReference; @@ -185,8 +184,7 @@ public boolean onDoubleTap(MotionEvent e) { if (parentFragment != null) { playingFragment = parentFragment.getParentFragment(); } - if (playingFragment != null && playingFragment instanceof PlayerFragment - && !QuickLyricUtils.isQLInstalled(fragment.getActivity())) { + if (playingFragment != null && playingFragment instanceof PlayerFragment) { ((PlayerFragment) playingFragment).toggleLyrics(); } } diff --git a/app/src/main/res/drawable-hdpi/ic_action_lyrics.png b/app/src/main/res/drawable-hdpi/ic_action_lyrics.png deleted file mode 100644 index c8be6f83a..000000000 Binary files a/app/src/main/res/drawable-hdpi/ic_action_lyrics.png and /dev/null differ diff --git a/app/src/main/res/drawable-hdpi/ic_action_lyrics_light.png b/app/src/main/res/drawable-hdpi/ic_action_lyrics_light.png deleted file mode 100644 index 06e251416..000000000 Binary files a/app/src/main/res/drawable-hdpi/ic_action_lyrics_light.png and /dev/null differ diff --git a/app/src/main/res/drawable-hdpi/ic_action_quicklyric.png b/app/src/main/res/drawable-hdpi/ic_action_quicklyric.png deleted file mode 100644 index 6c9b6faa5..000000000 Binary files a/app/src/main/res/drawable-hdpi/ic_action_quicklyric.png and /dev/null differ diff --git a/app/src/main/res/drawable-hdpi/ic_action_quicklyric_light.png b/app/src/main/res/drawable-hdpi/ic_action_quicklyric_light.png deleted file mode 100644 index 15504d6a4..000000000 Binary files a/app/src/main/res/drawable-hdpi/ic_action_quicklyric_light.png and /dev/null differ diff --git a/app/src/main/res/drawable-xhdpi/ic_action_lyrics.png b/app/src/main/res/drawable-xhdpi/ic_action_lyrics.png deleted file mode 100644 index 012e93346..000000000 Binary files a/app/src/main/res/drawable-xhdpi/ic_action_lyrics.png and /dev/null differ diff --git a/app/src/main/res/drawable-xhdpi/ic_action_lyrics_light.png b/app/src/main/res/drawable-xhdpi/ic_action_lyrics_light.png deleted file mode 100644 index 7415a2c02..000000000 Binary files a/app/src/main/res/drawable-xhdpi/ic_action_lyrics_light.png and /dev/null differ diff --git a/app/src/main/res/drawable-xhdpi/ic_action_quicklyric.png b/app/src/main/res/drawable-xhdpi/ic_action_quicklyric.png deleted file mode 100644 index 04011dfe7..000000000 Binary files a/app/src/main/res/drawable-xhdpi/ic_action_quicklyric.png and /dev/null differ diff --git a/app/src/main/res/drawable-xhdpi/ic_action_quicklyric_light.png b/app/src/main/res/drawable-xhdpi/ic_action_quicklyric_light.png deleted file mode 100644 index 265291316..000000000 Binary files a/app/src/main/res/drawable-xhdpi/ic_action_quicklyric_light.png and /dev/null differ diff --git a/app/src/main/res/drawable-xxhdpi/ic_action_lyrics.png b/app/src/main/res/drawable-xxhdpi/ic_action_lyrics.png deleted file mode 100644 index dfee0eba1..000000000 Binary files a/app/src/main/res/drawable-xxhdpi/ic_action_lyrics.png and /dev/null differ diff --git a/app/src/main/res/drawable-xxhdpi/ic_action_lyrics_light.png b/app/src/main/res/drawable-xxhdpi/ic_action_lyrics_light.png deleted file mode 100644 index aeac221b8..000000000 Binary files a/app/src/main/res/drawable-xxhdpi/ic_action_lyrics_light.png and /dev/null differ diff --git a/app/src/main/res/drawable-xxhdpi/ic_action_quicklyric.png b/app/src/main/res/drawable-xxhdpi/ic_action_quicklyric.png deleted file mode 100644 index 861f98d2e..000000000 Binary files a/app/src/main/res/drawable-xxhdpi/ic_action_quicklyric.png and /dev/null differ diff --git a/app/src/main/res/drawable-xxhdpi/ic_action_quicklyric_light.png b/app/src/main/res/drawable-xxhdpi/ic_action_quicklyric_light.png deleted file mode 100644 index e9402088f..000000000 Binary files a/app/src/main/res/drawable-xxhdpi/ic_action_quicklyric_light.png and /dev/null differ diff --git a/app/src/main/res/drawable/ic_action_lyrics_24dp.xml b/app/src/main/res/drawable/ic_action_lyrics_24dp.xml new file mode 100644 index 000000000..11d77d686 --- /dev/null +++ b/app/src/main/res/drawable/ic_action_lyrics_24dp.xml @@ -0,0 +1,12 @@ + + + + diff --git a/app/src/main/res/drawable/ic_action_lyrics_light_24dp.xml b/app/src/main/res/drawable/ic_action_lyrics_light_24dp.xml new file mode 100644 index 000000000..b0d7b8c5c --- /dev/null +++ b/app/src/main/res/drawable/ic_action_lyrics_light_24dp.xml @@ -0,0 +1,12 @@ + + + + diff --git a/app/src/main/res/menu/menu_main_activity.xml b/app/src/main/res/menu/menu_main_activity.xml index 992f59fdf..595fae424 100644 --- a/app/src/main/res/menu/menu_main_activity.xml +++ b/app/src/main/res/menu/menu_main_activity.xml @@ -39,11 +39,4 @@ app:showAsAction="ifRoom" android:visible="false"/> - - \ No newline at end of file diff --git a/app/src/main/res/menu/menu_player_activity.xml b/app/src/main/res/menu/menu_player_activity.xml index 4d3ae5fc4..60bac5c74 100644 --- a/app/src/main/res/menu/menu_player_activity.xml +++ b/app/src/main/res/menu/menu_player_activity.xml @@ -32,11 +32,4 @@ android:title="@string/lyrics" app:showAsAction="ifRoom"/> - - \ No newline at end of file diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml index 55d18e3dc..2f9470300 100644 --- a/app/src/main/res/values/themes.xml +++ b/app/src/main/res/values/themes.xml @@ -224,8 +224,7 @@ @drawable/ic_action_search @drawable/ic_action_settings @drawable/ic_action_share - @drawable/ic_action_lyrics - @drawable/ic_action_quicklyric + @drawable/ic_action_lyrics_24dp @drawable/ic_action_sort @drawable/ic_fav @drawable/ic_fav_pressed @@ -242,8 +241,7 @@ @drawable/ic_action_search_light @drawable/ic_action_settings_light @drawable/ic_action_share_light - @drawable/ic_action_lyrics_light - @drawable/ic_action_quicklyric_light + @drawable/ic_action_lyrics_light_24dp @drawable/ic_action_sort_light @drawable/ic_action_add_light @drawable/ic_fav_light @@ -259,8 +257,7 @@