1
0
mirror of https://github.com/owncloud/android-library.git synced 2025-06-07 16:06:08 +00:00

Clean up remote objects (code review)

This commit is contained in:
davigonz 2019-11-14 14:35:19 +01:00
parent c50e199b76
commit f104d6842e
2 changed files with 53 additions and 214 deletions

View File

@ -24,11 +24,7 @@
package com.owncloud.android.lib.resources.shares package com.owncloud.android.lib.resources.shares
import android.os.Parcel
import android.os.Parcelable
import com.owncloud.android.lib.common.utils.Log_OC
import com.owncloud.android.lib.resources.files.FileUtils import com.owncloud.android.lib.resources.files.FileUtils
import java.io.Serializable
/** /**
* Contains the data of a Share from the Share API * Contains the data of a Share from the Share API
@ -37,124 +33,27 @@ import java.io.Serializable
* @author David A. Velasco * @author David A. Velasco
* @author David González Verdugo * @author David González Verdugo
*/ */
class RemoteShare : Parcelable, Serializable { data class RemoteShare(
var id: Long = 0 var id: Long = 0,
var shareWith: String = "" var shareWith: String = "",
var path: String = "" var path: String = "",
var token: String = "" var token: String = "",
var sharedWithDisplayName: String = "" var sharedWithDisplayName: String = "",
var sharedWithAdditionalInfo: String = "" var sharedWithAdditionalInfo: String = "",
var name: String = "" var name: String = "",
var shareLink: String = "" var shareLink: String = "",
var fileSource: Long = 0 var fileSource: Long = 0,
var itemSource: Long = 0 var itemSource: Long = 0,
var shareType: ShareType? = null var shareType: ShareType? = ShareType.UNKNOWN,
var permissions: Int = DEFAULT_PERMISSION var permissions: Int = DEFAULT_PERMISSION,
var sharedDate: Long = INIT_SHARED_DATE var sharedDate: Long = INIT_SHARED_DATE,
var expirationDate: Long = INIT_EXPIRATION_DATE_IN_MILLIS var expirationDate: Long = INIT_EXPIRATION_DATE_IN_MILLIS,
var isFolder: Boolean = path.endsWith(FileUtils.PATH_SEPARATOR) var isFolder: Boolean = path.endsWith(FileUtils.PATH_SEPARATOR),
var userId: Long = 0 var userId: Long = 0,
val isValid: Boolean = id > -1 val isValid: Boolean = id > -1
) {
constructor() : super() {
resetData()
}
constructor(path: String?) {
resetData()
if (path.isNullOrEmpty() || !path.startsWith(FileUtils.PATH_SEPARATOR)) {
Log_OC.e(TAG, "Trying to create a RemoteShare with a non valid path")
throw IllegalArgumentException("Trying to create a RemoteShare with a non valid path: " + path!!)
}
this.path = path
}
/**
* Used internally. Reset all file properties
*/
private fun resetData() {
id = -1
shareWith = ""
path = ""
token = ""
sharedWithDisplayName = ""
sharedWithAdditionalInfo = ""
name = ""
shareLink = ""
fileSource = 0
itemSource = 0
shareType = ShareType.NO_SHARED
permissions = DEFAULT_PERMISSION
sharedDate = INIT_SHARED_DATE
expirationDate = INIT_EXPIRATION_DATE_IN_MILLIS
sharedWithAdditionalInfo = ""
isFolder = false
userId = -1
}
/**
* Reconstruct from parcel
*
* @param source The source parcel
*/
protected constructor(source: Parcel) {
readFromParcel(source)
}
fun readFromParcel(source: Parcel) {
id = source.readLong()
shareWith = source.readString().toString()
path = source.readString().toString()
token = source.readString().toString()
sharedWithDisplayName = source.readString().toString()
sharedWithAdditionalInfo = source.readString().toString()
name = source.readString().toString()
shareLink = source.readString().toString()
fileSource = source.readLong()
itemSource = source.readLong()
shareType = ShareType.NO_SHARED
try {
shareType = source.readString()?.let { ShareType.valueOf(it) }
} catch (x: IllegalArgumentException) {
}
permissions = source.readInt()
sharedDate = source.readLong()
expirationDate = source.readLong()
isFolder = source.readInt() == 0
userId = source.readLong()
}
override fun describeContents(): Int = this.hashCode()
override fun writeToParcel(dest: Parcel, flags: Int) {
dest.writeLong(id)
dest.writeString(shareWith)
dest.writeString(path)
dest.writeString(token)
dest.writeString(sharedWithDisplayName)
dest.writeString(sharedWithAdditionalInfo)
dest.writeString(name)
dest.writeString(shareLink)
dest.writeLong(fileSource)
dest.writeLong(itemSource)
dest.writeString(shareType?.name ?: "")
dest.writeInt(permissions)
dest.writeLong(sharedDate)
dest.writeLong(expirationDate)
dest.writeInt(if (isFolder) 1 else 0)
dest.writeLong(userId)
}
companion object { companion object {
/**
* Generated - should be refreshed every time the class changes!!
*/
private const val serialVersionUID = 4124975224281327921L
private val TAG = RemoteShare::class.java.simpleName
const val DEFAULT_PERMISSION = -1 const val DEFAULT_PERMISSION = -1
const val READ_PERMISSION_FLAG = 1 const val READ_PERMISSION_FLAG = 1
const val UPDATE_PERMISSION_FLAG = 2 const val UPDATE_PERMISSION_FLAG = 2
@ -180,30 +79,14 @@ class RemoteShare : Parcelable, Serializable {
const val INIT_EXPIRATION_DATE_IN_MILLIS: Long = 0 const val INIT_EXPIRATION_DATE_IN_MILLIS: Long = 0
const val INIT_SHARED_DATE: Long = 0 const val INIT_SHARED_DATE: Long = 0
/**
* Parcelable Methods
*/
@JvmField
val CREATOR: Parcelable.Creator<RemoteShare> = object : Parcelable.Creator<RemoteShare> {
override fun createFromParcel(source: Parcel): RemoteShare {
return RemoteShare(source)
} }
override fun newArray(size: Int): Array<RemoteShare?> {
return arrayOfNulls(size)
}
}
}
} }
/** /**
* // TODO This type is already included in the domain but we still need it here since the parsing takes place in this library for the moment * // TODO This type is already included in the domain but we still need it here since the parsing takes place in this library for the moment
* *
* Enum for Share Type, with values: * Enum for Share Type, with values:
* -1 - No shared * -1 - Unknown
* 0 - Shared by user * 0 - Shared by user
* 1 - Shared by group * 1 - Shared by group
* 3 - Shared by public link * 3 - Shared by public link
@ -213,8 +96,9 @@ class RemoteShare : Parcelable, Serializable {
* *
* @author masensio * @author masensio
*/ */
enum class ShareType constructor(val value: Int) { enum class ShareType constructor(val value: Int) {
NO_SHARED(-1), UNKNOWN(-1),
USER(0), USER(0),
GROUP(1), GROUP(1),
PUBLIC_LINK(3), PUBLIC_LINK(3),
@ -225,7 +109,7 @@ enum class ShareType constructor(val value: Int) {
companion object { companion object {
fun fromValue(value: Int): ShareType? { fun fromValue(value: Int): ShareType? {
return when (value) { return when (value) {
-1 -> NO_SHARED -1 -> UNKNOWN
0 -> USER 0 -> USER
1 -> GROUP 1 -> GROUP
3 -> PUBLIC_LINK 3 -> PUBLIC_LINK

View File

@ -29,81 +29,45 @@ package com.owncloud.android.lib.resources.status
/** /**
* Contains data of the Capabilities for an account, from the Capabilities API * Contains data of the Capabilities for an account, from the Capabilities API
*/ */
class RemoteCapability { data class RemoteCapability(
var accountName: String var accountName: String = "",
// Server version // Server version
var versionMayor: Int var versionMayor: Int = 0,
var versionMinor: Int var versionMinor: Int = 0,
var versionMicro: Int var versionMicro: Int = 0,
var versionString: String var versionString: String = "",
var versionEdition: String var versionEdition: String = "",
// Core PollInterval // Core PollInterval
var corePollinterval: Int var corePollinterval: Int = 0,
// Files Sharing // Files Sharing
var filesSharingApiEnabled: CapabilityBooleanType var filesSharingApiEnabled: CapabilityBooleanType = CapabilityBooleanType.UNKNOWN,
var filesSharingSearchMinLength: CapabilityBooleanType var filesSharingSearchMinLength: CapabilityBooleanType = CapabilityBooleanType.UNKNOWN,
var filesSharingMinLength: Int var filesSharingMinLength: Int = 0,
var filesSharingPublicEnabled: CapabilityBooleanType var filesSharingPublicEnabled: CapabilityBooleanType = CapabilityBooleanType.UNKNOWN,
var filesSharingPublicPasswordEnforced: CapabilityBooleanType var filesSharingPublicPasswordEnforced: CapabilityBooleanType = CapabilityBooleanType.UNKNOWN,
var filesSharingPublicPasswordEnforcedReadOnly: CapabilityBooleanType var filesSharingPublicPasswordEnforcedReadOnly: CapabilityBooleanType = CapabilityBooleanType.UNKNOWN,
var filesSharingPublicPasswordEnforcedReadWrite: CapabilityBooleanType var filesSharingPublicPasswordEnforcedReadWrite: CapabilityBooleanType = CapabilityBooleanType.UNKNOWN,
var filesSharingPublicPasswordEnforcedUploadOnly: CapabilityBooleanType var filesSharingPublicPasswordEnforcedUploadOnly: CapabilityBooleanType = CapabilityBooleanType.UNKNOWN,
var filesSharingPublicExpireDateEnabled: CapabilityBooleanType var filesSharingPublicExpireDateEnabled: CapabilityBooleanType = CapabilityBooleanType.UNKNOWN,
var filesSharingPublicExpireDateDays: Int var filesSharingPublicExpireDateDays: Int = 0,
var filesSharingPublicExpireDateEnforced: CapabilityBooleanType var filesSharingPublicExpireDateEnforced: CapabilityBooleanType = CapabilityBooleanType.UNKNOWN,
var filesSharingPublicSendMail: CapabilityBooleanType var filesSharingPublicSendMail: CapabilityBooleanType = CapabilityBooleanType.UNKNOWN,
var filesSharingPublicUpload: CapabilityBooleanType var filesSharingPublicUpload: CapabilityBooleanType = CapabilityBooleanType.UNKNOWN,
var filesSharingPublicMultiple: CapabilityBooleanType var filesSharingPublicMultiple: CapabilityBooleanType = CapabilityBooleanType.UNKNOWN,
var filesSharingPublicSupportsUploadOnly: CapabilityBooleanType var filesSharingPublicSupportsUploadOnly: CapabilityBooleanType = CapabilityBooleanType.UNKNOWN,
var filesSharingUserSendMail: CapabilityBooleanType var filesSharingUserSendMail: CapabilityBooleanType = CapabilityBooleanType.UNKNOWN,
var filesSharingResharing: CapabilityBooleanType var filesSharingResharing: CapabilityBooleanType = CapabilityBooleanType.UNKNOWN,
var filesSharingFederationOutgoing: CapabilityBooleanType var filesSharingFederationOutgoing: CapabilityBooleanType = CapabilityBooleanType.UNKNOWN,
var filesSharingFederationIncoming: CapabilityBooleanType var filesSharingFederationIncoming: CapabilityBooleanType = CapabilityBooleanType.UNKNOWN,
// Files // Files
var filesBigFileChunking: CapabilityBooleanType var filesBigFileChunking: CapabilityBooleanType = CapabilityBooleanType.UNKNOWN,
var filesUndelete: CapabilityBooleanType var filesUndelete: CapabilityBooleanType = CapabilityBooleanType.UNKNOWN,
var filesVersioning: CapabilityBooleanType var filesVersioning: CapabilityBooleanType = CapabilityBooleanType.UNKNOWN
)
init {
accountName = ""
versionMayor = 0
versionMinor = 0
versionMicro = 0
versionString = ""
versionEdition = ""
corePollinterval = 0
filesSharingApiEnabled = CapabilityBooleanType.UNKNOWN
filesSharingSearchMinLength = CapabilityBooleanType.UNKNOWN
filesSharingMinLength = 4
filesSharingPublicEnabled = CapabilityBooleanType.UNKNOWN
filesSharingPublicPasswordEnforced = CapabilityBooleanType.UNKNOWN
filesSharingPublicPasswordEnforcedReadOnly = CapabilityBooleanType.UNKNOWN
filesSharingPublicPasswordEnforcedReadWrite = CapabilityBooleanType.UNKNOWN
filesSharingPublicPasswordEnforcedUploadOnly = CapabilityBooleanType.UNKNOWN
filesSharingPublicExpireDateEnabled = CapabilityBooleanType.UNKNOWN
filesSharingPublicExpireDateDays = 0
filesSharingPublicExpireDateEnforced = CapabilityBooleanType.UNKNOWN
filesSharingPublicSendMail = CapabilityBooleanType.UNKNOWN
filesSharingPublicUpload = CapabilityBooleanType.UNKNOWN
filesSharingPublicMultiple = CapabilityBooleanType.UNKNOWN
filesSharingPublicSupportsUploadOnly = CapabilityBooleanType.UNKNOWN
filesSharingUserSendMail = CapabilityBooleanType.UNKNOWN
filesSharingResharing = CapabilityBooleanType.UNKNOWN
filesSharingFederationOutgoing = CapabilityBooleanType.UNKNOWN
filesSharingFederationIncoming = CapabilityBooleanType.UNKNOWN
filesBigFileChunking = CapabilityBooleanType.UNKNOWN
filesUndelete = CapabilityBooleanType.UNKNOWN
filesVersioning = CapabilityBooleanType.UNKNOWN
}
}
/** /**
* Enum for Boolean Type in capabilities, with values: * Enum for Boolean Type in capabilities, with values:
@ -116,15 +80,6 @@ enum class CapabilityBooleanType constructor(val value: Int) {
FALSE(0), FALSE(0),
TRUE(1); TRUE(1);
val isUnknown: Boolean
get() = value == -1
val isFalse: Boolean
get() = value == 0
val isTrue: Boolean
get() = value == 1
companion object { companion object {
fun fromValue(value: Int): CapabilityBooleanType? { fun fromValue(value: Int): CapabilityBooleanType? {
return when (value) { return when (value) {