NTP-66974 disable glance widget for google device (#16547)
This commit is contained in:
@@ -0,0 +1,59 @@
|
||||
/*
|
||||
*
|
||||
* * Copyright © 2025 by Navi Technologies Limited
|
||||
* * All rights reserved. Strictly confidential
|
||||
*
|
||||
*/
|
||||
|
||||
package com.naviapp.app.initializers
|
||||
|
||||
import android.content.ComponentName
|
||||
import android.content.Context
|
||||
import android.content.pm.PackageManager
|
||||
import com.navi.common.utils.log
|
||||
import com.navi.pay.common.ui.NaviPayGlanceWidgetReceiver
|
||||
import com.naviapp.app.NaviApplication
|
||||
import com.naviapp.glance.receiver.NaviPaySectionGlanceWidgetReceiver
|
||||
import com.naviapp.glance.utils.isGlanceWidgetSupported
|
||||
import javax.inject.Inject
|
||||
import javax.inject.Singleton
|
||||
|
||||
@Singleton
|
||||
class AppWidgetComponentInitializer @Inject constructor() : ComponentInitializer {
|
||||
|
||||
override fun initialize(application: NaviApplication) {
|
||||
// Configure widget components based on device compatibility
|
||||
configureWidgetComponents(application)
|
||||
}
|
||||
|
||||
private fun configureWidgetComponents(context: Context) {
|
||||
val newState =
|
||||
if (isGlanceWidgetSupported()) {
|
||||
PackageManager.COMPONENT_ENABLED_STATE_ENABLED
|
||||
} else {
|
||||
PackageManager.COMPONENT_ENABLED_STATE_DISABLED
|
||||
}
|
||||
|
||||
// List of widget receivers to configure
|
||||
val widgetReceivers =
|
||||
listOf(
|
||||
NaviPaySectionGlanceWidgetReceiver::class.java,
|
||||
NaviPayGlanceWidgetReceiver::class.java,
|
||||
)
|
||||
|
||||
val packageManager = context.packageManager
|
||||
|
||||
widgetReceivers.forEach { receiverClass ->
|
||||
try {
|
||||
val componentName = ComponentName(context, receiverClass)
|
||||
packageManager.setComponentEnabledSetting(
|
||||
componentName,
|
||||
newState,
|
||||
PackageManager.DONT_KILL_APP,
|
||||
)
|
||||
} catch (e: Exception) {
|
||||
e.log()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -14,6 +14,7 @@ import com.navi.common.network.BaseUrls
|
||||
import com.naviapp.app.NaviApplication
|
||||
import com.naviapp.app.initializers.AnrErrorHandlerInitializer
|
||||
import com.naviapp.app.initializers.AppLifecycleManagerInitializer
|
||||
import com.naviapp.app.initializers.AppWidgetComponentInitializer
|
||||
import com.naviapp.app.initializers.ComponentInitializer
|
||||
import com.naviapp.app.initializers.CrashHandlerInitializer
|
||||
import com.naviapp.app.initializers.LottieInitializer
|
||||
@@ -61,6 +62,7 @@ object AppModule {
|
||||
networkConfigurationInitializer: NetworkConfigurationInitializer,
|
||||
lottieInitializer: LottieInitializer,
|
||||
trustedTimeClientInitializer: TrustedTimeClientInitializer,
|
||||
appWidgetComponentInitializer: AppWidgetComponentInitializer,
|
||||
): List<ComponentInitializer> {
|
||||
return listOf(
|
||||
sdkInitializer,
|
||||
@@ -70,6 +72,7 @@ object AppModule {
|
||||
networkConfigurationInitializer,
|
||||
lottieInitializer,
|
||||
trustedTimeClientInitializer,
|
||||
appWidgetComponentInitializer,
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -34,3 +34,12 @@ fun triggerUpiSectionGlanceAppWidgetDisplayDialog(context: Context): Boolean {
|
||||
false
|
||||
}
|
||||
}
|
||||
|
||||
fun isGlanceWidgetSupported(): Boolean {
|
||||
val isVivoDevice =
|
||||
Build.MANUFACTURER.equals("vivo", ignoreCase = true) ||
|
||||
Build.BRAND.equals("vivo", ignoreCase = true)
|
||||
val isUnsupportedVersion = Build.VERSION.SDK_INT < Build.VERSION_CODES.UPSIDE_DOWN_CAKE
|
||||
|
||||
return !(isVivoDevice && isUnsupportedVersion)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user