mirror of
https://github.com/nextcloud/android.git
synced 2024-11-25 06:35:48 +03:00
Fix creation and modification date
Signed-off-by: alperozturk <alper_ozturk@proton.me>
This commit is contained in:
parent
0a250857bf
commit
5265782e16
3 changed files with 36 additions and 22 deletions
|
@ -130,11 +130,16 @@ class OfflineOperationsWorker(
|
|||
is OfflineOperationType.CreateFile -> {
|
||||
val createFileOperation = withContext(NonCancellable) {
|
||||
val operationType = (operation.type as OfflineOperationType.CreateFile)
|
||||
val lastModificationDate = System.currentTimeMillis() / 1000
|
||||
|
||||
UploadFileRemoteOperation(
|
||||
operationType.localPath,
|
||||
operationType.remotePath,
|
||||
operationType.mimeType,
|
||||
System.currentTimeMillis()
|
||||
"",
|
||||
lastModificationDate,
|
||||
operation.createdAt ?: System.currentTimeMillis(),
|
||||
true
|
||||
)
|
||||
}
|
||||
|
||||
|
|
|
@ -155,7 +155,11 @@ public class FileDataStorageManager {
|
|||
OfflineOperationEntity entity = new OfflineOperationEntity();
|
||||
entity.setPath(remotePath);
|
||||
entity.setType(new OfflineOperationType.CreateFile(OfflineOperationRawType.CreateFile.name(), localPath, remotePath, mimeType));
|
||||
entity.setCreatedAt(System.currentTimeMillis() / 1000L);
|
||||
|
||||
long createdAt = System.currentTimeMillis();
|
||||
long modificationTimestamp = System.currentTimeMillis();
|
||||
|
||||
entity.setCreatedAt(createdAt);
|
||||
entity.setFilename(new File(remotePath).getName());
|
||||
|
||||
String parentPath = new File(remotePath).getParent() + OCFile.PATH_SEPARATOR;
|
||||
|
@ -166,7 +170,7 @@ public class FileDataStorageManager {
|
|||
}
|
||||
|
||||
offlineOperationDao.insert(entity);
|
||||
createPendingFile(remotePath, mimeType);
|
||||
createPendingFile(remotePath, mimeType, createdAt, modificationTimestamp);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -179,24 +183,32 @@ public class FileDataStorageManager {
|
|||
OfflineOperationType.CreateFolder operationType = new OfflineOperationType.CreateFolder(OfflineOperationRawType.CreateFolder.name(), path);
|
||||
entity.setType(operationType);
|
||||
entity.setPath(path);
|
||||
entity.setCreatedAt(System.currentTimeMillis() / 1000L);
|
||||
|
||||
long createdAt = System.currentTimeMillis();
|
||||
long modificationTimestamp = System.currentTimeMillis();
|
||||
|
||||
entity.setCreatedAt(createdAt);
|
||||
|
||||
offlineOperationDao.insert(entity);
|
||||
createPendingDirectory(path);
|
||||
createPendingDirectory(path, createdAt, modificationTimestamp);
|
||||
|
||||
return entity;
|
||||
}
|
||||
|
||||
public void createPendingFile(String path, String mimeType) {
|
||||
OCFile ocFile = new OCFile(path);
|
||||
ocFile.setMimeType(mimeType);
|
||||
saveFileWithParent(ocFile, MainApp.getAppContext());
|
||||
public void createPendingFile(String path, String mimeType, long createdAt, long modificationTimestamp) {
|
||||
OCFile file = new OCFile(path);
|
||||
file.setMimeType(mimeType);
|
||||
file.setCreationTimestamp(createdAt);
|
||||
file.setModificationTimestamp(modificationTimestamp);
|
||||
saveFileWithParent(file, MainApp.getAppContext());
|
||||
}
|
||||
|
||||
public void createPendingDirectory(String path) {
|
||||
OCFile file = new OCFile(path);
|
||||
file.setMimeType(MimeType.DIRECTORY);
|
||||
saveFileWithParent(file, MainApp.getAppContext());
|
||||
public void createPendingDirectory(String path, long createdAt, long modificationTimestamp) {
|
||||
OCFile directory = new OCFile(path);
|
||||
directory.setMimeType(MimeType.DIRECTORY);
|
||||
directory.setCreationTimestamp(createdAt);
|
||||
directory.setModificationTimestamp(modificationTimestamp);
|
||||
saveFileWithParent(directory, MainApp.getAppContext());
|
||||
}
|
||||
|
||||
public void deleteOfflineOperation(OCFile file) {
|
||||
|
|
|
@ -32,7 +32,6 @@ import android.widget.LinearLayout;
|
|||
import com.elyeproj.loaderviewlibrary.LoaderImageView;
|
||||
import com.nextcloud.android.common.ui.theme.utils.ColorRole;
|
||||
import com.nextcloud.client.account.User;
|
||||
import com.nextcloud.client.database.entity.OfflineOperationEntity;
|
||||
import com.nextcloud.client.jobs.upload.FileUploadHelper;
|
||||
import com.nextcloud.client.preferences.AppPreferences;
|
||||
import com.nextcloud.model.OCFileFilterType;
|
||||
|
@ -48,7 +47,6 @@ import com.owncloud.android.datamodel.FileDataStorageManager;
|
|||
import com.owncloud.android.datamodel.OCFile;
|
||||
import com.owncloud.android.datamodel.SyncedFolderProvider;
|
||||
import com.owncloud.android.datamodel.ThumbnailsCacheManager;
|
||||
import com.owncloud.android.datamodel.UploadsStorageManager;
|
||||
import com.owncloud.android.datamodel.VirtualFolderType;
|
||||
import com.owncloud.android.datamodel.e2e.v1.decrypted.DecryptedFolderMetadataFileV1;
|
||||
import com.owncloud.android.datamodel.e2e.v2.decrypted.DecryptedFolderMetadataFile;
|
||||
|
@ -82,8 +80,6 @@ import java.text.SimpleDateFormat;
|
|||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.Date;
|
||||
import java.util.HashSet;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.Objects;
|
||||
|
@ -603,13 +599,14 @@ public class OCFileListAdapter extends RecyclerView.Adapter<RecyclerView.ViewHol
|
|||
|
||||
holder.getFileSize().setVisibility(View.VISIBLE);
|
||||
|
||||
|
||||
if (file.isOfflineOperation()) {
|
||||
holder.getFileSize().setText(MainApp.string(R.string.oc_file_list_adapter_offline_operation_description_text));
|
||||
holder.getFileSizeSeparator().setVisibility(View.GONE);
|
||||
} else {
|
||||
holder.getFileSize().setText(DisplayUtils.bytesToHumanReadable(localSize));
|
||||
holder.getFileSizeSeparator().setVisibility(View.VISIBLE);
|
||||
}
|
||||
|
||||
holder.getFileSizeSeparator().setVisibility(View.VISIBLE);
|
||||
} else {
|
||||
final long fileLength = file.getFileLength();
|
||||
if (fileLength >= 0) {
|
||||
|
@ -617,11 +614,11 @@ public class OCFileListAdapter extends RecyclerView.Adapter<RecyclerView.ViewHol
|
|||
|
||||
if (file.isOfflineOperation()) {
|
||||
holder.getFileSize().setText(MainApp.string(R.string.oc_file_list_adapter_offline_operation_description_text));
|
||||
holder.getFileSizeSeparator().setVisibility(View.GONE);
|
||||
} else {
|
||||
holder.getFileSize().setText(DisplayUtils.bytesToHumanReadable(fileLength));
|
||||
holder.getFileSizeSeparator().setVisibility(View.VISIBLE);
|
||||
}
|
||||
|
||||
holder.getFileSizeSeparator().setVisibility(View.VISIBLE);
|
||||
} else {
|
||||
holder.getFileSize().setVisibility(View.GONE);
|
||||
holder.getFileSizeSeparator().setVisibility(View.GONE);
|
||||
|
@ -807,7 +804,7 @@ public class OCFileListAdapter extends RecyclerView.Adapter<RecyclerView.ViewHol
|
|||
* The issue arises when {@link RefreshFolderOperation} deletes pending Offline Operations, while some may still exist in the table.
|
||||
* If only this function is used, it cause crash in {@link FileDisplayActivity mSyncBroadcastReceiver.onReceive}.
|
||||
* <p>
|
||||
* These function also need to be used: {@link FileDataStorageManager#createPendingDirectory(String)}, {@link FileDataStorageManager#createPendingFile(String, String)}.
|
||||
* These function also need to be used: {@link FileDataStorageManager#createPendingDirectory(String, long, long)}, {@link FileDataStorageManager#createPendingFile(String, String, long, long)}.
|
||||
*/
|
||||
private void addOfflineOperations(long fileId) {
|
||||
List<OCFile> offlineOperations = mStorageManager.offlineOperationsRepository.convertToOCFiles(fileId);
|
||||
|
|
Loading…
Reference in a new issue