mirror of
https://github.com/nextcloud/android.git
synced 2024-12-19 07:22:06 +03:00
Merge remote-tracking branch 'origin/master' into dev
This commit is contained in:
commit
b8045ce222
10 changed files with 228 additions and 5 deletions
|
@ -19,4 +19,4 @@ jobs:
|
|||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
|
||||
- uses: gradle/wrapper-validation-action@a494d935f4b56874c4a5a87d19af7afcf3a163d0 # v2.0.1
|
||||
- uses: gradle/wrapper-validation-action@85cde3f5a1033b2adc2442631c24b530f1183a1a # v2.1.0
|
||||
|
|
|
@ -340,7 +340,7 @@ dependencies {
|
|||
testImplementation 'junit:junit:4.13.2'
|
||||
testImplementation "org.mockito:mockito-core:$mockitoVersion"
|
||||
testImplementation "androidx.test:core:$androidxTestVersion"
|
||||
testImplementation 'org.json:json:20231013'
|
||||
testImplementation 'org.json:json:20240205'
|
||||
testImplementation "org.mockito.kotlin:mockito-kotlin:$mockitoKotlinVersion"
|
||||
testImplementation 'androidx.arch.core:core-testing:2.2.0'
|
||||
testImplementation "io.mockk:mockk:$mockkVersion"
|
||||
|
|
|
@ -39,7 +39,11 @@ import com.owncloud.android.db.OCUpload
|
|||
import com.owncloud.android.db.UploadResult
|
||||
import com.owncloud.android.files.services.NameCollisionPolicy
|
||||
import com.owncloud.android.lib.common.network.OnDatatransferProgressListener
|
||||
import com.owncloud.android.lib.common.operations.RemoteOperationResult
|
||||
import com.owncloud.android.lib.common.utils.Log_OC
|
||||
import com.owncloud.android.lib.resources.files.ReadFileRemoteOperation
|
||||
import com.owncloud.android.lib.resources.files.model.RemoteFile
|
||||
import com.owncloud.android.utils.FileUtil
|
||||
import java.io.File
|
||||
import javax.inject.Inject
|
||||
|
||||
|
@ -255,6 +259,25 @@ class FileUploadHelper {
|
|||
}
|
||||
}
|
||||
|
||||
@Suppress("MagicNumber")
|
||||
fun isSameFileOnRemote(user: User, localFile: File, remotePath: String, context: Context): Boolean {
|
||||
// Compare remote file to local file
|
||||
val localLastModifiedTimestamp = localFile.lastModified() / 1000 // remote file timestamp in milli not micro sec
|
||||
val localCreationTimestamp = FileUtil.getCreationTimestamp(localFile)
|
||||
val localSize: Long = localFile.length()
|
||||
|
||||
val operation = ReadFileRemoteOperation(remotePath)
|
||||
val result: RemoteOperationResult<*> = operation.execute(user, context)
|
||||
if (result.isSuccess) {
|
||||
val remoteFile = result.data[0] as RemoteFile
|
||||
return remoteFile.size == localSize &&
|
||||
localCreationTimestamp != null &&
|
||||
localCreationTimestamp == remoteFile.creationTimestamp &&
|
||||
remoteFile.modifiedTimestamp == localLastModifiedTimestamp * 1000
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
class UploadNotificationActionReceiver : BroadcastReceiver() {
|
||||
override fun onReceive(context: Context, intent: Intent) {
|
||||
val accountName = intent.getStringExtra(FileUploadWorker.EXTRA_ACCOUNT_NAME)
|
||||
|
|
|
@ -259,6 +259,14 @@ class FileUploadWorker(
|
|||
return
|
||||
}
|
||||
|
||||
// Only notify if it is not same file on remote that causes conflict
|
||||
if (uploadResult.code == ResultCode.SYNC_CONFLICT && FileUploadHelper().isSameFileOnRemote(
|
||||
uploadFileOperation.user, File(uploadFileOperation.storagePath), uploadFileOperation.remotePath, context
|
||||
)
|
||||
) {
|
||||
return
|
||||
}
|
||||
|
||||
val notDelayed = uploadResult.code !in setOf(
|
||||
ResultCode.DELAYED_FOR_WIFI,
|
||||
ResultCode.DELAYED_FOR_CHARGING,
|
||||
|
|
|
@ -34,6 +34,7 @@ import android.os.RemoteException;
|
|||
|
||||
import com.nextcloud.client.account.CurrentAccountProvider;
|
||||
import com.nextcloud.client.account.User;
|
||||
import com.nextcloud.client.jobs.upload.FileUploadHelper;
|
||||
import com.nextcloud.client.jobs.upload.FileUploadWorker;
|
||||
import com.owncloud.android.MainApp;
|
||||
import com.owncloud.android.db.OCUpload;
|
||||
|
@ -44,6 +45,7 @@ import com.owncloud.android.lib.common.operations.RemoteOperationResult;
|
|||
import com.owncloud.android.lib.common.utils.Log_OC;
|
||||
import com.owncloud.android.operations.UploadFileOperation;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Calendar;
|
||||
|
@ -737,6 +739,25 @@ public class UploadsStorageManager extends Observable {
|
|||
upload.getRemotePath(),
|
||||
localPath
|
||||
);
|
||||
} else if (uploadResult.getCode() == RemoteOperationResult.ResultCode.SYNC_CONFLICT &&
|
||||
new FileUploadHelper().isSameFileOnRemote(
|
||||
upload.getUser(), new File(upload.getStoragePath()), upload.getRemotePath(), upload.getContext())) {
|
||||
|
||||
updateUploadStatus(
|
||||
upload.getOCUploadId(),
|
||||
UploadStatus.UPLOAD_SUCCEEDED,
|
||||
UploadResult.SAME_FILE_CONFLICT,
|
||||
upload.getRemotePath(),
|
||||
localPath
|
||||
);
|
||||
} else if (uploadResult.getCode() == RemoteOperationResult.ResultCode.LOCAL_FILE_NOT_FOUND) {
|
||||
updateUploadStatus(
|
||||
upload.getOCUploadId(),
|
||||
UploadStatus.UPLOAD_SUCCEEDED,
|
||||
UploadResult.FILE_NOT_FOUND,
|
||||
upload.getRemotePath(),
|
||||
localPath
|
||||
);
|
||||
} else {
|
||||
updateUploadStatus(
|
||||
upload.getOCUploadId(),
|
||||
|
|
|
@ -45,7 +45,8 @@ public enum UploadResult {
|
|||
SYNC_CONFLICT(19),
|
||||
CANNOT_CREATE_FILE(20),
|
||||
LOCAL_STORAGE_NOT_COPIED(21),
|
||||
QUOTA_EXCEEDED(22);
|
||||
QUOTA_EXCEEDED(22),
|
||||
SAME_FILE_CONFLICT(23);
|
||||
|
||||
private final int value;
|
||||
|
||||
|
@ -107,6 +108,8 @@ public enum UploadResult {
|
|||
return LOCAL_STORAGE_NOT_COPIED;
|
||||
case 22:
|
||||
return QUOTA_EXCEEDED;
|
||||
case 23:
|
||||
return SAME_FILE_CONFLICT;
|
||||
}
|
||||
return UNKNOWN;
|
||||
}
|
||||
|
|
|
@ -29,6 +29,7 @@ import android.content.ActivityNotFoundException;
|
|||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.graphics.Bitmap;
|
||||
import android.graphics.Typeface;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.net.Uri;
|
||||
import android.text.format.DateUtils;
|
||||
|
@ -259,6 +260,7 @@ public class UploadListAdapter extends SectionedRecyclerViewAdapter<SectionedVie
|
|||
itemViewHolder.binding.uploadRemotePath.setVisibility(View.VISIBLE);
|
||||
itemViewHolder.binding.uploadFileSize.setVisibility(View.VISIBLE);
|
||||
itemViewHolder.binding.uploadStatus.setVisibility(View.VISIBLE);
|
||||
itemViewHolder.binding.uploadStatus.setTypeface(null, Typeface.NORMAL);
|
||||
itemViewHolder.binding.uploadProgressBar.setVisibility(View.GONE);
|
||||
|
||||
// Update information depending of upload details
|
||||
|
@ -300,6 +302,15 @@ public class UploadListAdapter extends SectionedRecyclerViewAdapter<SectionedVie
|
|||
case UPLOAD_FAILED -> itemViewHolder.binding.uploadDate.setVisibility(View.GONE);
|
||||
case UPLOAD_SUCCEEDED -> itemViewHolder.binding.uploadStatus.setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
// show status if same file conflict or local file deleted
|
||||
if (item.getUploadStatus() == UploadStatus.UPLOAD_SUCCEEDED && item.getLastResult() != UploadResult.UPLOADED){
|
||||
itemViewHolder.binding.uploadStatus.setVisibility(View.VISIBLE);
|
||||
itemViewHolder.binding.uploadStatus.setTypeface(null, Typeface.BOLD);
|
||||
itemViewHolder.binding.uploadDate.setVisibility(View.GONE);
|
||||
itemViewHolder.binding.uploadFileSize.setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
itemViewHolder.binding.uploadStatus.setText(status);
|
||||
|
||||
// bind listeners to perform actions
|
||||
|
@ -612,7 +623,13 @@ public class UploadListAdapter extends SectionedRecyclerViewAdapter<SectionedVie
|
|||
break;
|
||||
|
||||
case UPLOAD_SUCCEEDED:
|
||||
status = parentActivity.getString(R.string.uploads_view_upload_status_succeeded);
|
||||
if (upload.getLastResult() == UploadResult.SAME_FILE_CONFLICT){
|
||||
status = parentActivity.getString(R.string.uploads_view_upload_status_succeeded_same_file);
|
||||
}else if (upload.getLastResult() == UploadResult.FILE_NOT_FOUND) {
|
||||
status = getUploadFailedStatusText(upload.getLastResult());
|
||||
} else {
|
||||
status = parentActivity.getString(R.string.uploads_view_upload_status_succeeded);
|
||||
}
|
||||
break;
|
||||
|
||||
case UPLOAD_FAILED:
|
||||
|
|
|
@ -153,6 +153,7 @@
|
|||
<string name="uploads_view_group_failed_uploads">Failed/pending restart</string>
|
||||
<string name="uploads_view_group_finished_uploads">Uploaded</string>
|
||||
<string name="uploads_view_upload_status_succeeded">Completed</string>
|
||||
<string name="uploads_view_upload_status_succeeded_same_file">Same file found on remote, skipping upload</string>
|
||||
<string name="uploads_view_upload_status_cancelled">Cancelled</string>
|
||||
<string name="uploads_view_upload_status_failed_connection_error">Connection error</string>
|
||||
<string name="uploads_view_upload_status_failed_credentials_error">Credentials error</string>
|
||||
|
|
|
@ -5069,6 +5069,40 @@ D78JpXJRgHL1vib++Q==
|
|||
=dGtv
|
||||
-----END PGP PUBLIC KEY BLOCK-----
|
||||
|
||||
pub 2D6641C6AF88103E
|
||||
uid Maven Central Java.net import (Used to sign artifacts imported from Java.net repos) <repository@sonatype.com>
|
||||
|
||||
sub 376179DC810188ED
|
||||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||
Version: BCPG v1.68
|
||||
|
||||
mQGiBEvHiBERBACWsrXr/oU5TYqCoX2pGlKVop38NX9/klFswZue0YMrAlEP3cid
|
||||
nQS7TYgEbUUIe25FFX7EsaiLoBDO0xKDcbO21vddThcBwF/cTwVrBvHThMECI1jX
|
||||
BUthK1UHgtn4JgFCmRSg8YVvG7jd2EU+TetdLiagwqF5aJpW8HlYjlkWZwCguQwG
|
||||
tsB0aNyAM47PEmaPdRsqd3sEAIyLOe6UdvuZaS45j0oNp35llY/FzXATI9cZJu8B
|
||||
HBjPtadKSkHUqiGoY1GFWw+DJXAwGiVuISOuiIzj9V7JYRDPmm5KMQphU9Wt66Vo
|
||||
dLB5821lg1aLsLxwT08q7lPsbfkdzpV6IEs6Xpjiixc36T3wtW/USLhKkSwhPMeJ
|
||||
EWJfA/9wq71QBxjDqOVtfddX6lCBaLP22SSZ0UIfkL3cPKFu1BlHqm1W4g/TtppQ
|
||||
i50NLN820IRDsZFQYK/c3e6uX1je5ovsro4C4mtex0e1Z1TULVeVooAnX/yjK8CF
|
||||
Ftggucz0ti56cqpfjhpbn1JtVJdrZ9V4vc97qOXoyRxx/v4sa7RtTWF2ZW4gQ2Vu
|
||||
dHJhbCBKYXZhLm5ldCBpbXBvcnQgKFVzZWQgdG8gc2lnbiBhcnRpZmFjdHMgaW1w
|
||||
b3J0ZWQgZnJvbSBKYXZhLm5ldCByZXBvcykgPHJlcG9zaXRvcnlAc29uYXR5cGUu
|
||||
Y29tPrkCDQRLx4gYEAgArRqEyhMVJS+IzyZkNirv++XDskoFFWbMF1u3xmBNGeZo
|
||||
vmuXdsfonVaYjGIW3KU/RfHzyaHwe2DWnPXkz1duRD3ZU4FwIWLaZhEm9I1Uf+B+
|
||||
6rUYj8u1ZUk/P6pY1m0ADPbrj1TS13HAyX8QoKm4qjaqMTtgheCJ05GIsqeqSk3R
|
||||
9GWEE2WPoO5IiUh8iy/xK+poufNVxRJUeMD6rn7WfK3pmtPF55elPVJnCiEnUBkm
|
||||
pcdfCo/bAp9u/0MbGkFunXvs0kwi7AK8DilC1JT7htsbWkLWN7kBcHNlt8sjMlge
|
||||
gEku0f7pOrlabVTydHL36bmAQwxN14NfgDJKG8fh/wADBQf/TfAnCFsHoQ8rig70
|
||||
zMQ16YSSHL0nrzAID/44Db5kji7+iD9P7a4jZd/nyIqzKeeJOqfN4t+F5xVgmdc0
|
||||
335JRRsIzsa0t3VE0+6yjEDAueBJvjyZtxKlBgDMUXR0h2TFxTCekN0BYnmkjVhL
|
||||
xhuOvkUNNwff0JRlTMBTd7q1ImYF00xUoo4YCd0X++VsviduNT3rS/G9OIbqwswj
|
||||
de+XKTraowpbRADse5HFPfZNbB1qJdWWY1CZC0JCVKwZ8rVpHWqmxK6H8JKqJwt1
|
||||
XGw6pHhkkeBCaeh/JVY9N0jLMBWUATJdvQqPcR6sb25co9UkNXpEOCrRnzjsyVj5
|
||||
++jlQYhJBBgRAgAJBQJLx4gYAhsMAAoJEC1mQcaviBA+FSUAnR5Xi/qPEHd1cXSp
|
||||
wdAqGKwCen3WAJwIsFD8tHGarvnRqo0ij3FERxwR3A==
|
||||
=TljG
|
||||
-----END PGP PUBLIC KEY BLOCK-----
|
||||
|
||||
pub 347CD0EAED975C5F
|
||||
uid Eric Vergnaud <eric.vergnaud@wanadoo.fr>
|
||||
|
||||
|
@ -5214,6 +5248,111 @@ q/tSGRQHXTwG53qejlUtKI315ZizOhJiniSDx4fZaK2zB9RlZkrnd1Y=
|
|||
=KPJF
|
||||
-----END PGP PUBLIC KEY BLOCK-----
|
||||
|
||||
pub 36F224409991B46C
|
||||
uid Lukhnos Liu <lukhnos@lukhnos.org>
|
||||
|
||||
sub AA1C6859520DE0B7
|
||||
sub D137C32FD6897607
|
||||
sub 4F91D100EB1F597B
|
||||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||
Version: BCPG v1.68
|
||||
|
||||
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
|
||||
BRj7Sg==
|
||||
=lSNM
|
||||
-----END PGP PUBLIC KEY BLOCK-----
|
||||
|
||||
pub 379CE192D401AB61
|
||||
uid Bintray (by JFrog) <bintray@bintray.com>
|
||||
|
||||
|
|
|
@ -8,7 +8,6 @@
|
|||
<trust group="com.fasterxml.jackson" name="jackson-base" version="2.14.2" reason="no keys available, no pom artifact to create a checksum"/>
|
||||
</trusted-artifacts>
|
||||
<ignored-keys>
|
||||
<ignored-key id="4F91D100EB1F597B" reason="Key couldn't be downloaded from any key server"/>
|
||||
<ignored-key id="59E05CE618187ED4" reason="Key couldn't be downloaded from any key server"/>
|
||||
</ignored-keys>
|
||||
<trusted-keys>
|
||||
|
@ -118,6 +117,7 @@
|
|||
<trusting group="javax.annotation"/>
|
||||
</trusted-key>
|
||||
<trusted-key id="4F8FEC6785F611D9A712EA2734918B7D3969D2F5" group="com.google.dagger" name="dagger" version="2.28.3"/>
|
||||
<trusted-key id="508B736B26AA4F672A10B92C4F91D100EB1F597B" group="org.lukhnos" name="nnio" version="0.3"/>
|
||||
<trusted-key id="517B94F8D0A46317A28D8AB30DA8A5EC02D11EAD" group="net.sf.jopt-simple" name="jopt-simple" version="4.9"/>
|
||||
<trusted-key id="51B52DC5DD452F92BE342CC2858FC4C4F43856A3" group="xerces" name="xercesImpl" version="2.12.0"/>
|
||||
<trusted-key id="51BF0A126F41293F40F50A0B8CD7D660AE857DAD" group="com.getkeepsafe.relinker" name="relinker" version="1.4.5"/>
|
||||
|
@ -134,6 +134,7 @@
|
|||
</trusted-key>
|
||||
<trusted-key id="6214760097DC5CFAD0175AC2C9FBAA83A8753994" group="^com[.]fasterxml($|([.].*))" regex="true"/>
|
||||
<trusted-key id="694621A7227D8D5289699830ABE9F3126BB741C1" group="^com[.]google($|([.].*))" regex="true"/>
|
||||
<trusted-key id="69859CF50A3C1EB40A90D5FD2D6641C6AF88103E" group="commons-httpclient" name="commons-httpclient" version="3.1"/>
|
||||
<trusted-key id="6BDACA2C0493CCA133B372D09C4F7E9D98B1CC53" group="org.apache" name="apache" version="15"/>
|
||||
<trusted-key id="6DD3B8C64EF75253BEB2C53AD908A43FB7EC07AC">
|
||||
<trusting group="com.sun.activation" name="all" version="1.2.1"/>
|
||||
|
@ -245,6 +246,7 @@
|
|||
<trusted-key id="D6F1BC78607808EC8E9F69437A8860944FAD5F62" group="org.apache.commons" name="commons-parent"/>
|
||||
<trusted-key id="D75E25B78EBB19E47C0A99BCA7764F502A938C99" group="com.google.protobuf"/>
|
||||
<trusted-key id="DA7A1BB85B19E4FB05073431205C8673DC742C7C" group="org.apache" name="apache" version="9"/>
|
||||
<trusted-key id="DB0597E3144342256BC81E3EC727D053C4481CF5" group="org.tensorflow" name="tensorflow-lite-metadata"/>
|
||||
<trusted-key id="DBD744ACE7ADE6AA50DD591F66B50994442D2D40" group="^com[.]squareup($|([.].*))" regex="true"/>
|
||||
<trusted-key id="DD80AF584ECDB83D650C4FC78EDF241183415AF1" group="com.github.akarnokd" name="ixjava" version="1.0.0"/>
|
||||
<trusted-key id="DF25D3C4868FEC177182FAD64D176DC503FB4267" group="io.coil-kt"/>
|
||||
|
@ -270,6 +272,7 @@
|
|||
<trusted-key id="FB35C8D02B4724DADA23DE0AFD116C1969FCCFF3">
|
||||
<trusting group="org.json" name="json" version="20230618"/>
|
||||
<trusting group="org.json" name="json" version="20231013"/>
|
||||
<trusting group="org.json" name="json" version="20240205"/>
|
||||
</trusted-key>
|
||||
<trusted-key id="FC411CD3CB7DCB0ABC9801058118B3BCDB1A5000" group="jakarta.xml.bind"/>
|
||||
<trusted-key id="FF6E2C001948C5F2F38B0CC385911F425EC61B51">
|
||||
|
@ -3061,6 +3064,14 @@
|
|||
<sha256 value="0e0d1ffe9999460fe3ce76a8044e203d37007cf226a5daeb7b35c44030ac28c9" origin="Generated by Gradle" reason="Artifact is not signed"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="com.github.nextcloud" name="android-library" version="eeb9dbbb463a41695c92c4c205bd943a07858213">
|
||||
<artifact name="android-library-eeb9dbbb463a41695c92c4c205bd943a07858213.aar">
|
||||
<sha256 value="bdc44e874f1e14338213ae5723e71710940a31416ff1c52c9eb2f282e5d3f29a" origin="Generated by Gradle" reason="Artifact is not signed"/>
|
||||
</artifact>
|
||||
<artifact name="android-library-eeb9dbbb463a41695c92c4c205bd943a07858213.module">
|
||||
<sha256 value="c2d376db1b7e0c4145e4d02d0c0ed6f1b14cb662d04f15eb6b1a73662c1fb415" origin="Generated by Gradle" reason="Artifact is not signed"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="com.github.nextcloud-deps" name="qrcodescanner" version="0.1.2.4">
|
||||
<artifact name="qrcodescanner-0.1.2.4.aar">
|
||||
<sha256 value="b286128792cc04f59b0defa2c937c86d9e2fc824a8011b9af9eea7fd0ea84303" origin="Generated by Gradle" reason="Artifact is not signed"/>
|
||||
|
|
Loading…
Reference in a new issue