浏览代码

Fix bug. Etag is been ignored when navigating through folders

jabarros 10 年之前
父节点
当前提交
6a297ebe91

+ 11 - 6
src/com/owncloud/android/ui/activity/FileDisplayActivity.java

@@ -21,8 +21,6 @@ package com.owncloud.android.ui.activity;
 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 @@ 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;
@@ -114,7 +111,7 @@ import com.owncloud.android.utils.Log_OC;
 
 public class FileDisplayActivity extends HookActivity implements
 FileFragment.ContainerActivity, OnNavigationListener, 
-OnSslUntrustedCertListener, SwipeRefreshLayout.OnRefreshListener {
+OnSslUntrustedCertListener, SwipeRefresh {
     
     private ArrayAdapter<String> mDirectories;
 
@@ -1714,17 +1711,25 @@ OnSslUntrustedCertListener, SwipeRefreshLayout.OnRefreshListener {
         onTransferStateChanged(file, false, false);
     }
 
+    @Override
+    public void onRefreshForced(boolean ignoreTag) {
+        refreshList(ignoreTag);
+    }
+
     @Override
     public void onRefresh() {
+        refreshList(true);
+    }
+
+    private void refreshList(boolean ignoreTag) {
         OCFileListFragment listOfFiles = getListOfFilesFragment();
         if (listOfFiles != null) {
             OCFile folder = listOfFiles.getCurrentFile();
             if (folder != null) {
                 /*mFile = mContainerActivity.getStorageManager().getFileById(mFile.getFileId());
                 listDirectory(mFile);*/
-                startSyncFolderOperation(folder, true);
+                startSyncFolderOperation(folder, ignoreTag);
             }
         }
     }
-
 }

+ 10 - 0
src/com/owncloud/android/ui/activity/SwipeRefresh.java

@@ -0,0 +1,10 @@
+package com.owncloud.android.ui.activity;
+
+import android.support.v4.widget.SwipeRefreshLayout;
+
+    public interface SwipeRefresh extends SwipeRefreshLayout.OnRefreshListener {
+
+        public void onRefreshForced(boolean ingnoreTag);
+
+    }
+

+ 13 - 3
src/com/owncloud/android/ui/fragment/ExtendedListFragment.java

@@ -34,13 +34,14 @@ import android.widget.TextView;
 import com.actionbarsherlock.app.SherlockFragment;
 import com.owncloud.android.R;
 import com.owncloud.android.ui.ExtendedListView;
+import com.owncloud.android.ui.activity.SwipeRefresh;
 import com.owncloud.android.utils.Log_OC;
 
 /**
  *  TODO extending SherlockListFragment instead of SherlockFragment 
  */
 public class ExtendedListFragment extends SherlockFragment 
-implements OnItemClickListener, SwipeRefreshLayout.OnRefreshListener {
+implements OnItemClickListener, SwipeRefresh {
     
     private static final String TAG = ExtendedListFragment.class.getSimpleName();
 
@@ -63,7 +64,7 @@ implements OnItemClickListener, SwipeRefreshLayout.OnRefreshListener {
     private ArrayList<Integer> mTops;
     private int mHeightCell = 0;
 
-    private SwipeRefreshLayout.OnRefreshListener mOnRefreshListener = null;
+    private SwipeRefresh mOnRefreshListener = null;
     
     
     public void setListAdapter(ListAdapter listAdapter) {
@@ -240,7 +241,7 @@ implements OnItemClickListener, SwipeRefreshLayout.OnRefreshListener {
         }
     }
     
-    public void setOnRefreshListener(SwipeRefreshLayout.OnRefreshListener listener) {
+    public void setOnRefreshListener(SwipeRefresh listener) {
         mOnRefreshListener = listener;
     }
     
@@ -300,4 +301,13 @@ implements OnItemClickListener, SwipeRefreshLayout.OnRefreshListener {
         refreshLayout.setOnRefreshListener(this);
     }
 
+    @Override
+    public void onRefreshForced(boolean ingnoreTag) {
+        mRefreshLayout.setRefreshing(false);
+        mRefreshEmptyLayout.setRefreshing(false);
+
+        if (mOnRefreshListener != null) {
+            mOnRefreshListener.onRefreshForced(ingnoreTag);
+        }
+    }
 }

+ 3 - 2
src/com/owncloud/android/ui/fragment/OCFileListFragment.java

@@ -36,6 +36,7 @@ import com.owncloud.android.datamodel.OCFile;
 import com.owncloud.android.files.FileMenuFilter;
 import com.owncloud.android.ui.activity.FileDisplayActivity;
 import com.owncloud.android.ui.activity.MoveActivity;
+import com.owncloud.android.ui.activity.SwipeRefresh;
 import com.owncloud.android.ui.adapter.FileListListAdapter;
 import com.owncloud.android.ui.dialog.ConfirmationDialogFragment;
 import com.owncloud.android.ui.dialog.RemoveFileDialogFragment;
@@ -88,7 +89,7 @@ public class OCFileListFragment extends ExtendedListFragment {
                     FileFragment.ContainerActivity.class.getSimpleName());
         }
         try {
-            setOnRefreshListener((SwipeRefreshLayout.OnRefreshListener) activity);
+            setOnRefreshListener((SwipeRefresh) activity);
             
         } catch (ClassCastException e) {
             throw new ClassCastException(activity.toString() + " must implement " + 
@@ -174,7 +175,7 @@ public class OCFileListFragment extends ExtendedListFragment {
             
             listDirectory(mFile);
 
-            onRefresh();
+            onRefreshForced(false);
             
             // restore index and top position
             restoreIndexAndTopPosition();