From 6b08efedf0f212e99b627ebf590fa014b955351a Mon Sep 17 00:00:00 2001 From: Scott Jackson Date: Thu, 1 Oct 2015 08:48:07 -0700 Subject: Add ability to star/rate albums in root folder --- .../github/daneren2005/dsub/domain/Artist.java | 17 +++++--- .../daneren2005/dsub/domain/MusicDirectory.java | 12 ++++++ .../dsub/fragments/SelectArtistFragment.java | 11 +++++ .../dsub/service/CachedMusicService.java | 14 +++++- .../dsub/service/parser/IndexesParser.java | 1 + app/src/main/res/values-hu/strings.xml | 50 +++++++++++++--------- app/src/main/res/values/strings.xml | 4 ++ 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 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 @@ Továbbiak Kérem várjon... - Az előadó életrajzának betöltése + Az előadó életrajzának betöltése... Médiatár Kapcsolat nélküli médiák @@ -180,14 +180,14 @@ A várólista üres! Kevert sorrendű lista betöltése... Letöltés - \"%s\" - Várakozás a Wi-Fi hálózatra a letöltéshez + Letöltés, várakozás a Wi-Fi hálózatra... Pufferelés - Sorrend keverése + Dalsorrend keverése Ugrás az albumhoz Dalszöveg Összes eltávolítása Kijelző be - Sorrend keverése + Dalsorrend keverése Váltás Mentés lejátszási listába Lejátszás kevert sorrendben @@ -195,7 +195,7 @@ Mentés lejátszási listába Lejátszási lista neve: \"%s\" lejátszási lista mentése... - Lejátszási lista mentése sikeres + Lejátszási lista mentése kész. Lejátszási lista mentése sikertelen, próbálja később! Ismétlés ki Összes ismétlése @@ -286,7 +286,7 @@ Hibás gyorsítótár hely! Az alapértelmezett használata. 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! Gyorsítótár törlése - Gyorsítótár törlése kész! + Gyorsítótár törlése kész. Kapcsolat tesztelése... Kapcsolat OK! Kapcsolat OK! A kiszolgálónak nincs licence! @@ -303,9 +303,9 @@ Teljes képernyős üzemmód (értesítési sáv elrejtése). Dalsorszám megjelenítése Dalsorszám megjelenítése a dal címe előtt, ha létezik. - Egyéni rendezés - 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. - Főlap + Évek szerinti sorrend + Albumok rendezése a kiadás éve szerint vagy betűrendben. + Alapértelmezett főlap A beállított lap megnyitása alapértelmezettként. Hálózat Max. audió bitráta - Wi-Fi @@ -424,22 +424,27 @@ Szinkronizálási értesítések Értesítés megjelenítése, ha új média került szinkronizálásra. Opcionális menübeállítások + Lejátszás opció megjelenítése a menüben. + Lejátszás kevert sorrendben opció megjelenítése a menüben. Sorba állítás következőnek opció megjelenítése a menüben. Sorba állítás utolsónak opció megjelenítése a menüben. + Letöltés gyorsítótárba opció megjelenítése a menüben. + Letöltés tárolásra (megőrzés) opció megjelenítése a menüben. + Törlés opció megjelenítése a menüben. Csillagozás opció megjelenítése a menüben. Megosztás opció megjelenítése a menüben. Értékelés opció megjelenítése a menüben. - Böngészés ID3 Tag használatával - ID3 Tag módszer használata a fájlredszer alapú mód helyett. Subsonic 4.7+ verzió felett! + Böngészés ID3 Tag alapján + ID3 Tag alapú böngészés a mappastruktúra helyett. Subsonic 4.7+ verzió felett! Kilépés megerősítésének tiltása - A főoldalon a vissza gomb megnyomásakor azonnali kilépés az alkalmazásból. + A Főoldalon állva a vissza gomb megnyomásakor azonnali kilépés az alkalmazásból. A rendszer nyelvének felülbírálása 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! Oldalsáv elemei Lejátszás utána 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) - Nagy méretű albumborítók - Albumok megjelenítése rácsnézetben és nagy méretű albumborítóval a listanézet helyett. + Nagyméretű albumborítók + Albumok megjelenítése rácsnézetben és nagyméretű albumborítóval a listanézet helyett. Admin engedélyezése Admin menüpont megjelenítése az elhúzható oldalsávon. Hangerő-kiegyenlítés (Replay Gain) @@ -452,15 +457,18 @@ Dalok hangerő-kiegyenlítés nélkül Casting (Tartalmak átküldése) Eszköz használata proxyként - 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. + 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. Duplikált dalok átnevezése Duplikált dalok átnevezése az eredeti fájlnévre, így megkülönböztethetővé válnak. Lejátszó elindítása 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. - Színes műveletsáv - Színes műveletsáv és értesítési sáv használata. + Színes sávok + Színes kezelő- és értesítési sáv használata. + Keverés albumok szerint + Dalsorrend keverése albumonként szétválasztva. + Dalsorrend keverése az összes dalt együtt kezelve. - Sorrend keverése + Dalsorrend keverése Kezdő év: Befejező év: Műfaj: @@ -493,15 +501,15 @@ A felhasználó létrehozása sikertelen! Adjon meg egy érvényes felhasználónevet! Jogosultságok módosítása - \"%1$s\" jogosultságainak módosítása sikerült + \"%1$s\" jogosultságainak módosítása kész. \"%1$s\" jogosultságainak módosítása sikertelen! Email csere - \"%1$s\" email címének módosítása sikerült + \"%1$s\" email címének módosítása kész. \"%1$s\" email címének módosítása sikertelen! Új email: Adjon meg egy érvényes email címet! Jelszó csere - \"%1$s\" jelszavának módosítása sikerült + \"%1$s\" jelszavának módosítása kész. \"%1$s\" jelszavának módosítása sikertelen! Új jelszó: Adjon meg egy érvényes jelszót! 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 @@ No data Warning Close + No + Yes Home Library @@ -599,6 +601,7 @@ Album Details Podcast Details Playlist Details + Artist Details Podcast Status Artist @@ -634,6 +637,7 @@ Song Position Updated + Starred No songs -- cgit v1.2.3