Init analytics modules (#350)

This commit is contained in:
Yoan Pintas 2023-06-05 15:11:34 +02:00 committed by GitHub
parent 93456e8d44
commit f534ecda96
125 changed files with 2018 additions and 2130 deletions

View file

@ -17,8 +17,8 @@
package io.element.android.libraries.push.api
import io.element.android.libraries.matrix.api.MatrixClient
import io.element.android.libraries.push.providers.api.Distributor
import io.element.android.libraries.push.providers.api.PushProvider
import io.element.android.libraries.pushproviders.api.Distributor
import io.element.android.libraries.pushproviders.api.PushProvider
interface PushService {
// TODO Move away

View file

@ -22,8 +22,8 @@ import io.element.android.libraries.matrix.api.MatrixClient
import io.element.android.libraries.push.api.PushService
import io.element.android.libraries.pushstore.api.clientsecret.PushClientSecret
import io.element.android.libraries.push.impl.notifications.NotificationDrawerManager
import io.element.android.libraries.push.providers.api.Distributor
import io.element.android.libraries.push.providers.api.PushProvider
import io.element.android.libraries.pushproviders.api.Distributor
import io.element.android.libraries.pushproviders.api.PushProvider
import io.element.android.libraries.pushstore.api.UserPushStoreFactory
import javax.inject.Inject

View file

@ -26,7 +26,7 @@ import io.element.android.libraries.matrix.api.pusher.SetHttpPusherData
import io.element.android.libraries.push.impl.config.PushConfig
import io.element.android.libraries.push.impl.log.pushLoggerTag
import io.element.android.libraries.push.impl.pushgateway.PushGatewayNotifyRequest
import io.element.android.libraries.push.providers.api.PusherSubscriber
import io.element.android.libraries.pushproviders.api.PusherSubscriber
import io.element.android.libraries.pushstore.api.UserPushStoreFactory
import io.element.android.libraries.pushstore.api.clientsecret.PushClientSecret
import io.element.android.services.toolbox.api.appname.AppNameProvider

View file

@ -26,7 +26,6 @@ import io.element.android.libraries.matrix.api.core.RoomId
import io.element.android.libraries.matrix.api.core.SessionId
import io.element.android.libraries.matrix.api.core.ThreadId
import io.element.android.libraries.push.impl.log.notificationLoggerTag
import io.element.android.services.analytics.api.AnalyticsTracker
import io.element.android.services.toolbox.api.systemclock.SystemClock
import timber.log.Timber
import javax.inject.Inject
@ -41,7 +40,7 @@ class NotificationBroadcastReceiver : BroadcastReceiver() {
@Inject lateinit var notificationDrawerManager: NotificationDrawerManager
//@Inject lateinit var activeSessionHolder: ActiveSessionHolder
@Inject lateinit var analyticsTracker: AnalyticsTracker
//@Inject lateinit var analyticsTracker: AnalyticsTracker
@Inject lateinit var clock: SystemClock
@Inject lateinit var actionIds: NotificationActionIds

View file

@ -33,8 +33,8 @@ import io.element.android.libraries.push.impl.notifications.NotifiableEventResol
import io.element.android.libraries.push.impl.notifications.NotificationActionIds
import io.element.android.libraries.push.impl.notifications.NotificationDrawerManager
import io.element.android.libraries.push.impl.store.DefaultPushDataStore
import io.element.android.libraries.push.providers.api.PushData
import io.element.android.libraries.push.providers.api.PushHandler
import io.element.android.libraries.pushproviders.api.PushData
import io.element.android.libraries.pushproviders.api.PushHandler
import io.element.android.libraries.pushstore.api.UserPushStoreFactory
import io.element.android.libraries.pushstore.api.clientsecret.PushClientSecret
import kotlinx.coroutines.CoroutineScope

View file

@ -18,7 +18,7 @@ plugins {
}
android {
namespace = "io.element.android.libraries.push.providers.api"
namespace = "io.element.android.libraries.pushproviders.api"
}
dependencies {

View file

@ -14,7 +14,7 @@
* limitations under the License.
*/
package io.element.android.libraries.push.providers.api
package io.element.android.libraries.pushproviders.api
data class Distributor(
val value: String,

View file

@ -14,7 +14,7 @@
* limitations under the License.
*/
package io.element.android.libraries.push.providers.api
package io.element.android.libraries.pushproviders.api
import io.element.android.libraries.matrix.api.core.EventId
import io.element.android.libraries.matrix.api.core.RoomId

View file

@ -14,7 +14,7 @@
* limitations under the License.
*/
package io.element.android.libraries.push.providers.api
package io.element.android.libraries.pushproviders.api
interface PushHandler {
suspend fun handle(pushData: PushData)

View file

@ -14,7 +14,7 @@
* limitations under the License.
*/
package io.element.android.libraries.push.providers.api
package io.element.android.libraries.pushproviders.api
import io.element.android.libraries.matrix.api.MatrixClient

View file

@ -14,7 +14,7 @@
* limitations under the License.
*/
package io.element.android.libraries.push.providers.api
package io.element.android.libraries.pushproviders.api
import io.element.android.libraries.matrix.api.MatrixClient

View file

@ -19,7 +19,7 @@ plugins {
}
android {
namespace = "io.element.android.libraries.push.providers.firebase"
namespace = "io.element.android.libraries.pushproviders.firebase"
}
anvil {

View file

@ -21,7 +21,7 @@
android:name="firebase_analytics_collection_deactivated"
android:value="true" />
<service
android:name="io.element.android.libraries.push.providers.firebase.VectorFirebaseMessagingService"
android:name="io.element.android.libraries.pushproviders.firebase.VectorFirebaseMessagingService"
android:exported="false">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT" />

View file

@ -14,7 +14,7 @@
* limitations under the License.
*/
package io.element.android.libraries.push.providers.firebase
package io.element.android.libraries.pushproviders.firebase
import javax.inject.Inject

View file

@ -14,7 +14,7 @@
* limitations under the License.
*/
package io.element.android.libraries.push.providers.firebase
package io.element.android.libraries.pushproviders.firebase
object FirebaseConfig {
/**

View file

@ -14,12 +14,12 @@
* limitations under the License.
*/
package io.element.android.libraries.push.providers.firebase
package io.element.android.libraries.pushproviders.firebase
import io.element.android.libraries.core.log.logger.LoggerTag
import io.element.android.libraries.matrix.api.auth.MatrixAuthenticationService
import io.element.android.libraries.matrix.api.core.SessionId
import io.element.android.libraries.push.providers.api.PusherSubscriber
import io.element.android.libraries.pushproviders.api.PusherSubscriber
import io.element.android.libraries.pushstore.api.UserPushStoreFactory
import io.element.android.libraries.sessionstorage.api.SessionStore
import io.element.android.libraries.sessionstorage.api.toUserList

View file

@ -14,9 +14,9 @@
* limitations under the License.
*/
package io.element.android.libraries.push.providers.firebase
package io.element.android.libraries.pushproviders.firebase
import io.element.android.libraries.push.providers.api.PushData
import io.element.android.libraries.pushproviders.api.PushData
import javax.inject.Inject
class FirebasePushParser @Inject constructor() {

View file

@ -14,15 +14,15 @@
* limitations under the License.
*/
package io.element.android.libraries.push.providers.firebase
package io.element.android.libraries.pushproviders.firebase
import com.squareup.anvil.annotations.ContributesMultibinding
import io.element.android.libraries.core.log.logger.LoggerTag
import io.element.android.libraries.di.AppScope
import io.element.android.libraries.matrix.api.MatrixClient
import io.element.android.libraries.push.providers.api.Distributor
import io.element.android.libraries.push.providers.api.PushProvider
import io.element.android.libraries.push.providers.api.PusherSubscriber
import io.element.android.libraries.pushproviders.api.Distributor
import io.element.android.libraries.pushproviders.api.PushProvider
import io.element.android.libraries.pushproviders.api.PusherSubscriber
import timber.log.Timber
import javax.inject.Inject

View file

@ -14,7 +14,7 @@
* limitations under the License.
*/
package io.element.android.libraries.push.providers.firebase
package io.element.android.libraries.pushproviders.firebase
import android.content.SharedPreferences
import androidx.core.content.edit

View file

@ -14,7 +14,7 @@
* limitations under the License.
*/
package io.element.android.libraries.push.providers.firebase
package io.element.android.libraries.pushproviders.firebase
import android.content.Context
import com.google.android.gms.common.ConnectionResult

View file

@ -14,11 +14,11 @@
* limitations under the License.
*/
package io.element.android.libraries.push.providers.firebase
package io.element.android.libraries.pushproviders.firebase
import io.element.android.libraries.matrix.api.core.EventId
import io.element.android.libraries.matrix.api.core.RoomId
import io.element.android.libraries.push.providers.api.PushData
import io.element.android.libraries.pushproviders.api.PushData
/**
* In this case, the format is:

View file

@ -14,13 +14,13 @@
* limitations under the License.
*/
package io.element.android.libraries.push.providers.firebase
package io.element.android.libraries.pushproviders.firebase
import com.google.firebase.messaging.FirebaseMessagingService
import com.google.firebase.messaging.RemoteMessage
import io.element.android.libraries.architecture.bindings
import io.element.android.libraries.core.log.logger.LoggerTag
import io.element.android.libraries.push.providers.api.PushHandler
import io.element.android.libraries.pushproviders.api.PushHandler
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.SupervisorJob
import kotlinx.coroutines.launch

View file

@ -14,7 +14,7 @@
* limitations under the License.
*/
package io.element.android.libraries.push.providers.firebase
package io.element.android.libraries.pushproviders.firebase
import com.squareup.anvil.annotations.ContributesTo
import io.element.android.libraries.di.AppScope

View file

@ -14,12 +14,12 @@
* limitations under the License.
*/
package io.element.android.libraries.push.providers.firebase
package io.element.android.libraries.pushproviders.firebase
import com.google.common.truth.Truth.assertThat
import io.element.android.libraries.matrix.test.AN_EVENT_ID
import io.element.android.libraries.matrix.test.A_ROOM_ID
import io.element.android.libraries.push.providers.api.PushData
import io.element.android.libraries.pushproviders.api.PushData
import io.element.android.tests.testutils.assertThrowsInDebug
import org.junit.Test

View file

@ -20,7 +20,7 @@ plugins {
}
android {
namespace = "io.element.android.libraries.push.providers.unifiedpush"
namespace = "io.element.android.libraries.pushproviders.unifiedpush"
}
anvil {

View file

@ -14,7 +14,7 @@
* limitations under the License.
*/
package io.element.android.libraries.push.providers.unifiedpush
package io.element.android.libraries.pushproviders.unifiedpush
import com.squareup.anvil.annotations.ContributesBinding
import io.element.android.libraries.di.AppScope

View file

@ -14,7 +14,7 @@
* limitations under the License.
*/
package io.element.android.libraries.push.providers.unifiedpush
package io.element.android.libraries.pushproviders.unifiedpush
import android.content.BroadcastReceiver
import android.content.Context

View file

@ -14,11 +14,11 @@
* limitations under the License.
*/
package io.element.android.libraries.push.providers.unifiedpush
package io.element.android.libraries.pushproviders.unifiedpush
import io.element.android.libraries.matrix.api.core.EventId
import io.element.android.libraries.matrix.api.core.RoomId
import io.element.android.libraries.push.providers.api.PushData
import io.element.android.libraries.pushproviders.api.PushData
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable

View file

@ -14,13 +14,13 @@
* limitations under the License.
*/
package io.element.android.libraries.push.providers.unifiedpush
package io.element.android.libraries.pushproviders.unifiedpush
import android.content.Context
import io.element.android.libraries.di.ApplicationContext
import io.element.android.libraries.matrix.api.MatrixClient
import io.element.android.libraries.push.providers.api.Distributor
import io.element.android.libraries.push.providers.api.PusherSubscriber
import io.element.android.libraries.pushproviders.api.Distributor
import io.element.android.libraries.pushproviders.api.PusherSubscriber
import org.unifiedpush.android.connector.UnifiedPush
import javax.inject.Inject

View file

@ -14,7 +14,7 @@
* limitations under the License.
*/
package io.element.android.libraries.push.providers.unifiedpush
package io.element.android.libraries.pushproviders.unifiedpush
object UnifiedPushConfig {
/**

View file

@ -14,11 +14,11 @@
* limitations under the License.
*/
package io.element.android.libraries.push.providers.unifiedpush
package io.element.android.libraries.pushproviders.unifiedpush
import io.element.android.libraries.core.coroutine.CoroutineDispatchers
import io.element.android.libraries.network.RetrofitFactory
import io.element.android.libraries.push.providers.unifiedpush.network.UnifiedPushApi
import io.element.android.libraries.pushproviders.unifiedpush.network.UnifiedPushApi
import kotlinx.coroutines.withContext
import timber.log.Timber
import java.net.URL

View file

@ -14,11 +14,11 @@
* limitations under the License.
*/
package io.element.android.libraries.push.providers.unifiedpush
package io.element.android.libraries.pushproviders.unifiedpush
import io.element.android.libraries.core.log.logger.LoggerTag
import io.element.android.libraries.matrix.api.auth.MatrixAuthenticationService
import io.element.android.libraries.push.providers.api.PusherSubscriber
import io.element.android.libraries.pushproviders.api.PusherSubscriber
import io.element.android.libraries.pushstore.api.UserPushStoreFactory
import io.element.android.libraries.pushstore.api.clientsecret.PushClientSecret
import timber.log.Timber

View file

@ -14,10 +14,10 @@
* limitations under the License.
*/
package io.element.android.libraries.push.providers.unifiedpush
package io.element.android.libraries.pushproviders.unifiedpush
import io.element.android.libraries.core.data.tryOrNull
import io.element.android.libraries.push.providers.api.PushData
import io.element.android.libraries.pushproviders.api.PushData
import kotlinx.serialization.decodeFromString
import kotlinx.serialization.json.Json
import javax.inject.Inject

View file

@ -14,7 +14,7 @@
* limitations under the License.
*/
package io.element.android.libraries.push.providers.unifiedpush
package io.element.android.libraries.pushproviders.unifiedpush
import android.content.Context
import com.squareup.anvil.annotations.ContributesMultibinding
@ -22,8 +22,8 @@ import io.element.android.libraries.androidutils.system.getApplicationLabel
import io.element.android.libraries.di.AppScope
import io.element.android.libraries.di.ApplicationContext
import io.element.android.libraries.matrix.api.MatrixClient
import io.element.android.libraries.push.providers.api.Distributor
import io.element.android.libraries.push.providers.api.PushProvider
import io.element.android.libraries.pushproviders.api.Distributor
import io.element.android.libraries.pushproviders.api.PushProvider
import io.element.android.libraries.pushstore.api.clientsecret.PushClientSecret
import org.unifiedpush.android.connector.UnifiedPush
import javax.inject.Inject

View file

@ -14,7 +14,7 @@
* limitations under the License.
*/
package io.element.android.libraries.push.providers.unifiedpush
package io.element.android.libraries.pushproviders.unifiedpush
import android.content.Context
import android.content.SharedPreferences

View file

@ -14,7 +14,7 @@
* limitations under the License.
*/
package io.element.android.libraries.push.providers.unifiedpush
package io.element.android.libraries.pushproviders.unifiedpush
import android.content.Context
import io.element.android.libraries.di.ApplicationContext

View file

@ -14,13 +14,13 @@
* limitations under the License.
*/
package io.element.android.libraries.push.providers.unifiedpush
package io.element.android.libraries.pushproviders.unifiedpush
import android.content.Context
import android.content.Intent
import io.element.android.libraries.architecture.bindings
import io.element.android.libraries.core.log.logger.LoggerTag
import io.element.android.libraries.push.providers.api.PushHandler
import io.element.android.libraries.pushproviders.api.PushHandler
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.SupervisorJob
import kotlinx.coroutines.launch

View file

@ -14,7 +14,7 @@
* limitations under the License.
*/
package io.element.android.libraries.push.providers.unifiedpush
package io.element.android.libraries.pushproviders.unifiedpush
import com.squareup.anvil.annotations.ContributesTo
import io.element.android.libraries.di.AppScope

View file

@ -14,7 +14,7 @@
* limitations under the License.
*/
package io.element.android.libraries.push.providers.unifiedpush.network
package io.element.android.libraries.pushproviders.unifiedpush.network
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable

View file

@ -14,7 +14,7 @@
* limitations under the License.
*/
package io.element.android.libraries.push.providers.unifiedpush.network
package io.element.android.libraries.pushproviders.unifiedpush.network
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable

View file

@ -14,7 +14,7 @@
* limitations under the License.
*/
package io.element.android.libraries.push.providers.unifiedpush.network
package io.element.android.libraries.pushproviders.unifiedpush.network
import retrofit2.http.GET

View file

@ -14,12 +14,12 @@
* limitations under the License.
*/
package io.element.android.libraries.push.providers.unifiedpush
package io.element.android.libraries.pushproviders.unifiedpush
import com.google.common.truth.Truth.assertThat
import io.element.android.libraries.matrix.test.AN_EVENT_ID
import io.element.android.libraries.matrix.test.A_ROOM_ID
import io.element.android.libraries.push.providers.api.PushData
import io.element.android.libraries.pushproviders.api.PushData
import io.element.android.tests.testutils.assertThrowsInDebug
import org.junit.Test

View file

@ -134,13 +134,6 @@
<string name="room_timeline_beginning_of_room">"Dies ist der Anfang von %1$s."</string>
<string name="room_timeline_beginning_of_room_no_name">"Dies ist der Beginn dieser Konversation."</string>
<string name="room_timeline_read_marker_title">"Neu"</string>
<string name="screen_analytics_prompt_data_usage">"Wir erfassen und analysieren "<b>"keine"</b>" Account-Daten"</string>
<string name="screen_analytics_prompt_help_us_improve">"Helfen Sie uns, Probleme zu identifizieren und %1$s zu verbessern, indem Sie anonyme Nutzungsdaten weitergeben."</string>
<string name="screen_analytics_prompt_read_terms">"Sie können alle unsere Nutzerbedingungen %1$s lesen."</string>
<string name="screen_analytics_prompt_read_terms_content_link">"hier"</string>
<string name="screen_analytics_prompt_settings">"Sie können die Analyse jederzeit in den Einstellungen deaktivieren"</string>
<string name="screen_analytics_prompt_third_party_sharing">"Wir geben "<b>"keine"</b>" Informationen an Dritte weiter"</string>
<string name="screen_analytics_prompt_title">"Helfen Sie %1$s zu verbessern"</string>
<string name="screen_analytics_settings_share_data">"Teile Analyse-Daten"</string>
<string name="screen_media_picker_error_failed_selection">"Medienauswahl fehlgeschlagen, bitte versuche es erneut."</string>
<string name="screen_report_content_block_user_hint">"Prüfe, ob du alle aktuellen und zukünftigen Nachrichten dieses Benutzers ausblenden möchtest"</string>

View file

@ -141,13 +141,6 @@
<string name="room_timeline_beginning_of_room">"Acesta este începutul conversației %1$s."</string>
<string name="room_timeline_beginning_of_room_no_name">"Acesta este începutul acestei conversații."</string>
<string name="room_timeline_read_marker_title">"Nou"</string>
<string name="screen_analytics_prompt_data_usage"><b>"Nu"</b>" înregistrăm sau profilăm datele contului"</string>
<string name="screen_analytics_prompt_help_us_improve">"Ajutați-ne să identificăm problemele și să îmbunătățim %1$s prin partajarea datelor de utilizare anonime."</string>
<string name="screen_analytics_prompt_read_terms">"Puteți citi toate condițiile noastre %1$s."</string>
<string name="screen_analytics_prompt_read_terms_content_link">"aici"</string>
<string name="screen_analytics_prompt_settings">"Puteți dezactiva această opțiune oricând din setări"</string>
<string name="screen_analytics_prompt_third_party_sharing"><b>"Nu"</b>" împărtășim informații cu terți"</string>
<string name="screen_analytics_prompt_title">"Ajutați la îmbunătățirea %1$s"</string>
<string name="screen_analytics_settings_share_data">"Partajați datele analitice"</string>
<string name="screen_media_picker_error_failed_selection">"Selectarea fișierelor media a eșuat, încercați din nou."</string>
<string name="screen_media_upload_preview_error_failed_processing">"Procesarea datelor media a eșuat, vă rugăm să încercați din nou."</string>

View file

@ -145,13 +145,6 @@
<string name="room_timeline_beginning_of_room">"This is the beginning of %1$s."</string>
<string name="room_timeline_beginning_of_room_no_name">"This is the beginning of this conversation."</string>
<string name="room_timeline_read_marker_title">"New"</string>
<string name="screen_analytics_prompt_data_usage">"We "<b>"don\'t"</b>" record or profile any account data"</string>
<string name="screen_analytics_prompt_help_us_improve">"Help us identify issues and improve %1$s by sharing anonymous usage data."</string>
<string name="screen_analytics_prompt_read_terms">"You can read all our terms %1$s."</string>
<string name="screen_analytics_prompt_read_terms_content_link">"here"</string>
<string name="screen_analytics_prompt_settings">"You can turn this off anytime in settings"</string>
<string name="screen_analytics_prompt_third_party_sharing">"We "<b>"don\'t"</b>" share information with third parties"</string>
<string name="screen_analytics_prompt_title">"Help improve %1$s"</string>
<string name="screen_analytics_settings_share_data">"Share analytics data"</string>
<string name="screen_media_picker_error_failed_selection">"Failed selecting media, please try again."</string>
<string name="screen_media_upload_preview_error_failed_processing">"Failed processing media to upload, please try again."</string>