mirror of
https://github.com/nextcloud/android.git
synced 2024-11-21 12:45:32 +03:00
use localID everywhere
Co-authored-by: Álvaro Brey <alvaro.brey@nextcloud.com> Signed-off-by: tobiasKaminsky <tobias@kaminsky.me>
This commit is contained in:
parent
0b3707cf25
commit
b78e991d54
25 changed files with 1270 additions and 51 deletions
1130
app/schemas/com.nextcloud.client.database.NextcloudDatabase/67.json
Normal file
1130
app/schemas/com.nextcloud.client.database.NextcloudDatabase/67.json
Normal file
File diff suppressed because it is too large
Load diff
|
@ -24,9 +24,14 @@ package com.owncloud.android.datamodel;
|
|||
|
||||
import com.owncloud.android.db.ProviderMeta;
|
||||
|
||||
public class FileDataStorageManagerContentProviderClientIT extends FileDataStorageManagerIT {
|
||||
import org.junit.Test;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertNotNull;
|
||||
|
||||
public class FileDataStorageManagerContentProviderClientIT extends FileDataStorageManagerIT {
|
||||
protected FileDataStorageManager sut;
|
||||
|
||||
@Override
|
||||
public void before() {
|
||||
sut = new FileDataStorageManager(user,
|
||||
targetContext
|
||||
|
@ -36,4 +41,25 @@ public class FileDataStorageManagerContentProviderClientIT extends FileDataStora
|
|||
|
||||
super.before();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void saveFile() {
|
||||
before();
|
||||
|
||||
String path = "/1.txt";
|
||||
OCFile file = new OCFile(path);
|
||||
file.setRemoteId("00000008ocjycgrudn78");
|
||||
|
||||
// TODO check via reflection that every parameter is set
|
||||
|
||||
file.setFileLength(1024000);
|
||||
file.setModificationTimestamp(1582019340);
|
||||
sut.saveNewFile(file);
|
||||
|
||||
|
||||
OCFile read = sut.getFileByPath(path);
|
||||
assertNotNull(read);
|
||||
|
||||
assertEquals(file.getRemotePath(), read.getRemotePath());
|
||||
}
|
||||
}
|
||||
|
|
|
@ -369,4 +369,5 @@ abstract public class FileDataStorageManagerIT extends AbstractOnServerIT {
|
|||
|
||||
assertEquals(capability.getUserStatus(), newCapability.getUserStatus());
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -58,7 +58,8 @@ import com.owncloud.android.db.ProviderMeta
|
|||
],
|
||||
version = ProviderMeta.DB_VERSION,
|
||||
autoMigrations = [
|
||||
AutoMigration(from = 65, to = 66)
|
||||
AutoMigration(from = 65, to = 66),
|
||||
AutoMigration(from = 66, to = 67)
|
||||
],
|
||||
exportSchema = true
|
||||
)
|
||||
|
|
|
@ -70,6 +70,8 @@ data class FileEntity(
|
|||
val permissions: String?,
|
||||
@ColumnInfo(name = ProviderTableMeta.FILE_REMOTE_ID)
|
||||
val remoteId: String?,
|
||||
@ColumnInfo(name = ProviderTableMeta.FILE_LOCAL_ID)
|
||||
val localId: Long?,
|
||||
@ColumnInfo(name = ProviderTableMeta.FILE_UPDATE_THUMBNAIL)
|
||||
val updateThumbnail: Int?,
|
||||
@ColumnInfo(name = ProviderTableMeta.FILE_IS_DOWNLOADING)
|
||||
|
|
|
@ -28,7 +28,7 @@ import com.owncloud.android.lib.common.OwnCloudClient
|
|||
|
||||
internal class LoadUrlTask(
|
||||
private val client: OwnCloudClient,
|
||||
private val fileId: String,
|
||||
private val fileId: Long,
|
||||
private val onResult: (String?) -> Unit
|
||||
) : AsyncTask<Void, Void, String>() {
|
||||
|
||||
|
|
|
@ -96,7 +96,7 @@ internal class Player(
|
|||
checkNotNull(user)
|
||||
playedFile?.let {
|
||||
val client = clientFactory.create(user)
|
||||
val task = LoadUrlTask(client, it.remoteId, this@Player::onDownloaded)
|
||||
val task = LoadUrlTask(client, it.localId, this@Player::onDownloaded)
|
||||
task.execute()
|
||||
loadUrlTask = task
|
||||
}
|
||||
|
|
|
@ -458,6 +458,7 @@ public class FileDataStorageManager {
|
|||
cv.put(ProviderTableMeta.FILE_SHARED_WITH_SHAREE, fileOrFolder.isSharedWithSharee() ? 1 : 0);
|
||||
cv.put(ProviderTableMeta.FILE_PERMISSIONS, fileOrFolder.getPermissions());
|
||||
cv.put(ProviderTableMeta.FILE_REMOTE_ID, fileOrFolder.getRemoteId());
|
||||
cv.put(ProviderTableMeta.FILE_LOCAL_ID, fileOrFolder.getLocalId());
|
||||
cv.put(ProviderTableMeta.FILE_FAVORITE, fileOrFolder.isFavorite());
|
||||
cv.put(ProviderTableMeta.FILE_UNREAD_COMMENTS_COUNT, fileOrFolder.getUnreadCommentsCount());
|
||||
cv.put(ProviderTableMeta.FILE_OWNER_ID, fileOrFolder.getOwnerId());
|
||||
|
|
|
@ -45,6 +45,7 @@ import androidx.annotation.NonNull;
|
|||
import androidx.annotation.Nullable;
|
||||
import androidx.annotation.VisibleForTesting;
|
||||
import androidx.core.content.FileProvider;
|
||||
import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
|
||||
import third_parties.daveKoeller.AlphanumComparator;
|
||||
|
||||
public class OCFile implements Parcelable, Comparable<OCFile>, ServerFileInterface {
|
||||
|
@ -83,6 +84,7 @@ public class OCFile implements Parcelable, Comparable<OCFile>, ServerFileInterfa
|
|||
private String etagOnServer;
|
||||
private boolean sharedViaLink;
|
||||
private String permissions;
|
||||
private long localId; // unique fileId for the file within the instance
|
||||
private String remoteId; // The fileid namespaced by the instance fileId, globally unique
|
||||
private boolean updateThumbnailNeeded;
|
||||
private boolean downloading;
|
||||
|
@ -166,6 +168,7 @@ public class OCFile implements Parcelable, Comparable<OCFile>, ServerFileInterfa
|
|||
etagOnServer = source.readString();
|
||||
sharedViaLink = source.readInt() == 1;
|
||||
permissions = source.readString();
|
||||
localId = source.readLong();
|
||||
remoteId = source.readString();
|
||||
updateThumbnailNeeded = source.readInt() == 1;
|
||||
downloading = source.readInt() == 1;
|
||||
|
@ -208,6 +211,7 @@ public class OCFile implements Parcelable, Comparable<OCFile>, ServerFileInterfa
|
|||
dest.writeString(etagOnServer);
|
||||
dest.writeInt(sharedViaLink ? 1 : 0);
|
||||
dest.writeString(permissions);
|
||||
dest.writeLong(localId);
|
||||
dest.writeString(remoteId);
|
||||
dest.writeInt(updateThumbnailNeeded ? 1 : 0);
|
||||
dest.writeInt(downloading ? 1 : 0);
|
||||
|
@ -284,8 +288,7 @@ public class OCFile implements Parcelable, Comparable<OCFile>, ServerFileInterfa
|
|||
}
|
||||
|
||||
/**
|
||||
* Can be used to check, whether or not this file exists in the database
|
||||
* already
|
||||
* Can be used to check, whether or not this file exists in the database already
|
||||
*
|
||||
* @return true, if the file exists in the database
|
||||
*/
|
||||
|
@ -486,6 +489,7 @@ public class OCFile implements Parcelable, Comparable<OCFile>, ServerFileInterfa
|
|||
etagOnServer = null;
|
||||
sharedViaLink = false;
|
||||
permissions = null;
|
||||
localId = -1;
|
||||
remoteId = null;
|
||||
updateThumbnailNeeded = false;
|
||||
downloading = false;
|
||||
|
@ -594,17 +598,14 @@ public class OCFile implements Parcelable, Comparable<OCFile>, ServerFileInterfa
|
|||
return !TextUtils.isEmpty(getFileName()) && getFileName().charAt(0) == '.';
|
||||
}
|
||||
|
||||
/**
|
||||
* The unique fileId for the file within the instance
|
||||
*
|
||||
* @return file fileId, unique within the instance
|
||||
*/
|
||||
@Nullable
|
||||
public String getLocalId() {
|
||||
if (getRemoteId() != null) {
|
||||
return getRemoteId().substring(0, 8).replaceAll("^0*", "");
|
||||
@SuppressFBWarnings("STT")
|
||||
public long getLocalId() {
|
||||
if (localId > 0) {
|
||||
return localId;
|
||||
} else if (remoteId != null) {
|
||||
return Long.parseLong(remoteId.substring(0, 8).replaceAll("^0*", ""));
|
||||
} else {
|
||||
return null;
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -772,6 +773,10 @@ public class OCFile implements Parcelable, Comparable<OCFile>, ServerFileInterfa
|
|||
this.fileId = fileId;
|
||||
}
|
||||
|
||||
public void setLocalId(long localId) {
|
||||
this.localId = localId;
|
||||
}
|
||||
|
||||
public void setParentId(long parentId) {
|
||||
this.parentId = parentId;
|
||||
}
|
||||
|
|
|
@ -689,7 +689,7 @@ public final class ThumbnailsCacheManager {
|
|||
Bitmap bitmap;
|
||||
if (MimeTypeUtil.isVideo(ocFile)) {
|
||||
bitmap = ThumbnailUtils.createVideoThumbnail(ocFile.getStoragePath(),
|
||||
MediaStore.Images.Thumbnails.MINI_KIND);
|
||||
MediaStore.Images.Thumbnails.MINI_KIND);
|
||||
} else {
|
||||
bitmap = BitmapUtils.decodeSampledBitmapFromFile(ocFile.getStoragePath(), pxW, pxH);
|
||||
}
|
||||
|
@ -733,16 +733,16 @@ public final class ThumbnailsCacheManager {
|
|||
pxW + "/" + pxH + Uri.encode(file.getRemotePath(), "/");
|
||||
} else {
|
||||
uri = mClient.getBaseUri() + "/index.php/apps/files_trashbin/preview?fileId=" +
|
||||
file.getLocalId() + "&x=" + pxW + "&y=" + pxH;
|
||||
file.getLocalId() + "&x=" + pxW + "&y=" + pxH;
|
||||
}
|
||||
|
||||
Log_OC.d(TAG, "generate thumbnail: " + file.getFileName() + " URI: " + uri);
|
||||
getMethod = new GetMethod(uri);
|
||||
getMethod.setRequestHeader("Cookie",
|
||||
"nc_sameSiteCookielax=true;nc_sameSiteCookiestrict=true");
|
||||
"nc_sameSiteCookielax=true;nc_sameSiteCookiestrict=true");
|
||||
|
||||
getMethod.setRequestHeader(RemoteOperation.OCS_API_HEADER,
|
||||
RemoteOperation.OCS_API_HEADER_VALUE);
|
||||
RemoteOperation.OCS_API_HEADER_VALUE);
|
||||
|
||||
int status = mClient.executeMethod(getMethod, READ_TIMEOUT, CONNECTION_TIMEOUT);
|
||||
if (status == HttpStatus.SC_OK) {
|
||||
|
|
|
@ -35,7 +35,7 @@ import java.util.List;
|
|||
*/
|
||||
public class ProviderMeta {
|
||||
public static final String DB_NAME = "filelist";
|
||||
public static final int DB_VERSION = 66;
|
||||
public static final int DB_VERSION = 67;
|
||||
|
||||
private ProviderMeta() {
|
||||
// No instance
|
||||
|
@ -101,6 +101,7 @@ public class ProviderMeta {
|
|||
public static final String FILE_SHARED_VIA_LINK = "share_by_link";
|
||||
public static final String FILE_SHARED_WITH_SHAREE = "shared_via_users";
|
||||
public static final String FILE_PERMISSIONS = "permissions";
|
||||
public static final String FILE_LOCAL_ID = "local_id";
|
||||
public static final String FILE_REMOTE_ID = "remote_id";
|
||||
public static final String FILE_UPDATE_THUMBNAIL = "update_thumbnail";
|
||||
public static final String FILE_IS_DOWNLOADING = "is_downloading";
|
||||
|
@ -148,6 +149,7 @@ public class ProviderMeta {
|
|||
FILE_SHARED_WITH_SHAREE,
|
||||
FILE_PERMISSIONS,
|
||||
FILE_REMOTE_ID,
|
||||
FILE_LOCAL_ID,
|
||||
FILE_UPDATE_THUMBNAIL,
|
||||
FILE_IS_DOWNLOADING,
|
||||
FILE_ETAG_IN_CONFLICT,
|
||||
|
|
|
@ -37,7 +37,7 @@ public class StreamMediaFileOperation extends RemoteOperation {
|
|||
private static final int SYNC_CONNECTION_TIMEOUT = 5000;
|
||||
private static final String STREAM_MEDIA_URL = "/ocs/v2.php/apps/dav/api/v1/direct";
|
||||
|
||||
private String fileID;
|
||||
private final long fileID;
|
||||
|
||||
// JSON node names
|
||||
private static final String NODE_OCS = "ocs";
|
||||
|
@ -45,7 +45,7 @@ public class StreamMediaFileOperation extends RemoteOperation {
|
|||
private static final String NODE_URL = "url";
|
||||
private static final String JSON_FORMAT = "?format=json";
|
||||
|
||||
public StreamMediaFileOperation(String fileID) {
|
||||
public StreamMediaFileOperation(long fileID) {
|
||||
this.fileID = fileID;
|
||||
}
|
||||
|
||||
|
@ -55,7 +55,7 @@ public class StreamMediaFileOperation extends RemoteOperation {
|
|||
|
||||
try {
|
||||
postMethod = new Utf8PostMethod(client.getBaseUri() + STREAM_MEDIA_URL + JSON_FORMAT);
|
||||
postMethod.setParameter("fileId", fileID);
|
||||
postMethod.setParameter("fileId", String.valueOf(fileID));
|
||||
|
||||
// remote request
|
||||
postMethod.addRequestHeader(OCS_API_HEADER, OCS_API_HEADER_VALUE);
|
||||
|
|
|
@ -33,14 +33,14 @@ import com.owncloud.android.lib.resources.comments.CommentFileRemoteOperation;
|
|||
public class CommentFileOperation extends RemoteOperation {
|
||||
|
||||
private final String message;
|
||||
private final String fileId;
|
||||
private final long fileId;
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*
|
||||
* @param message Comment to store
|
||||
*/
|
||||
public CommentFileOperation(String message, String fileId) {
|
||||
public CommentFileOperation(String message, long fileId) {
|
||||
this.message = message;
|
||||
this.fileId = fileId;
|
||||
}
|
||||
|
|
|
@ -62,12 +62,12 @@ public class RemoveRemoteEncryptedFileOperation extends RemoteOperation {
|
|||
private static final int REMOVE_READ_TIMEOUT = 30000;
|
||||
private static final int REMOVE_CONNECTION_TIMEOUT = 5000;
|
||||
|
||||
private String remotePath;
|
||||
private String parentId;
|
||||
private final String remotePath;
|
||||
private final long parentId;
|
||||
private User user;
|
||||
|
||||
private ArbitraryDataProvider arbitraryDataProvider;
|
||||
private String fileName;
|
||||
private final ArbitraryDataProvider arbitraryDataProvider;
|
||||
private final String fileName;
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
|
@ -76,7 +76,7 @@ public class RemoveRemoteEncryptedFileOperation extends RemoteOperation {
|
|||
* @param parentId local id of parent folder
|
||||
*/
|
||||
RemoveRemoteEncryptedFileOperation(String remotePath,
|
||||
String parentId,
|
||||
long parentId,
|
||||
User user,
|
||||
Context context,
|
||||
String fileName) {
|
||||
|
|
|
@ -51,10 +51,10 @@ public class RichDocumentsUrlOperation extends RemoteOperation {
|
|||
private static final String NODE_URL = "url";
|
||||
private static final String JSON_FORMAT = "?format=json";
|
||||
|
||||
private String fileID;
|
||||
private final long fileId;
|
||||
|
||||
public RichDocumentsUrlOperation(String fileID) {
|
||||
this.fileID = fileID;
|
||||
public RichDocumentsUrlOperation(long fileID) {
|
||||
this.fileId = fileID;
|
||||
}
|
||||
|
||||
@NextcloudServer(max = 18)
|
||||
|
@ -64,7 +64,7 @@ public class RichDocumentsUrlOperation extends RemoteOperation {
|
|||
|
||||
try {
|
||||
postMethod = new Utf8PostMethod(client.getBaseUri() + DOCUMENT_URL + JSON_FORMAT);
|
||||
postMethod.setParameter(FILE_ID, fileID);
|
||||
postMethod.setParameter(FILE_ID, String.valueOf(fileId));
|
||||
|
||||
// remote request
|
||||
postMethod.addRequestHeader(OCS_API_HEADER, OCS_API_HEADER_VALUE);
|
||||
|
@ -86,7 +86,7 @@ public class RichDocumentsUrlOperation extends RemoteOperation {
|
|||
}
|
||||
} catch (Exception e) {
|
||||
result = new RemoteOperationResult(e);
|
||||
Log_OC.e(TAG, "Get rich document url for file with id " + fileID + " failed: " + result.getLogMessage(),
|
||||
Log_OC.e(TAG, "Get rich document url for file with id " + fileId + " failed: " + result.getLogMessage(),
|
||||
result.getException());
|
||||
} finally {
|
||||
if (postMethod != null) {
|
||||
|
|
|
@ -721,7 +721,7 @@ public class OperationsService extends Service {
|
|||
|
||||
case ACTION_RESTORE_VERSION:
|
||||
FileVersion fileVersion = operationIntent.getParcelableExtra(EXTRA_FILE_VERSION);
|
||||
operation = new RestoreFileVersionRemoteOperation(fileVersion.getRemoteId(),
|
||||
operation = new RestoreFileVersionRemoteOperation(fileVersion.getLocalId(),
|
||||
fileVersion.getFileName());
|
||||
break;
|
||||
|
||||
|
|
|
@ -23,12 +23,12 @@ package com.owncloud.android.ui.events;
|
|||
* Event for set folder as encrypted/decrypted
|
||||
*/
|
||||
public class EncryptionEvent {
|
||||
public final String localId;
|
||||
public final long localId;
|
||||
public final String remotePath;
|
||||
public final String remoteId;
|
||||
public final boolean shouldBeEncrypted;
|
||||
|
||||
public EncryptionEvent(String localId, String remoteId, String remotePath, boolean shouldBeEncrypted) {
|
||||
public EncryptionEvent(long localId, String remoteId, String remotePath, boolean shouldBeEncrypted) {
|
||||
this.localId = localId;
|
||||
this.remoteId = remoteId;
|
||||
this.remotePath = remotePath;
|
||||
|
|
|
@ -457,12 +457,14 @@ public class FileDetailActivitiesFragment extends Fragment implements
|
|||
|
||||
private static class SubmitCommentTask extends AsyncTask<Void, Void, Boolean> {
|
||||
|
||||
private String message;
|
||||
private String fileId;
|
||||
private VersionListInterface.CommentCallback callback;
|
||||
private OwnCloudClient client;
|
||||
private final String message;
|
||||
private final long fileId;
|
||||
private final VersionListInterface.CommentCallback callback;
|
||||
private final OwnCloudClient client;
|
||||
|
||||
private SubmitCommentTask(String message, String fileId, VersionListInterface.CommentCallback callback,
|
||||
private SubmitCommentTask(String message,
|
||||
long fileId,
|
||||
VersionListInterface.CommentCallback callback,
|
||||
OwnCloudClient client) {
|
||||
this.message = message;
|
||||
this.fileId = fileId;
|
||||
|
|
|
@ -1696,7 +1696,7 @@ public class OCFileListFragment extends ExtendedListFragment implements
|
|||
}
|
||||
}
|
||||
|
||||
private void encryptFolder(String localId, String remoteId, String remotePath, boolean shouldBeEncrypted) {
|
||||
private void encryptFolder(long localId, String remoteId, String remotePath, boolean shouldBeEncrypted) {
|
||||
try {
|
||||
User user = accountManager.getUser();
|
||||
OwnCloudClient client = clientFactory.create(user);
|
||||
|
|
|
@ -456,7 +456,7 @@ public class FileOperationsHelper {
|
|||
fileActivity.showLoadingDialog(fileActivity.getString(R.string.wait_a_moment));
|
||||
final User user = currentAccount.getUser();
|
||||
new Thread(() -> {
|
||||
StreamMediaFileOperation sfo = new StreamMediaFileOperation(file.getRemoteId());
|
||||
StreamMediaFileOperation sfo = new StreamMediaFileOperation(file.getLocalId());
|
||||
RemoteOperationResult result = sfo.execute(user, fileActivity);
|
||||
|
||||
fileActivity.dismissLoadingDialog();
|
||||
|
|
|
@ -471,7 +471,7 @@ public class PreviewMediaFragment extends FileFragment implements OnTouchListene
|
|||
playVideoUri(getFile().getStorageUri());
|
||||
} else {
|
||||
try {
|
||||
new LoadStreamUrl(this, user, clientFactory).execute(getFile().getRemoteId());
|
||||
new LoadStreamUrl(this, user, clientFactory).execute(getFile().getLocalId());
|
||||
} catch (Exception e) {
|
||||
Log_OC.e(TAG, "Loading stream url not possible: " + e);
|
||||
}
|
||||
|
@ -498,7 +498,7 @@ public class PreviewMediaFragment extends FileFragment implements OnTouchListene
|
|||
Log_OC.e(TAG, "Fullscreen: " + isFullScreen);
|
||||
}
|
||||
|
||||
private static class LoadStreamUrl extends AsyncTask<String, Void, Uri> {
|
||||
private static class LoadStreamUrl extends AsyncTask<Long, Void, Uri> {
|
||||
|
||||
private final ClientFactory clientFactory;
|
||||
private final User user;
|
||||
|
@ -511,7 +511,7 @@ public class PreviewMediaFragment extends FileFragment implements OnTouchListene
|
|||
}
|
||||
|
||||
@Override
|
||||
protected Uri doInBackground(String... fileId) {
|
||||
protected Uri doInBackground(Long... fileId) {
|
||||
OwnCloudClient client;
|
||||
try {
|
||||
client = clientFactory.create(user);
|
||||
|
|
|
@ -64,6 +64,7 @@ import androidx.annotation.NonNull;
|
|||
import androidx.appcompat.widget.SearchView;
|
||||
import androidx.core.view.MenuItemCompat;
|
||||
import androidx.fragment.app.FragmentManager;
|
||||
import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
|
||||
|
||||
public class PreviewTextFileFragment extends PreviewTextFragment {
|
||||
private static final String EXTRA_FILE = "FILE";
|
||||
|
@ -228,6 +229,7 @@ public class PreviewTextFileFragment extends PreviewTextFragment {
|
|||
}
|
||||
|
||||
@Override
|
||||
@SuppressFBWarnings("STT")
|
||||
protected void onPostExecute(final StringWriter stringWriter) {
|
||||
final TextView textView = textViewReference.get();
|
||||
|
||||
|
|
|
@ -222,6 +222,7 @@ public final class FileStorageUtils {
|
|||
file.setEtag(remote.getEtag());
|
||||
file.setPermissions(remote.getPermissions());
|
||||
file.setRemoteId(remote.getRemoteId());
|
||||
file.setLocalId(remote.getLocalId());
|
||||
file.setFavorite(remote.isFavorite());
|
||||
if (file.isFolder()) {
|
||||
file.setEncrypted(remote.isEncrypted());
|
||||
|
|
|
@ -0,0 +1,46 @@
|
|||
/*
|
||||
*
|
||||
* Nextcloud Android client application
|
||||
*
|
||||
* @author Tobias Kaminsky
|
||||
* Copyright (C) 2022 Tobias Kaminsky
|
||||
* Copyright (C) 2022 Nextcloud GmbH
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package com.owncloud.android.datamodel
|
||||
|
||||
import org.junit.Assert.assertEquals
|
||||
import org.junit.Assert.assertNotEquals
|
||||
import org.junit.Test
|
||||
|
||||
class OCFileTest {
|
||||
@Test
|
||||
fun testLongIds() {
|
||||
val sut = OCFile("/")
|
||||
|
||||
sut.remoteId = "12345678ocjycgrudn78"
|
||||
assertEquals(12345678, sut.localId)
|
||||
|
||||
sut.remoteId = "00000008ocjycgrudn78"
|
||||
assertEquals(8, sut.localId)
|
||||
|
||||
// this will fail as fileId is too large
|
||||
sut.remoteId = "1234567891011ocjycgrudn78"
|
||||
assertNotEquals(1234567891011L, sut.localId)
|
||||
|
||||
sut.localId = 1234567891011L
|
||||
assertEquals(1234567891011L, sut.localId)
|
||||
}
|
||||
}
|
|
@ -6,7 +6,7 @@ buildscript {
|
|||
daggerVersion = "2.44.2"
|
||||
markwonVersion = "4.6.2"
|
||||
prismVersion = "2.0.0"
|
||||
androidLibraryVersion = "master-SNAPSHOT"
|
||||
androidLibraryVersion = "localId-SNAPSHOT"
|
||||
mockitoVersion = "4.11.0"
|
||||
mockitoKotlinVersion = "4.1.0"
|
||||
mockkVersion = "1.13.3"
|
||||
|
|
Loading…
Reference in a new issue