Skip to content

Commit

Permalink
More QuickLyric relateed changes..
Browse files Browse the repository at this point in the history
- Don’t directly open QuickLyric when lyrics button is chosen. Instead, show the lyrics fragment, with an option to launch QuickLyric if no embedded lyrics are present. Removed ‘QuickLyric’ menu item (just show ‘Lyrics’ instead)

- Created new lyrics icon, removed unused drawabled.

- Hide QuickLyric ‘info’ button if QL is already installed.
  • Loading branch information
timusus committed Apr 10, 2017
1 parent 8400012 commit 95fa418
Show file tree
Hide file tree
Showing 24 changed files with 76 additions and 55 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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;
Expand All @@ -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
*/
Expand All @@ -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);

Expand Down Expand Up @@ -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) {
Expand All @@ -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();
}


}
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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();
}
}

Expand Down Expand Up @@ -108,6 +116,7 @@ private void updateLyrics() {
if (lyricsView != null) {
lyricsView.updateLyrics(lyrics);
lyricsView.showNoLyricsView(lyrics == null);
lyricsView.showQuickLyricInfoButton(!QuickLyricUtils.isQLInstalled());
}
}));
}
Expand Down
Original file line number Diff line number Diff line change
@@ -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);
}
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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);
}
Expand All @@ -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);
Expand Down Expand Up @@ -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) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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);
}

Expand Down Expand Up @@ -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;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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();
}
}
Expand Down
Binary file removed app/src/main/res/drawable-hdpi/ic_action_lyrics.png
Binary file not shown.
Binary file not shown.
Binary file removed app/src/main/res/drawable-hdpi/ic_action_quicklyric.png
Binary file not shown.
Binary file not shown.
Binary file removed app/src/main/res/drawable-xhdpi/ic_action_lyrics.png
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file removed app/src/main/res/drawable-xxhdpi/ic_action_lyrics.png
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
12 changes: 12 additions & 0 deletions app/src/main/res/drawable/ic_action_lyrics_24dp.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24.0"
android:viewportHeight="24.0">
<path
android:fillColor="#FFFFFFFF"
android:pathData="M3,3h18v2H3V3M3,7h10.895v2H3V7M3,11h9v2H3V11M3,15h9v2H3V15M3,19h18v2H3V19z"/>
<path
android:fillColor="#FFFFFFFF"
android:pathData="M17.175,7.08v5.062c-0.274,-0.093 -0.547,-0.143 -0.822,-0.143c-1.366,0 -2.458,1.094 -2.458,2.46s1.092,2.461 2.458,2.461s2.461,-1.095 2.461,-2.461V8.72H21V7.08H17.175z"/>
</vector>
12 changes: 12 additions & 0 deletions app/src/main/res/drawable/ic_action_lyrics_light_24dp.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24.0"
android:viewportHeight="24.0">
<path
android:fillColor="#FF3C3C3C"
android:pathData="M3,3h18v2H3V3M3,7h10.895v2H3V7M3,11h9v2H3V11M3,15h9v2H3V15M3,19h18v2H3V19z"/>
<path
android:fillColor="#FF3C3C3C"
android:pathData="M17.175,7.08v5.062c-0.274,-0.093 -0.547,-0.143 -0.822,-0.143c-1.366,0 -2.458,1.094 -2.458,2.46s1.092,2.461 2.458,2.461s2.461,-1.095 2.461,-2.461V8.72H21V7.08H17.175z"/>
</vector>
7 changes: 0 additions & 7 deletions app/src/main/res/menu/menu_main_activity.xml
Original file line number Diff line number Diff line change
Expand Up @@ -39,11 +39,4 @@
app:showAsAction="ifRoom"
android:visible="false"/>

<item
android:id="@+id/menu_quicklyric"
android:icon="?attr/btn_quicklyric"
android:title="@string/quicklyric"
app:showAsAction="ifRoom"
android:visible="false"/>

</menu>
7 changes: 0 additions & 7 deletions app/src/main/res/menu/menu_player_activity.xml
Original file line number Diff line number Diff line change
Expand Up @@ -32,11 +32,4 @@
android:title="@string/lyrics"
app:showAsAction="ifRoom"/>

<item
android:id="@+id/menu_quicklyric"
android:icon="?attr/btn_quicklyric"
android:title="@string/quicklyric"
app:showAsAction="ifRoom"
android:visible="false"/>

</menu>
9 changes: 3 additions & 6 deletions app/src/main/res/values/themes.xml
Original file line number Diff line number Diff line change
Expand Up @@ -224,8 +224,7 @@
<item name="btn_search">@drawable/ic_action_search</item>
<item name="btn_settings">@drawable/ic_action_settings</item>
<item name="btn_share">@drawable/ic_action_share</item>
<item name="btn_lyrics">@drawable/ic_action_lyrics</item>
<item name="btn_quicklyric">@drawable/ic_action_quicklyric</item>
<item name="btn_lyrics">@drawable/ic_action_lyrics_24dp</item>
<item name="btn_sort">@drawable/ic_action_sort</item>
<item name="btn_fav">@drawable/ic_fav</item>
<item name="btn_fav_pressed">@drawable/ic_fav_pressed</item>
Expand All @@ -242,8 +241,7 @@
<item name="btn_search">@drawable/ic_action_search_light</item>
<item name="btn_settings">@drawable/ic_action_settings_light</item>
<item name="btn_share">@drawable/ic_action_share_light</item>
<item name="btn_lyrics">@drawable/ic_action_lyrics_light</item>
<item name="btn_quicklyric">@drawable/ic_action_quicklyric_light</item>
<item name="btn_lyrics">@drawable/ic_action_lyrics_light_24dp</item>
<item name="btn_sort">@drawable/ic_action_sort_light</item>
<item name="btn_add">@drawable/ic_action_add_light</item>
<item name="btn_fav">@drawable/ic_fav_light</item>
Expand All @@ -259,8 +257,7 @@
<style name="AppTheme.Light.Buttons.Inverse" parent="Theme.AppCompat.Light.NoActionBar">
<item name="btn_search">@drawable/ic_action_search</item>
<item name="btn_settings">@drawable/ic_action_settings</item>
<item name="btn_lyrics">@drawable/ic_action_lyrics</item>
<item name="btn_quicklyric">@drawable/ic_action_quicklyric</item>
<item name="btn_lyrics">@drawable/ic_action_lyrics_24dp</item>
<item name="btn_share">@drawable/ic_action_share</item>
<item name="btn_sort">@drawable/ic_action_sort</item>
<item name="btn_add">@drawable/ic_action_add</item>
Expand Down

0 comments on commit 95fa418

Please sign in to comment.