protected NavigationDrawerListAdapter mNavigationDrawerAdapter = null;
+
// TODO re-enable when "Accounts" is available in Navigation Drawer
// protected boolean mShowAccounts = false;
}
protected void initDrawer(){
+ // constant settings for action bar when navigation drawer is inited
+ getSupportActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD);
+
+
mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
// Notification Drawer
LinearLayout navigationDrawerLayout = (LinearLayout) findViewById(R.id.left_drawer);
/** Called when a drawer has settled in a completely closed state. */
public void onDrawerClosed(View view) {
super.onDrawerClosed(view);
- updateActionBarTitleAndHomeButton();
- getSupportActionBar().setDisplayShowTitleEnabled(true);
- getSupportActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD);
+ updateActionBarTitleAndHomeButton(null);
invalidateOptionsMenu();
}
public void onDrawerOpened(View drawerView) {
super.onDrawerOpened(drawerView);
getSupportActionBar().setTitle(R.string.app_name);
- getSupportActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD);
mDrawerToggle.setDrawerIndicatorEnabled(true);
invalidateOptionsMenu();
}
};
- mDrawerToggle.setDrawerIndicatorEnabled(true);
+ //mDrawerToggle.setDrawerIndicatorEnabled(true);
// Set the list's click listener
mDrawerList.setOnItemClickListener(new DrawerItemClickListener());
mDrawerLayout.setDrawerListener(mDrawerToggle);
}
- protected void updateActionBarTitleAndHomeButton(){
- if (mFile.getParentId() == 0 ||
- (!mFile.isFolder() && mFile.getParentId() == 1)) {
- getSupportActionBar().setTitle(getString(
- R.string.default_display_name_for_root_folder));
- mDrawerToggle.setDrawerIndicatorEnabled(true);
- } else if (mFile.isFolder()) {
- getSupportActionBar().setTitle(mFile.getFileName().toString());
- mDrawerToggle.setDrawerIndicatorEnabled(false);
+ /**
+ * Updates title bar and home buttons (state and icon).
+ *
+ * Assumes that navigation drawer is NOT visible.
+ */
+ protected void updateActionBarTitleAndHomeButton(OCFile chosenFile) {
+ String title = getString(R.string.default_display_name_for_root_folder); // default
+ boolean inRoot;
+
+ /// choose the appropiate title
+ if (chosenFile == null) {
+ // mFile determines the title
+ inRoot = (mFile == null || mFile.getParentId() == 0);
+ if (!inRoot) {
+ title = mFile.getFileName();
+ }
+
} else {
- getSupportActionBar().setTitle(getStorageManager().getFileById(mFile.getParentId())
- .getFileName().toString());
- mDrawerToggle.setDrawerIndicatorEnabled(false);
+ // chosenFile determines the title, instead of mFile
+ title = chosenFile.getFileName();
+ inRoot = false;
}
+
+ /// set the chosen title
+ ActionBar actionBar = getSupportActionBar();
+ actionBar.setTitle(title);
+ /// also as content description
+ View actionBarTitleView = getWindow().getDecorView().findViewById(
+ getResources().getIdentifier("action_bar_title", "id", "android")
+ );
+ if (actionBarTitleView != null) { // it's null in Android 2.x
+ actionBarTitleView.setContentDescription(title);
+ }
+
+ /// set home button properties
+ mDrawerToggle.setDrawerIndicatorEnabled(inRoot);
+ actionBar.setDisplayHomeAsUpEnabled(true);
+ actionBar.setDisplayShowTitleEnabled(true);
+
}
+
+
/**
* Sets and validates the ownCloud {@link Account} associated to the Activity.
*
setFile(file);
}
-
- /**
- * TODO
- */
- private void updateActionBarTitleAndHomeButton(OCFile chosenFile) {
- ActionBar actionBar = getSupportActionBar();
-
- // For adding content description tag to a title field in the action bar
- int actionBarTitleId = getResources().getIdentifier("action_bar_title", "id", "android");
-
- if (chosenFile == null || mDualPane) {
- // only list of files - set for browsing through folders
- OCFile currentDir = getCurrentDir();
- boolean noRoot = (currentDir != null && currentDir.getParentId() != 0);
- //actionBar.setDisplayHomeAsUpEnabled(noRoot);
- //actionBar.setDisplayShowTitleEnabled(!noRoot);
- actionBar.setDisplayHomeAsUpEnabled(true);
- actionBar.setDisplayShowTitleEnabled(true);
- mDrawerToggle.setDrawerIndicatorEnabled(!noRoot);
- String title = getString(R.string.default_display_name_for_root_folder);
- if (noRoot) {
- title = currentDir.getFileName();
- }
- actionBar.setTitle(title);
- View actionBarTitleView = getWindow().getDecorView().findViewById(actionBarTitleId);
- if (actionBarTitleView != null) { // it's null in Android 2.x
- actionBarTitleView.setContentDescription(title);
- }
- actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD);
+ @Override
+ protected void updateActionBarTitleAndHomeButton(OCFile chosenFile) {
+ if (mDualPane) {
+ // in dual pane mode, keep the focus of title an action bar in the current folder
+ super.updateActionBarTitleAndHomeButton(null);
} else {
- actionBar.setDisplayHomeAsUpEnabled(true);
- actionBar.setDisplayShowTitleEnabled(true);
- mDrawerToggle.setDrawerIndicatorEnabled(false);
- actionBar.setTitle(chosenFile.getFileName());
- actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD);
- View actionBarTitleView = getWindow().getDecorView().findViewById(actionBarTitleId);
- if (actionBarTitleView != null) { // it's null in Android 2.x
- getWindow().getDecorView().findViewById(actionBarTitleId).
- setContentDescription(chosenFile.getFileName());
- }
+ super.updateActionBarTitleAndHomeButton(chosenFile);
}
+
}