- protected void updateActionBarTitle(){
- if (mFile.getParentId() == 0) {
- getSupportActionBar().setTitle(getString(
- R.string.default_display_name_for_root_folder));
- mDrawerToggle.setDrawerIndicatorEnabled(true);
- } else {
- 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 if (chosenFile.getParentId() != 0){
+ // chosenFile determines the title, instead of mFile
+ title = chosenFile.getFileName();
+ inRoot = false;
+
+ } else{
+ inRoot = true;
+ }
+
+ /// 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);