From a938ef0512de32b7bc896ed142514ec35f8b99e0 Mon Sep 17 00:00:00 2001 From: Kevin Whitaker Date: Thu, 19 Nov 2015 23:43:26 -0500 Subject: [PATCH] Hook up and tweak UI to DB. Now stuck because simplexml uses too much memory. --- app/src/main/AndroidManifest.xml | 3 + .../companionformagnatune/BrowseActivity.java | 7 ++ .../adapters/AlbumsAdapter.java | 11 ++- .../fragments/AlbumsFragment.java | 79 +++++++++++++++++++ .../model/AlbumResponse.java | 4 +- .../model/xml/Album.java | 6 +- .../model/xml/Track.java | 2 +- .../viewholders/AlbumViewHolder.java | 12 +++ app/src/main/res/layout/activity_browse.xml | 2 +- app/src/main/res/layout/fragment_albums.xml | 13 ++- .../main/res/layout/listitem_album_card.xml | 4 + 11 files changed, 128 insertions(+), 15 deletions(-) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 9804ed0..2ec2f45 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -2,6 +2,9 @@ + + + () { + @Override + protected Void doInBackground(Void... voids) { + MagnatuneDBManager.updateDB(); + return null; + } + }.execute(); + } + + @Override + public void onDestroy() { + super.onDestroy(); + db.close(); + } + + @Override + public void onResume() { + super.onResume(); + LocalBroadcastManager.getInstance(getActivity()).registerReceiver(refreshDone,new IntentFilter(MagnatuneDBManager.ACTION_DB_UPDATE_DONE)); + } + + @Override + public void onPause() { + super.onPause(); + LocalBroadcastManager.getInstance(getActivity()).unregisterReceiver(refreshDone); + } } diff --git a/app/src/main/java/com/magnatune/eyecreate/companionformagnatune/model/AlbumResponse.java b/app/src/main/java/com/magnatune/eyecreate/companionformagnatune/model/AlbumResponse.java index c8fbac0..e3f0966 100644 --- a/app/src/main/java/com/magnatune/eyecreate/companionformagnatune/model/AlbumResponse.java +++ b/app/src/main/java/com/magnatune/eyecreate/companionformagnatune/model/AlbumResponse.java @@ -1,5 +1,7 @@ package com.magnatune.eyecreate.companionformagnatune.model; +import com.magnatune.eyecreate.companionformagnatune.model.xml.*; + import org.simpleframework.xml.ElementList; import org.simpleframework.xml.Root; @@ -8,7 +10,7 @@ import java.util.List; @Root(name="AllAlbums") public class AlbumResponse { - @ElementList(inline=true) + @ElementList(inline=true,type= com.magnatune.eyecreate.companionformagnatune.model.xml.Album.class) public List albums; } diff --git a/app/src/main/java/com/magnatune/eyecreate/companionformagnatune/model/xml/Album.java b/app/src/main/java/com/magnatune/eyecreate/companionformagnatune/model/xml/Album.java index 740bf98..d536f35 100644 --- a/app/src/main/java/com/magnatune/eyecreate/companionformagnatune/model/xml/Album.java +++ b/app/src/main/java/com/magnatune/eyecreate/companionformagnatune/model/xml/Album.java @@ -7,7 +7,7 @@ import org.simpleframework.xml.Root; import java.util.Date; import java.util.List; -@Root +@Root(name="Album",strict = false) public class Album { @Element @@ -28,7 +28,7 @@ public class Album { @Element public int year; - @Element + @Element(required = false) public String album_notes; @Element @@ -46,6 +46,6 @@ public class Album { @Element public String albumsku; - @ElementList(inline=true) + @ElementList(inline=true,type=Track.class) public List tracks; } diff --git a/app/src/main/java/com/magnatune/eyecreate/companionformagnatune/model/xml/Track.java b/app/src/main/java/com/magnatune/eyecreate/companionformagnatune/model/xml/Track.java index a8a946a..5f01873 100644 --- a/app/src/main/java/com/magnatune/eyecreate/companionformagnatune/model/xml/Track.java +++ b/app/src/main/java/com/magnatune/eyecreate/companionformagnatune/model/xml/Track.java @@ -3,7 +3,7 @@ package com.magnatune.eyecreate.companionformagnatune.model.xml; import org.simpleframework.xml.Element; import org.simpleframework.xml.Root; -@Root +@Root(name="Track",strict = false) public class Track { @Element public String artist; diff --git a/app/src/main/java/com/magnatune/eyecreate/companionformagnatune/viewholders/AlbumViewHolder.java b/app/src/main/java/com/magnatune/eyecreate/companionformagnatune/viewholders/AlbumViewHolder.java index c2bdf15..2639aec 100644 --- a/app/src/main/java/com/magnatune/eyecreate/companionformagnatune/viewholders/AlbumViewHolder.java +++ b/app/src/main/java/com/magnatune/eyecreate/companionformagnatune/viewholders/AlbumViewHolder.java @@ -1,11 +1,23 @@ package com.magnatune.eyecreate.companionformagnatune.viewholders; import android.view.View; +import android.widget.ImageView; +import android.widget.TextView; + +import com.magnatune.eyecreate.companionformagnatune.R; import io.realm.RealmViewHolder; public class AlbumViewHolder extends RealmViewHolder { + + public ImageView albumArt; + public TextView albumName; + public TextView artistName; + public AlbumViewHolder(View itemView) { super(itemView); + albumArt = (ImageView) itemView.findViewById(R.id.album_art); + albumName = (TextView) itemView.findViewById(R.id.album_name); + artistName = (TextView) itemView.findViewById(R.id.artist_name); } } diff --git a/app/src/main/res/layout/activity_browse.xml b/app/src/main/res/layout/activity_browse.xml index 26503be..bace6b8 100644 --- a/app/src/main/res/layout/activity_browse.xml +++ b/app/src/main/res/layout/activity_browse.xml @@ -3,7 +3,7 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".BrowseActivity"> - diff --git a/app/src/main/res/layout/fragment_albums.xml b/app/src/main/res/layout/fragment_albums.xml index c15d973..54a1d32 100644 --- a/app/src/main/res/layout/fragment_albums.xml +++ b/app/src/main/res/layout/fragment_albums.xml @@ -1,11 +1,10 @@ - - - \ No newline at end of file + android:id="@+id/album_grid" + app:rrvLayoutType="Grid" + app:rrvIsRefreshable="true" + app:rrvGridLayoutSpanCount="2" + xmlns:android="http://schemas.android.com/apk/res/android" /> \ No newline at end of file diff --git a/app/src/main/res/layout/listitem_album_card.xml b/app/src/main/res/layout/listitem_album_card.xml index cad0699..e84153b 100644 --- a/app/src/main/res/layout/listitem_album_card.xml +++ b/app/src/main/res/layout/listitem_album_card.xml @@ -13,5 +13,9 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/album_name"/> + \ No newline at end of file -- GitLab