Fixed conflict - Merge branch 'develop' into better_loggin_system
authorDavid A. Velasco <dvelasco@solidgear.es>
Thu, 18 Sep 2014 07:31:24 +0000 (09:31 +0200)
committerDavid A. Velasco <dvelasco@solidgear.es>
Thu, 18 Sep 2014 07:31:24 +0000 (09:31 +0200)
1  2 
src/com/owncloud/android/operations/SynchronizeFolderOperation.java
src/com/owncloud/android/syncadapter/FileSyncAdapter.java
src/com/owncloud/android/ui/activity/FileDisplayActivity.java
src/com/owncloud/android/ui/activity/MoveActivity.java
src/com/owncloud/android/ui/fragment/ExtendedListFragment.java
src/com/owncloud/android/ui/fragment/OCFileListFragment.java

@@@ -43,7 -43,6 +43,7 @@@ import com.owncloud.android.lib.resourc
  import com.owncloud.android.lib.common.operations.RemoteOperation;
  import com.owncloud.android.lib.common.operations.RemoteOperationResult;
  import com.owncloud.android.lib.common.operations.RemoteOperationResult.ResultCode;
 +import com.owncloud.android.lib.common.utils.Log_OC;
  import com.owncloud.android.lib.resources.shares.GetRemoteSharesForFileOperation;
  import com.owncloud.android.lib.resources.files.FileUtils;
  import com.owncloud.android.lib.resources.files.ReadRemoteFileOperation;
@@@ -52,6 -51,7 +52,6 @@@ import com.owncloud.android.lib.resourc
  
  import com.owncloud.android.syncadapter.FileSyncAdapter;
  import com.owncloud.android.utils.FileStorageUtils;
 -import com.owncloud.android.utils.Log_OC;
  
  
  
@@@ -109,6 -109,9 +109,9 @@@ public class SynchronizeFolderOperatio
      /** 'True' means that the remote folder changed from last synchronization and should be fetched */
      private boolean mRemoteFolderChanged;
  
