Skip to content

Commit c3284a4

Browse files
authored
Analytics (#25)
1 parent d1ad564 commit c3284a4

File tree

38 files changed

+382
-31
lines changed

38 files changed

+382
-31
lines changed

app/app.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,7 @@ dependencies {
7373
implementation project(":storage")
7474
implementation project(":domain")
7575
implementation project(":feature:ads")
76+
implementation project(":feature:analytics")
7677
implementation project(":data")
7778
implementation project(":demo")
7879
implementation di.koinCore

app/src/main/java/com/shifthackz/aisdv1/app/AiStableDiffusionClientApp.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ class AiStableDiffusionClientApp : Application() {
2626
androidContext(this@AiStableDiffusionClientApp)
2727
modules(
2828
demoModule,
29-
featureModule,
29+
*featureModule,
3030
preferenceModule,
3131
providersModule,
3232
domainModule,
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package com.shifthackz.aisdv1.app.di
22

33
import com.shifthackz.aisdv1.feature.ads.di.adFeatureModule
4+
import com.shifthackz.aisdv1.feature.analytics.di.analyticsModule
45

5-
val featureModule = adFeatureModule
6-
// ).toTypedArray()
6+
val featureModule = (adFeatureModule + analyticsModule).toTypedArray()

domain/src/main/java/com/shifthackz/aisdv1/domain/feature/AdFeature.kt renamed to domain/src/main/java/com/shifthackz/aisdv1/domain/feature/ad/AdFeature.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.shifthackz.aisdv1.domain.feature
1+
package com.shifthackz.aisdv1.domain.feature.ad
22

33
import android.app.Activity
44
import android.content.Context
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
package com.shifthackz.aisdv1.domain.feature.analytics
2+
3+
interface Analytics {
4+
fun initialize()
5+
fun logEvent(event: AnalyticsEvent)
6+
}
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
package com.shifthackz.aisdv1.domain.feature.analytics
2+
3+
abstract class AnalyticsEvent(
4+
val name: String,
5+
val parameters: Map<String, Any> = mapOf(),
6+
) {
7+
val isValid: Boolean
8+
get() = name.isNotEmpty()
9+
10+
override fun equals(other: Any?): Boolean {
11+
if (this === other) return true
12+
if (other !is AnalyticsEvent) return false
13+
14+
if (name != other.name) return false
15+
if (parameters != other.parameters) return false
16+
17+
return true
18+
}
19+
20+
override fun hashCode(): Int {
21+
var result = name.hashCode()
22+
result = 31 * result + parameters.hashCode()
23+
return result
24+
}
25+
26+
override fun toString(): String = buildString {
27+
val tag = AnalyticsEvent::class.simpleName
28+
appendLine("$tag - [$name]")
29+
parameters.forEach { (key, value) ->
30+
appendLine("$tag - $key: $value")
31+
}
32+
}
33+
}

feature/ads/src/foss/java/com/shifthackz/aisdv1/feature/ads/AdFeatureImpl.kt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,7 @@ package com.shifthackz.aisdv1.feature.ads
22

33
import android.app.Activity
44
import android.content.Context
5-
import android.view.View
6-
import com.shifthackz.aisdv1.domain.feature.AdFeature
5+
import com.shifthackz.aisdv1.domain.feature.ad.AdFeature
76

87
class AdFeatureImpl : AdFeature {
98
override fun initialize(activity: Activity) = Unit

feature/ads/src/main/java/com/shifthackz/aisdv1/feature/ads/di/AdFeatureModule.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package com.shifthackz.aisdv1.feature.ads.di
22

3-
import com.shifthackz.aisdv1.domain.feature.AdFeature
3+
import com.shifthackz.aisdv1.domain.feature.ad.AdFeature
44
import com.shifthackz.aisdv1.feature.ads.AdFeatureImpl
55
import org.koin.core.module.dsl.factoryOf
66
import org.koin.dsl.bind

feature/ads/src/playstore/java/com/shifthackz/aisdv1/feature/ads/AdFeatureImpl.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import android.view.LayoutInflater
66
import androidx.annotation.LayoutRes
77
import com.google.android.gms.ads.*
88
import com.google.android.gms.ads.nativead.NativeAdView
9-
import com.shifthackz.aisdv1.domain.feature.AdFeature
9+
import com.shifthackz.aisdv1.domain.feature.ad.AdFeature
1010

1111
class AdFeatureImpl : AdFeature {
1212

feature/ads/src/playstore/java/com/shifthackz/aisdv1/feature/ads/AdMobXmlRenderer.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import android.widget.ImageView
77
import android.widget.TextView
88
import com.google.android.gms.ads.nativead.NativeAd
99
import com.google.android.gms.ads.nativead.NativeAdView
10-
import com.shifthackz.aisdv1.domain.feature.AdFeature
10+
import com.shifthackz.aisdv1.domain.feature.ad.AdFeature
1111

1212
class AdMobXmlRenderer {
1313

0 commit comments

Comments
 (0)