Merge branch 'share_link__new_share' into share_link__refresh_shares_folder_per_folder
authorDavid A. Velasco <dvelasco@solidgear.es>
Thu, 6 Feb 2014 19:16:14 +0000 (20:16 +0100)
committerDavid A. Velasco <dvelasco@solidgear.es>
Thu, 6 Feb 2014 19:16:14 +0000 (20:16 +0100)
1  2 
src/com/owncloud/android/ui/activity/FileDisplayActivity.java

@@@ -43,7 -43,7 +43,7 @@@ import android.preference.PreferenceMan
  import android.provider.MediaStore;
  import android.support.v4.app.Fragment;
  import android.support.v4.app.FragmentTransaction;
 -import android.support.v4.content.LocalBroadcastManager;
 +//import android.support.v4.content.LocalBroadcastManager;
  import android.util.Log;
  import android.view.View;
  import android.view.ViewGroup;
@@@ -98,7 -98,7 +98,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;
      private SyncBroadcastReceiver mSyncBroadcastReceiver;
      private UploadFinishReceiver mUploadFinishReceiver;
      private DownloadFinishReceiver mDownloadFinishReceiver;
 -    private OperationsServiceReceiver mOperationsServiceReceiver;
 +    //private OperationsServiceReceiver mOperationsServiceReceiver;
      private FileDownloaderBinder mDownloaderBinder = null;
      private FileUploaderBinder mUploaderBinder = null;
      private ServiceConnection mDownloadConnection = null, mUploadConnection = null;
      private OCFile mWaitingToPreview;
      
      private boolean mSyncInProgress = false;
 -    private boolean mRefreshSharesInProgress = false;
 +    //private boolean mRefreshSharesInProgress = false;
  
      @Override
      protected void onCreate(Bundle savedInstanceState) {
          if(savedInstanceState != null) {
              mWaitingToPreview = (OCFile) savedInstanceState.getParcelable(FileDisplayActivity.KEY_WAITING_TO_PREVIEW);
              mSyncInProgress = savedInstanceState.getBoolean(KEY_SYNC_IN_PROGRESS);
 -            mRefreshSharesInProgress = savedInstanceState.getBoolean(KEY_REFRESH_SHARES_IN_PROGRESS);
 +            //mRefreshSharesInProgress = savedInstanceState.getBoolean(KEY_REFRESH_SHARES_IN_PROGRESS);
             
          } else {
              mWaitingToPreview = null;
              mSyncInProgress = false;
 -            mRefreshSharesInProgress = false;
 +            //mRefreshSharesInProgress = false;
          }        
  
          /// USER INTERFACE
          // Action bar setup
          mDirectories = new CustomArrayAdapter<String>(this, R.layout.sherlock_spinner_dropdown_item);
          getSupportActionBar().setHomeButtonEnabled(true);       // mandatory since Android ICS, according to the official documentation
 -        setSupportProgressBarIndeterminateVisibility(mSyncInProgress || mRefreshSharesInProgress);    // always AFTER setContentView(...) ; to work around bug in its implementation
 +        setSupportProgressBarIndeterminateVisibility(mSyncInProgress /*|| mRefreshSharesInProgress*/);    // always AFTER setContentView(...) ; to work around bug in its implementation
          
          Log_OC.d(TAG, "onCreate() end");
      }
              // 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;
      }
          super.onSaveInstanceState(outState);
          outState.putParcelable(FileDisplayActivity.KEY_WAITING_TO_PREVIEW, mWaitingToPreview);
          outState.putBoolean(FileDisplayActivity.KEY_SYNC_IN_PROGRESS, mSyncInProgress);
 -        outState.putBoolean(FileDisplayActivity.KEY_REFRESH_SHARES_IN_PROGRESS, mRefreshSharesInProgress);
 +        //outState.putBoolean(FileDisplayActivity.KEY_REFRESH_SHARES_IN_PROGRESS, mRefreshSharesInProgress);
  
          Log_OC.d(TAG, "onSaveInstanceState() end");
      }
          // Listen for sync messages
          IntentFilter syncIntentFilter = new IntentFilter(FileSyncAdapter.EVENT_FULL_SYNC_START);
          syncIntentFilter.addAction(FileSyncAdapter.EVENT_FULL_SYNC_END);
 -        syncIntentFilter.addAction(FileSyncAdapter.EVENT_FOLDER_SIZE_SYNCED);
 -        syncIntentFilter.addAction(FileSyncAdapter.EVENT_FOLDER_CONTENTS_SYNCED);
 -        syncIntentFilter.addAction(SynchronizeFolderOperation.EVENT_SINGLE_FOLDER_SYNCED);
 +        syncIntentFilter.addAction(FileSyncAdapter.EVENT_FULL_SYNC_FOLDER_SIZE_SYNCED);
 +        syncIntentFilter.addAction(FileSyncAdapter.EVENT_FULL_SYNC_FOLDER_CONTENTS_SYNCED);
 +        syncIntentFilter.addAction(SynchronizeFolderOperation.EVENT_SINGLE_FOLDER_CONTENTS_SYNCED);
 +        syncIntentFilter.addAction(SynchronizeFolderOperation.EVENT_SINGLE_FOLDER_SHARES_SYNCED);
          mSyncBroadcastReceiver = new SyncBroadcastReceiver();
 -        //registerReceiver(mSyncBroadcastReceiver, syncIntentFilter);
 -        LocalBroadcastManager.getInstance(this).registerReceiver(mSyncBroadcastReceiver, syncIntentFilter);
 +        registerReceiver(mSyncBroadcastReceiver, syncIntentFilter);
 +        //LocalBroadcastManager.getInstance(this).registerReceiver(mSyncBroadcastReceiver, syncIntentFilter);
  
          // Listen for upload messages
          IntentFilter uploadIntentFilter = new IntentFilter(FileUploader.getUploadFinishMessage());
          registerReceiver(mDownloadFinishReceiver, downloadIntentFilter);
          
          // Listen for messages from the OperationsService
 +        /*
          IntentFilter operationsIntentFilter = new IntentFilter(OperationsService.ACTION_OPERATION_ADDED);
          operationsIntentFilter.addAction(OperationsService.ACTION_OPERATION_FINISHED);
          mOperationsServiceReceiver = new OperationsServiceReceiver();
          LocalBroadcastManager.getInstance(this).registerReceiver(mOperationsServiceReceiver, operationsIntentFilter);
 +        */
      
          Log_OC.d(TAG, "onResume() end");
      }
          super.onPause();
          Log_OC.e(TAG, "onPause() start");
          if (mSyncBroadcastReceiver != null) {
 -            //unregisterReceiver(mSyncBroadcastReceiver);
 -            LocalBroadcastManager.getInstance(this).unregisterReceiver(mSyncBroadcastReceiver);
 +            unregisterReceiver(mSyncBroadcastReceiver);
 +            //LocalBroadcastManager.getInstance(this).unregisterReceiver(mSyncBroadcastReceiver);
              mSyncBroadcastReceiver = null;
          }
          if (mUploadFinishReceiver != null) {
              unregisterReceiver(mDownloadFinishReceiver);
              mDownloadFinishReceiver = null;
          }
 +        /*
          if (mOperationsServiceReceiver != null) {
              LocalBroadcastManager.getInstance(this).unregisterReceiver(mOperationsServiceReceiver);
              mOperationsServiceReceiver = null;
          }
 +        */
          Log_OC.d(TAG, "onPause() end");
      }
  
  
              ((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 {
                          setFile(currentFile);
                      }
                      
 -                    mSyncInProgress = (!FileSyncAdapter.EVENT_FULL_SYNC_END.equals(event) && 
 -                                        !SynchronizeFolderOperation.EVENT_SINGLE_FOLDER_SYNCED.equals(event) &&
 -                                        (synchResult == null || synchResult.isSuccess())) ;
 -                    
 +                    mSyncInProgress = (!FileSyncAdapter.EVENT_FULL_SYNC_END.equals(event) && !SynchronizeFolderOperation.EVENT_SINGLE_FOLDER_SHARES_SYNCED.equals(event));
 +                            
 +                    /*
                      if (synchResult != null && 
                          synchResult.isSuccess() &&
                              (SynchronizeFolderOperation.EVENT_SINGLE_FOLDER_SYNCED.equals(event) || 
 -                                FileSyncAdapter.EVENT_FOLDER_CONTENTS_SYNCED.equals(event)
 +                                FileSyncAdapter.EVENT_FULL_SYNC_FOLDER_CONTENTS_SYNCED.equals(event)
                              ) &&
                              !mRefreshSharesInProgress &&
                              getFileOperationsHelper().isSharedSupported(FileDisplayActivity.this)
                          ) {
                          startGetShares();
                      }
 +                    */
                      
                  }
 -                //removeStickyBroadcast(intent);
 -                setSupportProgressBarIndeterminateVisibility(mSyncInProgress || mRefreshSharesInProgress);
 +                removeStickyBroadcast(intent);
 +                setSupportProgressBarIndeterminateVisibility(mSyncInProgress /*|| mRefreshSharesInProgress*/);
              }
              
              if (synchResult != null) {
              if (OperationsService.ACTION_OPERATION_ADDED.equals(intent.getAction())) {
                  
              } else if (OperationsService.ACTION_OPERATION_FINISHED.equals(intent.getAction())) {
 -                mRefreshSharesInProgress = false;
 +                //mRefreshSharesInProgress = false;
                  
                  Account account = intent.getParcelableExtra(OperationsService.EXTRA_ACCOUNT);
                  RemoteOperationResult getSharesResult = (RemoteOperationResult)intent.getSerializableExtra(OperationsService.EXTRA_RESULT);
                      showDialog(DIALOG_SSL_VALIDATOR); 
                  }
  
 -                setSupportProgressBarIndeterminateVisibility(mRefreshSharesInProgress || mSyncInProgress);
 +                //setSupportProgressBarIndeterminateVisibility(mRefreshSharesInProgress || mSyncInProgress);
              }
              
          }
          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 {
          setSupportProgressBarIndeterminateVisibility(true);
      }
  
 -    
 +    /*
      private void startGetShares() {
          // Get shared files/folders
          Intent intent = new Intent(this, OperationsService.class);
          
          mRefreshSharesInProgress = true;
      }
 +    */
  
  }