Improves account picker menu

This commit is contained in:
tom79 2017-08-22 09:02:40 +02:00
parent 4b1ec378d5
commit 7c057156f7
3 changed files with 20 additions and 24 deletions

View File

@ -733,9 +733,6 @@ public class Helper {
if( currrentUserId == null)
return;
MenuItem menu_account = navigationView.getMenu().findItem(R.id.nav_account_list);
MenuItem nav_main_com = navigationView.getMenu().findItem(R.id.nav_main_com);
MenuItem nav_main_opt= navigationView.getMenu().findItem(R.id.nav_main_opt);
final SharedPreferences sharedpreferences = activity.getSharedPreferences(Helper.APP_PREFS, Context.MODE_PRIVATE);
int theme = sharedpreferences.getInt(Helper.SET_THEME, Helper.THEME_DARK);
if( theme == Helper.THEME_DARK){
@ -749,19 +746,25 @@ public class Helper {
}
if( !menuAccountsOpened ){
arrow.setImageResource(R.drawable.ic_arrow_drop_up);
SQLiteDatabase db = Sqlite.getInstance(activity, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open();
menu_account.setVisible(true);
nav_main_com.setVisible(false);
nav_main_opt.setVisible(false);
final List<Account> accounts = new AccountDAO(activity, db).getAllAccount();
SubMenu navigationViewSub = navigationView.getMenu().findItem(R.id.nav_account_list).getSubMenu();
navigationViewSub.clear();
String lastInstance = "";
navigationView.getMenu().clear();
navigationView.inflateMenu(R.menu.menu_accounts);
Menu mainMenu = navigationView.getMenu();
SubMenu currentSubmenu = null;
int i = 0;
for(final Account account: accounts) {
if( !currrentUserId.equals(account.getId()) ) {
final MenuItem item = navigationViewSub.add("@" + account.getAcct() + "@" + account.getInstance());
if( !lastInstance.equals(account.getInstance())){
currentSubmenu = mainMenu.addSubMenu(0, i, i,account.getInstance().toUpperCase());
i++;
}
if( currentSubmenu == null)
continue;
final MenuItem item = currentSubmenu.add("@" + account.getAcct());
//final MenuItem item = mainMenu.addSubMenu("@" + account.getAcct()).add("@" + account.getAcct());
ImageLoader imageLoader;
DisplayImageOptions options = new DisplayImageOptions.Builder().displayer(new SimpleBitmapDisplayer()).cacheInMemory(false)
.cacheOnDisk(true).resetViewBeforeLoading(true).build();
@ -832,7 +835,9 @@ public class Helper {
}
}
MenuItem addItem = navigationViewSub.add(R.string.add_account);
i++;
currentSubmenu = mainMenu.addSubMenu(0, i, i,"");
MenuItem addItem = currentSubmenu.add(R.string.add_account);
addItem.setIcon(R.drawable.ic_person_add);
addItem.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {
@Override
@ -844,9 +849,8 @@ public class Helper {
}
});
}else{
menu_account.setVisible(false);
nav_main_com.setVisible(true);
nav_main_opt.setVisible(true);
navigationView.getMenu().clear();
navigationView.inflateMenu(R.menu.activity_main_drawer);
arrow.setImageResource(R.drawable.ic_arrow_drop_down);
SQLiteDatabase db = Sqlite.getInstance(activity, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open();
String userId = sharedpreferences.getString(Helper.PREF_KEY_ID, null);

View File

@ -155,7 +155,7 @@ public class AccountDAO {
public List<Account> getAllAccount(){
try {
Cursor c = db.query(Sqlite.TABLE_USER_ACCOUNT, null, null, null, null, null, null, null);
Cursor c = db.query(Sqlite.TABLE_USER_ACCOUNT, null, null, null, null, null, Sqlite.COL_INSTANCE + " ASC", null);
return cursorToListUser(c);
} catch (Exception e) {
return null;

View File

@ -1,13 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<group android:checkableBehavior="single">
<item android:id="@+id/nav_account_list"
android:visible="false"
android:title="@string/accounts">
<menu /></item>
</group>
<group>
<item
android:title="@string/communication_menu_title"