+     /** 'True' means that Etag will be ignored */
+     private boolean mIgnoreETag;
      
      /**
       * Creates a new instance of {@link SynchronizeFolderOperation}.
                                          long currentSyncTime, 
                                          boolean syncFullAccount,
                                          boolean isShareSupported,
+                                         boolean ignoreETag,
                                          FileDataStorageManager dataStorageManager, 
                                          Account account, 
                                          Context context ) {
          mContext = context;
          mForgottenLocalFiles = new HashMap<String, String>();
          mRemoteFolderChanged = false;
+         mIgnoreETag = ignoreETag;
      }
      
      
  
      
      private RemoteOperationResult checkForChanges(OwnCloudClient client) {
-         mRemoteFolderChanged = false;
+         mRemoteFolderChanged = true;
          RemoteOperationResult result = null;
          String remotePath = null;
  
          result = operation.execute(client);
          if (result.isSuccess()){
              OCFile remoteFolder = FileStorageUtils.fillOCFile((RemoteFile) result.getData().get(0));
-             
-             // check if remote and local folder are different
-             mRemoteFolderChanged = !(remoteFolder.getEtag().equalsIgnoreCase(mLocalFolder.getEtag()));
-           
+             if (!mIgnoreETag) {
+                 // check if remote and local folder are different
+                 mRemoteFolderChanged = !(remoteFolder.getEtag().equalsIgnoreCase(mLocalFolder.getEtag()));
+             }
              result = new RemoteOperationResult(ResultCode.OK);
          
              Log_OC.i(TAG, "Checked " + mAccount.name + remotePath + " : " + (mRemoteFolderChanged ? "changed" : "not changed"));
@@@ -34,8 -34,8 +34,8 @@@ import com.owncloud.android.lib.common.
  import com.owncloud.android.operations.SynchronizeFolderOperation;
  import com.owncloud.android.operations.UpdateOCVersionOperation;
  import com.owncloud.android.lib.common.operations.RemoteOperationResult.ResultCode;
 +import com.owncloud.android.lib.common.utils.Log_OC;
  import com.owncloud.android.ui.activity.ErrorsWhileCopyingHandlerActivity;
 -import com.owncloud.android.utils.Log_OC;
  
  import android.accounts.Account;
  import android.accounts.AccountsException;
@@@ -264,6 -264,7 +264,7 @@@ public class FileSyncAdapter extends Ab
                                                                                      mCurrentSyncTime, 
                                                                                      true,
                                                                                      mIsShareSupported,
+                                                                                     true,
                                                                                      getStorageManager(), 
                                                                                      getAccount(), 
                                                                                      getContext()
@@@ -21,8 -21,6 +21,6 @@@ package com.owncloud.android.ui.activit
  import java.io.File;
  import java.io.IOException;
  
- import org.apache.commons.httpclient.methods.PostMethod;
  import android.accounts.Account;
  import android.accounts.AccountManager;
  import android.accounts.AuthenticatorException;
@@@ -50,7 -48,6 +48,6 @@@ import android.provider.MediaStore
  import android.support.v4.app.Fragment;
  import android.support.v4.app.FragmentManager;
  import android.support.v4.app.FragmentTransaction;
- import android.support.v4.widget.SwipeRefreshLayout;
  import android.util.Log;
  import android.view.View;
  import android.view.ViewGroup;
@@@ -64,7 -61,6 +61,7 @@@ import com.actionbarsherlock.view.Menu
  import com.actionbarsherlock.view.MenuInflater;
  import com.actionbarsherlock.view.MenuItem;
  import com.actionbarsherlock.view.Window;
 +import com.owncloud.android.BuildConfig;
  import com.owncloud.android.MainApp;
  import com.owncloud.android.R;
  import com.owncloud.android.datamodel.OCFile;
@@@ -81,7 -77,6 +78,7 @@@ import com.owncloud.android.lib.common.
  import com.owncloud.android.lib.common.operations.RemoteOperation;
  import com.owncloud.android.lib.common.operations.RemoteOperationResult;
  import com.owncloud.android.lib.common.operations.RemoteOperationResult.ResultCode;
 +import com.owncloud.android.lib.common.utils.Log_OC;
  import com.owncloud.android.operations.CreateFolderOperation;
  import com.owncloud.android.operations.CreateShareOperation;
  import com.owncloud.android.operations.MoveFileOperation;
@@@ -104,6 -99,7 +101,6 @@@ import com.owncloud.android.ui.preview.
  import com.owncloud.android.ui.preview.PreviewVideoActivity;
  import com.owncloud.android.utils.DisplayUtils;
  import com.owncloud.android.utils.ErrorMessageAdapter;
 -import com.owncloud.android.utils.Log_OC;
  
  
  /**
  
  public class FileDisplayActivity extends HookActivity implements
  FileFragment.ContainerActivity, OnNavigationListener, 
- OnSslUntrustedCertListener, SwipeRefreshLayout.OnRefreshListener {
+ OnSslUntrustedCertListener, OnEnforceableRefreshListener {
      
      private ArrayAdapter<String> mDirectories;
  
                  Log_OC.e(TAG, "Initializing Fragments in onAccountChanged..");
                  initFragmentsWithFile();
                  if (file.isFolder()) {
-                     startSyncFolderOperation(file);
+                     startSyncFolderOperation(file, false);
                  }
                  
              } else {
              if (listOfFiles != null) {
                  listOfFiles.listDirectory(getCurrentDir());   
              } else {
 -                Log.e(TAG, "Still have a chance to lose the initializacion of list fragment >(");
 +                Log_OC.e(TAG, "Still have a chance to lose the initializacion of list fragment >(");
              }
              
              /// Second fragment
              }
  
          } else {
 -            Log.wtf(TAG, "initFragments() called with invalid NULLs!");
 +            Log_OC.wtf(TAG, "initFragments() called with invalid NULLs!");
              if (getAccount() == null) {
 -                Log.wtf(TAG, "\t account is NULL");
 +                Log_OC.wtf(TAG, "\t account is NULL");
              }
              if (getFile() == null) {
 -                Log.wtf(TAG, "\t file is NULL");
 +                Log_OC.wtf(TAG, "\t file is NULL");
              }
          }
      }
      }
  
      @Override
 +    public boolean onPrepareOptionsMenu(Menu menu) {
 +        if (BuildConfig.DEBUG) {
 +            menu.findItem(R.id.action_logger).setVisible(true);
 +        } else {
 +            menu.findItem(R.id.action_logger).setVisible(false);
 +        }
 +        return super.onPrepareOptionsMenu(menu);
 +    }
 +
 +    @Override
      public boolean onCreateOptionsMenu(Menu menu) {
          MenuInflater inflater = getSherlock().getMenuInflater();
          inflater.inflate(R.menu.main_menu, menu);
              startActivity(settingsIntent);
              break;
          }
 +        case R.id.action_logger: {
 +            Intent loggerIntent = new Intent(getApplicationContext(),LogHistoryActivity.class);
 +            startActivity(loggerIntent);
 +            break;
 +        }
          case android.R.id.home: {
              FileFragment second = getSecondFragment();
              OCFile currentDir = getCurrentDir();
              }
              ocFileListFragment.setMessageForEmptyList(getString(message));
          } else {
 -            Log.e(TAG, "OCFileListFragment is null");
 +            Log_OC.e(TAG, "OCFileListFragment is null");
          }
      }
  
              OCFile root = getStorageManager().getFileByPath(OCFile.ROOT_PATH);
              listOfFiles.listDirectory(root);
              setFile(listOfFiles.getCurrentFile());
-             startSyncFolderOperation(root);
+             startSyncFolderOperation(root, false);
          }
          cleanSecondFragment();
      }
              setNavigationListWithFolder(folder);
              listOfFiles.listDirectory(folder);
              setFile(listOfFiles.getCurrentFile());
-             startSyncFolderOperation(folder);
+             startSyncFolderOperation(folder, false);
          } else {
              Log_OC.e(TAG, "Unexpected null when accessing list fragment");
          }
          cleanSecondFragment();
          
          // Sync Folder
-         startSyncFolderOperation(directory);
+         startSyncFolderOperation(directory, false);
          
      }
  
  
      @Override
      public void onSavedCertificate() {
-         startSyncFolderOperation(getCurrentDir());                
+         startSyncFolderOperation(getCurrentDir(), false);
      }
  
  
          return null;
      }
      
-     public void startSyncFolderOperation(OCFile folder) {
+     public void startSyncFolderOperation(OCFile folder, boolean ignoreETag) {
          long currentSyncTime = System.currentTimeMillis(); 
          
          mSyncInProgress = true;
                                                                          currentSyncTime, 
                                                                          false,
                                                                          getFileOperationsHelper().isSharedSupported(),
+                                                                         ignoreETag,
                                                                          getStorageManager(), 
                                                                          getAccount(), 
                                                                          getApplicationContext()
      }
  
      @Override
+     public void onRefresh(boolean ignoreETag) {
+         refreshList(ignoreETag);
+     }
+     @Override
      public void onRefresh() {
+         refreshList(true);
+     }
+     private void refreshList(boolean ignoreETag) {
          OCFileListFragment listOfFiles = getListOfFilesFragment();
          if (listOfFiles != null) {
              OCFile folder = listOfFiles.getCurrentFile();
              if (folder != null) {
                  /*mFile = mContainerActivity.getStorageManager().getFileById(mFile.getFileId());
                  listDirectory(mFile);*/
