Skip to content

Commit d286a4c

Browse files
authored
Merge pull request #14354 from woocommerce/tooling/integrate-automattic-enryptedlogging-1.0.0
[Encrypted Logging] Integrate `automattic-enryptedlogging` 1.0.0
2 parents 5ccecb6 + f545b16 commit d286a4c

File tree

29 files changed

+59
-1292
lines changed

29 files changed

+59
-1292
lines changed

WooCommerce-Wear/proguard-rules.pro

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -68,12 +68,6 @@
6868
-keep class uk.co.senab.photoview.** { *; }
6969
###### Zendesk - end
7070

71-
###### Encrypted Logs - begin
72-
-dontwarn java.awt.*
73-
-keep class com.sun.jna.* { *; }
74-
-keepclassmembers class * extends com.sun.jna.* { public *; }
75-
###### Encrypted Logs - end
76-
7771
###### Glide - begin
7872
-keep class com.bumptech.glide.GeneratedAppGlideModuleImpl { *; }
7973
###### Glide - end

WooCommerce/build.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -245,6 +245,7 @@ dependencies {
245245
exclude group: "com.android.support"
246246
}
247247

248+
implementation(libs.automattic.encryptedlogging)
248249
implementation(libs.automattic.tracks.experimentation)
249250
implementation(libs.automattic.tracks.android)
250251
implementation(libs.automattic.tracks.crashlogging)

WooCommerce/proguard-rules.pro

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -68,12 +68,6 @@
6868
-keep class uk.co.senab.photoview.** { *; }
6969
###### Zendesk - end
7070

71-
###### Encrypted Logs - begin
72-
-dontwarn java.awt.*
73-
-keep class com.sun.jna.* { *; }
74-
-keepclassmembers class * extends com.sun.jna.* { public *; }
75-
###### Encrypted Logs - end
76-
7771
###### Glide - begin
7872
-keep class com.bumptech.glide.GeneratedAppGlideModuleImpl { *; }
7973
###### Glide - end

