Extract code in private sub methods

This commit is contained in:
Benoit Marty 2024-06-06 13:06:34 +02:00
parent 6781b5cee7
commit 13d46e0e78

View file

@ -37,8 +37,19 @@ class DefaultShareService @Inject constructor(
@ApplicationContext private val context: Context, @ApplicationContext private val context: Context,
) : ShareService { ) : ShareService {
override fun observeFeatureFlag(coroutineScope: CoroutineScope) { override fun observeFeatureFlag(coroutineScope: CoroutineScope) {
val shareActivityComponent = context val shareActivityComponent = getShareActivityComponent()
.packageManager ?: return Unit.also {
Timber.w("ShareActivity not found")
}
featureFlagService.isFeatureEnabledFlow(FeatureFlags.IncomingShare)
.onEach { enabled ->
shareActivityComponent.enableOrDisable(enabled)
}
.launchIn(coroutineScope)
}
private fun getShareActivityComponent(): ComponentName? {
return context.packageManager
.getPackageInfo( .getPackageInfo(
context.packageName, context.packageName,
PackageManager.GET_ACTIVITIES or PackageManager.MATCH_DISABLED_COMPONENTS PackageManager.GET_ACTIVITIES or PackageManager.MATCH_DISABLED_COMPONENTS
@ -51,11 +62,9 @@ class DefaultShareService @Inject constructor(
shareActivityInfo.name, shareActivityInfo.name,
) )
} }
?: return Unit.also {
Timber.w("ShareActivity not found")
} }
featureFlagService.isFeatureEnabledFlow(FeatureFlags.IncomingShare)
.onEach { enabled -> private fun ComponentName.enableOrDisable(enabled: Boolean) {
val state = if (enabled) { val state = if (enabled) {
PackageManager.COMPONENT_ENABLED_STATE_DEFAULT PackageManager.COMPONENT_ENABLED_STATE_DEFAULT
} else { } else {
@ -63,7 +72,7 @@ class DefaultShareService @Inject constructor(
} }
try { try {
context.packageManager.setComponentEnabledSetting( context.packageManager.setComponentEnabledSetting(
shareActivityComponent, this,
state, state,
PackageManager.DONT_KILL_APP, PackageManager.DONT_KILL_APP,
) )
@ -71,6 +80,4 @@ class DefaultShareService @Inject constructor(
Timber.e(e, "Failed to enable or disable the component") Timber.e(e, "Failed to enable or disable the component")
} }
} }
.launchIn(coroutineScope)
}
} }