-                 startSyncFolderOperation(folder);
+                 startSyncFolderOperation(folder, ignoreETag);
              }
          }
      }
  }
@@@ -61,7 -61,7 +61,7 @@@ import com.owncloud.android.ui.fragment
  import com.owncloud.android.ui.fragment.OCFileListFragment;
  import com.owncloud.android.utils.DisplayUtils;
  import com.owncloud.android.utils.ErrorMessageAdapter;
 -import com.owncloud.android.utils.Log_OC;
 +import com.owncloud.android.lib.common.utils.Log_OC;
  
  public class MoveActivity extends HookActivity implements FileFragment.ContainerActivity, 
      OnClickListener, SwipeRefreshLayout.OnRefreshListener {
                  OCFileListFragment listOfFolders = getListOfFilesFragment(); 
                  listOfFolders.listDirectory(folder);   
                  
-                 startSyncFolderOperation(folder);
+                 startSyncFolderOperation(folder, false);
              }
              
              updateNavigationElementsInActionBar();
          setFile(directory);
          updateNavigationElementsInActionBar();
          // Sync Folder
-         startSyncFolderOperation(directory);
+         startSyncFolderOperation(directory, false);
          
      }
  
      
-     public void startSyncFolderOperation(OCFile folder) {
+     public void startSyncFolderOperation(OCFile folder, boolean ignoreETag) {
          long currentSyncTime = System.currentTimeMillis(); 
          
          mSyncInProgress = true;
                                                                          currentSyncTime, 
                                                                          false,
                                                                          getFileOperationsHelper().isSharedSupported(),
+                                                                         ignoreETag,
                                                                          getStorageManager(), 
                                                                          getAccount(), 
                                                                          getApplicationContext()
              listOfFiles.listDirectory(root);
              setFile(listOfFiles.getCurrentFile());
              updateNavigationElementsInActionBar();
-             startSyncFolderOperation(root);
+             startSyncFolderOperation(root, false);
          }
      }
  
          if (listOfFiles != null) {
              OCFile folder = listOfFiles.getCurrentFile();
              if (folder != null) {
-                 startSyncFolderOperation(folder);
+                 startSyncFolderOperation(folder, true);
              }
          }
      }
