From ba3e24bbc79a1c05d6216c4684027b17431490b2 Mon Sep 17 00:00:00 2001 From: Andy Scherzinger Date: Fri, 11 Mar 2022 18:29:39 +0100 Subject: [PATCH] replace too long paramter lists with data classes Signed-off-by: Andy Scherzinger --- .../talk/jobs/UploadAndShareFilesWorker.kt | 38 ++++++++++++------- .../nextcloud/talk/utils/NotificationUtils.kt | 32 ++++++++++------ 2 files changed, 45 insertions(+), 25 deletions(-) diff --git a/app/src/main/java/com/nextcloud/talk/jobs/UploadAndShareFilesWorker.kt b/app/src/main/java/com/nextcloud/talk/jobs/UploadAndShareFilesWorker.kt index ed1084b91..3a5f24afb 100644 --- a/app/src/main/java/com/nextcloud/talk/jobs/UploadAndShareFilesWorker.kt +++ b/app/src/main/java/com/nextcloud/talk/jobs/UploadAndShareFilesWorker.kt @@ -99,10 +99,18 @@ class UploadAndShareFilesWorker(val context: Context, workerParameters: WorkerPa checkNotNull(roomToken) for (index in sourcefiles.indices) { - val sourcefileUri = Uri.parse(sourcefiles[index]) - val filename = UriUtils.getFileName(sourcefileUri, context) - val requestBody = createRequestBody(sourcefileUri) - uploadFile(currentUser, ncTargetpath, filename, roomToken, requestBody, sourcefileUri, metaData) + val sourceFileUri = Uri.parse(sourcefiles[index]) + uploadFile( + currentUser!!, + UploadItem( + sourceFileUri, + UriUtils.getFileName(sourceFileUri, context), + createRequestBody(sourceFileUri) + ), + ncTargetpath, + roomToken, + metaData + ) } } catch (e: IllegalStateException) { Log.e(javaClass.simpleName, "Something went wrong when trying to upload file", e) @@ -130,17 +138,15 @@ class UploadAndShareFilesWorker(val context: Context, workerParameters: WorkerPa private fun uploadFile( currentUser: UserEntity, - ncTargetpath: String?, - filename: String, + uploadItem: UploadItem, + ncTargetPath: String?, roomToken: String?, - requestBody: RequestBody?, - sourcefileUri: Uri, metaData: String? ) { ncApi.uploadFile( ApiUtils.getCredentials(currentUser.username, currentUser.token), - ApiUtils.getUrlForFileUpload(currentUser.baseUrl, currentUser.userId, ncTargetpath, filename), - requestBody + ApiUtils.getUrlForFileUpload(currentUser.baseUrl, currentUser.userId, ncTargetPath, uploadItem.fileName), + uploadItem.requestBody ) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) @@ -154,12 +160,12 @@ class UploadAndShareFilesWorker(val context: Context, workerParameters: WorkerPa } override fun onError(e: Throwable) { - Log.e(TAG, "failed to upload file $filename") + Log.e(TAG, "failed to upload file ${uploadItem.fileName}") } override fun onComplete() { - shareFile(roomToken, currentUser, ncTargetpath, filename, metaData) - copyFileToCache(sourcefileUri, filename) + shareFile(roomToken, currentUser, ncTargetPath, uploadItem.fileName, metaData) + copyFileToCache(uploadItem.uri, uploadItem.fileName) } }) } @@ -274,4 +280,10 @@ class UploadAndShareFilesWorker(val context: Context, workerParameters: WorkerPa } } } + + private data class UploadItem( + val uri: Uri, + val fileName: String, + val requestBody: RequestBody?, + ) } diff --git a/app/src/main/java/com/nextcloud/talk/utils/NotificationUtils.kt b/app/src/main/java/com/nextcloud/talk/utils/NotificationUtils.kt index af769a3d7..f01c98773 100644 --- a/app/src/main/java/com/nextcloud/talk/utils/NotificationUtils.kt +++ b/app/src/main/java/com/nextcloud/talk/utils/NotificationUtils.kt @@ -2,6 +2,8 @@ * Nextcloud Talk application * * @author Mario Danic + * @author Andy Scherzinger + * Copyright (C) 2021 Andy Scherzinger * Copyright (C) 2017 Mario Danic * * This program is free software: you can redistribute it and/or modify @@ -62,9 +64,7 @@ object NotificationUtils { @TargetApi(Build.VERSION_CODES.O) private fun createNotificationChannel( context: Context, - channelId: String, - channelName: String, - channelDescription: String, + notificationChannel: Channel, sound: Uri?, audioAttributes: AudioAttributes ) { @@ -73,14 +73,14 @@ object NotificationUtils { if ( Build.VERSION.SDK_INT >= Build.VERSION_CODES.O && - notificationManager.getNotificationChannel(channelId) == null + notificationManager.getNotificationChannel(notificationChannel.id) == null ) { val channel = NotificationChannel( - channelId, channelName, + notificationChannel.id, notificationChannel.name, NotificationManager.IMPORTANCE_HIGH ) - channel.description = channelDescription + channel.description = notificationChannel.description channel.enableLights(true) channel.lightColor = R.color.colorPrimary channel.setSound(sound, audioAttributes) @@ -103,9 +103,10 @@ object NotificationUtils { createNotificationChannel( context, - NOTIFICATION_CHANNEL_CALLS_V4, - context.resources.getString(R.string.nc_notification_channel_calls), - context.resources.getString(R.string.nc_notification_channel_calls_description), + Channel( + NOTIFICATION_CHANNEL_CALLS_V4, + context.resources.getString(R.string.nc_notification_channel_calls), + context.resources.getString(R.string.nc_notification_channel_calls_description)), soundUri, audioAttributes ) @@ -124,9 +125,10 @@ object NotificationUtils { createNotificationChannel( context, - NOTIFICATION_CHANNEL_MESSAGES_V4, - context.resources.getString(R.string.nc_notification_channel_messages), - context.resources.getString(R.string.nc_notification_channel_messages_description), + Channel( + NOTIFICATION_CHANNEL_MESSAGES_V4, + context.resources.getString(R.string.nc_notification_channel_messages), + context.resources.getString(R.string.nc_notification_channel_messages_description)), soundUri, audioAttributes ) @@ -322,4 +324,10 @@ object NotificationUtils { appPreferences.messageRingtoneUri, DEFAULT_MESSAGE_RINGTONE_URI, NOTIFICATION_CHANNEL_MESSAGES_V4 ) } + + private data class Channel( + val id: String, + val name: String, + val description: String + ) }