X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/blobdiff_plain/5f4752486479d738e5187bdd0493b2b0fbf738f8..ff82b51e49f40155e7c340090f5ee759af2bf3ad:/src/com/owncloud/android/ui/activity/FileActivity.java diff --git a/src/com/owncloud/android/ui/activity/FileActivity.java b/src/com/owncloud/android/ui/activity/FileActivity.java index 13bad2ed..9a952e41 100644 --- a/src/com/owncloud/android/ui/activity/FileActivity.java +++ b/src/com/owncloud/android/ui/activity/FileActivity.java @@ -155,6 +155,7 @@ public class FileActivity extends ActionBarActivity protected NavigationDrawerListAdapter mNavigationDrawerAdapter = null; + // TODO re-enable when "Accounts" is available in Navigation Drawer // protected boolean mShowAccounts = false; @@ -303,6 +304,10 @@ public class FileActivity extends ActionBarActivity } 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); @@ -368,9 +373,7 @@ public class FileActivity extends ActionBarActivity /** 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(); } @@ -378,13 +381,12 @@ public class FileActivity extends ActionBarActivity 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()); @@ -392,21 +394,46 @@ public class FileActivity extends ActionBarActivity 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); - } else { - getSupportActionBar().setTitle(getStorageManager().getFileById(mFile.getParentId()) - .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) { + chosenFile = mFile; // if no file is passed, current file decides } + inRoot = ( + chosenFile == null || + (chosenFile.isFolder() && chosenFile.getParentId() == FileDataStorageManager.ROOT_PARENT_ID) + ); + if (!inRoot) { + title = chosenFile.getFileName(); + } + + /// 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. *