cleanup
[pub/Android/ownCloud.git] / src / com / owncloud / android / datamodel / OCFile.java
index 2d8f59e..6a4ada2 100644 (file)
@@ -20,9 +20,12 @@ package com.owncloud.android.datamodel;
 
 import java.io.File;
 
-import com.owncloud.android.utils.Log_OC;
-
+import com.owncloud.android.MainApp;
+import com.owncloud.android.lib.common.utils.Log_OC;
 
+import third_parties.daveKoeller.AlphanumComparator;
+import android.content.Intent;
+import android.net.Uri;
 import android.os.Parcel;
 import android.os.Parcelable;
 import android.webkit.MimeTypeMap;
@@ -65,6 +68,11 @@ public class OCFile implements Parcelable, Comparable<OCFile> {
     private boolean mShareByLink;
     private String mPublicLink;
 
+    private String mPermissions;
+    private String mRemoteId;
+
+    private boolean mNeedsUpdateThumbnail;
+
 
     /**
      * Create new {@link OCFile} with given path.
@@ -102,8 +110,12 @@ public class OCFile implements Parcelable, Comparable<OCFile> {
         mLastSyncDateForProperties = source.readLong();
         mLastSyncDateForData = source.readLong();
         mEtag = source.readString();
-        mShareByLink = source.readInt() == 0;
+        mShareByLink = source.readInt() == 1;
         mPublicLink = source.readString();
+        mPermissions = source.readString();
+        mRemoteId = source.readString();
+        mNeedsUpdateThumbnail = source.readInt() == 0;
+
     }
 
     @Override
@@ -124,6 +136,9 @@ public class OCFile implements Parcelable, Comparable<OCFile> {
         dest.writeString(mEtag);
         dest.writeInt(mShareByLink ? 1 : 0);
         dest.writeString(mPublicLink);
+        dest.writeString(mPermissions);
+        dest.writeString(mRemoteId);
+        dest.writeInt(mNeedsUpdateThumbnail ? 1 : 0);
     }
     
     /**
@@ -284,6 +299,17 @@ public class OCFile implements Parcelable, Comparable<OCFile> {
                 mRemotePath += PATH_SEPARATOR;
             }
             Log_OC.d(TAG, "OCFile name changed to " + mRemotePath);
+            
+            // Notify MediaScanner about removed file
+            Intent intent1 = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
+            intent1.setData(Uri.fromFile(new File(this.getStoragePath())));
+            MainApp.getAppContext().sendBroadcast(intent1);
+            
+            // Notify MediaScanner about new file
+            Intent intent2 = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
+            String folder = new File(this.getStoragePath()).getParent();
+            intent2.setData(Uri.fromFile(new File(folder+ PATH_SEPARATOR+name)));
+            MainApp.getAppContext().sendBroadcast(intent2);
         }
     }
 
@@ -334,6 +360,9 @@ public class OCFile implements Parcelable, Comparable<OCFile> {
         mEtag = null;
         mShareByLink = false;
         mPublicLink = null;
+        mPermissions = null;
+        mRemoteId = null;
+        mNeedsUpdateThumbnail = false;
     }
 
     /**
@@ -399,6 +428,14 @@ public class OCFile implements Parcelable, Comparable<OCFile> {
         return mNeedsUpdating;
     }
     
+    public boolean needsUpdateThumbnail() {
+        return mNeedsUpdateThumbnail;
+    }
+
+    public void setNeedsUpdateThumbnail(boolean needsUpdateThumbnail) {
+        this.mNeedsUpdateThumbnail = needsUpdateThumbnail;
+    }
+
     public long getLastSyncDateForProperties() {
         return mLastSyncDateForProperties;
     }
@@ -437,7 +474,7 @@ public class OCFile implements Parcelable, Comparable<OCFile> {
         } else if (another.isFolder()) {
             return 1;
         }
-        return getRemotePath().toLowerCase().compareTo(another.getRemotePath().toLowerCase());
+        return new AlphanumComparator().compare(this, another);
     }
 
     @Override
@@ -518,4 +555,20 @@ public class OCFile implements Parcelable, Comparable<OCFile> {
         return (result != null) ? result : "";
     }
 
+    public String getPermissions() {
+        return mPermissions;
+    }
+
+    public void setPermissions(String permissions) {
+        this.mPermissions = permissions;
+    }
+
+    public String getRemoteId() {
+        return mRemoteId;
+    }
+
+    public void setRemoteId(String remoteId) {
+        this.mRemoteId = remoteId;
+    }
+
 }