Merge pull request #641 from owncloud/thumbnails_for_downloaded_images
authorJavier Gonzalez <javiergonzper@gmail.com>
Wed, 1 Oct 2014 09:35:50 +0000 (11:35 +0200)
committerJavier Gonzalez <javiergonzper@gmail.com>
Wed, 1 Oct 2014 09:35:50 +0000 (11:35 +0200)
Thumbnails for downloaded images

1  2 
src/com/owncloud/android/datamodel/FileDataStorageManager.java
src/com/owncloud/android/datamodel/OCFile.java
src/com/owncloud/android/files/services/FileDownloader.java
src/com/owncloud/android/providers/FileContentProvider.java

@@@ -27,11 -27,11 +27,11 @@@ import java.util.Vector
  
  import com.owncloud.android.MainApp;
  import com.owncloud.android.db.ProviderMeta.ProviderTableMeta;
 +import com.owncloud.android.lib.common.utils.Log_OC;
  import com.owncloud.android.lib.resources.shares.OCShare;
  import com.owncloud.android.lib.resources.shares.ShareType;
  import com.owncloud.android.lib.resources.files.FileUtils;
  import com.owncloud.android.utils.FileStorageUtils;
 -import com.owncloud.android.utils.Log_OC;
  
  
  import android.accounts.Account;
@@@ -188,6 -188,7 +188,7 @@@ public class FileDataStorageManager 
          cv.put(ProviderTableMeta.FILE_PUBLIC_LINK, file.getPublicLink());
          cv.put(ProviderTableMeta.FILE_PERMISSIONS, file.getPermissions());
          cv.put(ProviderTableMeta.FILE_REMOTE_ID, file.getRemoteId());
+         cv.put(ProviderTableMeta.FILE_UPDATE_THUMBNAIL, file.needsUpdateThumbnail());
          
          boolean sameRemotePath = fileExists(file.getRemotePath());
          if (sameRemotePath ||
              file.setPublicLink(c.getString(c.getColumnIndex(ProviderTableMeta.FILE_PUBLIC_LINK)));
              file.setPermissions(c.getString(c.getColumnIndex(ProviderTableMeta.FILE_PERMISSIONS)));
              file.setRemoteId(c.getString(c.getColumnIndex(ProviderTableMeta.FILE_REMOTE_ID)));
+             file.setNeedsUpdateThumbnail(c.getInt(
+                     c.getColumnIndex(ProviderTableMeta.FILE_UPDATE_THUMBNAIL)) == 1 ? true : false);
                      
          }
          return file;
                  cv.put(ProviderTableMeta.FILE_PUBLIC_LINK, file.getPublicLink());
                  cv.put(ProviderTableMeta.FILE_PERMISSIONS, file.getPermissions());
                  cv.put(ProviderTableMeta.FILE_REMOTE_ID, file.getRemoteId());
