Skip to content

Commit 5219538

Browse files
authored
Merge pull request #1014 from wangerekaharun/feat/fix-di
Replace koin with dagger hilt
2 parents 92b8484 + 5d26b47 commit 5219538

File tree

152 files changed

+2354
-2039
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

152 files changed

+2354
-2039
lines changed

app/build.gradle.kts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -183,6 +183,7 @@ android {
183183
}
184184

185185
dependencies {
186+
implementation(project(path = ":internal:core"))
186187
implementation(project(path = ":internal:data"))
187188
implementation(project(path = ":internal:database"))
188189
implementation(project(path = ":internal:datastore"))

app/src/main/java/com/hover/stax/RoutingActivity.kt

Lines changed: 87 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ import android.content.Intent
2121
import android.net.Uri
2222
import android.os.Build
2323
import android.os.Bundle
24+
import androidx.activity.viewModels
2425
import androidx.appcompat.app.AppCompatActivity
2526
import androidx.core.splashscreen.SplashScreen.Companion.installSplashScreen
2627
import androidx.lifecycle.lifecycleScope
@@ -48,7 +49,6 @@ import com.hover.stax.presentation.financial_tips.FinancialTipsFragment
4849
import com.hover.stax.requests.REQUEST_LINK
4950
import com.hover.stax.schedules.ScheduleWorker
5051
import com.hover.stax.settings.BiometricChecker
51-
import com.hover.stax.utils.AnalyticsUtil
5252
import com.hover.stax.utils.UIHelper
5353
import com.hover.stax.utils.Utils
5454
import com.uxcam.OnVerificationListener
@@ -57,15 +57,17 @@ import com.uxcam.datamodel.UXConfig
5757
import kotlinx.coroutines.launch
5858
import org.json.JSONException
5959
import org.json.JSONObject
60-
import org.koin.androidx.viewmodel.ext.android.viewModel
6160
import timber.log.Timber
6261

6362
const val FRAGMENT_DIRECT = "fragment_direct"
6463
const val FROM_FCM = "from_notification"
6564

66-
class RoutingActivity : AppCompatActivity(), BiometricChecker.AuthListener, PushNotificationTopicsInterface {
65+
class RoutingActivity :
66+
AppCompatActivity(),
67+
BiometricChecker.AuthListener,
68+
PushNotificationTopicsInterface {
6769

68-
private val channelsViewModel: ChannelsViewModel by viewModel()
70+
private val channelsViewModel: ChannelsViewModel by viewModels()
6971
private lateinit var remoteConfig: FirebaseRemoteConfig
7072
private lateinit var workManager: WorkManager
7173
private var hasAccounts = false
@@ -121,21 +123,36 @@ class RoutingActivity : AppCompatActivity(), BiometricChecker.AuthListener, Push
121123
joinNoRequestMoneyGroup(this)
122124
}
123125

124-
private fun initAmplitude() = Amplitude.getInstance().initialize(this, getString(R.string.amp)).enableForegroundTracking(application)
126+
private fun initAmplitude() = Amplitude.getInstance().initialize(this, getString(R.string.amp))
127+
.enableForegroundTracking(application)
125128

126129
private fun logPushNotificationIfRequired() = intent.extras?.let {
127130
val fcmTitle = it.getString(FROM_FCM)
128-
fcmTitle?.let { title -> AnalyticsUtil.logAnalyticsEvent(getString(R.string.clicked_push_notification, title), this) }
131+
fcmTitle?.let { title ->
132+
com.hover.stax.core.AnalyticsUtil.logAnalyticsEvent(
133+
getString(
134+
R.string.clicked_push_notification,
135+
title
136+
),
137+
this
138+
)
139+
}
129140
}
130141

131142
private fun initHover() {
132143
Hover.initialize(this)
133-
Hover.setBranding(getString(R.string.app_name), R.drawable.named_stax_logo, R.mipmap.ic_launcher_round, this)
144+
Hover.setBranding(
145+
getString(R.string.app_name),
146+
R.drawable.named_stax_logo,
147+
R.mipmap.ic_launcher_round,
148+
this
149+
)
134150
Hover.setPermissionActivity(PERM_ACTIVITY, this)
135151
}
136152

137153
private fun initRemoteConfigs() {
138-
val configSettings = FirebaseRemoteConfigSettings.Builder().setMinimumFetchIntervalInSeconds(3600).build()
154+
val configSettings =
155+
FirebaseRemoteConfigSettings.Builder().setMinimumFetchIntervalInSeconds(3600).build()
139156
remoteConfig.apply {
140157
setConfigSettingsAsync(configSettings)
141158
setDefaultsAsync(R.xml.remote_config_default)
@@ -164,13 +181,22 @@ class RoutingActivity : AppCompatActivity(), BiometricChecker.AuthListener, Push
164181
UXCam.addVerificationListener(object : OnVerificationListener {
165182
override fun onVerificationSuccess() {
166183
FirebaseCrashlytics.getInstance()
167-
.setCustomKey(getString(R.string.uxcam_session_url), UXCam.urlForCurrentSession())
184+
.setCustomKey(
185+
getString(R.string.uxcam_session_url),
186+
UXCam.urlForCurrentSession()
187+
)
168188

169189
val eventProperties = JSONObject()
170190
val userProperties = JSONObject()
171191
try {
172-
eventProperties.put(getString(R.string.uxcam_session_url), UXCam.urlForCurrentSession())
173-
userProperties.put(getString(R.string.uxcam_session_url), UXCam.urlForCurrentUser())
192+
eventProperties.put(
193+
getString(R.string.uxcam_session_url),
194+
UXCam.urlForCurrentSession()
195+
)
196+
userProperties.put(
197+
getString(R.string.uxcam_session_url),
198+
UXCam.urlForCurrentUser()
199+
)
174200
} catch (exception: JSONException) {
175201
}
176202

@@ -199,7 +225,11 @@ class RoutingActivity : AppCompatActivity(), BiometricChecker.AuthListener, Push
199225
private fun createNotificationChannel() {
200226
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
201227
val importance = NotificationManager.IMPORTANCE_DEFAULT
202-
val channel = NotificationChannel(getString(R.string.default_notification_channel_id), getString(R.string.notify_default_title), importance)
228+
val channel = NotificationChannel(
229+
getString(R.string.default_notification_channel_id),
230+
getString(R.string.notify_default_title),
231+
importance
232+
)
203233
channel.description = getString(R.string.notify_default_channel_descrip)
204234
val notificationManager = getSystemService(NotificationManager::class.java)
205235
notificationManager.createNotificationChannel(channel)
@@ -213,11 +243,19 @@ class RoutingActivity : AppCompatActivity(), BiometricChecker.AuthListener, Push
213243

214244
private fun startChannelWorkers(wm: WorkManager) {
215245
wm.enqueue(ImportChannelsWorker.channelsImportRequest())
216-
wm.enqueueUniquePeriodicWork(UpdateChannelsWorker.TAG, ExistingPeriodicWorkPolicy.KEEP, UpdateChannelsWorker.makeToil())
246+
wm.enqueueUniquePeriodicWork(
247+
UpdateChannelsWorker.TAG,
248+
ExistingPeriodicWorkPolicy.KEEP,
249+
UpdateChannelsWorker.makeToil()
250+
)
217251
}
218252

219253
private fun startScheduleWorker(wm: WorkManager) {
220-
wm.enqueueUniquePeriodicWork(ScheduleWorker::class.java.simpleName, ExistingPeriodicWorkPolicy.KEEP, ScheduleWorker.makeToil())
254+
wm.enqueueUniquePeriodicWork(
255+
ScheduleWorker::class.java.simpleName,
256+
ExistingPeriodicWorkPolicy.KEEP,
257+
ScheduleWorker.makeToil()
258+
)
221259
}
222260

223261
private fun chooseNavigation(intent: Intent) {
@@ -234,6 +272,7 @@ class RoutingActivity : AppCompatActivity(), BiometricChecker.AuthListener, Push
234272
goToMainActivity(it)
235273
}
236274
}
275+
237276
isForFulfilRequest(intent) -> goToFulfillRequestActivity(intent)
238277
isForSettingsScreen(intent) -> goToSettings()
239278
else -> goToMainActivity(null)
@@ -244,14 +283,23 @@ class RoutingActivity : AppCompatActivity(), BiometricChecker.AuthListener, Push
244283

245284
private fun goToFinancialTips() {
246285
val tipId = Uri.parse(intent.getStringExtra("redirect")).getQueryParameter("id")
247-
startActivity(Intent(this, MainActivity::class.java).putExtra(FinancialTipsFragment.TIP_ID, tipId))
286+
startActivity(
287+
Intent(this, MainActivity::class.java).putExtra(
288+
FinancialTipsFragment.TIP_ID,
289+
tipId
290+
)
291+
)
248292
finish()
249293
}
250294

251295
private fun validateUser() = lifecycleScope.launchWhenStarted {
252296
when {
253297
!hasPassedOnboarding() -> goToOnBoardingActivity()
254-
hasAccounts -> BiometricChecker(this@RoutingActivity, this@RoutingActivity).startAuthentication(null)
298+
hasAccounts -> BiometricChecker(
299+
this@RoutingActivity,
300+
this@RoutingActivity
301+
).startAuthentication(null)
302+
255303
else -> {
256304
if (redirectToFinancialTips())
257305
goToFinancialTips()
@@ -267,9 +315,15 @@ class RoutingActivity : AppCompatActivity(), BiometricChecker.AuthListener, Push
267315
}
268316

269317
private fun goToFulfillRequestActivity(intent: Intent) {
270-
startActivity(Intent(this, MainActivity::class.java).putExtra(REQUEST_LINK, intent.data.toString()))
318+
startActivity(
319+
Intent(this, MainActivity::class.java).putExtra(
320+
REQUEST_LINK,
321+
intent.data.toString()
322+
)
323+
)
271324
finish()
272325
}
326+
273327
private fun goToSettings() {
274328
val intent = Intent(this, MainActivity::class.java)
275329
intent.putExtra(FRAGMENT_DIRECT, R.id.navigation_settings)
@@ -283,30 +337,40 @@ class RoutingActivity : AppCompatActivity(), BiometricChecker.AuthListener, Push
283337
try {
284338
redirectLink?.let { intent.putExtra(FRAGMENT_DIRECT, redirectLink.toInt()) }
285339
} catch (e: NumberFormatException) {
286-
AnalyticsUtil.logErrorAndReportToFirebase(RoutingActivity::class.java.simpleName, getString(R.string.firebase_fcm_redirect_format_err), e)
340+
com.hover.stax.core.AnalyticsUtil.logErrorAndReportToFirebase(
341+
RoutingActivity::class.java.simpleName,
342+
getString(R.string.firebase_fcm_redirect_format_err),
343+
e
344+
)
287345
}
288346

289347
startActivity(intent)
290348
finish()
291349
}
292350

293-
override fun onAuthError(error: String) = runOnUiThread { UIHelper.flashAndReportMessage(this, getString(R.string.toast_error_auth)) }
351+
override fun onAuthError(error: String) =
352+
runOnUiThread { UIHelper.flashAndReportMessage(this, getString(R.string.toast_error_auth)) }
294353

295354
override fun onAuthSuccess(action: HoverAction?) = chooseNavigation(intent)
296355

297356
private fun redirectionIsExternal(redirectTo: String): Boolean = redirectTo.contains("https")
298357

299-
private fun isToRedirectFromMainActivity(intent: Intent): Boolean = intent.extras?.getString(FRAGMENT_DIRECT) != null
358+
private fun isToRedirectFromMainActivity(intent: Intent): Boolean =
359+
intent.extras?.getString(FRAGMENT_DIRECT) != null
300360

301361
private fun isForFulfilRequest(intent: Intent): Boolean = hasDeepLink("pay")
302362

303-
private fun openUrl(url: String) = startActivity(Intent(Intent.ACTION_VIEW).setData(Uri.parse(url)))
363+
private fun openUrl(url: String) =
364+
startActivity(Intent(Intent.ACTION_VIEW).setData(Uri.parse(url)))
304365

305-
private fun hasPassedOnboarding(): Boolean = Utils.getBoolean(OnBoardingActivity::class.java.simpleName, this)
366+
private fun hasPassedOnboarding(): Boolean =
367+
Utils.getBoolean(OnBoardingActivity::class.java.simpleName, this)
306368

307369
private fun isForSettingsScreen(intent: Intent): Boolean = hasDeepLink("share")
308370

309-
private fun redirectToFinancialTips(): Boolean = intent.hasExtra("redirect") && intent.getStringExtra("redirect")!!.contains(getString(R.string.deeplink_financial_tips))
371+
private fun redirectToFinancialTips(): Boolean =
372+
intent.hasExtra("redirect") && intent.getStringExtra("redirect")!!
373+
.contains(getString(R.string.deeplink_financial_tips))
310374

311375
private fun hasDeepLink(expectedPath: String): Boolean {
312376
val parameters: List<String> = intent.data?.pathSegments ?: emptyList()

0 commit comments

Comments
 (0)