WooCommerce/src/main/kotlin/com/woocommerce/android/AppInitializer.kt

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,6 @@ import com.woocommerce.android.util.WooLog.T.DASHBOARD
5858
import com.woocommerce.android.util.WooLog.T.UTILS
5959
import com.woocommerce.android.util.WooLogWrapper
6060
import com.woocommerce.android.util.crashlogging.UploadEncryptedLogs
61-
import com.woocommerce.android.util.encryptedlogging.ObserveEncryptedLogsUploadResult
6261
import com.woocommerce.android.widgets.AppRatingDialog
6362
import dagger.Lazy
6463
import dagger.android.DispatchingAndroidInjector
@@ -122,8 +121,6 @@ class AppInitializer @Inject constructor() : ApplicationLifecycleListener {
122121

123122
@Inject lateinit var uploadEncryptedLogs: UploadEncryptedLogs
124123

125-
@Inject lateinit var observeEncryptedLogsUploadResults: ObserveEncryptedLogsUploadResult
126-
127124
@Inject lateinit var sendTelemetry: SendTelemetry
128125

129126
@Inject lateinit var siteObserver: SiteObserver
@@ -226,7 +223,6 @@ class AppInitializer @Inject constructor() : ApplicationLifecycleListener {
226223

227224
trackStartupAnalytics()
228225

229-
observeEncryptedLogsUploadResults()
230226
uploadEncryptedLogs()
231227

232228
appCoroutineScope.launch {

WooCommerce/src/main/kotlin/com/woocommerce/android/analytics/AnalyticsEvent.kt

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -820,10 +820,6 @@ enum class AnalyticsEvent(override val siteless: Boolean = false) : IAnalyticsEv
820820
APP_PERMISSION_RATIONALE_ACCEPTED,
821821
APP_PERMISSION_RATIONALE_DISMISSED,
822822

823-
// -- Encrypted logging
824-
ENCRYPTED_LOGGING_UPLOAD_SUCCESSFUL,
825-
ENCRYPTED_LOGGING_UPLOAD_FAILED,
826-
827823
// -- What's new / feature announcements
828824
FEATURE_ANNOUNCEMENT_SHOWN,
829825

WooCommerce/src/main/kotlin/com/woocommerce/android/ui/woopos/cardreader/WooPosCardReaderFacade.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ class WooPosCardReaderFacade @Inject constructor(
3939
cardReaderManager.disconnectReader()
4040
}
4141

42+
@Suppress("DEPRECATION")
4243
private fun startActivity(intent: Intent) {
4344
val options = ActivityOptionsCompat.makeCustomAnimation(
4445
activity!!,

WooCommerce/src/main/kotlin/com/woocommerce/android/util/crashlogging/CrashLoggingModule.kt

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
package com.woocommerce.android.util.crashlogging
22

33
import android.app.Application
4-
import android.util.Base64
4+
import android.content.Context
55
import com.automattic.android.tracks.crashlogging.CrashLogging
66
import com.automattic.android.tracks.crashlogging.CrashLoggingDataProvider
77
import com.automattic.android.tracks.crashlogging.CrashLoggingProvider
88
import com.automattic.android.tracks.crashlogging.performance.PerformanceMonitoringRepositoryProvider
99
import com.automattic.android.tracks.crashlogging.performance.PerformanceTransactionRepository
10-
import com.goterl.lazysodium.utils.Key
10+
import com.automattic.encryptedlogging.EncryptedLogging
1111
import com.woocommerce.android.BuildConfig
1212
import com.woocommerce.android.di.AppCoroutineScope
1313
import com.woocommerce.android.util.locale.ContextBasedLocaleProvider
@@ -16,10 +16,10 @@ import dagger.Binds
1616
import dagger.Module
1717
import dagger.Provides
1818
import dagger.hilt.InstallIn
19+
import dagger.hilt.android.qualifiers.ApplicationContext
1920
import dagger.hilt.components.SingletonComponent
2021
import kotlinx.coroutines.CoroutineScope
2122
import org.wordpress.android.fluxc.logging.FluxCCrashLogger
22-
import org.wordpress.android.fluxc.model.encryptedlogging.EncryptedLoggingKey
2323
import javax.inject.Singleton
2424

2525
@InstallIn(SingletonComponent::class)
@@ -37,9 +37,15 @@ abstract class CrashLoggingModule {
3737
}
3838

3939
@Provides
40-
fun provideEncryptedLoggingKey(): EncryptedLoggingKey {
41-
return EncryptedLoggingKey(Key.fromBytes(Base64.decode(BuildConfig.ENCRYPTED_LOGGING_KEY, Base64.DEFAULT)))
42-
}
40+
@Singleton
41+
fun provideEncryptedLogging(
42+
@ApplicationContext context: Context,
43+
): EncryptedLogging =
44+
EncryptedLogging.getInstance(
45+
context,
46+
encryptedLoggingKey = BuildConfig.ENCRYPTED_LOGGING_KEY,
47+
clientSecret = BuildConfig.OAUTH_APP_SECRET,
48+
)
4349

4450
@Provides
4551
fun provideFluxCCrashLogger(crashLogging: CrashLogging): FluxCCrashLogger {

WooCommerce/src/main/kotlin/com/woocommerce/android/util/crashlogging/EnqueueSendingEncryptedLogs.kt

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,26 +2,23 @@ package com.woocommerce.android.util.crashlogging
22

33
import com.automattic.android.tracks.crashlogging.EventLevel
44
import com.automattic.android.tracks.crashlogging.EventLevel.FATAL
5+
import com.automattic.encryptedlogging.EncryptedLogging
56
import com.woocommerce.android.tools.NetworkStatus
6-
import org.wordpress.android.fluxc.Dispatcher
7-
import org.wordpress.android.fluxc.generated.EncryptedLogActionBuilder
8-
import org.wordpress.android.fluxc.store.EncryptedLogStore.UploadEncryptedLogPayload
97
import javax.inject.Inject
108

119
class EnqueueSendingEncryptedLogs @Inject constructor(
12-
private val eventBusDispatcher: Dispatcher,
10+
private val encryptedLogging: EncryptedLogging,
1311
private val wooLogFileProvider: WooLogFileProvider,
1412
private val networkStatus: NetworkStatus
1513
) {
1614
operator fun invoke(
1715
uuid: String,
1816
eventLevel: EventLevel
1917
) {
20-
val payload = UploadEncryptedLogPayload(
18+
encryptedLogging.enqueueSendingEncryptedLogs(
2119
uuid = uuid,
2220
file = wooLogFileProvider.provide(),
23-
shouldStartUploadImmediately = eventLevel != FATAL && networkStatus.isConnected()
21+
shouldUploadImmediately = eventLevel != FATAL && networkStatus.isConnected()
2422
)
25-
eventBusDispatcher.dispatch(EncryptedLogActionBuilder.newUploadLogAction(payload))
2623
}
2724
}
Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,13 @@
11
package com.woocommerce.android.util.crashlogging
22

3-
import com.woocommerce.android.util.CoroutineDispatchers
4-
import kotlinx.coroutines.CoroutineScope
5-
import kotlinx.coroutines.launch
6-
import org.wordpress.android.fluxc.store.EncryptedLogStore
3+
import com.automattic.encryptedlogging.EncryptedLogging
74
import javax.inject.Inject
85

96
class UploadEncryptedLogs @Inject constructor(
10-
dispatchers: CoroutineDispatchers,
11-
private val encryptedLogStore: EncryptedLogStore
7+
private val encryptedLogging: EncryptedLogging
128
) {
13-
private val coroutineScope = CoroutineScope(dispatchers.io)
14-
159
operator fun invoke() {
16-
coroutineScope.launch {
17-
encryptedLogStore.uploadQueuedEncryptedLogs()
18-
}
10+
encryptedLogging.resetUploadStates()
11+
encryptedLogging.uploadEncryptedLogs()
1912
}
2013
}

WooCommerce/src/main/kotlin/com/woocommerce/android/util/encryptedlogging/ObserveEncryptedLogsUploadResult.kt

Lines changed: 0 additions & 51 deletions
This file was deleted.

0 commit comments

Comments
 (0)