NTP-66974 disable glance widget for google device (#16547)

This commit is contained in:
Hitesh Kumar
2025-06-11 18:55:44 +05:30
committed by GitHub
parent 48b7618aab
commit eaeecb81cc
3 changed files with 71 additions and 0 deletions

View File

@@ -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()
}
}
}
}

View File

@@ -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,
)
}
}

View File

@@ -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)
}