diff options
-rw-r--r-- | res/menu/similar_artists.xml | 8 | ||||
-rw-r--r-- | res/values/strings.xml | 1 | ||||
-rw-r--r-- | src/github/daneren2005/dsub/fragments/SimilarArtistFragment.java | 52 | ||||
-rw-r--r-- | src/github/daneren2005/dsub/util/Util.java | 7 |
4 files changed, 49 insertions, 19 deletions
diff --git a/res/menu/similar_artists.xml b/res/menu/similar_artists.xml new file mode 100644 index 00000000..bffa1837 --- /dev/null +++ b/res/menu/similar_artists.xml @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="utf-8"?> +<menu xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:compat="http://schemas.android.com/apk/res-auto"> + + <item + android:id="@+id/menu_show_missing" + android:title="@string/menu.show_missing"/> +</menu>
\ No newline at end of file diff --git a/res/values/strings.xml b/res/values/strings.xml index ebffb19b..314fc9bf 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -105,6 +105,7 @@ <string name="menu.rate">Set Rating</string>
<string name="menu.top_tracks">Last.FM Top Tracks</string>
<string name="menu.similar_artists">Similar Artists</string>
+ <string name="menu.show_missing">Show missing</string>
<string name="playlist.label">Playlists</string>
<string name="playlist.update_info">Update Information</string>
diff --git a/src/github/daneren2005/dsub/fragments/SimilarArtistFragment.java b/src/github/daneren2005/dsub/fragments/SimilarArtistFragment.java index 8fdd6994..26d7fb5e 100644 --- a/src/github/daneren2005/dsub/fragments/SimilarArtistFragment.java +++ b/src/github/daneren2005/dsub/fragments/SimilarArtistFragment.java @@ -15,44 +15,33 @@ package github.daneren2005.dsub.fragments; -import android.os.Build; +import android.app.AlertDialog; import android.os.Bundle; -import android.support.v4.widget.SwipeRefreshLayout; -import android.util.Log; +import android.text.method.LinkMovementMethod; import android.view.ContextMenu; -import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; import android.view.View; -import android.view.ViewGroup; -import android.widget.AbsListView; import android.widget.AdapterView; import android.widget.ArrayAdapter; -import android.widget.LinearLayout; -import android.widget.ListView; import android.widget.TextView; + import github.daneren2005.dsub.R; import github.daneren2005.dsub.domain.Artist; import github.daneren2005.dsub.domain.ArtistInfo; -import github.daneren2005.dsub.domain.Indexes; -import github.daneren2005.dsub.domain.MusicDirectory; -import github.daneren2005.dsub.domain.MusicFolder; import github.daneren2005.dsub.service.MusicService; -import github.daneren2005.dsub.service.MusicServiceFactory; -import github.daneren2005.dsub.util.BackgroundTask; import github.daneren2005.dsub.util.Constants; import github.daneren2005.dsub.util.ProgressListener; -import github.daneren2005.dsub.util.TabBackgroundTask; import github.daneren2005.dsub.util.Util; import github.daneren2005.dsub.view.ArtistAdapter; -import java.io.Serializable; -import java.util.ArrayList; +import java.net.URLEncoder; import java.util.List; public class SimilarArtistFragment extends SelectListFragment<Artist> { private static final String TAG = SimilarArtistFragment.class.getSimpleName(); + private ArtistInfo info; private String artistId; @Override @@ -64,6 +53,21 @@ public class SimilarArtistFragment extends SelectListFragment<Artist> { } @Override + public boolean onOptionsItemSelected(MenuItem item) { + if(super.onOptionsItemSelected(item)) { + return true; + } + + switch (item.getItemId()) { + case R.id.menu_show_missing: + showMissingArtists(); + break; + } + + return false; + } + + @Override public void onCreateContextMenu(ContextMenu menu, View view, ContextMenu.ContextMenuInfo menuInfo) { super.onCreateContextMenu(menu, view, menuInfo); @@ -100,7 +104,7 @@ public class SimilarArtistFragment extends SelectListFragment<Artist> { @Override public int getOptionsMenu() { - return R.menu.empty; + return R.menu.similar_artists; } @Override @@ -110,7 +114,7 @@ public class SimilarArtistFragment extends SelectListFragment<Artist> { @Override public List<Artist> getObjects(MusicService musicService, boolean refresh, ProgressListener listener) throws Exception { - ArtistInfo info = musicService.getArtistInfo(artistId, refresh, context, listener); + info = musicService.getArtistInfo(artistId, refresh, context, listener); return info.getSimilarArtists(); } @@ -118,4 +122,16 @@ public class SimilarArtistFragment extends SelectListFragment<Artist> { public int getTitleResource() { return R.string.menu_similar_artists; } + + private void showMissingArtists() { + StringBuilder b = new StringBuilder(); + + for(String name: info.getMissingArtists()) { + b.append("<h3><a href=\"https://www.google.com/#q=" + URLEncoder.encode(name) + "\">" + name + "</a></h3> "); + } + + Util.showHTMLDialog(context, R.string.menu_similar_artists, b.toString()); + + // Util.info(context, R.string.menu_similar_artists, b.toString()); + } } diff --git a/src/github/daneren2005/dsub/util/Util.java b/src/github/daneren2005/dsub/util/Util.java index ae0d668c..f899b9e4 100644 --- a/src/github/daneren2005/dsub/util/Util.java +++ b/src/github/daneren2005/dsub/util/Util.java @@ -1040,10 +1040,13 @@ public final class Util { ((TextView)dialog.findViewById(android.R.id.message)).setMovementMethod(LinkMovementMethod.getInstance()); } public static void showHTMLDialog(Context context, int title, int message) { + showHTMLDialog(context, title, context.getResources().getString(message)); + } + public static void showHTMLDialog(Context context, int title, String message) { AlertDialog dialog = new AlertDialog.Builder(context) .setIcon(android.R.drawable.ic_dialog_info) .setTitle(title) - .setMessage(Html.fromHtml(context.getResources().getString(message))) + .setMessage(Html.fromHtml(message)) .setPositiveButton(R.string.common_ok, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int i) { @@ -1051,6 +1054,8 @@ public final class Util { } }) .show(); + + ((TextView)dialog.findViewById(android.R.id.message)).setMovementMethod(LinkMovementMethod.getInstance()); } public static void sleepQuietly(long millis) { |