mirror of
https://github.com/nextcloud/android.git
synced 2024-11-24 06:05:42 +03:00
Pending runnable that will be executed after the drawer has been closed.
This commit is contained in:
parent
3d25bd7d7d
commit
4488bfb84c
1 changed files with 61 additions and 45 deletions
|
@ -30,6 +30,7 @@ import android.content.res.Configuration;
|
|||
import android.graphics.drawable.Drawable;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.os.Handler;
|
||||
import android.support.design.widget.NavigationView;
|
||||
import android.support.v4.view.GravityCompat;
|
||||
import android.support.v4.widget.DrawerLayout;
|
||||
|
@ -141,6 +142,11 @@ public abstract class DrawerActivity extends ToolbarActivity implements DisplayU
|
|||
*/
|
||||
private TextView mQuotaTextView;
|
||||
|
||||
/**
|
||||
* runnable that will be executed after the drawer has been closed.
|
||||
*/
|
||||
private Runnable pendingRunnable;
|
||||
|
||||
/**
|
||||
* Initializes the drawer, its content and highlights the menu item with the given id.
|
||||
* This method needs to be called after the content view has been set.
|
||||
|
@ -192,6 +198,11 @@ public abstract class DrawerActivity extends ToolbarActivity implements DisplayU
|
|||
toggleAccountList();
|
||||
}
|
||||
invalidateOptionsMenu();
|
||||
|
||||
if (pendingRunnable != null) {
|
||||
new Handler().post(pendingRunnable);
|
||||
pendingRunnable = null;
|
||||
}
|
||||
}
|
||||
|
||||
/** Called when a drawer has settled in a completely open state. */
|
||||
|
@ -252,53 +263,58 @@ public abstract class DrawerActivity extends ToolbarActivity implements DisplayU
|
|||
navigationView.setNavigationItemSelectedListener(
|
||||
new NavigationView.OnNavigationItemSelectedListener() {
|
||||
@Override
|
||||
public boolean onNavigationItemSelected(MenuItem menuItem) {
|
||||
public boolean onNavigationItemSelected(final MenuItem menuItem) {
|
||||
mDrawerLayout.closeDrawers();
|
||||
|
||||
switch (menuItem.getItemId()) {
|
||||
case R.id.nav_all_files:
|
||||
menuItem.setChecked(true);
|
||||
mCheckedMenuItem = menuItem.getItemId();
|
||||
showFiles(false);
|
||||
break;
|
||||
case R.id.nav_on_device:
|
||||
menuItem.setChecked(true);
|
||||
mCheckedMenuItem = menuItem.getItemId();
|
||||
showFiles(true);
|
||||
break;
|
||||
case R.id.nav_uploads:
|
||||
Intent uploadListIntent = new Intent(getApplicationContext(),
|
||||
UploadListActivity.class);
|
||||
uploadListIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
|
||||
startActivity(uploadListIntent);
|
||||
break;
|
||||
case R.id.nav_folder_sync:
|
||||
Intent folderSyncIntent = new Intent(getApplicationContext(),FolderSyncActivity.class);
|
||||
startActivity(folderSyncIntent);
|
||||
break;
|
||||
case R.id.nav_settings:
|
||||
Intent settingsIntent = new Intent(getApplicationContext(), Preferences.class);
|
||||
startActivity(settingsIntent);
|
||||
break;
|
||||
case R.id.nav_participate:
|
||||
Intent participateIntent = new Intent(getApplicationContext(),
|
||||
ParticipateActivity.class);
|
||||
startActivity(participateIntent);
|
||||
break;
|
||||
case R.id.drawer_menu_account_add:
|
||||
createAccount(false);
|
||||
break;
|
||||
case R.id.drawer_menu_account_manage:
|
||||
Intent manageAccountsIntent = new Intent(getApplicationContext(),
|
||||
ManageAccountsActivity.class);
|
||||
startActivityForResult(manageAccountsIntent, ACTION_MANAGE_ACCOUNTS);
|
||||
break;
|
||||
case Menu.NONE:
|
||||
// account clicked
|
||||
accountClicked(menuItem.getTitle().toString());
|
||||
default:
|
||||
Log_OC.i(TAG, "Unknown drawer menu item clicked: " + menuItem.getTitle());
|
||||
}
|
||||
pendingRunnable = new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
switch (menuItem.getItemId()) {
|
||||
case R.id.nav_all_files:
|
||||
menuItem.setChecked(true);
|
||||
mCheckedMenuItem = menuItem.getItemId();
|
||||
showFiles(false);
|
||||
break;
|
||||
case R.id.nav_on_device:
|
||||
menuItem.setChecked(true);
|
||||
mCheckedMenuItem = menuItem.getItemId();
|
||||
showFiles(true);
|
||||
break;
|
||||
case R.id.nav_uploads:
|
||||
Intent uploadListIntent = new Intent(getApplicationContext(),
|
||||
UploadListActivity.class);
|
||||
uploadListIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
|
||||
startActivity(uploadListIntent);
|
||||
break;
|
||||
case R.id.nav_folder_sync:
|
||||
Intent folderSyncIntent = new Intent(getApplicationContext(),FolderSyncActivity.class);
|
||||
startActivity(folderSyncIntent);
|
||||
break;
|
||||
case R.id.nav_settings:
|
||||
Intent settingsIntent = new Intent(getApplicationContext(), Preferences.class);
|
||||
startActivity(settingsIntent);
|
||||
break;
|
||||
case R.id.nav_participate:
|
||||
Intent participateIntent = new Intent(getApplicationContext(),
|
||||
ParticipateActivity.class);
|
||||
startActivity(participateIntent);
|
||||
break;
|
||||
case R.id.drawer_menu_account_add:
|
||||
createAccount(false);
|
||||
break;
|
||||
case R.id.drawer_menu_account_manage:
|
||||
Intent manageAccountsIntent = new Intent(getApplicationContext(),
|
||||
ManageAccountsActivity.class);
|
||||
startActivityForResult(manageAccountsIntent, ACTION_MANAGE_ACCOUNTS);
|
||||
break;
|
||||
case Menu.NONE:
|
||||
// account clicked
|
||||
accountClicked(menuItem.getTitle().toString());
|
||||
default:
|
||||
Log_OC.i(TAG, "Unknown drawer menu item clicked: " + menuItem.getTitle());
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
return true;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue