浏览代码

Refactor available offline

Mario Danic 8 年之前
父节点
当前提交
3fa0c5ca32

+ 2 - 2
androidTest/java/com/owncloud/android/datamodel/OCFileUnitTest.java

@@ -85,7 +85,7 @@ public class OCFileUnitTest {
         mFile.setModificationTimestampAtLastSyncForData(MODIFICATION_TIMESTAMP_AT_LAST_SYNC_FOR_DATA);
         mFile.setLastSyncDateForProperties(LAST_SYNC_DATE_FOR_PROPERTIES);
         mFile.setLastSyncDateForData(LAST_SYNC_DATE_FOR_DATA);
-        mFile.setFavorite(true);
+        mFile.setAvailableOffline(true);
         mFile.setEtag(ETAG);
         mFile.setShareViaLink(true);
         mFile.setShareWithSharee(true);
@@ -120,7 +120,7 @@ public class OCFileUnitTest {
         );
         assertThat(fileReadFromParcel.getLastSyncDateForProperties(), is(LAST_SYNC_DATE_FOR_PROPERTIES));
         assertThat(fileReadFromParcel.getLastSyncDateForData(), is(LAST_SYNC_DATE_FOR_DATA));
-        assertThat(fileReadFromParcel.isFavorite(), is(true));
+        assertThat(fileReadFromParcel.setAvailableOffline(), is(true));
         assertThat(fileReadFromParcel.getEtag(), is(ETAG));
         assertThat(fileReadFromParcel.isSharedViaLink(), is(true));
         assertThat(fileReadFromParcel.isSharedWithSharee(), is(true));

+ 6 - 1
build.gradle

@@ -23,6 +23,11 @@ apply plugin: 'checkstyle'
 apply plugin: 'pmd'
 apply plugin: 'findbugs'
 
+configurations.all {
+    // check for updates every build
+    resolutionStrategy.cacheChangingModulesFor 0, 'seconds'
+}
+
 ext {
     supportLibraryVersion = '24.0.0'
 
@@ -168,7 +173,7 @@ dependencies {
     compile name: 'touch-image-view'
     compile 'com.android.support:multidex:1.0.1'
 
-    compile 'com.github.nextcloud:android-library:1.0.11'
+    compile 'com.github.nextcloud:android-library:favorites-branch-SNAPSHOT'
     compile "com.android.support:support-v4:${supportLibraryVersion}"
     compile "com.android.support:design:${supportLibraryVersion}"
     compile 'com.jakewharton:disklrucache:2.0.2'

+ 5 - 5
src/main/java/com/owncloud/android/datamodel/FileDataStorageManager.java

@@ -190,7 +190,7 @@ public class FileDataStorageManager {
         cv.put(ProviderTableMeta.FILE_ACCOUNT_OWNER, mAccount.name);
         cv.put(ProviderTableMeta.FILE_LAST_SYNC_DATE, file.getLastSyncDateForProperties());
         cv.put(ProviderTableMeta.FILE_LAST_SYNC_DATE_FOR_DATA, file.getLastSyncDateForData());
-        cv.put(ProviderTableMeta.FILE_KEEP_IN_SYNC, file.isFavorite() ? 1 : 0);
+        cv.put(ProviderTableMeta.FILE_KEEP_IN_SYNC, file.isAvailableOffline() ? 1 : 0);
         cv.put(ProviderTableMeta.FILE_ETAG, file.getEtag());
         cv.put(ProviderTableMeta.FILE_SHARED_VIA_LINK, file.isSharedViaLink() ? 1 : 0);
         cv.put(ProviderTableMeta.FILE_SHARED_WITH_SHAREE, file.isSharedWithSharee() ? 1 : 0);
@@ -303,7 +303,7 @@ public class FileDataStorageManager {
             cv.put(ProviderTableMeta.FILE_ACCOUNT_OWNER, mAccount.name);
             cv.put(ProviderTableMeta.FILE_LAST_SYNC_DATE, file.getLastSyncDateForProperties());
             cv.put(ProviderTableMeta.FILE_LAST_SYNC_DATE_FOR_DATA, file.getLastSyncDateForData());
-            cv.put(ProviderTableMeta.FILE_KEEP_IN_SYNC, file.isFavorite() ? 1 : 0);
+            cv.put(ProviderTableMeta.FILE_KEEP_IN_SYNC, file.isAvailableOffline() ? 1 : 0);
             cv.put(ProviderTableMeta.FILE_ETAG, file.getEtag());
             cv.put(ProviderTableMeta.FILE_SHARED_VIA_LINK, file.isSharedViaLink() ? 1 : 0);
             cv.put(ProviderTableMeta.FILE_SHARED_WITH_SHAREE, file.isSharedWithSharee() ? 1 : 0);
@@ -380,7 +380,7 @@ public class FileDataStorageManager {
         cv.put(ProviderTableMeta.FILE_ACCOUNT_OWNER, mAccount.name);
         cv.put(ProviderTableMeta.FILE_LAST_SYNC_DATE, folder.getLastSyncDateForProperties());
         cv.put(ProviderTableMeta.FILE_LAST_SYNC_DATE_FOR_DATA, folder.getLastSyncDateForData());
-        cv.put(ProviderTableMeta.FILE_KEEP_IN_SYNC, folder.isFavorite() ? 1 : 0);
+        cv.put(ProviderTableMeta.FILE_KEEP_IN_SYNC, folder.isAvailableOffline() ? 1 : 0);
         cv.put(ProviderTableMeta.FILE_ETAG, folder.getEtag());
         cv.put(ProviderTableMeta.FILE_SHARED_VIA_LINK, folder.isSharedViaLink() ? 1 : 0);
         cv.put(ProviderTableMeta.FILE_SHARED_WITH_SHAREE, folder.isSharedWithSharee() ? 1 : 0);
@@ -895,7 +895,7 @@ public class FileDataStorageManager {
                     c.getColumnIndex(ProviderTableMeta.FILE_MODIFIED_AT_LAST_SYNC_FOR_DATA)));
             file.setLastSyncDateForProperties(c.getLong(c.getColumnIndex(ProviderTableMeta.FILE_LAST_SYNC_DATE)));
             file.setLastSyncDateForData(c.getLong(c.getColumnIndex(ProviderTableMeta.FILE_LAST_SYNC_DATE_FOR_DATA)));
-            file.setFavorite(c.getInt(c.getColumnIndex(ProviderTableMeta.FILE_KEEP_IN_SYNC)) == 1 ? true : false);
+            file.setAvailableOffline(c.getInt(c.getColumnIndex(ProviderTableMeta.FILE_KEEP_IN_SYNC)) == 1 ? true : false);
             file.setEtag(c.getString(c.getColumnIndex(ProviderTableMeta.FILE_ETAG)));
             file.setShareViaLink(c.getInt(
                     c.getColumnIndex(ProviderTableMeta.FILE_SHARED_VIA_LINK)) == 1 ? true : false);
@@ -1315,7 +1315,7 @@ public class FileDataStorageManager {
                         ProviderTableMeta.FILE_LAST_SYNC_DATE_FOR_DATA,
                         file.getLastSyncDateForData()
                 );
-                cv.put(ProviderTableMeta.FILE_KEEP_IN_SYNC, file.isFavorite() ? 1 : 0);
+                cv.put(ProviderTableMeta.FILE_KEEP_IN_SYNC, file.isAvailableOffline() ? 1 : 0);
                 cv.put(ProviderTableMeta.FILE_ETAG, file.getEtag());
                 cv.put(ProviderTableMeta.FILE_SHARED_VIA_LINK, file.isSharedViaLink() ? 1 : 0);
                 cv.put(ProviderTableMeta.FILE_SHARED_WITH_SHAREE, file.isSharedWithSharee() ? 1 : 0);

+ 9 - 9
src/main/java/com/owncloud/android/datamodel/OCFile.java

@@ -74,7 +74,7 @@ public class OCFile implements Parcelable, Comparable<OCFile> {
     private boolean mNeedsUpdating;
     private long mLastSyncDateForProperties;
     private long mLastSyncDateForData;
-    private boolean mFavorite;
+    private boolean mAvailableOffline;
 
     private String mEtag;
 
@@ -139,7 +139,7 @@ public class OCFile implements Parcelable, Comparable<OCFile> {
         mLocalPath = source.readString();
         mMimeType = source.readString();
         mNeedsUpdating = source.readInt() == 0;
-        mFavorite = source.readInt() == 1;
+        mAvailableOffline = source.readInt() == 1;
         mLastSyncDateForProperties = source.readLong();
         mLastSyncDateForData = source.readLong();
         mEtag = source.readString();
@@ -166,7 +166,7 @@ public class OCFile implements Parcelable, Comparable<OCFile> {
         dest.writeString(mLocalPath);
         dest.writeString(mMimeType);
         dest.writeInt(mNeedsUpdating ? 1 : 0);
-        dest.writeInt(mFavorite ? 1 : 0);
+        dest.writeInt(mAvailableOffline ? 1 : 0);
         dest.writeLong(mLastSyncDateForProperties);
         dest.writeLong(mLastSyncDateForData);
         dest.writeString(mEtag);
@@ -412,7 +412,7 @@ public class OCFile implements Parcelable, Comparable<OCFile> {
         mModifiedTimestampAtLastSyncForData = 0;
         mLastSyncDateForProperties = 0;
         mLastSyncDateForData = 0;
-        mFavorite = false;
+        mAvailableOffline = false;
         mNeedsUpdating = false;
         mEtag = null;
         mShareByLink = false;
@@ -521,12 +521,12 @@ public class OCFile implements Parcelable, Comparable<OCFile> {
         mLastSyncDateForData = lastSyncDate;
     }
 
-    public void setFavorite(boolean favorite) {
-        mFavorite = favorite;
+    public void setAvailableOffline(boolean availableOffline) {
+        mAvailableOffline = availableOffline;
     }
 
-    public boolean isFavorite() {
-        return mFavorite;
+    public boolean isAvailableOffline() {
+        return mAvailableOffline;
     }
 
     @Override
@@ -572,7 +572,7 @@ public class OCFile implements Parcelable, Comparable<OCFile> {
         String asString = "[id=%s, name=%s, mime=%s, downloaded=%s, local=%s, remote=%s, " +
                 "parentId=%s, favorite=%s etag=%s]";
         asString = String.format(asString, mId, getFileName(), mMimeType, isDown(),
-                mLocalPath, mRemotePath, mParentId, mFavorite,
+                mLocalPath, mRemotePath, mParentId, mAvailableOffline,
                 mEtag);
         return asString;
     }

+ 2 - 2
src/main/java/com/owncloud/android/files/FileMenuFilter.java

@@ -322,7 +322,7 @@ public class FileMenuFilter {
 
     private boolean allFavorites() {
         for(OCFile file: mFiles) {
-            if(!file.isFavorite()) {
+            if(!file.isAvailableOffline()) {
                 return false;
             }
         }
@@ -331,7 +331,7 @@ public class FileMenuFilter {
 
     private boolean allUnfavorites() {
         for(OCFile file: mFiles) {
-            if(file.isFavorite()) {
+            if(file.isAvailableOffline()) {
                 return false;
             }
         }

+ 3 - 3
src/main/java/com/owncloud/android/operations/RefreshFolderOperation.java

@@ -394,7 +394,7 @@ public class RefreshFolderOperation extends RemoteOperation {
             updatedFile.setLastSyncDateForProperties(mCurrentSyncTime);
             if (localFile != null) {
                 updatedFile.setFileId(localFile.getFileId());
-                updatedFile.setFavorite(localFile.isFavorite());
+                updatedFile.setAvailableOffline(localFile.isAvailableOffline());
                 updatedFile.setLastSyncDateForData(localFile.getLastSyncDateForData());
                 updatedFile.setModificationTimestampAtLastSyncForData(
                         localFile.getModificationTimestampAtLastSyncForData()
@@ -423,7 +423,7 @@ public class RefreshFolderOperation extends RemoteOperation {
             FileStorageUtils.searchForLocalFileInDefaultPath(updatedFile, mAccount);
 
             /// prepare content synchronization for kept-in-sync files
-            if (updatedFile.isFavorite()) {
+            if (updatedFile.isAvailableOffline()) {
                 SynchronizeFileOperation operation = new SynchronizeFileOperation(  localFile,        
                                                                                     remoteFile, 
                                                                                     mAccount, 
@@ -539,7 +539,7 @@ public class RefreshFolderOperation extends RemoteOperation {
     private void fetchFavoritesToSyncFromLocalData() {
         List<OCFile> children = mStorageManager.getFolderContent(mLocalFolder, false);
         for (OCFile child : children) {
-            if (!child.isFolder() && child.isFavorite() && !child.isInConflict()) {
+            if (!child.isFolder() && child.isAvailableOffline() && !child.isInConflict()) {
                 SynchronizeFileOperation operation = new SynchronizeFileOperation(
                         child,
                         child,  // cheating with the remote file to get an update to server; to refactor

+ 1 - 1
src/main/java/com/owncloud/android/operations/SynchronizeFileOperation.java

@@ -247,7 +247,7 @@ public class SynchronizeFileOperation extends SyncOperation {
                         // service when the upload finishes
                     } else {
                         // TODO CHECK: is this really useful in some point in the code?
-                        mServerFile.setFavorite(mLocalFile.isFavorite());
+                        mServerFile.setAvailableOffline(mLocalFile.isAvailableOffline());
                         mServerFile.setLastSyncDateForData(mLocalFile.getLastSyncDateForData());
                         mServerFile.setStoragePath(mLocalFile.getStoragePath());
                         mServerFile.setParentId(mLocalFile.getParentId());

+ 1 - 1
src/main/java/com/owncloud/android/operations/SynchronizeFolderOperation.java

@@ -323,7 +323,7 @@ public class SynchronizeFolderOperation extends SyncOperation {
         updatedFile.setLastSyncDateForProperties(mCurrentSyncTime);
         if (localFile != null) {
             updatedFile.setFileId(localFile.getFileId());
-            updatedFile.setFavorite(localFile.isFavorite());
+            updatedFile.setAvailableOffline(localFile.isAvailableOffline());
             updatedFile.setLastSyncDateForData(localFile.getLastSyncDateForData());
             updatedFile.setModificationTimestampAtLastSyncForData(
                     localFile.getModificationTimestampAtLastSyncForData()

+ 1 - 1
src/main/java/com/owncloud/android/operations/UploadFileOperation.java

@@ -572,7 +572,7 @@ public class UploadFileOperation extends SyncOperation {
                 mFile.getModificationTimestampAtLastSyncForData()
         );
         newFile.setEtag(mFile.getEtag());
-        newFile.setFavorite(mFile.isFavorite());
+        newFile.setAvailableOffline(mFile.isAvailableOffline());
         newFile.setLastSyncDateForProperties(mFile.getLastSyncDateForProperties());
         newFile.setLastSyncDateForData(mFile.getLastSyncDateForData());
         newFile.setStoragePath(mFile.getStoragePath());

+ 1 - 1
src/main/java/com/owncloud/android/ui/adapter/FileListListAdapter.java

@@ -299,7 +299,7 @@ public class FileListListAdapter extends BaseAdapter {
 
             // this if-else is needed even though favorite icon is visible by default
             // because android reuses views in listview
-            if (!file.isFavorite()) {
+            if (!file.isAvailableOffline()) {
                 view.findViewById(R.id.favoriteIcon).setVisibility(View.GONE);
             } else {
                 view.findViewById(R.id.favoriteIcon).setVisibility(View.VISIBLE);

+ 3 - 3
src/main/java/com/owncloud/android/ui/dialog/RemoveFileDialogFragment.java

@@ -57,7 +57,7 @@ implements ConfirmationDialogFragmentListener {
         
         int messageStringId = R.string.confirmation_remove_file_alert;
         
-        int localRemoveButton = (!file.isFavorite() && (file.isFolder() || file.isDown())) ?
+        int localRemoveButton = (!file.isAvailableOffline() && (file.isFolder() || file.isDown())) ?
             R.string.confirmation_remove_local : -1;
 
         if (file.isFolder()) {
@@ -115,7 +115,7 @@ implements ConfirmationDialogFragmentListener {
         if (mTargetFile.isFolder()) {
             Vector<OCFile> files = storageManager.getFolderContent(mTargetFile, false);
             for(OCFile file: files) {
-                containsFavorite = file.isFavorite() || containsFavorite;
+                containsFavorite = file.isAvailableOffline() || containsFavorite;
 
                 if (containsFavorite) {
                     break;
@@ -125,7 +125,7 @@ implements ConfirmationDialogFragmentListener {
 
         // Remove etag for parent, if file is a favorite
         // or is a folder and contains favorite
-        if (mTargetFile.isFavorite() || containsFavorite) {
+        if (mTargetFile.isAvailableOffline() || containsFavorite) {
             OCFile folder = null;
             if (mTargetFile.isFolder()) {
                 folder = mTargetFile;

+ 1 - 1
src/main/java/com/owncloud/android/ui/dialog/RemoveFilesDialogFragment.java

@@ -61,7 +61,7 @@ implements ConfirmationDialogFragmentListener {
         for (OCFile file: files) {
             containsFolder |= file.isFolder();
             containsDown |= file.isDown();
-            containsFavorite |= file.isFavorite();
+            containsFavorite |= file.isAvailableOffline();
         }
 
         if (files.size() == 1) {

+ 4 - 4
src/main/java/com/owncloud/android/ui/fragment/FileDetailFragment.java

@@ -293,11 +293,11 @@ public class FileDetailFragment extends FileFragment implements OnClickListener
                 return true;
             }
             case R.id.action_favorite_file:{
-                mContainerActivity.getFileOperationsHelper().toggleFavorite(getFile(), true);
+                mContainerActivity.getFileOperationsHelper().toggleOfflineFile(getFile(), true);
                 return true;
             }
             case R.id.action_unfavorite_file:{
-                mContainerActivity.getFileOperationsHelper().toggleFavorite(getFile(), false);
+                mContainerActivity.getFileOperationsHelper().toggleOfflineFile(getFile(), false);
                 return true;
             }
             default:
@@ -310,7 +310,7 @@ public class FileDetailFragment extends FileFragment implements OnClickListener
         switch (v.getId()) {
             case R.id.fdFavorite: {
                 CheckBox cb = (CheckBox) getView().findViewById(R.id.fdFavorite);
-                mContainerActivity.getFileOperationsHelper().toggleFavorite(getFile(),cb.isChecked());
+                mContainerActivity.getFileOperationsHelper().toggleOfflineFile(getFile(),cb.isChecked());
                 break;
             }
             case R.id.fdCancelBtn: {
@@ -369,7 +369,7 @@ public class FileDetailFragment extends FileFragment implements OnClickListener
             setTimeModified(file.getModificationTimestamp());
             
             CheckBox cb = (CheckBox)getView().findViewById(R.id.fdFavorite);
-            cb.setChecked(file.isFavorite());
+            cb.setChecked(file.isAvailableOffline());
 
             // configure UI for depending upon local state of the file
             FileDownloaderBinder downloaderBinder = mContainerActivity.getFileDownloaderBinder();

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

@@ -721,11 +721,11 @@ public class OCFileListFragment extends ExtendedListFragment implements Extended
                 return true;
             }
             case R.id.action_favorite_file: {
-                mContainerActivity.getFileOperationsHelper().toggleFavorites(checkedFiles, true);
+                mContainerActivity.getFileOperationsHelper().toogleOfflineFiles(checkedFiles, true);
                 return true;
             }
             case R.id.action_unfavorite_file: {
-                mContainerActivity.getFileOperationsHelper().toggleFavorites(checkedFiles, false);
+                mContainerActivity.getFileOperationsHelper().toogleOfflineFiles(checkedFiles, false);
                 return true;
             }
             case R.id.action_move: {

+ 8 - 8
src/main/java/com/owncloud/android/ui/helpers/FileOperationsHelper.java

@@ -546,10 +546,10 @@ public class FileOperationsHelper {
         }
     }
 
-    public void toggleFavorites(Collection<OCFile> files, boolean isFavorite){
+    public void toogleOfflineFiles(Collection<OCFile> files, boolean isAvailableOffline){
         List<OCFile> alreadyRightStateList = new ArrayList<>();
         for(OCFile file : files) {
-            if(file.isFavorite() == isFavorite) {
+            if(file.isAvailableOffline() == isAvailableOffline) {
                 alreadyRightStateList.add(file);
             }
         }
@@ -557,13 +557,13 @@ public class FileOperationsHelper {
         files.removeAll(alreadyRightStateList);
 
         for (OCFile file: files) {
-            toggleFavorite(file, isFavorite);
+            toggleOfflineFile(file, isAvailableOffline);
         }
     }
 
-    public void toggleFavorite(OCFile file, boolean isFavorite) {
-        if (file.isFavorite() != isFavorite) {
-            file.setFavorite(isFavorite);
+    public void toggleOfflineFile(OCFile file, boolean isAvailableOffline) {
+        if (file.isAvailableOffline() != isAvailableOffline) {
+            file.setAvailableOffline(isAvailableOffline);
             mFileActivity.getStorageManager().saveFile(file);
 
             /// register the OCFile instance in the observer service to monitor local updates
@@ -571,11 +571,11 @@ public class FileOperationsHelper {
                     mFileActivity,
                     file,
                     mFileActivity.getAccount(),
-                    isFavorite);
+                    isAvailableOffline);
             mFileActivity.startService(observedFileIntent);
 
             /// immediate content synchronization
-            if (file.isFavorite()) {
+            if (file.isAvailableOffline()) {
                 syncFile(file);
             }
         }

+ 2 - 2
src/main/java/com/owncloud/android/ui/preview/PreviewImageFragment.java

@@ -316,11 +316,11 @@ public class PreviewImageFragment extends FileFragment {
                 return true;
             }
             case R.id.action_favorite_file:{
-                mContainerActivity.getFileOperationsHelper().toggleFavorite(getFile(), true);
+                mContainerActivity.getFileOperationsHelper().toggleOfflineFile(getFile(), true);
                 return true;
             }
             case R.id.action_unfavorite_file:{
-                mContainerActivity.getFileOperationsHelper().toggleFavorite(getFile(), false);
+                mContainerActivity.getFileOperationsHelper().toggleOfflineFile(getFile(), false);
                 return true;
             }
             default:

+ 2 - 2
src/main/java/com/owncloud/android/ui/preview/PreviewMediaFragment.java

@@ -380,11 +380,11 @@ public class PreviewMediaFragment extends FileFragment implements
                 return true;
             }
             case R.id.action_favorite_file:{
-                mContainerActivity.getFileOperationsHelper().toggleFavorite(getFile(), true);
+                mContainerActivity.getFileOperationsHelper().toggleOfflineFile(getFile(), true);
                 return true;
             }
             case R.id.action_unfavorite_file:{
-                mContainerActivity.getFileOperationsHelper().toggleFavorite(getFile(), false);
+                mContainerActivity.getFileOperationsHelper().toggleOfflineFile(getFile(), false);
                 return true;
             }
             default:

+ 3 - 3
src/main/java/com/owncloud/android/utils/FileStorageUtils.java

@@ -454,11 +454,11 @@ public class FileStorageUtils {
     public static Vector<OCFile> sortOCFilesByFavourite(Vector<OCFile> files){
         Collections.sort(files, new Comparator<OCFile>() {
             public int compare(OCFile o1, OCFile o2) {
-                if (o1.isFavorite() && o2.isFavorite()) {
+                if (o1.isAvailableOffline() && o2.isAvailableOffline()) {
                     return 0;
-                } else if (o1.isFavorite()) {
+                } else if (o1.isAvailableOffline()) {
                     return -1;
-                } else if (o2.isFavorite()) {
+                } else if (o2.isAvailableOffline()) {
                     return 1;
                 }
                 return 0;