fixed the exception login issue caused by the AppInstanceId being null
This commit is contained in:
parent
e562f90c6a
commit
56937f8f45
2 changed files with 174 additions and 0 deletions
|
|
@ -0,0 +1,79 @@
|
|||
/*
|
||||
* SPDX-FileCopyrightText: 2020, microG Project Team
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
package com.google.android.gms.measurement.internal;
|
||||
|
||||
import org.microg.safeparcel.AutoSafeParcelable;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class AppMetadata extends AutoSafeParcelable {
|
||||
@Field(2)
|
||||
public String packageName;
|
||||
@Field(3)
|
||||
public String googleAppId;
|
||||
@Field(4)
|
||||
public String versionName;
|
||||
@Field(5)
|
||||
public String installerPackageName;
|
||||
@Field(6)
|
||||
private long googleVersion;
|
||||
@Field(7)
|
||||
private long devCertHash;
|
||||
@Field(8)
|
||||
private String healthMonitor;
|
||||
@Field(9)
|
||||
private boolean measurementEnabled = true;
|
||||
@Field(10)
|
||||
private boolean firstOpen;
|
||||
@Field(11)
|
||||
public long versionCode = Integer.MIN_VALUE;
|
||||
@Field(12)
|
||||
public String firebaseInstanceId;
|
||||
@Field(13)
|
||||
private long androidId;
|
||||
@Field(14)
|
||||
private long instantiationTime;
|
||||
@Field(15)
|
||||
public int appType;
|
||||
@Field(16)
|
||||
private boolean adIdReportingEnabled;
|
||||
@Field(17)
|
||||
public boolean ssaidCollectionEnabled = true;
|
||||
@Field(18)
|
||||
public boolean deferredAnalyticsCollection;
|
||||
@Field(19)
|
||||
public String admobAppId;
|
||||
@Field(21)
|
||||
public Boolean allowAdPersonalization;
|
||||
@Field(22)
|
||||
private long dynamiteVersion;
|
||||
@Field(23)
|
||||
public List<String> safelistedEvents;
|
||||
@Field(24)
|
||||
public String gaAppId;
|
||||
@Field(25)
|
||||
private String consentSettings;
|
||||
@Field(26)
|
||||
public String ephemeralAppInstanceId;
|
||||
@Field(27)
|
||||
private String sessionStitchingToken;
|
||||
@Field(28)
|
||||
private boolean sgtmUploadEnabled;
|
||||
@Field(29)
|
||||
private long targetOsVersion;
|
||||
@Field(30)
|
||||
private int consentSource;
|
||||
@Field(31)
|
||||
private String dmaConsent;
|
||||
@Field(32)
|
||||
private int adServicesVersion;
|
||||
|
||||
public String toString() {
|
||||
return "AppMetadata[" + packageName + "]";
|
||||
}
|
||||
|
||||
public static final Creator<AppMetadata> CREATOR = new AutoCreator<>(AppMetadata.class);
|
||||
}
|
||||
|
|
@ -0,0 +1,95 @@
|
|||
/*
|
||||
* SPDX-FileCopyrightText: 2022 microG Project Team
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
package org.microg.gms.measurement
|
||||
|
||||
import android.os.Bundle
|
||||
import android.os.Parcel
|
||||
import android.util.Log
|
||||
import com.google.android.gms.common.api.CommonStatusCodes
|
||||
import com.google.android.gms.common.internal.GetServiceRequest
|
||||
import com.google.android.gms.common.internal.IGmsCallbacks
|
||||
import com.google.android.gms.measurement.internal.*
|
||||
import org.microg.gms.BaseService
|
||||
import org.microg.gms.common.GmsService
|
||||
import org.microg.gms.utils.warnOnTransactionIssues
|
||||
|
||||
private const val TAG = "MeasurementService"
|
||||
|
||||
class MeasurementService : BaseService(TAG, GmsService.MEASUREMENT) {
|
||||
override fun handleServiceRequest(callback: IGmsCallbacks, request: GetServiceRequest, service: GmsService) {
|
||||
callback.onPostInitComplete(CommonStatusCodes.SUCCESS, MeasurementServiceImpl(), Bundle())
|
||||
}
|
||||
}
|
||||
|
||||
class MeasurementServiceImpl : IMeasurementService.Stub() {
|
||||
override fun sendEvent(event: EventParcel, app: AppMetadata) {
|
||||
Log.d(TAG, "sendEvent($event) for $app")
|
||||
}
|
||||
|
||||
override fun sendUserProperty(attribute: UserAttributeParcel?, app: AppMetadata) {
|
||||
Log.d(TAG, "sendUserProperty($attribute) for $app")
|
||||
}
|
||||
|
||||
override fun sendAppLaunch(app: AppMetadata?) {
|
||||
Log.d(TAG, "sendAppLaunch() for $app")
|
||||
}
|
||||
|
||||
override fun sendMeasurementEnabled(app: AppMetadata) {
|
||||
Log.d(TAG, "sendMeasurementEnabled() for $app")
|
||||
}
|
||||
|
||||
override fun getAllUserProperties(app: AppMetadata?, includeInternal: Boolean): List<UserAttributeParcel> {
|
||||
Log.d(TAG, "getAllUserProperties($includeInternal) for $app")
|
||||
return emptyList()
|
||||
}
|
||||
|
||||
override fun sendCurrentScreen(id: Long, name: String?, referrer: String?, packageName: String?) {
|
||||
Log.d(TAG, "sendCurrentScreen($id, $name, $referrer, $packageName)")
|
||||
}
|
||||
|
||||
override fun getAppInstanceId(app: AppMetadata): String? {
|
||||
Log.d(TAG, "getAppInstanceId() for $app")
|
||||
return app.ephemeralAppInstanceId ?: app.firebaseInstanceId
|
||||
}
|
||||
|
||||
override fun sendConditionalUserProperty(property: ConditionalUserPropertyParcel, app: AppMetadata) {
|
||||
Log.d(TAG, "sendConditionalUserProperty($property) for $app")
|
||||
}
|
||||
|
||||
override fun getUserProperties(origin: String?, propertyNamePrefix: String?, includeInternal: Boolean, app: AppMetadata?): List<UserAttributeParcel> {
|
||||
Log.d(TAG, "getUserProperties($origin, $propertyNamePrefix, $includeInternal) for $app")
|
||||
return emptyList()
|
||||
}
|
||||
|
||||
override fun getUserPropertiesAs(packageName: String?, origin: String?, propertyNamePrefix: String?, includeInternal: Boolean): List<UserAttributeParcel> {
|
||||
Log.d(TAG, "getUserPropertiesAs($packageName, $origin, $propertyNamePrefix, $includeInternal)")
|
||||
return emptyList()
|
||||
}
|
||||
|
||||
override fun getConditionalUserProperties(origin: String?, propertyNamePrefix: String?, app: AppMetadata?): List<ConditionalUserPropertyParcel> {
|
||||
Log.d(TAG, "getConditionalUserProperties($origin, $propertyNamePrefix) for $app")
|
||||
return emptyList()
|
||||
}
|
||||
|
||||
override fun getConditionalUserPropertiesAs(packageName: String?, origin: String?, propertyNamePrefix: String?): List<ConditionalUserPropertyParcel> {
|
||||
Log.d(TAG, "getConditionalUserPropertiesAs($packageName, $origin, $propertyNamePrefix)")
|
||||
return emptyList()
|
||||
}
|
||||
|
||||
override fun reset(app: AppMetadata) {
|
||||
Log.d(TAG, "reset() for $app")
|
||||
}
|
||||
|
||||
override fun sendDefaultEventParameters(params: Bundle, app: AppMetadata) {
|
||||
Log.d(TAG, "sendDefaultEventParameters($params) for $app")
|
||||
}
|
||||
|
||||
override fun sendConsentSettings(app: AppMetadata) {
|
||||
Log.d(TAG, "sendConsentSettings() for $app")
|
||||
}
|
||||
|
||||
override fun onTransact(code: Int, data: Parcel, reply: Parcel?, flags: Int): Boolean = warnOnTransactionIssues(code, reply, flags, TAG) { super.onTransact(code, data, reply, flags) }
|
||||
}
|
||||
Loading…
Reference in a new issue