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 f007064c688c324d63e656b4f9b8be2182af79ec..8c15987516f3803e61767924fefadad312f65566 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 f9f28cb7d6c57ccb7ea62763e8c58adc2e870d7a..04928a8d8ef0f6e7300bb4da0044a0be2537bdfe 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 0000000000000000000000000000000000000000..7072058aaa2761d028b93256992ff4d6ceb50b4b --- /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 ecf3cd55943b49fd01926021588ff54469a8974a..4322933165cd31b1573c0be1761d4d9490396970 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 c78ee4d5fc755924d4d960d29975ed7f803cf924..ccfe32211c6c25397d7b2dcee77e2df512876085 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