@@@ -33,14 -33,15 +33,15 @@@ import android.widget.TextView
  
  import com.actionbarsherlock.app.SherlockFragment;
  import com.owncloud.android.R;
 +import com.owncloud.android.lib.common.utils.Log_OC;
  import com.owncloud.android.ui.ExtendedListView;
 -import com.owncloud.android.utils.Log_OC;
+ import com.owncloud.android.ui.activity.OnEnforceableRefreshListener;
  
  /**
   *  TODO extending SherlockListFragment instead of SherlockFragment 
   */
  public class ExtendedListFragment extends SherlockFragment 
- implements OnItemClickListener, SwipeRefreshLayout.OnRefreshListener {
+ implements OnItemClickListener, OnEnforceableRefreshListener {
      
      private static final String TAG = ExtendedListFragment.class.getSimpleName();
  
@@@ -63,7 -64,7 +64,7 @@@
      private ArrayList<Integer> mTops;
      private int mHeightCell = 0;
  
-     private SwipeRefreshLayout.OnRefreshListener mOnRefreshListener = null;
+     private OnEnforceableRefreshListener mOnRefreshListener = null;
      
      
      public void setListAdapter(ListAdapter listAdapter) {
          }
      }
      
-     public void setOnRefreshListener(SwipeRefreshLayout.OnRefreshListener listener) {
+     public void setOnRefreshListener(OnEnforceableRefreshListener listener) {
          mOnRefreshListener = listener;
      }
      
          refreshLayout.setOnRefreshListener(this);
      }
  
+     @Override
+     public void onRefresh(boolean ignoreETag) {
+         mRefreshLayout.setRefreshing(false);
+         mRefreshEmptyLayout.setRefreshing(false);
+         if (mOnRefreshListener != null) {
+             mOnRefreshListener.onRefresh(ignoreETag);
+         }
+     }
  }
@@@ -34,15 -34,16 +34,16 @@@ import com.owncloud.android.R
  import com.owncloud.android.datamodel.FileDataStorageManager;
  import com.owncloud.android.datamodel.OCFile;
  import com.owncloud.android.files.FileMenuFilter;
 +import com.owncloud.android.lib.common.utils.Log_OC;
  import com.owncloud.android.ui.activity.FileDisplayActivity;
  import com.owncloud.android.ui.activity.MoveActivity;
+ import com.owncloud.android.ui.activity.OnEnforceableRefreshListener;
  import com.owncloud.android.ui.adapter.FileListListAdapter;
  import com.owncloud.android.ui.dialog.ConfirmationDialogFragment;
  import com.owncloud.android.ui.dialog.RemoveFileDialogFragment;
  import com.owncloud.android.ui.dialog.RenameFileDialogFragment;
  import com.owncloud.android.ui.preview.PreviewImageFragment;
  import com.owncloud.android.ui.preview.PreviewMediaFragment;
 -import com.owncloud.android.utils.Log_OC;
  
  /**
   * A Fragment that lists all files and folders in a given path.
@@@ -88,7 -89,7 +89,7 @@@ public class OCFileListFragment extend
                      FileFragment.ContainerActivity.class.getSimpleName());
          }
          try {
-             setOnRefreshListener((SwipeRefreshLayout.OnRefreshListener) activity);
+             setOnRefreshListener((OnEnforceableRefreshListener) activity);
              
          } catch (ClassCastException e) {
              throw new ClassCastException(activity.toString() + " must implement " + 
              
              listDirectory(mFile);
  
-             onRefresh();
+             onRefresh(false);
              
              // restore index and top position
              restoreIndexAndTopPosition();