Merge branch 'share_link__new_share' into release-1.5.4
authorDavid A. Velasco <dvelasco@solidgear.es>
Fri, 7 Feb 2014 08:23:40 +0000 (09:23 +0100)
committerDavid A. Velasco <dvelasco@solidgear.es>
Fri, 7 Feb 2014 08:23:40 +0000 (09:23 +0100)
1  2 
src/com/owncloud/android/ui/activity/FileDisplayActivity.java

@@@ -75,7 -75,6 +75,7 @@@ import com.owncloud.android.operations.
  import com.owncloud.android.operations.RenameFileOperation;
  import com.owncloud.android.operations.SynchronizeFileOperation;
  import com.owncloud.android.operations.SynchronizeFolderOperation;
 +import com.owncloud.android.operations.UnshareLinkOperation;
  import com.owncloud.android.services.OperationsService;
  import com.owncloud.android.syncadapter.FileSyncAdapter;
  import com.owncloud.android.ui.dialog.EditNameDialog;
@@@ -86,7 -85,6 +86,7 @@@ import com.owncloud.android.ui.fragment
  import com.owncloud.android.ui.fragment.FileFragment;
  import com.owncloud.android.ui.fragment.OCFileListFragment;
  import com.owncloud.android.ui.preview.PreviewImageActivity;
 +import com.owncloud.android.ui.preview.PreviewImageFragment;
  import com.owncloud.android.ui.preview.PreviewMediaFragment;
  import com.owncloud.android.ui.preview.PreviewVideoActivity;
  import com.owncloud.android.utils.DisplayUtils;
@@@ -100,7 -98,7 +100,7 @@@ import com.owncloud.android.utils.Log_O
   * @author David A. Velasco
   */
  
- public class FileDisplayActivity extends FileActivity implements
+ public class FileDisplayActivity extends HookActivity implements
  OCFileListFragment.ContainerActivity, FileDetailFragment.ContainerActivity, OnNavigationListener, OnSslValidatorListener, EditNameDialogListener {
  
      private ArrayAdapter<String> mDirectories;
              // the next operation triggers a new call to this method, but it's necessary to 
              // ensure that the name exposed in the action bar is the current directory when the 
              // user selected it in the navigation list
-             getSupportActionBar().setSelectedNavigationItem(0);
+             if (getSupportActionBar().getNavigationMode() == ActionBar.NAVIGATION_MODE_LIST  && itemPosition != 0) 
+                 getSupportActionBar().setSelectedNavigationItem(0);
          }
          return true;
      }
  
              ((TextView) v).setTextColor(getResources().getColorStateList(
                      android.R.color.white));
+             
+             fixRoot((TextView) v );
              return v;
          }
  
              ((TextView) v).setTextColor(getResources().getColorStateList(
                      android.R.color.white));
  
+             fixRoot((TextView) v );
              return v;
          }
  
+         private void fixRoot(TextView v) {
+             if (v.getText().equals(OCFile.PATH_SEPARATOR)) {
+                 v.setText(R.string.default_display_name_for_root_folder);
+             }
+         }
      }
  
      private class SyncBroadcastReceiver extends BroadcastReceiver {
          if (chosenFile == null || mDualPane) {
              // only list of files - set for browsing through folders
              OCFile currentDir = getCurrentDir();
-             actionBar.setDisplayHomeAsUpEnabled(currentDir != null && currentDir.getParentId() != 0);
-             actionBar.setDisplayShowTitleEnabled(false);
-             actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);
+             boolean noRoot = (currentDir != null && currentDir.getParentId() != 0);
+             actionBar.setDisplayHomeAsUpEnabled(noRoot);
+             actionBar.setDisplayShowTitleEnabled(!noRoot); 
+             if (!noRoot) {
+                 actionBar.setTitle(getString(R.string.default_display_name_for_root_folder));
+             }
+             actionBar.setNavigationMode(!noRoot ? ActionBar.NAVIGATION_MODE_STANDARD : ActionBar.NAVIGATION_MODE_LIST);
              actionBar.setListNavigationCallbacks(mDirectories, this);   // assuming mDirectories is updated
  
          } else {
  
          } else if (operation instanceof CreateFolderOperation) {
              onCreateFolderOperationFinish((CreateFolderOperation)operation, result);
 -        
 +            
          } else if (operation instanceof CreateShareOperation) {
              onCreateShareOperationFinish((CreateShareOperation) operation, result);
 -        }
 +            
 +        } else if (operation instanceof UnshareLinkOperation) {
 +            onUnshareLinkOperationFinish((UnshareLinkOperation)operation, result);
 +        
 +        } 
          
      }
  
 -
 +    
      private void onCreateShareOperationFinish(CreateShareOperation operation, RemoteOperationResult result) {
          if (result.isSuccess()) {
 +            refreshShowDetails();
              refeshListOfFilesFragment();
          }
      }
  
      
 +    private void onUnshareLinkOperationFinish(UnshareLinkOperation operation, RemoteOperationResult result) {
 +        if (result.isSuccess()) {
 +            refreshShowDetails();
 +            refeshListOfFilesFragment();
 +        }
 +    }
 +    
 +    private void refreshShowDetails() {
 +        FileFragment details = getSecondFragment();
 +        if (details != null) {
 +            OCFile file = details.getFile();
 +            if (file != null) {
 +                file = getStorageManager().getFileByPath(file.getRemotePath()); {
 +                    if (!(details instanceof PreviewMediaFragment || details instanceof PreviewImageFragment)) {
 +                        showDetails(file);
 +                    } else if (details instanceof PreviewMediaFragment) {                        
 +                        startMediaPreview(file, 0, false);
 +                    } 
 +                }
 +                invalidateOptionsMenu();
 +            }
 +        }
 +    }
 +    
      /**
       * Updates the view associated to the activity after the finish of an operation trying to remove a 
       * file. 
          
          mRefreshSharesInProgress = true;
      }
 +    
 +    
 +
  
  }