From f5e50cf48112f662541aa2cfcd3d60448cf9b740 Mon Sep 17 00:00:00 2001 From: ari melody Date: Thu, 12 Sep 2024 20:10:31 +0100 Subject: [PATCH] UI improvements --- .../me/arimelody/aridroid/MainActivity.java | 9 +- .../arimelody/aridroid/MusicListAdapter.java | 27 ++++- app/src/main/res/layout/music_item.xml | 98 ++++++++++++------- app/src/main/res/values/strings.xml | 23 ++++- 4 files changed, 107 insertions(+), 50 deletions(-) diff --git a/app/src/main/java/me/arimelody/aridroid/MainActivity.java b/app/src/main/java/me/arimelody/aridroid/MainActivity.java index 95400a2..c479504 100644 --- a/app/src/main/java/me/arimelody/aridroid/MainActivity.java +++ b/app/src/main/java/me/arimelody/aridroid/MainActivity.java @@ -65,7 +65,7 @@ public class MainActivity extends AppCompatActivity { Thread thread = new Thread(() -> { try { URL url = URI.create(BASE_URL + "/api/v1/music").toURL(); - System.out.printf("Attempting to fetch %s...\n", url); + System.out.printf("Fetching %s...\n", url); HttpURLConnection http = (HttpURLConnection) url.openConnection(); http.setRequestMethod("GET"); http.setRequestProperty("User-Agent", "aridroid"); @@ -79,14 +79,13 @@ public class MainActivity extends AppCompatActivity { } updateReleaseList(stream.toString(), items); } catch (Exception e) { - System.err.printf("FATAL: Failed to fetch music data: %s\n", e.toString()); + System.err.printf("Failed to fetch music data: %s\n", e.toString()); } }); thread.start(); } void updateReleaseList(String res, ArrayList items) { - System.out.println(res); try { JSONArray json = new JSONArray(res); items.clear(); @@ -110,7 +109,7 @@ public class MainActivity extends AppCompatActivity { try { date = df.parse(obj.getString("releaseDate")); } catch (ParseException e) { - System.err.printf("FATAL: Failed to parse date for release %s: %s\n", id, e.toString()); + System.err.printf("Failed to parse date for release %s: %s\n", id, e.toString()); continue; } @@ -133,7 +132,7 @@ public class MainActivity extends AppCompatActivity { }); } } catch (JSONException e) { - System.err.printf("FATAL: Failed to parse JSON response: %s\n", e.toString()); + System.err.printf("Failed to parse JSON response: %s\n", e.toString()); } } } diff --git a/app/src/main/java/me/arimelody/aridroid/MusicListAdapter.java b/app/src/main/java/me/arimelody/aridroid/MusicListAdapter.java index b496184..81f64fe 100644 --- a/app/src/main/java/me/arimelody/aridroid/MusicListAdapter.java +++ b/app/src/main/java/me/arimelody/aridroid/MusicListAdapter.java @@ -10,6 +10,7 @@ import android.widget.ImageView; import android.widget.TextView; import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import androidx.recyclerview.widget.RecyclerView; import java.io.InputStream; @@ -17,15 +18,26 @@ import java.net.HttpURLConnection; import java.net.URL; import java.util.ArrayList; import java.util.Calendar; +import java.util.HashMap; import java.util.Locale; +import java.util.Map; public class MusicListAdapter extends RecyclerView.Adapter { Context context; ArrayList data; + public HashMap ReleaseTypes = new HashMap(); + public MusicListAdapter(Context context, ArrayList data) { this.context = context; this.data = data; + + ReleaseTypes.put("single", R.string.release_type_single); + ReleaseTypes.put("album", R.string.release_type_album); + ReleaseTypes.put("ep", R.string.release_type_ep); + ReleaseTypes.put("lp", R.string.release_type_lp); + ReleaseTypes.put("compilation", R.string.release_type_compilation); + ReleaseTypes.put("upcoming", R.string.release_type_upcoming); } @NonNull @@ -45,9 +57,9 @@ public class MusicListAdapter extends RecyclerView.Adapter primaryCredits = new ArrayList<>(); @@ -67,6 +79,9 @@ public class MusicListAdapter extends RecyclerView.Adapter { try { URL url = new URL(MainActivity.BASE_URL + artworkURL); - System.out.printf("Attempting to fetch %s...\n", url); + System.out.printf("Fetching %s...\n", url); HttpURLConnection http = (HttpURLConnection) url.openConnection(); http.setRequestMethod("GET"); http.setRequestProperty("User-Agent", "aridroid"); @@ -103,9 +120,9 @@ public class MusicListAdapter extends RecyclerView.Adapter artwork.setImageBitmap(img)); } catch (Exception e) { - System.err.printf("FATAL: Failed to fetch music data: %s\n", e.toString()); + System.err.printf("FATAL: Failed to fetch release artwork: %s\n", e.toString()); } }); thread.start(); diff --git a/app/src/main/res/layout/music_item.xml b/app/src/main/res/layout/music_item.xml index 464d45e..dab0d1e 100644 --- a/app/src/main/res/layout/music_item.xml +++ b/app/src/main/res/layout/music_item.xml @@ -1,48 +1,72 @@ - - + - + - + - - \ No newline at end of file + + + + + + + + + + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 8320cfc..107704e 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1,8 +1,25 @@ https://arimelody.me AriDroid - Untitled Track - Unknown Artist + + %s artwork + Untitled Release + Untitled Track + Unknown Artist 2002 - Music artwork + Release + 0 tracks + + Unknown + Single + Album + EP + LP + Compilation + Upcoming + + + (%d track) + (%d tracks) + \ No newline at end of file