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:
@@ -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")
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
package com.magnatune.eyecreate.companionformagnatune.fragments;
|
||||
|
||||
import android.support.v4.app.Fragment;
|
||||
|
||||
public class ArtistFragment extends Fragment {
|
||||
}
|
||||
@@ -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<ObjectInputStream> 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());
|
||||
|
||||
@@ -4,4 +4,7 @@
|
||||
<string name="click_to_logout">Click to Logout</string>
|
||||
<string name="anon_user">Anonymous</string>
|
||||
<string name="invalid">Invalid</string>
|
||||
|
||||
<string name="artists">Artists</string>
|
||||
<string name="albums">Albums</string>
|
||||
</resources>
|
||||
|
||||
Reference in New Issue
Block a user