Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Unverified Commit f8bbaf1f authored by DaVinci9196's avatar DaVinci9196 Committed by GitHub
Browse files

AppMeasurement: Temporarily store UserProperties for apps (#2934)

parent 19b6d8c2
Loading
Loading
Loading
Loading
+13 −1
Original line number Diff line number Diff line
@@ -22,6 +22,7 @@ private const val TAG = "AppMeasurementService"
@Keep
class AppMeasurementDynamiteService : IAppMeasurementDynamiteService.Stub() {
    private var initialized: Boolean = false
    private var savedUserProperties: Bundle = Bundle()

    private fun returnBundle(receiver: IBundleReceiver?, bundle: Bundle?) = runCatching { receiver?.onBundle(bundle) }
    private fun returnResult(receiver: IBundleReceiver?, value: Any?) = returnBundle(receiver, bundleOf("r" to value))
@@ -59,12 +60,23 @@ class AppMeasurementDynamiteService : IAppMeasurementDynamiteService.Stub() {

    private fun setUserProperty(origin: String?, name: String?, value: Any?, z: Boolean, eventTimeMillis: Long) {
        Log.d(TAG, "Not yet implemented: setUserProperty($origin, $name, $value, $z)")
        if (name == null) return  // Skip if name is null
        when (value) {
            null -> savedUserProperties.remove(name)
            is String -> savedUserProperties.putString(name, value)
            is Int -> savedUserProperties.putInt(name, value)
            is Long -> savedUserProperties.putLong(name, value)
            is Float -> savedUserProperties.putFloat(name, value)
            is Boolean -> savedUserProperties.putBoolean(name, value)
            is Double -> savedUserProperties.putDouble(name, value.toDouble())
            else -> savedUserProperties.putString(name, value.toString())
        }
    }

    override fun getUserProperties(origin: String?, prefix: String?, includeInternal: Boolean, receiver: IBundleReceiver?) {
        requireInitialized()
        Log.d(TAG, "Not yet implemented: getUserProperties($origin, $prefix, $includeInternal)")
        returnBundle(receiver, Bundle())
        returnBundle(receiver, savedUserProperties)
    }

    override fun getMaxUserProperties(origin: String?, receiver: IBundleReceiver?) {