Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions app/build.gradle
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'dagger.hilt.android.plugin'
apply plugin: 'kotlin-kapt'

if (getGradle().getStartParameter().getTaskRequests().toString().toLowerCase().contains("gms")) {
apply plugin: 'com.google.gms.google-services'
Expand Down Expand Up @@ -57,6 +59,9 @@ android {
dimension = "messagingService"
}
}
kapt {
correctErrorTypes = true
}
}

dependencies {
Expand All @@ -67,11 +72,16 @@ dependencies {
implementation 'androidx.preference:preference-ktx:1.2.0'
implementation 'androidx.navigation:navigation-fragment-ktx:2.5.3'
implementation 'androidx.navigation:navigation-ui-ktx:2.5.3'
implementation 'androidx.hilt:hilt-common:1.2.0'
implementation 'androidx.work:work-runtime-ktx:2.10.0'
implementation 'androidx.hilt:hilt-work:1.2.0'
gmsImplementation 'com.google.firebase:firebase-messaging:23.1.0'
hmsImplementation 'com.huawei.agconnect:agconnect-core:1.7.3.302'
hmsImplementation 'com.huawei.hms:push:6.11.0.300'
implementation 'com.squareup.okhttp3:okhttp:4.12.0'
implementation 'com.google.code.gson:gson:2.10.1'
implementation "com.google.dagger:hilt-android:2.51.1"
kapt "com.google.dagger:hilt-android-compiler:2.51.1"

implementation project(path: ':sdk')
}
6 changes: 6 additions & 0 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -56,5 +56,11 @@
android:name="ExponeaAuthProvider"
android:value="com.exponea.example.services.ExampleAuthProvider"
/>

<provider
android:name="androidx.startup.InitializationProvider"
android:authorities="${applicationId}.androidx-startup"
android:multiprocess="true"
tools:node="remove" />
</application>
</manifest>
15 changes: 14 additions & 1 deletion app/src/main/java/com/exponea/example/App.kt
Original file line number Diff line number Diff line change
@@ -1,9 +1,17 @@
package com.exponea.example

import android.app.Application
import androidx.hilt.work.HiltWorkerFactory
import androidx.work.Configuration
import com.exponea.example.managers.RegisteredIdManager
import dagger.hilt.android.HiltAndroidApp
import javax.inject.Inject

@HiltAndroidApp
class App : Application(), Configuration.Provider {
@Inject
lateinit var workerFactory: HiltWorkerFactory

class App : Application() {
companion object {
lateinit var instance: App
}
Expand All @@ -19,4 +27,9 @@ class App : Application() {
// Create our RegisteredIDManager to get the registered ID.
registeredIdManager = RegisteredIdManager(this)
}

override val workManagerConfiguration: Configuration
get() = Configuration.Builder()
.setWorkerFactory(workerFactory)
.build()
}
18 changes: 18 additions & 0 deletions app/src/main/java/com/exponea/example/test/ContentWorkerUtil.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
package com.exponea.example.test

import androidx.work.ExistingWorkPolicy
import androidx.work.OneTimeWorkRequest
import androidx.work.WorkManager

class TestWorkerUtil(private val workManager: WorkManager) {

fun startWork() {
workManager.beginUniqueWork(
"testWorkerJobId",
ExistingWorkPolicy.KEEP,
OneTimeWorkRequest
.Builder(TestWorker::class.java)
.build()
).enqueue()
}
}
25 changes: 25 additions & 0 deletions app/src/main/java/com/exponea/example/test/TestModule.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
package com.exponea.example.test


import android.content.Context
import androidx.work.WorkManager
import dagger.Module
import dagger.Provides
import dagger.hilt.InstallIn
import dagger.hilt.android.qualifiers.ApplicationContext
import dagger.hilt.components.SingletonComponent

@Module
@InstallIn(SingletonComponent::class)
class TestModule {
@Provides
fun provideWorkManager(
@ApplicationContext context: Context,
): WorkManager = WorkManager.getInstance(context)

@Provides
fun provideContentWorkerUtil(workManager: WorkManager) = TestWorkerUtil(workManager)

@Provides
fun provideTestRepo() = TestRepo()
}
13 changes: 13 additions & 0 deletions app/src/main/java/com/exponea/example/test/TestRepo.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package com.exponea.example.test

import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.delay
import kotlinx.coroutines.withContext

class TestRepo {
suspend fun fetchData() {
withContext(Dispatchers.IO) {
delay(2000L)
}
}
}
23 changes: 23 additions & 0 deletions app/src/main/java/com/exponea/example/test/TestWorker.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
package com.exponea.example.test

import android.content.Context
import androidx.hilt.work.HiltWorker
import androidx.work.CoroutineWorker
import androidx.work.WorkerParameters
import dagger.assisted.Assisted
import dagger.assisted.AssistedInject

@HiltWorker
class TestWorker @AssistedInject constructor(
@Assisted val appContext: Context,
@Assisted val workerParams: WorkerParameters,
private val testRepo: TestRepo
) : CoroutineWorker(appContext, workerParams) {

override suspend fun doWork(): Result {
println("### Test worker do work")
testRepo.fetchData()
println("### Test worker job complete")
return Result.success()
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,14 +8,18 @@ import androidx.appcompat.app.AppCompatActivity
import com.exponea.example.App
import com.exponea.example.databinding.ActivityAuthenticationBinding
import com.exponea.example.managers.CustomerTokenStorage
import com.exponea.example.test.TestWorkerUtil
import com.exponea.example.utils.isVaildUrl
import com.exponea.example.utils.isValid
import com.exponea.example.utils.onTextChanged
import com.exponea.sdk.Exponea
import com.exponea.sdk.models.ExponeaConfiguration
import com.exponea.sdk.models.ExponeaConfiguration.TokenFrequency.EVERY_LAUNCH
import com.exponea.sdk.models.FlushMode
import dagger.hilt.android.AndroidEntryPoint
import javax.inject.Inject

@AndroidEntryPoint
class AuthenticationActivity : AppCompatActivity() {

var projectToken = ""
Expand All @@ -26,6 +30,9 @@ class AuthenticationActivity : AppCompatActivity() {

private lateinit var viewBinding: ActivityAuthenticationBinding

@Inject
lateinit var testWorkerUtil: TestWorkerUtil

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
viewBinding = ActivityAuthenticationBinding.inflate(layoutInflater)
Expand All @@ -47,9 +54,11 @@ class AuthenticationActivity : AppCompatActivity() {
viewBinding.button.setOnClickListener {
if (!viewBinding.editTextProjectToken.isValid() ||
!viewBinding.editTextAuthCode.isValid() ||
!viewBinding.editTextApiUrl.isVaildUrl()) {
!viewBinding.editTextApiUrl.isVaildUrl()
) {
Toast.makeText(this, "Empty field", Toast.LENGTH_SHORT).show()
} else {
testWorkerUtil.startWork()
initSdk()
}
}
Expand Down
1 change: 1 addition & 0 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ buildscript {
plugins {
// version must match used kotlin, find full version: https://github.com/google/ksp/releases
id 'com.google.devtools.ksp' version "$kotlin_version-1.0.13" apply false
id("com.google.dagger.hilt.android") version "2.51.1" apply false
}
apply plugin: 'io.codearte.nexus-staging'

Expand Down