Skip to content

Commit fa7a484

Browse files
authored
Merge pull request #4204 from owncloud/feature/loggin_changes
[FEATURE REQUEST] Logging changes
2 parents ec30ba3 + 8466409 commit fa7a484

File tree

32 files changed

+482
-243
lines changed

32 files changed

+482
-243
lines changed

CHANGELOG.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ ownCloud admins and users.
3535
* Enhancement - "Share to" in oCIS accounts allows upload to any space: [#4088](https://github.com/owncloud/android/issues/4088)
3636
* Enhancement - Auto-refresh when a file is uploaded: [#4103](https://github.com/owncloud/android/issues/4103)
3737
* Enhancement - Auto upload in oCIS accounts allows upload to any space: [#4117](https://github.com/owncloud/android/issues/4117)
38+
* Enhancement - Logging changes: [#4151](https://github.com/owncloud/android/issues/4151)
3839
* Enhancement - Download log files: [#4155](https://github.com/owncloud/android/issues/4155)
3940
* Enhancement - Log file sharing allowed within ownCloud Android app: [#4156](https://github.com/owncloud/android/issues/4156)
4041
* Enhancement - New field "last usage" in database: [#4173](https://github.com/owncloud/android/issues/4173)
@@ -112,6 +113,16 @@ ownCloud admins and users.
112113
https://github.com/owncloud/android/issues/4117
113114
https://github.com/owncloud/android/pull/4214
114115

116+
* Enhancement - Logging changes: [#4151](https://github.com/owncloud/android/issues/4151)
117+
118+
- Updating version of com.github.AppDevNext.Logcat:LogcatCoreLib lib. - Adding
119+
the hour, minutes and seconds to the log file. - Printing http logs in one line.
120+
- Printing http logs with 1000000 bytes as max size. - Printing http logs in a
121+
Json format.
122+
123+
https://github.com/owncloud/android/issues/4151
124+
https://github.com/owncloud/android/pull/4204
125+
115126
* Enhancement - Download log files: [#4155](https://github.com/owncloud/android/issues/4155)
116127

117128
A new icon to download a log file to the Downloads folder of the device has been

changelog/unreleased/4204

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
Enhancement: Logging changes
2+
3+
- Updating version of com.github.AppDevNext.Logcat:LogcatCoreLib lib.
4+
- Adding the hour, minutes and seconds to the log file.
5+
- Printing http logs in one line.
6+
- Printing http logs with 1000000 bytes as max size.
7+
- Printing http logs in a Json format.
8+
9+
https://github.com/owncloud/android/issues/4151
10+
https://github.com/owncloud/android/pull/4204

gradle/libs.versions.toml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ photoView = "2.3.0"
4343
preference = "1.2.0"
4444
sonarqube = "4.0.0.2929"
4545
stetho = "1.6.0"
46+
timber = "5.0.1"
4647

4748
[libraries]
4849
androidx-annotation = { group = "androidx.annotation", name = "annotation", version.ref = "androidxAnnotation" }
@@ -107,6 +108,7 @@ moshi-kotlin-codegen = { group = "com.squareup.moshi", name = "moshi-kotlin-code
107108
patternlockview = { group = "com.github.aritraroy.PatternLockView", name = "patternlockview", version.ref = "patternlockview" }
108109
photoview = { group = "com.github.chrisbanes", name = "PhotoView", version.ref = "photoView" }
109110
stetho = { group = "com.facebook.stetho", name = "stetho", version.ref = "stetho" }
111+
timber = { group = "com.jakewharton.timber", name = "timber", version.ref = "timber" }
110112

111113
# Dependencies of the included build-logic
112114
android-gradlePlugin = { group = "com.android.tools.build", name = "gradle", version.ref = "androidGradlePlugin" }

owncloudApp/build.gradle

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,9 @@ dependencies {
5858
// Markdown Preview
5959
implementation libs.bundles.markwon
6060

61+
// Timber
62+
implementation libs.timber
63+
6164
// Tests
6265
testImplementation project(":owncloudTestUtil")
6366
testImplementation libs.androidx.arch.core.testing

owncloudApp/src/main/java/com/owncloud/android/presentation/files/details/FileDetailsViewModel.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,9 @@ import android.accounts.Account
2525
import androidx.lifecycle.LiveData
2626
import androidx.lifecycle.MediatorLiveData
2727
import androidx.lifecycle.MutableLiveData
28-
import androidx.lifecycle.Transformations
2928
import androidx.lifecycle.ViewModel
3029
import androidx.lifecycle.map
30+
import androidx.lifecycle.switchMap
3131
import androidx.lifecycle.viewModelScope
3232
import androidx.work.WorkInfo
3333
import androidx.work.WorkManager
@@ -109,7 +109,7 @@ class FileDetailsViewModel(
109109
)
110110

111111
private val _ongoingTransferUUID = MutableLiveData<UUID>()
112-
private val _ongoingTransfer = Transformations.switchMap(_ongoingTransferUUID) { transferUUID ->
112+
private val _ongoingTransfer = _ongoingTransferUUID.switchMap { transferUUID ->
113113
workManager.getWorkInfoByIdLiveData(transferUUID)
114114
}.map { Event(it) }
115115
val ongoingTransfer: LiveData<Event<WorkInfo?>> = _ongoingTransfer

owncloudApp/src/main/java/com/owncloud/android/presentation/logging/LogsListActivity.kt

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,8 @@ import com.owncloud.android.databinding.LogsListActivityBinding
3939
import com.owncloud.android.extensions.openFile
4040
import com.owncloud.android.extensions.sendFile
4141
import com.owncloud.android.extensions.showMessageInSnackbar
42+
import com.owncloud.android.presentation.settings.logging.SettingsLogsViewModel
43+
import com.owncloud.android.providers.LogsProvider
4244
import org.koin.androidx.viewmodel.ext.android.viewModel
4345
import timber.log.Timber
4446
import java.io.File
@@ -50,17 +52,22 @@ class LogsListActivity : AppCompatActivity() {
5052

5153
private val viewModel by viewModel<LogListViewModel>()
5254

55+
private val logsViewModel by viewModel<SettingsLogsViewModel>()
56+
5357
private var _binding: LogsListActivityBinding? = null
58+
59+
private var createNewLogFile: Boolean = false
5460
val binding get() = _binding!!
5561

5662
private val recyclerViewLogsAdapter = RecyclerViewLogsAdapter(object : RecyclerViewLogsAdapter.Listener {
5763
override fun share(file: File) {
5864
sendFile(file)
5965
}
6066

61-
override fun delete(file: File) {
67+
override fun delete(file: File, isLastLogFileDeleted: Boolean) {
6268
file.delete()
6369
setData()
70+
createNewLogFile = isLastLogFileDeleted
6471
}
6572

6673
override fun open(file: File) {
@@ -93,6 +100,9 @@ class LogsListActivity : AppCompatActivity() {
93100
}
94101

95102
override fun onOptionsItemSelected(item: MenuItem): Boolean {
103+
if (createNewLogFile && logsViewModel.isLoggingEnabled()) {
104+
LogsProvider(applicationContext).startLogging()
105+
}
96106
when (item.itemId) {
97107
android.R.id.home -> finish()
98108
}

owncloudApp/src/main/java/com/owncloud/android/presentation/logging/RecyclerViewLogsAdapter.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ class RecyclerViewLogsAdapter(
5353
listener.share(log)
5454
}
5555
imageViewDeleteActivityLogsList.setOnClickListener {
56-
listener.delete(log)
56+
listener.delete(log, logsList.last() == log)
5757
}
5858
imageViewDownloadActivityLogsList.setOnClickListener {
5959
listener.download(log)
@@ -80,7 +80,7 @@ class RecyclerViewLogsAdapter(
8080

8181
interface Listener {
8282
fun share(file: File)
83-
fun delete(file: File)
83+
fun delete(file: File, isLastLogFileDeleted: Boolean)
8484
fun open(file: File)
8585
fun download(file: File)
8686
}

owncloudApp/src/main/java/com/owncloud/android/providers/LogsProvider.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ import com.owncloud.android.BuildConfig
2424
import com.owncloud.android.MainApp
2525
import com.owncloud.android.data.providers.implementation.OCSharedPreferencesProvider
2626
import com.owncloud.android.data.providers.ScopedStorageProvider
27-
import com.owncloud.android.lib.common.http.LogInterceptor
27+
import com.owncloud.android.lib.common.http.logging.LogInterceptor
2828
import com.owncloud.android.lib.common.utils.LoggingHelper
2929
import timber.log.Timber
3030
import java.io.File

owncloudApp/src/main/java/com/owncloud/android/usecases/transfers/downloads/GetLiveDataForDownloadingFileUseCase.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
package com.owncloud.android.usecases.transfers.downloads
2020

2121
import androidx.lifecycle.LiveData
22-
import androidx.lifecycle.Transformations
22+
import androidx.lifecycle.map
2323
import androidx.work.WorkInfo
2424
import androidx.work.WorkManager
2525
import com.owncloud.android.domain.BaseUseCase
@@ -42,7 +42,7 @@ class GetLiveDataForDownloadingFileUseCase(
4242
states = PENDING_WORK_STATUS
4343
)
4444

45-
return Transformations.map(workManager.getWorkInfosLiveData(workQuery)) { listOfDownloads ->
45+
return workManager.getWorkInfosLiveData(workQuery).map { listOfDownloads ->
4646
listOfDownloads.firstOrNull { it.tags.containsAll(tagsToFilter) }
4747
}
4848
}

owncloudApp/src/main/java/com/owncloud/android/usecases/transfers/downloads/GetLiveDataForFinishedDownloadsFromAccountUseCase.kt

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ package com.owncloud.android.usecases.transfers.downloads
2020

2121
import android.accounts.Account
2222
import androidx.lifecycle.LiveData
23-
import androidx.lifecycle.Transformations
23+
import androidx.lifecycle.map
2424
import androidx.work.WorkInfo
2525
import androidx.work.WorkManager
2626
import com.owncloud.android.domain.BaseUseCase
@@ -42,9 +42,7 @@ class GetLiveDataForFinishedDownloadsFromAccountUseCase(
4242
states = FINISHED_WORK_STATUS
4343
)
4444

45-
return Transformations.map(
46-
workManager.getWorkInfosLiveData(workQuery)
47-
) { listOfDownloads ->
45+
return workManager.getWorkInfosLiveData(workQuery).map { listOfDownloads ->
4846
listOfDownloads
4947
.asReversed()
5048
.distinctBy { it.tags }

0 commit comments

Comments
 (0)