public void reloadAccounts() { if (getActivity() == null) return; mAccounts = new ArrayList<>(); View addAccountFrame = mAccountsFrame.findViewById(R.id.addAccountFrame); mAccountsFrame.removeAllViews(); mAccountsFrame.addView(addAccountFrame); int mCurrent = Account.getActive(getActivity()); if (mCurrent == -1) { Account acc = AccountProvider.add(getActivity(), null, Account.TYPE_LOCAL); mAccounts.add(acc); Account.setActive(getActivity(), acc); mCurrent = acc.id(); } final int fCurrent = mCurrent; Account.getAll( getActivity(), new Account.AccountsCallback() { @Override public void onAccounts(Account[] accounts) { if (accounts == null || !isAdded()) return; for (int i = 0; i < accounts.length; i++) { Account a = accounts[i]; mAccounts.add(a); boolean selected = a.id() == fCurrent; mAccountsFrame.addView(getAccountView(i, selected ? i : -1, mAccountsFrame), i); if (selected) getAlbums(a); } mAccountsFrame.requestLayout(); mAccountsFrame.invalidate(); } }); }