aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorScott Jackson <daneren2005@gmail.com>2015-10-01 08:48:07 -0700
committerScott Jackson <daneren2005@gmail.com>2015-10-01 08:48:07 -0700
commit6b08efedf0f212e99b627ebf590fa014b955351a (patch)
tree4ded020a8455405360ed0fdaf627e654cb6cc5c7
parent78c576aaeac4b42c717f8f5944c55888b8dac4a1 (diff)
downloaddsub-6b08efedf0f212e99b627ebf590fa014b955351a.tar.gz
dsub-6b08efedf0f212e99b627ebf590fa014b955351a.tar.bz2
dsub-6b08efedf0f212e99b627ebf590fa014b955351a.zip
Add ability to star/rate albums in root folder
-rw-r--r--app/src/main/java/github/daneren2005/dsub/domain/Artist.java17
-rw-r--r--app/src/main/java/github/daneren2005/dsub/domain/MusicDirectory.java12
-rw-r--r--app/src/main/java/github/daneren2005/dsub/fragments/SelectArtistFragment.java11
-rw-r--r--app/src/main/java/github/daneren2005/dsub/service/CachedMusicService.java14
-rw-r--r--app/src/main/java/github/daneren2005/dsub/service/parser/IndexesParser.java1
-rw-r--r--app/src/main/res/values-hu/strings.xml50
-rw-r--r--app/src/main/res/values/strings.xml4
7 files changed, 81 insertions, 28 deletions
diff --git a/app/src/main/java/github/daneren2005/dsub/domain/Artist.java b/app/src/main/java/github/daneren2005/dsub/domain/Artist.java
index f48dd2f9..56e8f92e 100644
--- a/app/src/main/java/github/daneren2005/dsub/domain/Artist.java
+++ b/app/src/main/java/github/daneren2005/dsub/domain/Artist.java
@@ -35,12 +35,12 @@ public class Artist implements Serializable {
private String name;
private String index;
private boolean starred;
+ private Integer rating;
private int closeness;
public String getId() {
return id;
}
-
public void setId(String id) {
this.id = id;
}
@@ -48,7 +48,6 @@ public class Artist implements Serializable {
public String getName() {
return name;
}
-
public void setName(String name) {
this.name = name;
}
@@ -56,7 +55,6 @@ public class Artist implements Serializable {
public String getIndex() {
return index;
}
-
public void setIndex(String index) {
this.index = index;
}
@@ -64,15 +62,24 @@ public class Artist implements Serializable {
public boolean isStarred() {
return starred;
}
-
public void setStarred(boolean starred) {
this.starred = starred;
}
+
+ public int getRating() {
+ return rating == null ? 0 : rating;
+ }
+ public void setRating(Integer rating) {
+ if(rating == null || rating == 0) {
+ this.rating = null;
+ } else {
+ this.rating = rating;
+ }
+ }
public int getCloseness() {
return closeness;
}
-
public void setCloseness(int closeness) {
this.closeness = closeness;
}
diff --git a/app/src/main/java/github/daneren2005/dsub/domain/MusicDirectory.java b/app/src/main/java/github/daneren2005/dsub/domain/MusicDirectory.java
index 3a2b9834..42aa5288 100644
--- a/app/src/main/java/github/daneren2005/dsub/domain/MusicDirectory.java
+++ b/app/src/main/java/github/daneren2005/dsub/domain/MusicDirectory.java
@@ -197,6 +197,7 @@ public class MusicDirectory implements Serializable {
private Bookmark bookmark;
private int type = 0;
private int closeness;
+ private transient Artist linkedArtist;
public Entry() {
@@ -208,6 +209,9 @@ public class MusicDirectory implements Serializable {
this.id = artist.getId();
this.title = artist.getName();
this.directory = true;
+ this.starred = artist.isStarred();
+ this.rating = artist.getRating();
+ this.linkedArtist = artist;
}
@TargetApi(Build.VERSION_CODES.GINGERBREAD_MR1)
@@ -469,6 +473,10 @@ public class MusicDirectory implements Serializable {
public void setStarred(boolean starred) {
this.starred = starred;
+
+ if(linkedArtist != null) {
+ linkedArtist.setStarred(starred);
+ }
}
public int getRating() {
@@ -480,6 +488,10 @@ public class MusicDirectory implements Serializable {
} else {
this.rating = rating;
}
+
+ if(linkedArtist != null) {
+ linkedArtist.setRating(rating);
+ }
}
public Bookmark getBookmark() {
diff --git a/app/src/main/java/github/daneren2005/dsub/fragments/SelectArtistFragment.java b/app/src/main/java/github/daneren2005/dsub/fragments/SelectArtistFragment.java
index a9d5afd6..4599d3cb 100644
--- a/app/src/main/java/github/daneren2005/dsub/fragments/SelectArtistFragment.java
+++ b/app/src/main/java/github/daneren2005/dsub/fragments/SelectArtistFragment.java
@@ -3,6 +3,7 @@ package github.daneren2005.dsub.fragments;
import android.annotation.TargetApi;
import android.os.Build;
import android.os.Bundle;
+import android.util.Log;
import android.view.ContextMenu;
import android.view.LayoutInflater;
import android.view.Menu;
@@ -20,6 +21,7 @@ import github.daneren2005.dsub.domain.Artist;
import github.daneren2005.dsub.domain.Indexes;
import github.daneren2005.dsub.domain.MusicDirectory;
import github.daneren2005.dsub.domain.MusicFolder;
+import github.daneren2005.dsub.domain.ServerInfo;
import github.daneren2005.dsub.service.MusicService;
import github.daneren2005.dsub.util.Constants;
import github.daneren2005.dsub.util.ProgressListener;
@@ -97,16 +99,25 @@ public class SelectArtistFragment extends SelectRecyclerFragment<Artist> impleme
Bundle args = new Bundle();
args.putString(Constants.INTENT_EXTRA_NAME_ID, artist.getId());
args.putString(Constants.INTENT_EXTRA_NAME_NAME, artist.getName());
+
if ("root".equals(artist.getId())) {
args.putSerializable(Constants.FRAGMENT_LIST, (Serializable) entries);
}
+ if(ServerInfo.checkServerVersion(context, "1.13") && !Util.isOffline(context)) {
+ args.putSerializable(Constants.INTENT_EXTRA_NAME_DIRECTORY, new MusicDirectory.Entry(artist));
+ }
args.putBoolean(Constants.INTENT_EXTRA_NAME_ARTIST, true);
+
fragment.setArguments(args);
} else {
fragment = new SelectArtistFragment();
Bundle args = new Bundle();
args.putString(Constants.INTENT_EXTRA_NAME_ID, artist.getId());
args.putString(Constants.INTENT_EXTRA_NAME_NAME, artist.getName());
+ if(ServerInfo.checkServerVersion(context, "1.13") && !Util.isOffline(context)) {
+ args.putSerializable(Constants.INTENT_EXTRA_NAME_DIRECTORY, new MusicDirectory.Entry(artist));
+ }
+
fragment.setArguments(args);
}
diff --git a/app/src/main/java/github/daneren2005/dsub/service/CachedMusicService.java b/app/src/main/java/github/daneren2005/dsub/service/CachedMusicService.java
index f053c215..8a17d8f3 100644
--- a/app/src/main/java/github/daneren2005/dsub/service/CachedMusicService.java
+++ b/app/src/main/java/github/daneren2005/dsub/service/CachedMusicService.java
@@ -837,11 +837,21 @@ public class CachedMusicService implements MusicService {
@Override
public void setRating(final Entry entry, final int rating, Context context, ProgressListener progressListener) throws Exception {
musicService.setRating(entry, rating, context, progressListener);
-
+
new GenericEntryUpdater(context, entry) {
@Override
+ public boolean checkResult(Entry entry, Entry check) {
+ if (entry.getId().equals(check.getId())) {
+ check.setRating(entry.getRating());
+ return true;
+ }
+
+ return false;
+ }
+
+ @Override
public void updateResult(Entry result) {
- result.setRating(rating);
+
}
}.execute();
}
diff --git a/app/src/main/java/github/daneren2005/dsub/service/parser/IndexesParser.java b/app/src/main/java/github/daneren2005/dsub/service/parser/IndexesParser.java
index 0ac86476..f0cce217 100644
--- a/app/src/main/java/github/daneren2005/dsub/service/parser/IndexesParser.java
+++ b/app/src/main/java/github/daneren2005/dsub/service/parser/IndexesParser.java
@@ -78,6 +78,7 @@ public class IndexesParser extends MusicDirectoryEntryParser {
artist.setName(get("name"));
artist.setIndex(index);
artist.setStarred(get("starred") != null);
+ artist.setRating(getInteger("userRating"));
// Combine the id's for the two artists
if(artistList.containsKey(artist.getName())) {
diff --git a/app/src/main/res/values-hu/strings.xml b/app/src/main/res/values-hu/strings.xml
index 8531c820..e3049769 100644
--- a/app/src/main/res/values-hu/strings.xml
+++ b/app/src/main/res/values-hu/strings.xml
@@ -131,7 +131,7 @@
<string name="search.more">Továbbiak</string>
<string name="progress.wait">Kérem várjon...</string>
- <string name="progress.artist_info">Az előadó életrajzának betöltése</string>
+ <string name="progress.artist_info">Az előadó életrajzának betöltése...</string>
<string name="music_library.label">Médiatár</string>
<string name="music_library.label_offline">Kapcsolat nélküli médiák</string>
@@ -180,14 +180,14 @@
<string name="download.empty">A várólista üres!</string>
<string name="download.shuffle_loading">Kevert sorrendű lista betöltése...</string>
<string name="download.playerstate_downloading">Letöltés - \"%s\"</string>
- <string name="download.playerstate_mobile_disabled">Várakozás a Wi-Fi hálózatra a letöltéshez</string>
+ <string name="download.playerstate_mobile_disabled">Letöltés, várakozás a Wi-Fi hálózatra...</string>
<string name="download.playerstate_buffering">Pufferelés</string>
- <string name="download.playerstate_playing_shuffle">Sorrend keverése</string>
+ <string name="download.playerstate_playing_shuffle">Dalsorrend keverése</string>
<string name="download.menu_show_album">Ugrás az albumhoz</string>
<string name="download.menu_lyrics">Dalszöveg</string>
<string name="download.menu_remove_all">Összes eltávolítása</string>
<string name="download.menu_screen_on">Kijelző be</string>
- <string name="download.menu_shuffle">Sorrend keverése</string>
+ <string name="download.menu_shuffle">Dalsorrend keverése</string>
<string name="download.menu_toggle">Váltás</string>
<string name="download.menu_save">Mentés lejátszási listába</string>
<string name="download.menu_shuffle_notification">Lejátszás kevert sorrendben</string>
@@ -195,7 +195,7 @@
<string name="download.playlist_title">Mentés lejátszási listába</string>
<string name="download.playlist_name">Lejátszási lista neve:</string>
<string name="download.playlist_saving">\"%s\" lejátszási lista mentése...</string>
- <string name="download.playlist_done">Lejátszási lista mentése sikeres</string>
+ <string name="download.playlist_done">Lejátszási lista mentése kész.</string>
<string name="download.playlist_error">Lejátszási lista mentése sikertelen, próbálja később!</string>
<string name="download.repeat_off">Ismétlés ki</string>
<string name="download.repeat_all">Összes ismétlése</string>
@@ -286,7 +286,7 @@
<string name="settings.cache_location_error">Hibás gyorsítótár hely! Az alapértelmezett használata.</string>
<string name="settings.cache_location_reset">A beállított gyorsítótár-hely már nem írható! Ha a közelmúltban frissítette telefonja Android rendszerét 4.4.x KitKat verzióra, abban az SD kártya kezelése megváltozott, és az alkalmazások csak egy speciális helyre tudnak írni. A Dsub már automatikusan átállt a megfelelő helyre. Ahhoz, hogy a régi adatokat törölni tudja, csatlakoztassa az SD kártyát a számítógépéhez, és törölje a régi mappát!</string>
<string name="settings.cache_clear">Gyorsítótár törlése</string>
- <string name="settings.cache_clear_complete">Gyorsítótár törlése kész!</string>
+ <string name="settings.cache_clear_complete">Gyorsítótár törlése kész.</string>
<string name="settings.testing_connection">Kapcsolat tesztelése...</string>
<string name="settings.testing_ok">Kapcsolat OK!</string>
<string name="settings.testing_unlicensed">Kapcsolat OK! A kiszolgálónak nincs licence!</string>
@@ -303,9 +303,9 @@
<string name="settings.theme_fullscreen_summary">Teljes képernyős üzemmód (értesítési sáv elrejtése).</string>
<string name="settings.track_title">Dalsorszám megjelenítése</string>
<string name="settings.track_summary">Dalsorszám megjelenítése a dal címe előtt, ha létezik.</string>
- <string name="settings.custom_sort">Egyéni rendezés</string>
- <string name="settings.custom_sort_summary">A kiszolgáló alapértelmezett rendezésének felülbírálása, rendezés a lemez sorszáma és a kiadás éve alapján.</string>
- <string name="settings.open_to_tab">Főlap</string>
+ <string name="settings.custom_sort">Évek szerinti sorrend</string>
+ <string name="settings.custom_sort_summary">Albumok rendezése a kiadás éve szerint vagy betűrendben.</string>
+ <string name="settings.open_to_tab">Alapértelmezett főlap</string>
<string name="settings.open_to_tab_summary">A beállított lap megnyitása alapértelmezettként.</string>
<string name="settings.network_title">Hálózat</string>
<string name="settings.max_bitrate_wifi">Max. audió bitráta - Wi-Fi</string>
@@ -424,22 +424,27 @@
<string name="settings.sync_notification">Szinkronizálási értesítések</string>
<string name="settings.sync_notification_summary">Értesítés megjelenítése, ha új média került szinkronizálásra.</string>
<string name="settings.menu_options.title">Opcionális menübeállítások</string>
+ <string name="settings.menu_options.play_now_summary">Lejátszás opció megjelenítése a menüben.</string>
+ <string name="settings.menu_options.play_shuffled_summary">Lejátszás kevert sorrendben opció megjelenítése a menüben.</string>
<string name="settings.menu_options.play_next_summary">Sorba állítás következőnek opció megjelenítése a menüben.</string>
<string name="settings.menu_options.play_last_summary">Sorba állítás utolsónak opció megjelenítése a menüben.</string>
+ <string name="settings.menu_options.download_summary">Letöltés gyorsítótárba opció megjelenítése a menüben.</string>
+ <string name="settings.menu_options.pin_summary">Letöltés tárolásra (megőrzés) opció megjelenítése a menüben.</string>
+ <string name="settings.menu_options.delete_summary">Törlés opció megjelenítése a menüben.</string>
<string name="settings.menu_options.star_summary">Csillagozás opció megjelenítése a menüben.</string>
<string name="settings.menu_options.shared_summary">Megosztás opció megjelenítése a menüben.</string>
<string name="settings.menu_options.rate_summary">Értékelés opció megjelenítése a menüben.</string>
- <string name="settings.browse_by_tags">Böngészés ID3 Tag használatával</string>
- <string name="settings.browse_by_tags_summary">ID3 Tag módszer használata a fájlredszer alapú mód helyett. Subsonic 4.7+ verzió felett!</string>
+ <string name="settings.browse_by_tags">Böngészés ID3 Tag alapján</string>
+ <string name="settings.browse_by_tags_summary">ID3 Tag alapú böngészés a mappastruktúra helyett. Subsonic 4.7+ verzió felett!</string>
<string name="settings.disable_exit_prompt">Kilépés megerősítésének tiltása</string>
- <string name="settings.disable_exit_prompt_summary">A főoldalon a vissza gomb megnyomásakor azonnali kilépés az alkalmazásból.</string>
+ <string name="settings.disable_exit_prompt_summary">A Főoldalon állva a vissza gomb megnyomásakor azonnali kilépés az alkalmazásból.</string>
<string name="settings.override_system_language">A rendszer nyelvének felülbírálása</string>
<string name="settings.override_system_language_summary">A Dsub megjelenítése angol nyelven abban az esetben is, ha rendelkezik fordítással. Az alkalmazást törölni kell a memóriából, mert a beállítás csak újraindítás után lép érvénybe!</string>
<string name="settings.drawer_items_title">Oldalsáv elemei</string>
<string name="settings.play_now_after">Lejátszás utána</string>
<string name="settings.play_now_after_summary">Egy helyi menü, amivel lehetővé válik minden dal lejátszása a kijelölt elem után (mint a Subsonic webes felületén)</string>
- <string name="settings.large_album_art">Nagy méretű albumborítók</string>
- <string name="settings.large_album_art_summary">Albumok megjelenítése rácsnézetben és nagy méretű albumborítóval a listanézet helyett.</string>
+ <string name="settings.large_album_art">Nagyméretű albumborítók</string>
+ <string name="settings.large_album_art_summary">Albumok megjelenítése rácsnézetben és nagyméretű albumborítóval a listanézet helyett.</string>
<string name="settings.admin_enabled">Admin engedélyezése</string>
<string name="settings.admin_enabled_summary">Admin menüpont megjelenítése az elhúzható oldalsávon.</string>
<string name="settings.replay_gain">Hangerő-kiegyenlítés (Replay Gain)</string>
@@ -452,15 +457,18 @@
<string name="settings.replay_gain_untagged">Dalok hangerő-kiegyenlítés nélkül</string>
<string name="settings.casting">Casting (Tartalmak átküldése)</string>
<string name="settings.casting_proxy">Eszköz használata proxyként</string>
- <string name="settings.casting_proxy_summary">Streamelés az eszközön (mint egy proxyn) keresztül. Ez megoldást hozhat néhány esetben, pl. saját aláírású tanúsítvány használatakor.</string>
+ <string name="settings.casting_proxy_summary">Streamelés az eszközön (mint egy proxyn) keresztül. Ez megoldást jelenthet néhány esetben, pl. saját aláírású tanúsítvány használatakor.</string>
<string name="settings.rename_duplicates">Duplikált dalok átnevezése</string>
<string name="settings.rename_duplicates_summary">Duplikált dalok átnevezése az eredeti fájlnévre, így megkülönböztethetővé válnak.</string>
<string name="settings.start_on_headphones">Lejátszó elindítása</string>
<string name="settings.start_on_headphones_summary">Lejátszó elindítása fülhallgató csatlakoztatásakor. Ez a funkció olyan szolgáltatás használatát igényli, ami a Dsub elindítása nélkül tudja kontrollálni a fülhallgató csatlakoztatási eseményeket.</string>
- <string name="settings.color_action_bar">Színes műveletsáv</string>
- <string name="settings.color_action_bar.summary">Színes műveletsáv és értesítési sáv használata.</string>
+ <string name="settings.color_action_bar">Színes sávok</string>
+ <string name="settings.color_action_bar.summary">Színes kezelő- és értesítési sáv használata.</string>
+ <string name="settings.shuffle_by_album">Keverés albumok szerint</string>
+ <string name="settings.shuffle_by_album.true">Dalsorrend keverése albumonként szétválasztva.</string>
+ <string name="settings.shuffle_by_album.false">Dalsorrend keverése az összes dalt együtt kezelve.</string>
- <string name="shuffle.title">Sorrend keverése</string>
+ <string name="shuffle.title">Dalsorrend keverése</string>
<string name="shuffle.startYear">Kezdő év:</string>
<string name="shuffle.endYear">Befejező év:</string>
<string name="shuffle.genre">Műfaj:</string>
@@ -493,15 +501,15 @@
<string name="admin.create_user_error">A felhasználó létrehozása sikertelen!</string>
<string name="admin.change_username_invalid">Adjon meg egy érvényes felhasználónevet!</string>
<string name="admin.update_permissions">Jogosultságok módosítása</string>
- <string name="admin.update_permissions_success">\"%1$s\" jogosultságainak módosítása sikerült</string>
+ <string name="admin.update_permissions_success">\"%1$s\" jogosultságainak módosítása kész.</string>
<string name="admin.update_permissions_error">\"%1$s\" jogosultságainak módosítása sikertelen!</string>
<string name="admin.change_email">Email csere</string>
- <string name="admin.change_email_success">\"%1$s\" email címének módosítása sikerült</string>
+ <string name="admin.change_email_success">\"%1$s\" email címének módosítása kész.</string>
<string name="admin.change_email_error">\"%1$s\" email címének módosítása sikertelen!</string>
<string name="admin.change_email_label">Új email:</string>
<string name="admin.change_email_invalid">Adjon meg egy érvényes email címet!</string>
<string name="admin.change_password">Jelszó csere</string>
- <string name="admin.change_password_success">\"%1$s\" jelszavának módosítása sikerült</string>
+ <string name="admin.change_password_success">\"%1$s\" jelszavának módosítása kész.</string>
<string name="admin.change_password_error">\"%1$s\" jelszavának módosítása sikertelen!</string>
<string name="admin.change_password_label">Új jelszó:</string>
<string name="admin.change_password_invalid">Adjon meg egy érvényes jelszót!</string>
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 972fb5d4..7c682930 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -26,6 +26,8 @@
<string name="common.empty">No data</string>
<string name="common.warning">Warning</string>
<string name="common.close">Close</string>
+ <string name="common.false">No</string>
+ <string name="common.true">Yes</string>
<string name="button_bar.home">Home</string>
<string name="button_bar.browse">Library</string>
@@ -599,6 +601,7 @@
<string name="details.title.album">Album Details</string>
<string name="details.title.podcast">Podcast Details</string>
<string name="details.title.playlist">Playlist Details</string>
+ <string name="details.title.artist">Artist Details</string>
<string name="details.podcast">Podcast</string>
<string name="details.status">Status</string>
<string name="details.artist">Artist</string>
@@ -634,6 +637,7 @@
<string name="details.song">Song</string>
<string name="details.position">Position</string>
<string name="details.updated">Updated</string>
+ <string name="details.starred">Starred</string>
<plurals name="select_album_n_songs">
<item quantity="zero">No songs</item>