Skip to content

Commit

Permalink
Fix unset permission requester and rename interface
Browse files Browse the repository at this point in the history
  • Loading branch information
prashanDYDX committed Sep 19, 2024
1 parent d8597f0 commit c2d6400
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 9 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ import exchange.dydx.trading.core.biometric.DydxBiometricPrompt
import exchange.dydx.trading.core.biometric.DydxBiometricView
import exchange.dydx.trading.feature.shared.PreferenceKeys
import exchange.dydx.trading.feature.shared.analytics.AnalyticsEvent
import exchange.dydx.trading.integration.fcm.PushPermissionRequester
import exchange.dydx.trading.integration.fcm.PushPermissionRequesterProtocol
import exchange.dydx.utilities.utils.SharedPreferencesStore
import kotlinx.coroutines.launch
import javax.inject.Inject
Expand All @@ -58,7 +58,7 @@ class TradingActivity : FragmentActivity() {

@Inject lateinit var abacusStateManager: AbacusStateManager

@Inject lateinit var pushPermissionRequester: PushPermissionRequester
@Inject lateinit var pushPermissionRequester: PushPermissionRequesterProtocol

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import exchange.dydx.platformui.components.buttons.PlatformButtonState
import exchange.dydx.trading.common.DydxViewModel
import exchange.dydx.trading.common.navigation.DydxRouter
import exchange.dydx.trading.feature.trade.streams.MutableTradeStreaming
import exchange.dydx.trading.integration.fcm.PushPermissionRequester
import exchange.dydx.trading.integration.fcm.PushPermissionRequesterProtocol
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.distinctUntilChanged
import kotlinx.coroutines.flow.map
Expand All @@ -21,7 +21,7 @@ class DydxTradeStatusCtaButtonViewModel @Inject constructor(
private val router: DydxRouter,
private val tradeStream: MutableTradeStreaming,
private val savedStateHandle: SavedStateHandle,
private val pushPermissionRequester: PushPermissionRequester,
private val pushPermissionRequester: PushPermissionRequesterProtocol,
) : ViewModel(), DydxViewModel {

private enum class TradeType {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,19 +22,21 @@ import exchange.dydx.utilities.utils.SharedPreferencesStore
import javax.inject.Inject

@ActivityRetainedScoped
class RealPushPermissionRequester @Inject constructor(
class PushPermissionRequester @Inject constructor(
private val platformDialog: PlatformDialog,
private val platformInfo: PlatformInfo,
private val abacusLocalizerImp: AbacusLocalizerImp,
private val sharedPreferencesStore: SharedPreferencesStore,
) : PushPermissionRequester {
) : PushPermissionRequesterProtocol {

var requestPermissionLauncher: ActivityResultLauncher<String>? = null

override var activity: Activity? = null
set(value) {
field = value
(field as ActivityResultCaller).registerForActivityResult(

requestPermissionLauncher?.unregister()
requestPermissionLauncher = (field as ActivityResultCaller).registerForActivityResult(
ActivityResultContracts.RequestPermission(),
) { isGranted: Boolean ->
if (isGranted) {
Expand Down Expand Up @@ -81,14 +83,14 @@ class RealPushPermissionRequester @Inject constructor(
}
}

interface PushPermissionRequester : ActivityDelegate {
interface PushPermissionRequesterProtocol : ActivityDelegate {
fun requestPushPermission()
}

@InstallIn(ActivityRetainedComponent::class)
@Module
interface PushPermissionRequesterModule {
@Binds fun bindPushPermissionRequester(real: RealPushPermissionRequester): PushPermissionRequester
@Binds fun bindPushPermissionRequester(real: PushPermissionRequester): PushPermissionRequesterProtocol
}

private const val PRIMER_SHOWN_KEY = "push_primer_shown"

0 comments on commit c2d6400

Please sign in to comment.