diff --git a/app/src/main/java/com/magnatune/eyecreate/companionformagnatune/BrowseActivity.java b/app/src/main/java/com/magnatune/eyecreate/companionformagnatune/BrowseActivity.java index f007064..8c15987 100644 --- a/app/src/main/java/com/magnatune/eyecreate/companionformagnatune/BrowseActivity.java +++ b/app/src/main/java/com/magnatune/eyecreate/companionformagnatune/BrowseActivity.java @@ -9,6 +9,7 @@ import com.heinrichreimersoftware.materialdrawer.DrawerActivity; import com.heinrichreimersoftware.materialdrawer.structure.DrawerItem; import com.heinrichreimersoftware.materialdrawer.structure.DrawerProfile; import com.magnatune.eyecreate.companionformagnatune.fragments.AlbumsFragment; +import com.magnatune.eyecreate.companionformagnatune.fragments.ArtistFragment; import com.magnatune.eyecreate.companionformagnatune.login.MagnatuneAccountManager; public class BrowseActivity extends DrawerActivity { @@ -19,10 +20,33 @@ public class BrowseActivity extends DrawerActivity { setContentView(R.layout.activity_browse); addProfile(new DrawerProfile() .setName(MagnatuneAccountManager.getMagnatuneName()) - .setDescription(MagnatuneAccountManager.isLoggedIn()?getString(R.string.click_to_logout):getString(R.string.click_to_login)) + .setDescription(MagnatuneAccountManager.isLoggedIn() ? getString(R.string.click_to_logout) : getString(R.string.click_to_login)) .setRoundedAvatar((BitmapDrawable) ContextCompat.getDrawable(this, R.drawable.ic_account_white_48dp)) .setBackground(new ColorDrawable(ContextCompat.getColor(this, R.color.primary)))); + addItem(new DrawerItem() + .setTextPrimary(getString(R.string.albums)) + .setOnItemClickListener(new DrawerItem.OnItemClickListener() { + @Override + public void onClick(DrawerItem drawerItem, long l, int i) { + getSupportFragmentManager().beginTransaction() + .replace(R.id.fragment_holder, new AlbumsFragment(), "albums") + .commit(); + closeDrawer(); + } + })); + addItem(new DrawerItem() + .setTextPrimary(getString(R.string.artists)) + .setOnItemClickListener(new DrawerItem.OnItemClickListener() { + @Override + public void onClick(DrawerItem drawerItem, long l, int i) { + getSupportFragmentManager().beginTransaction() + .replace(R.id.fragment_holder,new ArtistFragment(),"artists") + .commit(); + closeDrawer(); + } + })); + if(savedInstanceState == null) { getSupportFragmentManager().beginTransaction() .replace(R.id.fragment_holder,new AlbumsFragment(),"albums") diff --git a/app/src/main/java/com/magnatune/eyecreate/companionformagnatune/fragments/AlbumsFragment.java b/app/src/main/java/com/magnatune/eyecreate/companionformagnatune/fragments/AlbumsFragment.java index f9f28cb..04928a8 100644 --- a/app/src/main/java/com/magnatune/eyecreate/companionformagnatune/fragments/AlbumsFragment.java +++ b/app/src/main/java/com/magnatune/eyecreate/companionformagnatune/fragments/AlbumsFragment.java @@ -55,6 +55,8 @@ public class AlbumsFragment extends Fragment { if(db.where(Album.class).findAll().size()<1) { recyclerView.setRefreshing(true); triggerDBUpdate(); + } else if(!MagnatuneDBManager.isProcessingDone()) { + recyclerView.setRefreshing(true); } } }); diff --git a/app/src/main/java/com/magnatune/eyecreate/companionformagnatune/fragments/ArtistFragment.java b/app/src/main/java/com/magnatune/eyecreate/companionformagnatune/fragments/ArtistFragment.java new file mode 100644 index 0000000..7072058 --- /dev/null +++ b/app/src/main/java/com/magnatune/eyecreate/companionformagnatune/fragments/ArtistFragment.java @@ -0,0 +1,6 @@ +package com.magnatune.eyecreate.companionformagnatune.fragments; + +import android.support.v4.app.Fragment; + +public class ArtistFragment extends Fragment { +} diff --git a/app/src/main/java/com/magnatune/eyecreate/companionformagnatune/model/MagnatuneDBManager.java b/app/src/main/java/com/magnatune/eyecreate/companionformagnatune/model/MagnatuneDBManager.java index ecf3cd5..4322933 100644 --- a/app/src/main/java/com/magnatune/eyecreate/companionformagnatune/model/MagnatuneDBManager.java +++ b/app/src/main/java/com/magnatune/eyecreate/companionformagnatune/model/MagnatuneDBManager.java @@ -23,6 +23,7 @@ public class MagnatuneDBManager { public static final String ACTION_DB_UPDATE_DONE = "dbupdatedone"; private static final String DB_CHECK_PREFS = "dbcheckprefs"; private static final String SP_KEY_DB_HASH = "dbhash"; + private static boolean processingDone = true; public static void updateDB() { //This method should be called on another thread @@ -53,7 +54,7 @@ public class MagnatuneDBManager { try { Response response = MagnatuneCompainionApplication.getDataApi().getAlbumList().execute(); Realm db = getAlbumDB(); - boolean processingDone = false; + processingDone = false; while(!processingDone) { db.beginTransaction(); try { @@ -78,6 +79,10 @@ public class MagnatuneDBManager { LocalBroadcastManager.getInstance(MagnatuneCompainionApplication.getApplication()).sendBroadcast(new Intent(ACTION_DB_UPDATE_DONE)); } + public static boolean isProcessingDone() { + return processingDone; + } + public static Realm getAlbumDB() { //Remember to close each instance when done. return Realm.getInstance(MagnatuneCompainionApplication.getAlbumDBConfig()); diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index c78ee4d..ccfe322 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -4,4 +4,7 @@ Click to Logout Anonymous Invalid + + Artists + Albums