mirror of
https://github.com/nextcloud/android.git
synced 2024-12-18 23:11:58 +03:00
persist upload timestamp
Signed-off-by: tobiasKaminsky <tobias@kaminsky.me>
This commit is contained in:
parent
586a9b8010
commit
8a969e611f
8 changed files with 1332 additions and 7 deletions
1307
app/schemas/com.nextcloud.client.database.NextcloudDatabase/86.json
Normal file
1307
app/schemas/com.nextcloud.client.database.NextcloudDatabase/86.json
Normal file
File diff suppressed because it is too large
Load diff
|
@ -469,7 +469,7 @@ public class UploadIT extends AbstractOnServerIT {
|
||||||
|
|
||||||
assertEquals(remotePath, ocFile.getRemotePath());
|
assertEquals(remotePath, ocFile.getRemotePath());
|
||||||
assertEquals(creationTimestamp, ocFile.getCreationTimestamp());
|
assertEquals(creationTimestamp, ocFile.getCreationTimestamp());
|
||||||
assertTrue(uploadTimestamp - 10 < ocFile.getUploadTimestamp() ||
|
assertTrue(uploadTimestamp - 10 < ocFile.getUploadTimestamp() &&
|
||||||
uploadTimestamp + 10 > ocFile.getUploadTimestamp());
|
uploadTimestamp + 10 > ocFile.getUploadTimestamp());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -36,6 +36,7 @@ public class OCFileUnitTest {
|
||||||
private static final String STORAGE_PATH = "/mnt/sd/localpath/to/a/file.txt";
|
private static final String STORAGE_PATH = "/mnt/sd/localpath/to/a/file.txt";
|
||||||
private static final String MIME_TYPE = "text/plain";
|
private static final String MIME_TYPE = "text/plain";
|
||||||
private static final long FILE_LENGTH = 9876543210L;
|
private static final long FILE_LENGTH = 9876543210L;
|
||||||
|
private static final long UPLOADED_TIMESTAMP = 8765431109L;
|
||||||
private static final long CREATION_TIMESTAMP = 8765432109L;
|
private static final long CREATION_TIMESTAMP = 8765432109L;
|
||||||
private static final long MODIFICATION_TIMESTAMP = 7654321098L;
|
private static final long MODIFICATION_TIMESTAMP = 7654321098L;
|
||||||
private static final long MODIFICATION_TIMESTAMP_AT_LAST_SYNC_FOR_DATA = 6543210987L;
|
private static final long MODIFICATION_TIMESTAMP_AT_LAST_SYNC_FOR_DATA = 6543210987L;
|
||||||
|
@ -63,6 +64,7 @@ public class OCFileUnitTest {
|
||||||
mFile.setStoragePath(STORAGE_PATH);
|
mFile.setStoragePath(STORAGE_PATH);
|
||||||
mFile.setMimeType(MIME_TYPE);
|
mFile.setMimeType(MIME_TYPE);
|
||||||
mFile.setFileLength(FILE_LENGTH);
|
mFile.setFileLength(FILE_LENGTH);
|
||||||
|
mFile.setUploadTimestamp(UPLOADED_TIMESTAMP);
|
||||||
mFile.setCreationTimestamp(CREATION_TIMESTAMP);
|
mFile.setCreationTimestamp(CREATION_TIMESTAMP);
|
||||||
mFile.setModificationTimestamp(MODIFICATION_TIMESTAMP);
|
mFile.setModificationTimestamp(MODIFICATION_TIMESTAMP);
|
||||||
mFile.setModificationTimestampAtLastSyncForData(MODIFICATION_TIMESTAMP_AT_LAST_SYNC_FOR_DATA);
|
mFile.setModificationTimestampAtLastSyncForData(MODIFICATION_TIMESTAMP_AT_LAST_SYNC_FOR_DATA);
|
||||||
|
@ -93,6 +95,7 @@ public class OCFileUnitTest {
|
||||||
assertThat(fileReadFromParcel.getStoragePath(), is(STORAGE_PATH));
|
assertThat(fileReadFromParcel.getStoragePath(), is(STORAGE_PATH));
|
||||||
assertThat(fileReadFromParcel.getMimeType(), is(MIME_TYPE));
|
assertThat(fileReadFromParcel.getMimeType(), is(MIME_TYPE));
|
||||||
assertThat(fileReadFromParcel.getFileLength(), is(FILE_LENGTH));
|
assertThat(fileReadFromParcel.getFileLength(), is(FILE_LENGTH));
|
||||||
|
assertThat(fileReadFromParcel.getUploadTimestamp(), is(UPLOADED_TIMESTAMP));
|
||||||
assertThat(fileReadFromParcel.getCreationTimestamp(), is(CREATION_TIMESTAMP));
|
assertThat(fileReadFromParcel.getCreationTimestamp(), is(CREATION_TIMESTAMP));
|
||||||
assertThat(fileReadFromParcel.getModificationTimestamp(), is(MODIFICATION_TIMESTAMP));
|
assertThat(fileReadFromParcel.getModificationTimestamp(), is(MODIFICATION_TIMESTAMP));
|
||||||
assertThat(
|
assertThat(
|
||||||
|
|
|
@ -119,5 +119,7 @@ data class FileEntity(
|
||||||
@ColumnInfo(name = ProviderTableMeta.FILE_INTERNAL_TWO_WAY_SYNC_TIMESTAMP)
|
@ColumnInfo(name = ProviderTableMeta.FILE_INTERNAL_TWO_WAY_SYNC_TIMESTAMP)
|
||||||
val internalTwoWaySync: Long?,
|
val internalTwoWaySync: Long?,
|
||||||
@ColumnInfo(name = ProviderTableMeta.FILE_INTERNAL_TWO_WAY_SYNC_RESULT)
|
@ColumnInfo(name = ProviderTableMeta.FILE_INTERNAL_TWO_WAY_SYNC_RESULT)
|
||||||
val internalTwoWaySyncResult: String?
|
val internalTwoWaySyncResult: String?,
|
||||||
|
@ColumnInfo(name = ProviderTableMeta.FILE_UPLOADED)
|
||||||
|
val uploaded: Long?
|
||||||
)
|
)
|
||||||
|
|
|
@ -729,11 +729,13 @@ public class FileDataStorageManager {
|
||||||
* @see #createContentValuesForFile(OCFile)
|
* @see #createContentValuesForFile(OCFile)
|
||||||
* @see #createContentValuesForFolder(OCFile)
|
* @see #createContentValuesForFolder(OCFile)
|
||||||
*/
|
*/
|
||||||
|
@SuppressFBWarnings("CE")
|
||||||
private ContentValues createContentValuesBase(OCFile fileOrFolder) {
|
private ContentValues createContentValuesBase(OCFile fileOrFolder) {
|
||||||
final ContentValues cv = new ContentValues();
|
final ContentValues cv = new ContentValues();
|
||||||
cv.put(ProviderTableMeta.FILE_MODIFIED, fileOrFolder.getModificationTimestamp());
|
cv.put(ProviderTableMeta.FILE_MODIFIED, fileOrFolder.getModificationTimestamp());
|
||||||
cv.put(ProviderTableMeta.FILE_MODIFIED_AT_LAST_SYNC_FOR_DATA, fileOrFolder.getModificationTimestampAtLastSyncForData());
|
cv.put(ProviderTableMeta.FILE_MODIFIED_AT_LAST_SYNC_FOR_DATA, fileOrFolder.getModificationTimestampAtLastSyncForData());
|
||||||
cv.put(ProviderTableMeta.FILE_PARENT, fileOrFolder.getParentId());
|
cv.put(ProviderTableMeta.FILE_PARENT, fileOrFolder.getParentId());
|
||||||
|
cv.put(ProviderTableMeta.FILE_UPLOADED, fileOrFolder.getUploadTimestamp());
|
||||||
cv.put(ProviderTableMeta.FILE_CREATION, fileOrFolder.getCreationTimestamp());
|
cv.put(ProviderTableMeta.FILE_CREATION, fileOrFolder.getCreationTimestamp());
|
||||||
cv.put(ProviderTableMeta.FILE_CONTENT_TYPE, fileOrFolder.getMimeType());
|
cv.put(ProviderTableMeta.FILE_CONTENT_TYPE, fileOrFolder.getMimeType());
|
||||||
cv.put(ProviderTableMeta.FILE_NAME, fileOrFolder.getFileName());
|
cv.put(ProviderTableMeta.FILE_NAME, fileOrFolder.getFileName());
|
||||||
|
@ -1203,6 +1205,7 @@ public class FileDataStorageManager {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
ocFile.setFileLength(nullToZero(fileEntity.getContentLength()));
|
ocFile.setFileLength(nullToZero(fileEntity.getContentLength()));
|
||||||
|
ocFile.setUploadTimestamp(nullToZero(fileEntity.getUploaded()));
|
||||||
ocFile.setCreationTimestamp(nullToZero(fileEntity.getCreation()));
|
ocFile.setCreationTimestamp(nullToZero(fileEntity.getCreation()));
|
||||||
ocFile.setModificationTimestamp(nullToZero(fileEntity.getModified()));
|
ocFile.setModificationTimestamp(nullToZero(fileEntity.getModified()));
|
||||||
ocFile.setModificationTimestampAtLastSyncForData(nullToZero(fileEntity.getModifiedAtLastSyncForData()));
|
ocFile.setModificationTimestampAtLastSyncForData(nullToZero(fileEntity.getModifiedAtLastSyncForData()));
|
||||||
|
|
|
@ -161,6 +161,7 @@ public class OCFile implements Parcelable, Comparable<OCFile>, ServerFileInterfa
|
||||||
fileId = source.readLong();
|
fileId = source.readLong();
|
||||||
parentId = source.readLong();
|
parentId = source.readLong();
|
||||||
fileLength = source.readLong();
|
fileLength = source.readLong();
|
||||||
|
uploadTimestamp = source.readLong();
|
||||||
creationTimestamp = source.readLong();
|
creationTimestamp = source.readLong();
|
||||||
modificationTimestamp = source.readLong();
|
modificationTimestamp = source.readLong();
|
||||||
modificationTimestampAtLastSyncForData = source.readLong();
|
modificationTimestampAtLastSyncForData = source.readLong();
|
||||||
|
@ -206,6 +207,7 @@ public class OCFile implements Parcelable, Comparable<OCFile>, ServerFileInterfa
|
||||||
dest.writeLong(fileId);
|
dest.writeLong(fileId);
|
||||||
dest.writeLong(parentId);
|
dest.writeLong(parentId);
|
||||||
dest.writeLong(fileLength);
|
dest.writeLong(fileLength);
|
||||||
|
dest.writeLong(uploadTimestamp);
|
||||||
dest.writeLong(creationTimestamp);
|
dest.writeLong(creationTimestamp);
|
||||||
dest.writeLong(modificationTimestamp);
|
dest.writeLong(modificationTimestamp);
|
||||||
dest.writeLong(modificationTimestampAtLastSyncForData);
|
dest.writeLong(modificationTimestampAtLastSyncForData);
|
||||||
|
@ -500,6 +502,7 @@ public class OCFile implements Parcelable, Comparable<OCFile>, ServerFileInterfa
|
||||||
localPath = null;
|
localPath = null;
|
||||||
mimeType = null;
|
mimeType = null;
|
||||||
fileLength = 0;
|
fileLength = 0;
|
||||||
|
uploadTimestamp = 0;
|
||||||
creationTimestamp = 0;
|
creationTimestamp = 0;
|
||||||
modificationTimestamp = 0;
|
modificationTimestamp = 0;
|
||||||
modificationTimestampAtLastSyncForData = 0;
|
modificationTimestampAtLastSyncForData = 0;
|
||||||
|
@ -721,10 +724,6 @@ public class OCFile implements Parcelable, Comparable<OCFile>, ServerFileInterfa
|
||||||
return this.modificationTimestamp;
|
return this.modificationTimestamp;
|
||||||
}
|
}
|
||||||
|
|
||||||
public long getUploadTimestamp() {
|
|
||||||
return this.uploadTimestamp;
|
|
||||||
}
|
|
||||||
|
|
||||||
public long getModificationTimestampAtLastSyncForData() {
|
public long getModificationTimestampAtLastSyncForData() {
|
||||||
return this.modificationTimestampAtLastSyncForData;
|
return this.modificationTimestampAtLastSyncForData;
|
||||||
}
|
}
|
||||||
|
@ -1099,4 +1098,12 @@ public class OCFile implements Parcelable, Comparable<OCFile>, ServerFileInterfa
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public long getUploadTimestamp() {
|
||||||
|
return uploadTimestamp;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUploadTimestamp(long uploadTimestamp) {
|
||||||
|
this.uploadTimestamp = uploadTimestamp;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -25,7 +25,7 @@ import java.util.List;
|
||||||
*/
|
*/
|
||||||
public class ProviderMeta {
|
public class ProviderMeta {
|
||||||
public static final String DB_NAME = "filelist";
|
public static final String DB_NAME = "filelist";
|
||||||
public static final int DB_VERSION = 85;
|
public static final int DB_VERSION = 86;
|
||||||
|
|
||||||
private ProviderMeta() {
|
private ProviderMeta() {
|
||||||
// No instance
|
// No instance
|
||||||
|
@ -77,6 +77,7 @@ public class ProviderMeta {
|
||||||
public static final String FILE_ENCRYPTED_NAME = "encrypted_filename";
|
public static final String FILE_ENCRYPTED_NAME = "encrypted_filename";
|
||||||
public static final String FILE_CREATION = "created";
|
public static final String FILE_CREATION = "created";
|
||||||
public static final String FILE_MODIFIED = "modified";
|
public static final String FILE_MODIFIED = "modified";
|
||||||
|
public static final String FILE_UPLOADED = "uploaded";
|
||||||
public static final String FILE_MODIFIED_AT_LAST_SYNC_FOR_DATA = "modified_at_last_sync_for_data";
|
public static final String FILE_MODIFIED_AT_LAST_SYNC_FOR_DATA = "modified_at_last_sync_for_data";
|
||||||
public static final String FILE_CONTENT_LENGTH = "content_length";
|
public static final String FILE_CONTENT_LENGTH = "content_length";
|
||||||
public static final String FILE_CONTENT_TYPE = "content_type";
|
public static final String FILE_CONTENT_TYPE = "content_type";
|
||||||
|
@ -129,6 +130,7 @@ public class ProviderMeta {
|
||||||
FILE_PARENT,
|
FILE_PARENT,
|
||||||
FILE_NAME,
|
FILE_NAME,
|
||||||
FILE_ENCRYPTED_NAME,
|
FILE_ENCRYPTED_NAME,
|
||||||
|
FILE_UPLOADED,
|
||||||
FILE_CREATION,
|
FILE_CREATION,
|
||||||
FILE_MODIFIED,
|
FILE_MODIFIED,
|
||||||
FILE_MODIFIED_AT_LAST_SYNC_FOR_DATA,
|
FILE_MODIFIED_AT_LAST_SYNC_FOR_DATA,
|
||||||
|
|
|
@ -227,6 +227,7 @@ public final class FileStorageUtils {
|
||||||
OCFile file = new OCFile(remote.getRemotePath());
|
OCFile file = new OCFile(remote.getRemotePath());
|
||||||
file.setDecryptedRemotePath(remote.getRemotePath());
|
file.setDecryptedRemotePath(remote.getRemotePath());
|
||||||
file.setCreationTimestamp(remote.getCreationTimestamp());
|
file.setCreationTimestamp(remote.getCreationTimestamp());
|
||||||
|
file.setUploadTimestamp(remote.getUploadTimestamp());
|
||||||
if (MimeType.DIRECTORY.equalsIgnoreCase(remote.getMimeType())) {
|
if (MimeType.DIRECTORY.equalsIgnoreCase(remote.getMimeType())) {
|
||||||
file.setFileLength(remote.getSize());
|
file.setFileLength(remote.getSize());
|
||||||
} else {
|
} else {
|
||||||
|
|
Loading…
Reference in a new issue