Private
Public Access
1
0

Add in start of artist screen and have screens listed in drawer. Refresh state should be kept even when switching fragments.

This commit is contained in:
Kevin Whitaker
2015-11-21 16:56:07 -05:00
parent 0834f47fed
commit 02b27615fa
5 changed files with 42 additions and 2 deletions

View File

@@ -9,6 +9,7 @@ import com.heinrichreimersoftware.materialdrawer.DrawerActivity;
import com.heinrichreimersoftware.materialdrawer.structure.DrawerItem; import com.heinrichreimersoftware.materialdrawer.structure.DrawerItem;
import com.heinrichreimersoftware.materialdrawer.structure.DrawerProfile; import com.heinrichreimersoftware.materialdrawer.structure.DrawerProfile;
import com.magnatune.eyecreate.companionformagnatune.fragments.AlbumsFragment; import com.magnatune.eyecreate.companionformagnatune.fragments.AlbumsFragment;
import com.magnatune.eyecreate.companionformagnatune.fragments.ArtistFragment;
import com.magnatune.eyecreate.companionformagnatune.login.MagnatuneAccountManager; import com.magnatune.eyecreate.companionformagnatune.login.MagnatuneAccountManager;
public class BrowseActivity extends DrawerActivity { public class BrowseActivity extends DrawerActivity {
@@ -23,6 +24,29 @@ public class BrowseActivity extends DrawerActivity {
.setRoundedAvatar((BitmapDrawable) ContextCompat.getDrawable(this, R.drawable.ic_account_white_48dp)) .setRoundedAvatar((BitmapDrawable) ContextCompat.getDrawable(this, R.drawable.ic_account_white_48dp))
.setBackground(new ColorDrawable(ContextCompat.getColor(this, R.color.primary)))); .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) { if(savedInstanceState == null) {
getSupportFragmentManager().beginTransaction() getSupportFragmentManager().beginTransaction()
.replace(R.id.fragment_holder,new AlbumsFragment(),"albums") .replace(R.id.fragment_holder,new AlbumsFragment(),"albums")

View File

@@ -55,6 +55,8 @@ public class AlbumsFragment extends Fragment {
if(db.where(Album.class).findAll().size()<1) { if(db.where(Album.class).findAll().size()<1) {
recyclerView.setRefreshing(true); recyclerView.setRefreshing(true);
triggerDBUpdate(); triggerDBUpdate();
} else if(!MagnatuneDBManager.isProcessingDone()) {
recyclerView.setRefreshing(true);
} }
} }
}); });

View File

@@ -0,0 +1,6 @@
package com.magnatune.eyecreate.companionformagnatune.fragments;
import android.support.v4.app.Fragment;
public class ArtistFragment extends Fragment {
}

View File

@@ -23,6 +23,7 @@ public class MagnatuneDBManager {
public static final String ACTION_DB_UPDATE_DONE = "dbupdatedone"; public static final String ACTION_DB_UPDATE_DONE = "dbupdatedone";
private static final String DB_CHECK_PREFS = "dbcheckprefs"; private static final String DB_CHECK_PREFS = "dbcheckprefs";
private static final String SP_KEY_DB_HASH = "dbhash"; private static final String SP_KEY_DB_HASH = "dbhash";
private static boolean processingDone = true;
public static void updateDB() { public static void updateDB() {
//This method should be called on another thread //This method should be called on another thread
@@ -53,7 +54,7 @@ public class MagnatuneDBManager {
try { try {
Response<ObjectInputStream> response = MagnatuneCompainionApplication.getDataApi().getAlbumList().execute(); Response<ObjectInputStream> response = MagnatuneCompainionApplication.getDataApi().getAlbumList().execute();
Realm db = getAlbumDB(); Realm db = getAlbumDB();
boolean processingDone = false; processingDone = false;
while(!processingDone) { while(!processingDone) {
db.beginTransaction(); db.beginTransaction();
try { try {
@@ -78,6 +79,10 @@ public class MagnatuneDBManager {
LocalBroadcastManager.getInstance(MagnatuneCompainionApplication.getApplication()).sendBroadcast(new Intent(ACTION_DB_UPDATE_DONE)); LocalBroadcastManager.getInstance(MagnatuneCompainionApplication.getApplication()).sendBroadcast(new Intent(ACTION_DB_UPDATE_DONE));
} }
public static boolean isProcessingDone() {
return processingDone;
}
public static Realm getAlbumDB() { public static Realm getAlbumDB() {
//Remember to close each instance when done. //Remember to close each instance when done.
return Realm.getInstance(MagnatuneCompainionApplication.getAlbumDBConfig()); return Realm.getInstance(MagnatuneCompainionApplication.getAlbumDBConfig());

View File

@@ -4,4 +4,7 @@
<string name="click_to_logout">Click to Logout</string> <string name="click_to_logout">Click to Logout</string>
<string name="anon_user">Anonymous</string> <string name="anon_user">Anonymous</string>
<string name="invalid">Invalid</string> <string name="invalid">Invalid</string>
<string name="artists">Artists</string>
<string name="albums">Albums</string>
</resources> </resources>