Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ import com.nextcloud.client.assistant.model.AssistantScreenState
import com.nextcloud.client.assistant.model.ScreenOverlayState
import com.nextcloud.client.assistant.repository.local.AssistantLocalRepository
import com.nextcloud.client.assistant.repository.remote.AssistantRemoteRepository
import com.nextcloud.utils.TimeConstants.MILLIS_PER_SECOND
import com.nextcloud.utils.AppConstants.MILLIS_PER_SECOND
import com.owncloud.android.R
import com.owncloud.android.lib.common.utils.Log_OC
import com.owncloud.android.lib.resources.assistant.v2.model.Task
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import com.nextcloud.utils.TimeConstants
import com.nextcloud.utils.AppConstants
import com.nextcloud.utils.extensions.time
import com.owncloud.android.R
import com.owncloud.android.lib.resources.assistant.chat.model.ChatMessage
Expand Down Expand Up @@ -304,7 +304,7 @@ private fun AnimatedAssistantIcon() {
initialValue = 1f,
targetValue = 1.1f,
animationSpec = infiniteRepeatable(
animation = tween(TimeConstants.MILLIS_PER_SECOND, easing = LinearEasing),
animation = tween(AppConstants.MILLIS_PER_SECOND, easing = LinearEasing),
repeatMode = RepeatMode.Reverse
),
label = "scale_animation"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ package com.nextcloud.client.assistant.chat
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
import com.nextcloud.client.assistant.repository.remote.AssistantRemoteRepository
import com.nextcloud.utils.TimeConstants.MILLIS_PER_SECOND
import com.nextcloud.utils.AppConstants.MILLIS_PER_SECOND
import com.nextcloud.utils.date.DateFormatPattern
import com.nextcloud.utils.date.DateFormatter
import com.nextcloud.utils.extensions.isHuman
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
import com.nextcloud.client.assistant.conversation.model.ConversationScreenState
import com.nextcloud.client.assistant.conversation.repository.ConversationRemoteRepository
import com.nextcloud.utils.TimeConstants.MILLIS_PER_SECOND
import com.nextcloud.utils.AppConstants.MILLIS_PER_SECOND
import com.owncloud.android.R
import com.owncloud.android.lib.common.utils.Log_OC
import com.owncloud.android.lib.resources.assistant.chat.model.Conversation
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,9 @@ import com.owncloud.android.lib.resources.assistant.v2.model.Task
import com.owncloud.android.lib.resources.status.NextcloudVersion
import com.owncloud.android.lib.resources.status.OCCapability
import java.util.concurrent.TimeUnit
import com.nextcloud.utils.AppConstants.MILLIS_PER_SECOND
import com.nextcloud.utils.AppConstants.MINUTES_PER_HOUR
import com.nextcloud.utils.AppConstants.SECONDS_PER_MINUTE

fun Task.getInputAndOutput(): String {
val inputText = input?.input ?: ""
Expand Down Expand Up @@ -157,17 +160,16 @@ private fun Task.getStatusIconDescriptionV2(): Int = when (status) {
}
}

@Suppress("MagicNumber")
fun Task.getModifiedAtRepresentation(context: Context): String? {
if (lastUpdated == null) {
return null
}

val modifiedAt = lastUpdated!!.toLong()
val currentTime = System.currentTimeMillis() / 1000
val currentTime = System.currentTimeMillis() / MILLIS_PER_SECOND
val timeDifference = (currentTime - modifiedAt).toInt()
val timeDifferenceInMinutes = (timeDifference / 60)
val timeDifferenceInHours = (timeDifference / 3600)
val timeDifferenceInMinutes = (timeDifference / SECONDS_PER_MINUTE)
val timeDifferenceInHours = (timeDifference / (SECONDS_PER_MINUTE * MINUTES_PER_HOUR))

return when {
timeDifference < 0 -> {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
package com.nextcloud.client.assistant.repository.remote

import com.nextcloud.common.NextcloudClient
import com.nextcloud.utils.TimeConstants
import com.nextcloud.utils.AppConstants
import com.owncloud.android.lib.common.operations.RemoteOperationResult
import com.owncloud.android.lib.common.operations.RemoteOperationResult.ResultCode
import com.owncloud.android.lib.resources.assistant.chat.CheckGenerationRemoteOperation
Expand Down Expand Up @@ -106,7 +106,7 @@ class AssistantRemoteRepositoryImpl(private val client: NextcloudClient, capabil
}

override suspend fun createConversation(title: String): CreateConversation? = withContext(Dispatchers.IO) {
val timestamp = System.currentTimeMillis().div(TimeConstants.MILLIS_PER_SECOND)
val timestamp = System.currentTimeMillis().div(AppConstants.MILLIS_PER_SECOND)
val result = CreateConversationRemoteOperation(title, timestamp).execute(client)
if (result.isSuccess) result.resultData else null
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ import com.owncloud.android.lib.resources.assistant.v2.model.TaskInput
import com.owncloud.android.lib.resources.assistant.v2.model.TaskOutput
import com.owncloud.android.lib.resources.status.OCCapability
import java.util.concurrent.TimeUnit
import com.nextcloud.utils.AppConstants.MILLIS_PER_SECOND

@Composable
fun TaskStatusView(task: Task, capability: OCCapability) {
Expand Down Expand Up @@ -72,7 +73,7 @@ fun TaskStatusView(task: Task, capability: OCCapability) {
@Composable
@Preview
private fun TaskStatusViewPreview() {
val currentTime = System.currentTimeMillis() / 1000
val currentTime = System.currentTimeMillis() / MILLIS_PER_SECOND

val tasks = listOf(
Task(
Expand Down
3 changes: 2 additions & 1 deletion app/src/main/java/com/nextcloud/client/di/AppModule.kt
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,7 @@ import java.io.File
import javax.inject.Named
import javax.inject.Provider
import javax.inject.Singleton
import com.nextcloud.utils.AppConstants.BYTES_PER_MB

@Module(includes = [ComponentsModule::class, VariantComponentsModule::class, BuildTypeComponentsModule::class])
@Suppress("TooManyFunctions")
Expand Down Expand Up @@ -266,7 +267,7 @@ internal class AppModule {
companion object {
private const val LOG_DIR_NAME = "logs"
private const val LOG_FILE_NAME = "log.txt"
private const val LOG_FILE_MAX_SIZE_BYTES = 1024L * 1024L
private const val LOG_FILE_MAX_SIZE_BYTES = BYTES_PER_MB.toLong()
private const val LOGGER_QUEUE_CAPACITY = 1000
private const val UI_THREAD_POOL_SIZE = 4
private const val IO_THREAD_POOL_SIZE = 8
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,7 @@ import java.util.Date
import java.util.UUID
import java.util.concurrent.TimeUnit
import kotlin.reflect.KClass
import kotlin.time.Duration.Companion.days

/**
* Note to maintainers
Expand Down Expand Up @@ -119,14 +120,14 @@ internal class BackgroundJobManagerImpl(
const val TAG_PREFIX_START_TIMESTAMP = "timestamp"
val PREFIXES = setOf(TAG_PREFIX_NAME, TAG_PREFIX_USER, TAG_PREFIX_START_TIMESTAMP, TAG_PREFIX_CLASS)
const val NOT_SET_VALUE = "not set"
const val PERIODIC_BACKUP_INTERVAL_MINUTES = 24 * 60L
val PERIODIC_BACKUP_INTERVAL_MINUTES = 1.days.inWholeMinutes
const val DEFAULT_PERIODIC_JOB_INTERVAL_MINUTES = 15L
const val OFFLINE_OPERATIONS_PERIODIC_JOB_INTERVAL_MINUTES = 5L
const val DEFAULT_IMMEDIATE_JOB_DELAY_SEC = 3L
const val DEFAULT_BACKOFF_CRITERIA_DELAY_SEC = 300L
const val ALBUM_JOB_FILES_UPLOAD = "album_files_upload"

private const val KEEP_LOG_MILLIS = 1000 * 60 * 60 * 24 * 3L
private val KEEP_LOG_MILLIS = 3.days.inWholeMilliseconds

fun formatNameTag(name: String, user: User? = null): String = if (user == null) {
"$TAG_PREFIX_NAME:$name"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ import com.owncloud.android.lib.common.utils.Log_OC
import thirdparties.sufficientlysecure.AndroidCalendar
import thirdparties.sufficientlysecure.SaveCalendar
import java.util.Calendar
import kotlin.time.Duration.Companion.days

class CalendarBackupWork(
appContext: Context,
Expand All @@ -31,7 +32,7 @@ class CalendarBackupWork(
val TAG = CalendarBackupWork::class.java.simpleName
const val ACCOUNT = "account"
const val FORCE = "force"
const val JOB_INTERVAL_MS: Long = 24 * 60 * 60 * 1000
val JOB_INTERVAL_MS = 1.days.inWholeMilliseconds
}

override fun doWork(): Result {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ import java.io.IOException
import java.io.InputStream
import java.io.InputStreamReader
import java.util.Calendar
import kotlin.time.Duration.Companion.days

@Suppress("LongParameterList") // legacy code
class ContactsBackupWork(
Expand All @@ -58,7 +59,7 @@ class ContactsBackupWork(
val TAG = ContactsBackupWork::class.java.simpleName
const val KEY_ACCOUNT = "account"
const val KEY_FORCE = "force"
const val JOB_INTERVAL_MS: Long = 24L * 60L * 60L * 1000L
val JOB_INTERVAL_MS = 1.days.inWholeMilliseconds
const val BUFFER_SIZE = 1024
}

Expand Down
9 changes: 5 additions & 4 deletions app/src/main/java/com/nextcloud/client/jobs/TestJob.kt
Original file line number Diff line number Diff line change
Expand Up @@ -10,21 +10,22 @@ import android.content.Context
import androidx.work.Data
import androidx.work.Worker
import androidx.work.WorkerParameters
import com.nextcloud.utils.AppConstants.PROGRESS_PERCENTAGE_MAX
import com.nextcloud.utils.AppConstants.PROGRESS_PERCENTAGE_MIN
import com.nextcloud.utils.AppConstants.ONE_SECOND

class TestJob(appContext: Context, params: WorkerParameters, private val backgroundJobManager: BackgroundJobManager) :
Worker(appContext, params) {

companion object {
private const val MAX_PROGRESS = 100
private const val DELAY_MS = 1000L
private const val PROGRESS_KEY = "progress"
}

override fun doWork(): Result {
backgroundJobManager.logStartOfWorker(BackgroundJobManagerImpl.formatClassTag(this::class))

for (i in 0..MAX_PROGRESS) {
Thread.sleep(DELAY_MS)
for (i in PROGRESS_PERCENTAGE_MIN..PROGRESS_PERCENTAGE_MAX) {
Thread.sleep(ONE_SECOND.inWholeMilliseconds)
val progress = Data.Builder()
.putInt(PROGRESS_KEY, i)
.build()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ import com.owncloud.android.ui.notifications.NotificationUtils
import com.owncloud.android.utils.FileUtil
import com.owncloud.android.utils.theme.ViewThemeUtils
import java.io.File
import kotlin.time.Duration.Companion.milliseconds

class AutoUploadLocalDeletionWorker(
private val context: Context,
Expand All @@ -36,7 +37,6 @@ class AutoUploadLocalDeletionWorker(
companion object {
const val SYNCED_FOLDER_IDS = "synced_folder_IDs"
const val NOTIFICATION_ID = 267
const val MS_IN_SECOND = 1000

private const val TAG = "AutoUploadLocalDeletionWorker"
}
Expand Down Expand Up @@ -107,7 +107,7 @@ class AutoUploadLocalDeletionWorker(
Log_OC.d(
TAG,
"Success: users=$users, foldersAnalyzed=$foldersAnalyzed, filesPreserved=$filesPreserved, " +
"filesRemoved=$filesRemoved, spaceFreed=$spaceFreed bytes, runTime=${runTimeMs / MS_IN_SECOND} seconds"
"filesRemoved=$filesRemoved, spaceFreed=$spaceFreed bytes, runTime=${runTimeMs.milliseconds}"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cool, didn't know this

)
return Result.success()
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,8 @@ import com.owncloud.android.lib.common.utils.Log_OC
import com.owncloud.android.utils.SyncedFolderUtils
import java.io.File
import java.util.zip.CRC32
import com.nextcloud.utils.AppConstants.BYTES_PER_KB
import com.nextcloud.utils.AppConstants.MILLIS_PER_SECOND

@Suppress("TooGenericExceptionCaught", "NestedBlockDepth", "MagicNumber", "ReturnCount")
class FileSystemRepository(
Expand Down Expand Up @@ -158,13 +160,13 @@ class FileSystemRepository(
val filePath = cursor.getString(idxData)

val lastModifiedMs = if (idxModified != -1) {
cursor.getLong(idxModified) * 1000
cursor.getLong(idxModified) * MILLIS_PER_SECOND
} else {
null
}

val creationTimeMs = if (idxAdded != -1) {
cursor.getLong(idxAdded) * 1000
cursor.getLong(idxAdded) * MILLIS_PER_SECOND
} else {
null
}
Expand Down Expand Up @@ -289,7 +291,7 @@ class FileSystemRepository(
private fun getFileChecksum(file: File): Long? = try {
file.inputStream().use { fis ->
val crc = CRC32()
val buffer = ByteArray(64 * 1024)
val buffer = ByteArray(64 * BYTES_PER_KB)
var bytesRead: Int
while (fis.read(buffer).also { bytesRead = it } > 0) {
crc.update(buffer, 0, bytesRead)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ import com.owncloud.android.utils.theme.ViewThemeUtils
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.withContext
import kotlin.random.Random
import com.nextcloud.utils.AppConstants.PROGRESS_PERCENTAGE_MAX

class FolderDownloadWorkerNotificationManager(
private val context: Context,
Expand All @@ -36,7 +37,6 @@ class FolderDownloadWorkerNotificationManager(

companion object {
private const val NOTIFICATION_ID = 391
private const val MAX_PROGRESS = 100
}

private fun getNotification(title: String, description: String = "", progress: Int? = null): Notification =
Expand All @@ -47,7 +47,7 @@ class FolderDownloadWorkerNotificationManager(
setContentText(description)

if (progress != null) {
setProgress(MAX_PROGRESS, progress, false)
setProgress(PROGRESS_PERCENTAGE_MAX, progress, false)
if (showCancel) {
addAction(
R.drawable.ic_cancel,
Expand Down Expand Up @@ -79,7 +79,7 @@ class FolderDownloadWorkerNotificationManager(
val currentFileIndex = (currentIndex + 1)
val description =
context.getString(R.string.folder_download_counter, currentFileIndex, totalFileSize, filename)
val progress = (currentFileIndex * MAX_PROGRESS) / totalFileSize
val progress = (currentFileIndex * PROGRESS_PERCENTAGE_MAX) / totalFileSize
val notification = getNotification(folderName, description, progress)
showNotification(notification)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ import com.owncloud.android.lib.common.operations.RemoteOperationResult
import com.owncloud.android.ui.activity.ConflictsResolveActivity
import com.owncloud.android.ui.notifications.NotificationUtils
import com.owncloud.android.utils.theme.ViewThemeUtils
import com.nextcloud.utils.AppConstants.PROGRESS_PERCENTAGE_MAX

class OfflineOperationsNotificationManager(private val context: Context, viewThemeUtils: ViewThemeUtils) :
WorkerNotificationManager(
Expand All @@ -35,14 +36,12 @@ class OfflineOperationsNotificationManager(private val context: Context, viewThe
companion object {
private const val ID = 121
const val ERROR_ID = 122

private const val ONE_HUNDRED_PERCENT = 100
}

fun start() {
notificationBuilder.run {
setContentTitle(context.getString(R.string.offline_operations_worker_notification_start_text))
setProgress(ONE_HUNDRED_PERCENT, 0, false)
setProgress(PROGRESS_PERCENTAGE_MAX, 0, false)
}

showNotification()
Expand All @@ -60,11 +59,11 @@ class OfflineOperationsNotificationManager(private val context: Context, viewThe
filename
}

val progress = (currentOperationIndex * ONE_HUNDRED_PERCENT) / totalOperationSize
val progress = (currentOperationIndex * PROGRESS_PERCENTAGE_MAX) / totalOperationSize

notificationBuilder.run {
setContentTitle(title)
setProgress(ONE_HUNDRED_PERCENT, progress, false)
setProgress(PROGRESS_PERCENTAGE_MAX, progress, false)
}

showNotification()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ import com.owncloud.android.utils.MimeTypeUtil
import com.owncloud.android.utils.theme.ViewThemeUtils
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.withContext
import com.nextcloud.utils.AppConstants.MILLIS_PER_SECOND

private typealias OfflineOperationResult = Pair<RemoteOperationResult<*>?, RemoteOperation<*>?>?

Expand All @@ -49,8 +50,6 @@ class OfflineOperationsWorker(
companion object {
private val TAG = OfflineOperationsWorker::class.java.simpleName
const val JOB_NAME = "JOB_NAME"

private const val ONE_SECOND = 1000L
}

private val fileDataStorageManager = FileDataStorageManager(user, context.contentResolver)
Expand Down Expand Up @@ -269,7 +268,7 @@ class OfflineOperationsWorker(
@Suppress("DEPRECATION")
private fun createFile(operation: OfflineOperationEntity, client: OwnCloudClient): OfflineOperationResult {
val operationType = (operation.type as OfflineOperationType.CreateFile)
val lastModificationDate = System.currentTimeMillis() / ONE_SECOND
val lastModificationDate = System.currentTimeMillis() / MILLIS_PER_SECOND
val createFileOperation = UploadFileRemoteOperation(
operationType.localPath,
operationType.remotePath,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,8 @@ import com.nextcloud.client.jobs.upload.UploadTask
import com.owncloud.android.datamodel.OCFile
import com.owncloud.android.operations.UploadFileOperation
import java.util.UUID
import com.nextcloud.utils.AppConstants.PROGRESS_PERCENTAGE_MAX
import com.nextcloud.utils.AppConstants.PROGRESS_PERCENTAGE_MIN

/**
* Per-user file transfer manager.
Expand All @@ -40,8 +42,6 @@ class TransferManagerImpl(
) : TransferManager {

companion object {
const val PROGRESS_PERCENTAGE_MAX = 100
const val PROGRESS_PERCENTAGE_MIN = 0
const val TEST_DOWNLOAD_PROGRESS_UPDATE_PERIOD_MS = 200L
const val TEST_UPLOAD_PROGRESS_UPDATE_PERIOD_MS = 200L
}
Expand Down
Loading
Loading