+                 cv.put(ProviderTableMeta.FILE_UPDATE_THUMBNAIL, file.needsUpdateThumbnail() ? 1 : 0);
  
                  boolean existsByPath = fileExists(file.getRemotePath());
                  if (existsByPath || fileExists(file.getFileId())) {
@@@ -20,7 -20,7 +20,7 @@@ package com.owncloud.android.datamodel
  
  import java.io.File;
  
 -import com.owncloud.android.utils.Log_OC;
 +import com.owncloud.android.lib.common.utils.Log_OC;
  
  
  import android.os.Parcel;
@@@ -68,6 -68,8 +68,8 @@@ public class OCFile implements Parcelab
      private String mPermissions;
      private String mRemoteId;
  
+     private boolean mNeedsUpdateThumbnail;
  
      /**
       * Create new {@link OCFile} with given path.
          mPublicLink = source.readString();
          mPermissions = source.readString();
          mRemoteId = source.readString();
+         mNeedsUpdateThumbnail = source.readInt() == 0;
      }
  
      @Override
          dest.writeString(mPublicLink);
          dest.writeString(mPermissions);
          dest.writeString(mRemoteId);
+         dest.writeInt(mNeedsUpdateThumbnail ? 1 : 0);
      }
      
      /**
          mPublicLink = null;
          mPermissions = null;
          mRemoteId = null;
+         mNeedsUpdateThumbnail = false;
      }
  
      /**
          return mNeedsUpdating;
      }
      
+     public boolean needsUpdateThumbnail() {
+         return mNeedsUpdateThumbnail;
+     }
+     public void setNeedsUpdateThumbnail(boolean needsUpdateThumbnail) {
+         this.mNeedsUpdateThumbnail = needsUpdateThumbnail;
+     }
      public long getLastSyncDateForProperties() {
          return mLastSyncDateForProperties;
      }
@@@ -41,7 -41,6 +41,7 @@@ import com.owncloud.android.notificatio
  import com.owncloud.android.notifications.NotificationDelayer;
  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.files.FileUtils;
  import com.owncloud.android.operations.DownloadFileOperation;
  import com.owncloud.android.ui.activity.FileActivity;
@@@ -49,6 -48,7 +49,6 @@@ import com.owncloud.android.ui.activity
  import com.owncloud.android.ui.preview.PreviewImageActivity;
  import com.owncloud.android.ui.preview.PreviewImageFragment;
  import com.owncloud.android.utils.ErrorMessageAdapter;
 -import com.owncloud.android.utils.Log_OC;
  
  import android.accounts.Account;
  import android.accounts.AccountsException;
@@@ -391,6 -391,7 +391,7 @@@ public class FileDownloader extends Ser
          long syncDate = System.currentTimeMillis();
          file.setLastSyncDateForProperties(syncDate);
          file.setLastSyncDateForData(syncDate);
+         file.setNeedsUpdateThumbnail(true);
          file.setModificationTimestamp(mCurrentDownload.getModificationTimestamp());
          file.setModificationTimestampAtLastSyncForData(mCurrentDownload.getModificationTimestamp());
          // file.setEtag(mCurrentDownload.getEtag());    // TODO Etag, where available
@@@ -24,8 -24,8 +24,8 @@@ import java.util.HashMap
  import com.owncloud.android.R;
  import com.owncloud.android.db.ProviderMeta;
  import com.owncloud.android.db.ProviderMeta.ProviderTableMeta;
 +import com.owncloud.android.lib.common.utils.Log_OC;
  import com.owncloud.android.lib.resources.shares.ShareType;
 -import com.owncloud.android.utils.Log_OC;
  
  
  
@@@ -97,6 -97,8 +97,8 @@@ public class FileContentProvider extend
                  ProviderTableMeta.FILE_PERMISSIONS);
          mFileProjectionMap.put(ProviderTableMeta.FILE_REMOTE_ID,
                  ProviderTableMeta.FILE_REMOTE_ID);
+         mFileProjectionMap.put(ProviderTableMeta.FILE_UPDATE_THUMBNAIL,
+                 ProviderTableMeta.FILE_UPDATE_THUMBNAIL);
      }
  
      private static final int SINGLE_FILE = 1;
                      + ProviderTableMeta.FILE_SHARE_BY_LINK + " INTEGER, "
                      + ProviderTableMeta.FILE_PUBLIC_LINK  + " TEXT, "
                      + ProviderTableMeta.FILE_PERMISSIONS  + " TEXT null,"
-                     + ProviderTableMeta.FILE_REMOTE_ID  + " TEXT null);"
+                     + ProviderTableMeta.FILE_REMOTE_ID  + " TEXT null,"
+                     + ProviderTableMeta.FILE_UPDATE_THUMBNAIL  + " INTEGER);" //boolean
                      );
              
              // Create table ocshares
              }
              if (!upgraded)
                  Log_OC.i("SQL", "OUT of the ADD in onUpgrade; oldVersion == " + oldVersion + ", newVersion == " + newVersion);
+             if (oldVersion < 8 && newVersion >= 8) {
+                 Log_OC.i("SQL", "Entering in the #8 ADD in onUpgrade");
+                 db.beginTransaction();
+                 try {
+                     db .execSQL("ALTER TABLE " + ProviderTableMeta.FILE_TABLE_NAME +
+                             " ADD COLUMN " + ProviderTableMeta.FILE_UPDATE_THUMBNAIL + " INTEGER " +
+                             " DEFAULT 0");
+                     upgraded = true;
+                     db.setTransactionSuccessful();
+                 } finally {
+                     db.endTransaction();
+                 }
+             }
+             if (!upgraded)
+                 Log_OC.i("SQL", "OUT of the ADD in onUpgrade; oldVersion == " + oldVersion + ", newVersion == " + newVersion);
          }
      }