(R.id.web)
view.setPadding(pad, pad, pad, pad)
val settings = view.settings
settings.javaScriptEnabled = true
settings.useWideViewPort = false
settings.setSupportZoom(false)
settings.displayZoomControls = false
settings.cacheMode = WebSettings.LOAD_NO_CACHE
ProfileManager.ensureInitialized(this)
settings.userAgentString = Build.generateWebViewUserAgentString(settings.userAgentString)
view.addJavascriptInterface(ReCaptchaCallback(this), "MyCallback")
val captcha = assets.open("recaptcha.html").bufferedReader().readText().replace("%apikey%", apiKey!!)
view.loadDataWithBaseURL("https://$hostname/", captcha, null, null, "https://$hostname/")
windowManager?.addView(container, params)
}
}
fun finishResult(resultCode: Int, token: String? = null) {
if (!finished) {
finished = true
receiver?.send(resultCode, token?.let { Bundle().apply { putString(EXTRA_TOKEN, it) } })
}
container?.let { windowManager?.removeView(it) }
}
companion object {
private val recaptchaServiceConnection = object : ServiceConnection {
override fun onServiceConnected(name: ComponentName?, service: IBinder?) {
Log.d(TAG, "onReCaptchaToken: onServiceConnected: $name")
}
override fun onServiceDisconnected(name: ComponentName?) {
Log.d(TAG, "onReCaptchaToken: onServiceDisconnected: $name")
}
}
class ReCaptchaCallback(private val overlay: ReCaptchaOverlayService) {
@JavascriptInterface
fun onReCaptchaToken(token: String) {
Log.d(TAG, "onReCaptchaToken: $token")
overlay.finishResult(Activity.RESULT_OK, token)
}
}
fun isSupported(context: Context): Boolean = android.os.Build.VERSION.SDK_INT < 23 || Settings.canDrawOverlays(context)
suspend fun awaitToken(context: Context, apiKey: String, hostname: String? = null) = suspendCoroutine { continuation ->
val intent = Intent(context, ReCaptchaOverlayService::class.java)
val resultReceiver = object : ResultReceiver(null) {
override fun onReceiveResult(resultCode: Int, resultData: Bundle?) {
context.unbindService(recaptchaServiceConnection)
try {
if (resultCode == Activity.RESULT_OK) {
continuation.resume(resultData?.getString(EXTRA_TOKEN)!!)
}
} catch (e: Exception) {
continuation.resumeWithException(e)
}
}
}
intent.putExtra(EXTRA_API_KEY, apiKey)
intent.putExtra(EXTRA_RESULT_RECEIVER, resultReceiver)
intent.putExtra(EXTRA_HOSTNAME, hostname)
context.bindService(intent, recaptchaServiceConnection, BIND_AUTO_CREATE)
}
}
}
================================================
FILE: firebase-auth/core/src/main/kotlin/org/microg/gms/firebase/auth/extensions.kt
================================================
/**
* SPDX-FileCopyrightText: 2024 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package org.microg.gms.firebase.auth
const val EXTRA_TOKEN = "token"
const val EXTRA_API_KEY = "api_key"
const val EXTRA_HOSTNAME = "hostname"
const val EXTRA_RESULT_RECEIVER = "receiver"
================================================
FILE: firebase-auth/core/src/main/res/layout/activity_recaptcha.xml
================================================
================================================
FILE: firebase-auth/src/main/AndroidManifest.xml
================================================
================================================
FILE: firebase-auth/src/main/aidl/com/google/firebase/auth/ActionCodeSettings.aidl
================================================
package com.google.firebase.auth;
parcelable ActionCodeSettings;
================================================
FILE: firebase-auth/src/main/aidl/com/google/firebase/auth/EmailAuthCredential.aidl
================================================
package com.google.firebase.auth;
parcelable EmailAuthCredential;
================================================
FILE: firebase-auth/src/main/aidl/com/google/firebase/auth/PhoneAuthCredential.aidl
================================================
package com.google.firebase.auth;
parcelable PhoneAuthCredential;
================================================
FILE: firebase-auth/src/main/aidl/com/google/firebase/auth/UserProfileChangeRequest.aidl
================================================
package com.google.firebase.auth;
parcelable UserProfileChangeRequest;
================================================
FILE: firebase-auth/src/main/aidl/com/google/firebase/auth/api/internal/ApplyActionCodeAidlRequest.aidl
================================================
package com.google.firebase.auth.api.internal;
parcelable ApplyActionCodeAidlRequest;
================================================
FILE: firebase-auth/src/main/aidl/com/google/firebase/auth/api/internal/ChangeEmailAidlRequest.aidl
================================================
package com.google.firebase.auth.api.internal;
parcelable ChangeEmailAidlRequest;
================================================
FILE: firebase-auth/src/main/aidl/com/google/firebase/auth/api/internal/ChangePasswordAidlRequest.aidl
================================================
package com.google.firebase.auth.api.internal;
parcelable ChangePasswordAidlRequest;
================================================
FILE: firebase-auth/src/main/aidl/com/google/firebase/auth/api/internal/CheckActionCodeAidlRequest.aidl
================================================
package com.google.firebase.auth.api.internal;
parcelable CheckActionCodeAidlRequest;
================================================
FILE: firebase-auth/src/main/aidl/com/google/firebase/auth/api/internal/ConfirmPasswordResetAidlRequest.aidl
================================================
package com.google.firebase.auth.api.internal;
parcelable ConfirmPasswordResetAidlRequest;
================================================
FILE: firebase-auth/src/main/aidl/com/google/firebase/auth/api/internal/CreateAuthUriResponse.aidl
================================================
package com.google.firebase.auth.api.internal;
parcelable CreateAuthUriResponse;
================================================
FILE: firebase-auth/src/main/aidl/com/google/firebase/auth/api/internal/CreateUserWithEmailAndPasswordAidlRequest.aidl
================================================
package com.google.firebase.auth.api.internal;
parcelable CreateUserWithEmailAndPasswordAidlRequest;
================================================
FILE: firebase-auth/src/main/aidl/com/google/firebase/auth/api/internal/DeleteAidlRequest.aidl
================================================
package com.google.firebase.auth.api.internal;
parcelable DeleteAidlRequest;
================================================
FILE: firebase-auth/src/main/aidl/com/google/firebase/auth/api/internal/FinalizeMfaEnrollmentAidlRequest.aidl
================================================
package com.google.firebase.auth.api.internal;
parcelable FinalizeMfaEnrollmentAidlRequest;
================================================
FILE: firebase-auth/src/main/aidl/com/google/firebase/auth/api/internal/FinalizeMfaSignInAidlRequest.aidl
================================================
package com.google.firebase.auth.api.internal;
parcelable FinalizeMfaSignInAidlRequest;
================================================
FILE: firebase-auth/src/main/aidl/com/google/firebase/auth/api/internal/GetAccessTokenAidlRequest.aidl
================================================
package com.google.firebase.auth.api.internal;
parcelable GetAccessTokenAidlRequest;
================================================
FILE: firebase-auth/src/main/aidl/com/google/firebase/auth/api/internal/GetAccountInfoUser.aidl
================================================
package com.google.firebase.auth.api.internal;
parcelable GetAccountInfoUser;
================================================
FILE: firebase-auth/src/main/aidl/com/google/firebase/auth/api/internal/GetProvidersForEmailAidlRequest.aidl
================================================
package com.google.firebase.auth.api.internal;
parcelable GetProvidersForEmailAidlRequest;
================================================
FILE: firebase-auth/src/main/aidl/com/google/firebase/auth/api/internal/GetTokenResponse.aidl
================================================
package com.google.firebase.auth.api.internal;
parcelable GetTokenResponse;
================================================
FILE: firebase-auth/src/main/aidl/com/google/firebase/auth/api/internal/IFirebaseAuthCallbacks.aidl
================================================
package com.google.firebase.auth.api.internal;
import com.google.android.gms.common.api.Status;
import com.google.firebase.auth.PhoneAuthCredential;
import com.google.firebase.auth.api.internal.CreateAuthUriResponse;
import com.google.firebase.auth.api.internal.GetAccountInfoUser;
import com.google.firebase.auth.api.internal.GetTokenResponse;
import com.google.firebase.auth.api.internal.ResetPasswordResponse;
interface IFirebaseAuthCallbacks {
oneway void onGetTokenResponse(in GetTokenResponse response) = 0;
oneway void onGetTokenResponseAndUser(in GetTokenResponse response, in GetAccountInfoUser user) = 1;
oneway void onCreateAuthUriResponse(in CreateAuthUriResponse response) = 2;
oneway void onResetPasswordResponse(in ResetPasswordResponse response) = 3;
oneway void onFailure(in Status status) = 4;
oneway void onDeleteAccountResponse() = 5;
oneway void onEmailVerificationResponse() = 6;
//oneway void onSetAccountInfo(String s) = 7
oneway void onSendVerificationCodeResponse(String sessionInfo) = 8;
oneway void onVerificationCompletedResponse(in PhoneAuthCredential credential) = 9;
oneway void onVerificationAutoTimeOut(String sessionInfo) = 10;
}
================================================
FILE: firebase-auth/src/main/aidl/com/google/firebase/auth/api/internal/IFirebaseAuthService.aidl
================================================
package com.google.firebase.auth.api.internal;
import com.google.firebase.auth.api.internal.ApplyActionCodeAidlRequest;
import com.google.firebase.auth.api.internal.ChangeEmailAidlRequest;
import com.google.firebase.auth.api.internal.ChangePasswordAidlRequest;
import com.google.firebase.auth.api.internal.CheckActionCodeAidlRequest;
import com.google.firebase.auth.api.internal.ConfirmPasswordResetAidlRequest;
import com.google.firebase.auth.api.internal.CreateUserWithEmailAndPasswordAidlRequest;
import com.google.firebase.auth.api.internal.DeleteAidlRequest;
import com.google.firebase.auth.api.internal.FinalizeMfaEnrollmentAidlRequest;
import com.google.firebase.auth.api.internal.FinalizeMfaSignInAidlRequest;
import com.google.firebase.auth.api.internal.GetAccessTokenAidlRequest;
import com.google.firebase.auth.api.internal.GetProvidersForEmailAidlRequest;
import com.google.firebase.auth.api.internal.IFirebaseAuthCallbacks;
import com.google.firebase.auth.api.internal.LinkEmailAuthCredentialAidlRequest;
import com.google.firebase.auth.api.internal.LinkFederatedCredentialAidlRequest;
import com.google.firebase.auth.api.internal.LinkPhoneAuthCredentialAidlRequest;
import com.google.firebase.auth.api.internal.ReloadAidlRequest;
import com.google.firebase.auth.api.internal.SendEmailVerificationWithSettingsAidlRequest;
import com.google.firebase.auth.api.internal.SendGetOobConfirmationCodeEmailAidlRequest;
import com.google.firebase.auth.api.internal.SendVerificationCodeAidlRequest;
import com.google.firebase.auth.api.internal.SendVerificationCodeRequest;
import com.google.firebase.auth.api.internal.SetFirebaseUiVersionAidlRequest;
import com.google.firebase.auth.api.internal.SignInAnonymouslyAidlRequest;
import com.google.firebase.auth.api.internal.SignInWithCredentialAidlRequest;
import com.google.firebase.auth.api.internal.SignInWithCustomTokenAidlRequest;
import com.google.firebase.auth.api.internal.SignInWithEmailAndPasswordAidlRequest;
import com.google.firebase.auth.api.internal.SignInWithEmailLinkAidlRequest;
import com.google.firebase.auth.api.internal.SignInWithPhoneNumberAidlRequest;
import com.google.firebase.auth.api.internal.StartMfaPhoneNumberEnrollmentAidlRequest;
import com.google.firebase.auth.api.internal.StartMfaPhoneNumberSignInAidlRequest;
import com.google.firebase.auth.api.internal.UnenrollMfaAidlRequest;
import com.google.firebase.auth.api.internal.UnlinkEmailCredentialAidlRequest;
import com.google.firebase.auth.api.internal.UnlinkFederatedCredentialAidlRequest;
import com.google.firebase.auth.api.internal.UpdateProfileAidlRequest;
import com.google.firebase.auth.api.internal.VerifyAssertionRequest;
import com.google.firebase.auth.api.internal.VerifyBeforeUpdateEmailAidlRequest;
import com.google.firebase.auth.ActionCodeSettings;
import com.google.firebase.auth.EmailAuthCredential;
import com.google.firebase.auth.PhoneAuthCredential;
import com.google.firebase.auth.UserProfileChangeRequest;
interface IFirebaseAuthService {
void getAccessTokenCompat(String refreshToken, IFirebaseAuthCallbacks callbacks) = 0;
void signInWithCustomTokenCompat(String token, IFirebaseAuthCallbacks callbacks) = 1;
void signInWithCredentialCompat(in VerifyAssertionRequest verifyAssertionRequest, IFirebaseAuthCallbacks callbacks) = 2;
void updateProfileCompat(String cachedState, in UserProfileChangeRequest userProfileChangeRequest, IFirebaseAuthCallbacks callbacks) = 3;
void changeEmailCompat(String cachedState, String email, IFirebaseAuthCallbacks callbacks) = 4;
void changePasswordCompat(String cachedState, String password, IFirebaseAuthCallbacks callbacks) = 5;
void createUserWithEmailAndPasswordCompat(String email, String password, IFirebaseAuthCallbacks callbacks) = 6;
void signInWithEmailAndPasswordCompat(String email, String password, IFirebaseAuthCallbacks callbacks) = 7;
void getProvidersForEmailCompat(String email, IFirebaseAuthCallbacks callbacks) = 8;
void linkEmailAuthCredentialCompat(String email, String password, String cachedState, IFirebaseAuthCallbacks callbacks) = 10;
void linkFederatedCredentialCompat(String cachedState, in VerifyAssertionRequest verifyAssertionRequest, IFirebaseAuthCallbacks callbacks) = 11;
void unlinkEmailCredentialCompat(String cachedState, IFirebaseAuthCallbacks callbacks) = 12;
void unlinkFederatedCredentialCompat(String provider, String cachedState, IFirebaseAuthCallbacks callbacks) = 13;
void reloadCompat(String cachedState, IFirebaseAuthCallbacks callbacks) = 14;
void signInAnonymouslyCompat(IFirebaseAuthCallbacks callbacks) = 15;
void deleteCompat(String cachedState, IFirebaseAuthCallbacks callbacks) = 16;
void checkActionCodeCompat(String code, IFirebaseAuthCallbacks callbacks) = 18;
void applyActionCodeCompat(String code, IFirebaseAuthCallbacks callbacks) = 19;
void confirmPasswordResetCompat(String code, String newPassword, IFirebaseAuthCallbacks callbacks) = 20;
void sendVerificationCodeCompat(in SendVerificationCodeRequest request, IFirebaseAuthCallbacks callbacks) = 21;
void signInWithPhoneNumberCompat(in PhoneAuthCredential credential, IFirebaseAuthCallbacks callbacks) = 22;
void linkPhoneAuthCredentialCompat(String cachedState, in PhoneAuthCredential credential, IFirebaseAuthCallbacks callbacks) = 23;
void sendEmailVerificationCompat(String token, in ActionCodeSettings actionCodeSettings, IFirebaseAuthCallbacks callbacks) = 25;
void setFirebaseUIVersionCompat(String firebaseUiVersion, IFirebaseAuthCallbacks callbacks) = 26;
void sendGetOobConfirmationCodeEmailCompat(String email, in ActionCodeSettings actionCodeSettings, IFirebaseAuthCallbacks callbacks) = 27;
void signInWithEmailLinkCompat(in EmailAuthCredential credential, IFirebaseAuthCallbacks callbacks) = 28;
void getAccessToken(in GetAccessTokenAidlRequest request, IFirebaseAuthCallbacks callbacks) = 100;
void signInWithCustomToken(in SignInWithCustomTokenAidlRequest request, IFirebaseAuthCallbacks callbacks) = 101;
void signInWithCredential(in SignInWithCredentialAidlRequest request, IFirebaseAuthCallbacks callbacks) = 102;
void updateProfile(in UpdateProfileAidlRequest request, IFirebaseAuthCallbacks callbacks) = 103;
void changeEmail(in ChangeEmailAidlRequest request, IFirebaseAuthCallbacks callbacks) = 104;
void changePassword(in ChangePasswordAidlRequest request, IFirebaseAuthCallbacks callbacks) = 105;
void createUserWithEmailAndPassword(in CreateUserWithEmailAndPasswordAidlRequest request, IFirebaseAuthCallbacks callbacks) = 106;
void signInWithEmailAndPassword(in SignInWithEmailAndPasswordAidlRequest request, IFirebaseAuthCallbacks callbacks) = 107;
void getProvidersForEmail(in GetProvidersForEmailAidlRequest request, IFirebaseAuthCallbacks callbacks) = 108;
void linkEmailAuthCredential(in LinkEmailAuthCredentialAidlRequest request, IFirebaseAuthCallbacks callbacks) = 110;
void linkFederatedCredential(in LinkFederatedCredentialAidlRequest request, IFirebaseAuthCallbacks callbacks) = 111;
void unlinkEmailCredential(in UnlinkEmailCredentialAidlRequest request, IFirebaseAuthCallbacks callbacks) = 112;
void unlinkFederatedCredential(in UnlinkFederatedCredentialAidlRequest request, IFirebaseAuthCallbacks callbacks) = 113;
void reload(in ReloadAidlRequest request, IFirebaseAuthCallbacks callbacks) = 114;
void signInAnonymously(in SignInAnonymouslyAidlRequest request, IFirebaseAuthCallbacks callbacks) = 115;
void delete(in DeleteAidlRequest request, IFirebaseAuthCallbacks callbacks) = 116;
void checkActionCode(in CheckActionCodeAidlRequest request, IFirebaseAuthCallbacks callbacks) = 118;
void applyActionCode(in ApplyActionCodeAidlRequest request, IFirebaseAuthCallbacks callbacks) = 119;
void confirmPasswordReset(in ConfirmPasswordResetAidlRequest request, IFirebaseAuthCallbacks callbacks) = 120;
void sendVerificationCode(in SendVerificationCodeAidlRequest request, IFirebaseAuthCallbacks callbacks) = 121;
void signInWithPhoneNumber(in SignInWithPhoneNumberAidlRequest request, IFirebaseAuthCallbacks callbacks) = 122;
void linkPhoneAuthCredential(in LinkPhoneAuthCredentialAidlRequest request, IFirebaseAuthCallbacks callbacks) = 123;
void sendEmailVerification(in SendEmailVerificationWithSettingsAidlRequest request, IFirebaseAuthCallbacks callbacks) = 125;
void setFirebaseUiVersion(in SetFirebaseUiVersionAidlRequest request, IFirebaseAuthCallbacks callbacks) = 126;
void sendGetOobConfirmationCodeEmail(in SendGetOobConfirmationCodeEmailAidlRequest request, IFirebaseAuthCallbacks callbacks) = 127;
void signInWithEmailLink(in SignInWithEmailLinkAidlRequest request, IFirebaseAuthCallbacks callbacks) = 128;
void startMfaEnrollmentWithPhoneNumber(in StartMfaPhoneNumberEnrollmentAidlRequest request, IFirebaseAuthCallbacks callbacks) = 129;
void unenrollMfa(in UnenrollMfaAidlRequest request, IFirebaseAuthCallbacks callbacks) = 130;
void finalizeMfaEnrollment(in FinalizeMfaEnrollmentAidlRequest request, IFirebaseAuthCallbacks callbacks) = 131;
void startMfaSignInWithPhoneNumber(in StartMfaPhoneNumberSignInAidlRequest request, IFirebaseAuthCallbacks callbacks) = 132;
void finalizeMfaSignIn(in FinalizeMfaSignInAidlRequest request, IFirebaseAuthCallbacks callbacks) = 133;
void verifyBeforeUpdateEmail(in VerifyBeforeUpdateEmailAidlRequest request, IFirebaseAuthCallbacks callbacks) = 134;
}
================================================
FILE: firebase-auth/src/main/aidl/com/google/firebase/auth/api/internal/LinkEmailAuthCredentialAidlRequest.aidl
================================================
package com.google.firebase.auth.api.internal;
parcelable LinkEmailAuthCredentialAidlRequest;
================================================
FILE: firebase-auth/src/main/aidl/com/google/firebase/auth/api/internal/LinkFederatedCredentialAidlRequest.aidl
================================================
package com.google.firebase.auth.api.internal;
parcelable LinkFederatedCredentialAidlRequest;
================================================
FILE: firebase-auth/src/main/aidl/com/google/firebase/auth/api/internal/LinkPhoneAuthCredentialAidlRequest.aidl
================================================
package com.google.firebase.auth.api.internal;
parcelable LinkPhoneAuthCredentialAidlRequest;
================================================
FILE: firebase-auth/src/main/aidl/com/google/firebase/auth/api/internal/ReloadAidlRequest.aidl
================================================
package com.google.firebase.auth.api.internal;
parcelable ReloadAidlRequest;
================================================
FILE: firebase-auth/src/main/aidl/com/google/firebase/auth/api/internal/ResetPasswordResponse.aidl
================================================
package com.google.firebase.auth.api.internal;
parcelable ResetPasswordResponse;
================================================
FILE: firebase-auth/src/main/aidl/com/google/firebase/auth/api/internal/SendEmailVerificationWithSettingsAidlRequest.aidl
================================================
package com.google.firebase.auth.api.internal;
parcelable SendEmailVerificationWithSettingsAidlRequest;
================================================
FILE: firebase-auth/src/main/aidl/com/google/firebase/auth/api/internal/SendGetOobConfirmationCodeEmailAidlRequest.aidl
================================================
package com.google.firebase.auth.api.internal;
parcelable SendGetOobConfirmationCodeEmailAidlRequest;
================================================
FILE: firebase-auth/src/main/aidl/com/google/firebase/auth/api/internal/SendVerificationCodeAidlRequest.aidl
================================================
package com.google.firebase.auth.api.internal;
parcelable SendVerificationCodeAidlRequest;
================================================
FILE: firebase-auth/src/main/aidl/com/google/firebase/auth/api/internal/SendVerificationCodeRequest.aidl
================================================
package com.google.firebase.auth.api.internal;
parcelable SendVerificationCodeRequest;
================================================
FILE: firebase-auth/src/main/aidl/com/google/firebase/auth/api/internal/SetFirebaseUiVersionAidlRequest.aidl
================================================
package com.google.firebase.auth.api.internal;
parcelable SetFirebaseUiVersionAidlRequest;
================================================
FILE: firebase-auth/src/main/aidl/com/google/firebase/auth/api/internal/SignInAnonymouslyAidlRequest.aidl
================================================
package com.google.firebase.auth.api.internal;
parcelable SignInAnonymouslyAidlRequest;
================================================
FILE: firebase-auth/src/main/aidl/com/google/firebase/auth/api/internal/SignInWithCredentialAidlRequest.aidl
================================================
package com.google.firebase.auth.api.internal;
parcelable SignInWithCredentialAidlRequest;
================================================
FILE: firebase-auth/src/main/aidl/com/google/firebase/auth/api/internal/SignInWithCustomTokenAidlRequest.aidl
================================================
package com.google.firebase.auth.api.internal;
parcelable SignInWithCustomTokenAidlRequest;
================================================
FILE: firebase-auth/src/main/aidl/com/google/firebase/auth/api/internal/SignInWithEmailAndPasswordAidlRequest.aidl
================================================
package com.google.firebase.auth.api.internal;
parcelable SignInWithEmailAndPasswordAidlRequest;
================================================
FILE: firebase-auth/src/main/aidl/com/google/firebase/auth/api/internal/SignInWithEmailLinkAidlRequest.aidl
================================================
package com.google.firebase.auth.api.internal;
parcelable SignInWithEmailLinkAidlRequest;
================================================
FILE: firebase-auth/src/main/aidl/com/google/firebase/auth/api/internal/SignInWithPhoneNumberAidlRequest.aidl
================================================
package com.google.firebase.auth.api.internal;
parcelable SignInWithPhoneNumberAidlRequest;
================================================
FILE: firebase-auth/src/main/aidl/com/google/firebase/auth/api/internal/StartMfaPhoneNumberEnrollmentAidlRequest.aidl
================================================
package com.google.firebase.auth.api.internal;
parcelable StartMfaPhoneNumberEnrollmentAidlRequest;
================================================
FILE: firebase-auth/src/main/aidl/com/google/firebase/auth/api/internal/StartMfaPhoneNumberSignInAidlRequest.aidl
================================================
package com.google.firebase.auth.api.internal;
parcelable StartMfaPhoneNumberSignInAidlRequest;
================================================
FILE: firebase-auth/src/main/aidl/com/google/firebase/auth/api/internal/StringList.aidl
================================================
package com.google.firebase.auth.api.internal;
parcelable StringList;
================================================
FILE: firebase-auth/src/main/aidl/com/google/firebase/auth/api/internal/UnenrollMfaAidlRequest.aidl
================================================
package com.google.firebase.auth.api.internal;
parcelable UnenrollMfaAidlRequest;
================================================
FILE: firebase-auth/src/main/aidl/com/google/firebase/auth/api/internal/UnlinkEmailCredentialAidlRequest.aidl
================================================
package com.google.firebase.auth.api.internal;
parcelable UnlinkEmailCredentialAidlRequest;
================================================
FILE: firebase-auth/src/main/aidl/com/google/firebase/auth/api/internal/UnlinkFederatedCredentialAidlRequest.aidl
================================================
package com.google.firebase.auth.api.internal;
parcelable UnlinkFederatedCredentialAidlRequest;
================================================
FILE: firebase-auth/src/main/aidl/com/google/firebase/auth/api/internal/UpdateProfileAidlRequest.aidl
================================================
package com.google.firebase.auth.api.internal;
parcelable UpdateProfileAidlRequest;
================================================
FILE: firebase-auth/src/main/aidl/com/google/firebase/auth/api/internal/VerifyAssertionRequest.aidl
================================================
package com.google.firebase.auth.api.internal;
parcelable VerifyAssertionRequest;
================================================
FILE: firebase-auth/src/main/aidl/com/google/firebase/auth/api/internal/VerifyBeforeUpdateEmailAidlRequest.aidl
================================================
package com.google.firebase.auth.api.internal;
parcelable VerifyBeforeUpdateEmailAidlRequest;
================================================
FILE: firebase-auth/src/main/java/com/google/firebase/auth/ActionCodeSettings.java
================================================
/*
* SPDX-FileCopyrightText: 2020, microG Project Team
* SPDX-License-Identifier: Apache-2.0
* Notice: Portions of this file are reproduced from work created and shared by Google and used
* according to terms described in the Creative Commons 4.0 Attribution License.
* See https://developers.google.com/readme/policies for details.
*/
package com.google.firebase.auth;
import org.microg.gms.common.PublicApi;
import org.microg.safeparcel.AutoSafeParcelable;
/**
* Structure that contains the required continue/state URL with optional Android and iOS bundle identifiers.
* The stateUrl used to initialize this class is the link/deep link/fallback url used while constructing the Firebase dynamic link.
*/
@PublicApi
public class ActionCodeSettings extends AutoSafeParcelable {
@Field(1)
@PublicApi(exclude = true)
public String url;
@Field(2)
@PublicApi(exclude = true)
public String iOSBundle;
@Field(3)
@PublicApi(exclude = true)
public String iOSAppStoreId;
@Field(4)
@PublicApi(exclude = true)
public String androidPackageName;
@Field(5)
@PublicApi(exclude = true)
public boolean androidInstallApp;
@Field(6)
@PublicApi(exclude = true)
public String androidMinimumVersion;
@Field(7)
@PublicApi(exclude = true)
public boolean handleCodeInApp;
@Field(8)
@PublicApi(exclude = true)
public String localeHeader;
@Field(9)
@PublicApi(exclude = true)
public int requestType;
@Field(10)
@PublicApi(exclude = true)
public String dynamicLinkDomain;
private ActionCodeSettings() {
}
/**
* @return whether the oob code should be handled by the app. See {@link Builder#setHandleCodeInApp(boolean)}
*/
public boolean canHandleCodeInApp() {
return handleCodeInApp;
}
/**
* @return the preference for whether to attempt to install the app if it is not present. See {@link Builder#setAndroidPackageName(String, boolean, String)}
*/
public boolean getAndroidInstallApp() {
return androidInstallApp;
}
/**
* @return the minimum Android app version. See {@link Builder#setAndroidPackageName(String, boolean, String)}
*/
public String getAndroidMinimumVersion() {
return androidMinimumVersion;
}
/**
* @return the Android Package Name. See {@link Builder#setAndroidPackageName(String, boolean, String)}
*/
public String getAndroidPackageName() {
return androidPackageName;
}
/**
* @return the iOS Bundle. See {@link Builder#setIOSBundleId(String)}
*/
public String getIOSBundle() {
return iOSBundle;
}
/**
* @return the URL. See {@link Builder#setUrl(String)}
*/
public String getUrl() {
return url;
}
/**
* @return a new instance of {@link ActionCodeSettings.Builder}.
*/
public static Builder newBuilder() {
return new Builder();
}
/**
* A Builder class for {@link ActionCodeSettings}. Get an instance of this Builder using {@link #newBuilder()}.
*/
public static class Builder {
private String url;
private String iOSBundleId;
private String androidPackageName;
private boolean androidInstallApp;
private String androidMinimumVersion;
private boolean canHandleCodeInApp;
private String dynamicLinkDomain;
public ActionCodeSettings build() {
ActionCodeSettings settings = new ActionCodeSettings();
settings.url = url;
settings.iOSBundle = iOSBundleId;
settings.androidPackageName = androidPackageName;
settings.androidInstallApp = androidInstallApp;
settings.handleCodeInApp = canHandleCodeInApp;
settings.dynamicLinkDomain = dynamicLinkDomain;
return settings;
}
/**
* Sets the Android package name and returns the current builder instance.
* If {@code installIfNotAvailable} is set to true and the link is opened on an android device, it will try to install the app if not already available.
* Otherwise the web URL is used.
*
* A minimum version string is also available. If the installed app is an older version, the user is taken to the Play Store to upgrade the app.
*/
public Builder setAndroidPackageName(String androidPackageName, boolean installIfNotAvailable, String minimumVersion) {
this.androidPackageName = androidPackageName;
this.androidInstallApp = installIfNotAvailable;
this.androidMinimumVersion = minimumVersion;
return this;
}
/**
* Sets the optional FDL domain, overriding the default FDL domain that would be used.
* Must be one of the 5 domains configured in the Firebase console.
*/
public Builder setDynamicLinkDomain(String dynamicLinkDomain) {
this.dynamicLinkDomain = dynamicLinkDomain;
return this;
}
/**
* The default is false. When set to true, the action code link will be sent as a universal link and will be open by the app if installed.
* In the false case, the code will be sent to the web widget first and then on continue will redirect to the app if installed.
*/
public Builder setHandleCodeInApp(boolean status) {
this.canHandleCodeInApp = status;
return this;
}
/**
* To be used if the email link that is sent might be opened on an iOS device.
*
* Sets the iOS bundle Id and returns the current {@link ActionCodeSettings.Builder} instance.
*/
public Builder setIOSBundleId(String iOSBundleId) {
this.iOSBundleId = iOSBundleId;
return this;
}
/**
* Sets the URL, which has different meanings in different contexts. For email actions, this is the state/continue URL.
* When the app is not installed, this is the web continue URL with any developer provided state appended (the continueURL query parameter).
* When the app is installed, this is contained in the Firebase dynamic link payload.
* In the case where the code is sent directly to the app and the app is installed, this is the continueURL query parameter in the dynamic link payload.
* Otherwise, when the code is handled by the widget itself, it is the payload itself.
*/
public Builder setUrl(String url) {
this.url = url;
return this;
}
}
public static final Creator CREATOR = new AutoCreator<>(ActionCodeSettings.class);
}
================================================
FILE: firebase-auth/src/main/java/com/google/firebase/auth/AuthCredential.java
================================================
/*
* SPDX-FileCopyrightText: 2020, microG Project Team
* SPDX-License-Identifier: Apache-2.0
* Notice: Portions of this file are reproduced from work created and shared by Google and used
* according to terms described in the Creative Commons 4.0 Attribution License.
* See https://developers.google.com/readme/policies for details.
*/
package com.google.firebase.auth;
import org.microg.gms.common.PublicApi;
import org.microg.safeparcel.AutoSafeParcelable;
/**
* Represents a credential that the Firebase Authentication server can use to authenticate a user.
*/
@PublicApi
public abstract class AuthCredential extends AutoSafeParcelable {
/**
* Returns the unique string identifier for the provider type with which the credential is associated.
*/
public abstract String getProvider();
/**
* Returns the unique string identifier for the sign in method with which the credential is associated. Should match that returned by {@link FirebaseAuth#fetchSignInMethodsForEmail(String)} after this user has signed in with this type of credential.
*/
public abstract String getSignInMethod();
}
================================================
FILE: firebase-auth/src/main/java/com/google/firebase/auth/DefaultOAuthCredential.java
================================================
/*
* SPDX-FileCopyrightText: 2020, microG Project Team
* SPDX-License-Identifier: Apache-2.0
* Notice: Portions of this file are reproduced from work created and shared by Google and used
* according to terms described in the Creative Commons 4.0 Attribution License.
* See https://developers.google.com/readme/policies for details.
*/
package com.google.firebase.auth;
import com.google.firebase.auth.api.internal.VerifyAssertionRequest;
import org.microg.gms.common.PublicApi;
@PublicApi
public class DefaultOAuthCredential extends OAuthCredential {
@Field(1)
@PublicApi(exclude = true)
public String provider;
@Field(2)
@PublicApi(exclude = true)
public String idToken;
@Field(3)
@PublicApi(exclude = true)
public String accessToken;
@Field(4)
@PublicApi(exclude = true)
public VerifyAssertionRequest webSignInToken;
@Field(5)
@PublicApi(exclude = true)
public String pendingToken;
@Field(6)
@PublicApi(exclude = true)
public String secret;
@Field(7)
@PublicApi(exclude = true)
public String rawNonce;
@Override
public String getAccessToken() {
return accessToken;
}
@Override
public String getIdToken() {
return idToken;
}
@Override
public String getSecret() {
return secret;
}
@Override
public String getProvider() {
return provider;
}
@Override
public String getSignInMethod() {
return provider;
}
public static final Creator CREATOR = new AutoCreator<>(DefaultOAuthCredential.class);
}
================================================
FILE: firebase-auth/src/main/java/com/google/firebase/auth/EmailAuthCredential.java
================================================
/*
* SPDX-FileCopyrightText: 2020, microG Project Team
* SPDX-License-Identifier: Apache-2.0
* Notice: Portions of this file are reproduced from work created and shared by Google and used
* according to terms described in the Creative Commons 4.0 Attribution License.
* See https://developers.google.com/readme/policies for details.
*/
package com.google.firebase.auth;
import org.microg.gms.common.PublicApi;
/**
* Wraps an email and password tuple for authentication purposes.
*/
@PublicApi
public class EmailAuthCredential extends AuthCredential {
@Field(1)
@PublicApi(exclude = true)
public String email;
@Field(2)
@PublicApi(exclude = true)
public String password;
@Field(3)
@PublicApi(exclude = true)
public String signInLink;
@Field(4)
@PublicApi(exclude = true)
public String cachedState;
@Field(5)
@PublicApi(exclude = true)
public boolean isForLinking;
/**
* Returns the unique string identifier for the provider type with which the credential is associated.
*/
@Override
public String getProvider() {
return "password";
}
/**
* Returns either {@link EmailAuthProvider#EMAIL_LINK_SIGN_IN_METHOD} for a credential generated with {@link EmailAuthProvider#getCredentialWithLink(String, String)} or {@link EmailAuthProvider#EMAIL_PASSWORD_SIGN_IN_METHOD} for a credential generated with {@link EmailAuthProvider#getCredential(String, String)}.
*/
@Override
public String getSignInMethod() {
if (password != null && !password.isEmpty()) {
return "password";
}
return "emailLink";
}
public static final Creator CREATOR = new AutoCreator<>(EmailAuthCredential.class);
}
================================================
FILE: firebase-auth/src/main/java/com/google/firebase/auth/OAuthCredential.java
================================================
/*
* SPDX-FileCopyrightText: 2020, microG Project Team
* SPDX-License-Identifier: Apache-2.0
* Notice: Portions of this file are reproduced from work created and shared by Google and used
* according to terms described in the Creative Commons 4.0 Attribution License.
* See https://developers.google.com/readme/policies for details.
*/
package com.google.firebase.auth;
import org.microg.gms.common.PublicApi;
/**
* Holds credentials generated by a sign-in with a credential to an IDP that uses OAuth
*/
@PublicApi
public abstract class OAuthCredential extends AuthCredential {
/**
* Returns the OAuth access token associated with this credential.
*/
public abstract String getAccessToken();
/**
* Returns the OAuth ID token associated with this credential.
*/
public abstract String getIdToken();
/**
* Returns the OAuth secret associated with this credential. This will be null for OAuth 2.0 providers.
*/
public abstract String getSecret();
}
================================================
FILE: firebase-auth/src/main/java/com/google/firebase/auth/PhoneAuthCredential.java
================================================
/*
* SPDX-FileCopyrightText: 2020, microG Project Team
* SPDX-License-Identifier: Apache-2.0
* Notice: Portions of this file are reproduced from work created and shared by Google and used
* according to terms described in the Creative Commons 4.0 Attribution License.
* See https://developers.google.com/readme/policies for details.
*/
package com.google.firebase.auth;
import org.microg.gms.common.PublicApi;
/**
* Wraps phone number and verification information for authentication purposes.
*/
@PublicApi
public class PhoneAuthCredential extends AuthCredential {
@Field(1)
@PublicApi(exclude = true)
public String sessionInfo;
@Field(2)
@PublicApi(exclude = true)
public String smsCode;
@Field(3)
@PublicApi(exclude = true)
public boolean hasVerificationCode;
@Field(4)
@PublicApi(exclude = true)
public String phoneNumber;
@Field(5)
@PublicApi(exclude = true)
public boolean autoCreate;
@Field(6)
@PublicApi(exclude = true)
public String temporaryProof;
@Field(7)
@PublicApi(exclude = true)
public String mfaEnrollmentId;
/**
* Returns the unique string identifier for the provider type with which the credential is associated.
*/
@Override
public String getProvider() {
return "phone";
}
/**
* Returns the unique string identifier for the sign in method with which the credential is associated. Should match that returned by {@link FirebaseAuth#fetchSignInMethodsForEmail(String)} after this user has signed in with this type of credential.
*/
@Override
public String getSignInMethod() {
return "phone";
}
/**
* Gets the auto-retrieved SMS verification code if applicable. When SMS verification is used, you will be called back first via onCodeSent(String, PhoneAuthProvider.ForceResendingToken), and later onVerificationCompleted(PhoneAuthCredential) with a {@link PhoneAuthCredential} containing a non-null SMS code if auto-retrieval succeeded. If Firebase used another approach to verify the phone number and triggers a callback via onVerificationCompleted(PhoneAuthCredential), then SMS code can be null.
*/
public String getSmsCode() {
return smsCode;
}
public static final Creator CREATOR = new AutoCreator<>(PhoneAuthCredential.class);
}
================================================
FILE: firebase-auth/src/main/java/com/google/firebase/auth/UserProfileChangeRequest.java
================================================
/*
* SPDX-FileCopyrightText: 2020, microG Project Team
* SPDX-License-Identifier: Apache-2.0
* Notice: Portions of this file are reproduced from work created and shared by Google and used
* according to terms described in the Creative Commons 4.0 Attribution License.
* See https://developers.google.com/readme/policies for details.
*/
package com.google.firebase.auth;
import android.net.Uri;
import org.microg.gms.common.PublicApi;
import org.microg.safeparcel.AutoSafeParcelable;
/**
* Request used to update user profile information.
*/
@PublicApi
public class UserProfileChangeRequest extends AutoSafeParcelable {
@Field(1)
@PublicApi(exclude = true)
public String displayName;
@Field(2)
@PublicApi(exclude = true)
public String photoUrl;
@Field(3)
@PublicApi(exclude = true)
public boolean shouldRemoveDisplayName;
@Field(4)
@PublicApi(exclude = true)
public boolean shouldRemovePhotoUri;
private UserProfileChangeRequest() {
}
public String getDisplayName() {
return displayName;
}
public Uri getPhotoUri() {
return Uri.parse(photoUrl);
}
/**
* The request builder.
*/
public static class Builder {
private String displayName;
private Uri photoUri;
private boolean shouldRemoveDisplayName;
private boolean shouldRemovePhotoUri;
/**
* Sets the updated display name.
* @return the {@link UserProfileChangeRequest.Builder} for chaining
*/
public Builder setDisplayName(String displayName) {
this.displayName = displayName;
shouldRemoveDisplayName = displayName == null;
return this;
}
/**
* Sets the updated photo {@link Uri}.
* @return the {@link UserProfileChangeRequest.Builder} for chaining
*/
public Builder setPhotoUri(Uri photoUri) {
this.photoUri = photoUri;
shouldRemovePhotoUri = photoUri == null;
return this;
}
/**
* Returns a {@link UserProfileChangeRequest} instance
*/
public UserProfileChangeRequest build() {
UserProfileChangeRequest request = new UserProfileChangeRequest();
request.displayName = displayName;
request.photoUrl = photoUri.toString();
request.shouldRemoveDisplayName = shouldRemoveDisplayName;
request.shouldRemovePhotoUri = shouldRemovePhotoUri;
return request;
}
}
public static final Creator CREATOR = new AutoCreator<>(UserProfileChangeRequest.class);
}
================================================
FILE: firebase-auth/src/main/java/com/google/firebase/auth/api/internal/ApplyActionCodeAidlRequest.java
================================================
/*
* SPDX-FileCopyrightText: 2020, microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.firebase.auth.api.internal;
import org.microg.safeparcel.AutoSafeParcelable;
public class ApplyActionCodeAidlRequest extends AutoSafeParcelable {
public static final Creator CREATOR = new AutoCreator<>(ApplyActionCodeAidlRequest.class);
}
================================================
FILE: firebase-auth/src/main/java/com/google/firebase/auth/api/internal/ChangeEmailAidlRequest.java
================================================
/*
* SPDX-FileCopyrightText: 2020, microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.firebase.auth.api.internal;
import org.microg.safeparcel.AutoSafeParcelable;
public class ChangeEmailAidlRequest extends AutoSafeParcelable {
public static final Creator CREATOR = new AutoCreator<>(ChangeEmailAidlRequest.class);
}
================================================
FILE: firebase-auth/src/main/java/com/google/firebase/auth/api/internal/ChangePasswordAidlRequest.java
================================================
/*
* SPDX-FileCopyrightText: 2020, microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.firebase.auth.api.internal;
import org.microg.safeparcel.AutoSafeParcelable;
public class ChangePasswordAidlRequest extends AutoSafeParcelable {
public static final Creator CREATOR = new AutoCreator<>(ChangePasswordAidlRequest.class);
}
================================================
FILE: firebase-auth/src/main/java/com/google/firebase/auth/api/internal/CheckActionCodeAidlRequest.java
================================================
/*
* SPDX-FileCopyrightText: 2020, microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.firebase.auth.api.internal;
import org.microg.safeparcel.AutoSafeParcelable;
public class CheckActionCodeAidlRequest extends AutoSafeParcelable {
public static final Creator CREATOR = new AutoCreator<>(CheckActionCodeAidlRequest.class);
}
================================================
FILE: firebase-auth/src/main/java/com/google/firebase/auth/api/internal/ConfirmPasswordResetAidlRequest.java
================================================
/*
* SPDX-FileCopyrightText: 2020, microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.firebase.auth.api.internal;
import org.microg.safeparcel.AutoSafeParcelable;
public class ConfirmPasswordResetAidlRequest extends AutoSafeParcelable {
public static final Creator CREATOR = new AutoCreator<>(ConfirmPasswordResetAidlRequest.class);
}
================================================
FILE: firebase-auth/src/main/java/com/google/firebase/auth/api/internal/CreateAuthUriResponse.java
================================================
/*
* SPDX-FileCopyrightText: 2020, microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.firebase.auth.api.internal;
import org.microg.safeparcel.AutoSafeParcelable;
import java.util.ArrayList;
import java.util.List;
public class CreateAuthUriResponse extends AutoSafeParcelable {
@Field(2)
public String authUri;
@Field(3)
public boolean isRegistered;
@Field(4)
public String providerId;
@Field(5)
public boolean isForExistingProvider;
@Field(6)
public StringList stringList = new StringList();
@Field(7)
public List signInMethods = new ArrayList<>();
public static final Creator CREATOR = new AutoCreator<>(CreateAuthUriResponse.class);
}
================================================
FILE: firebase-auth/src/main/java/com/google/firebase/auth/api/internal/CreateUserWithEmailAndPasswordAidlRequest.java
================================================
/*
* SPDX-FileCopyrightText: 2020, microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.firebase.auth.api.internal;
import org.microg.safeparcel.AutoSafeParcelable;
public class CreateUserWithEmailAndPasswordAidlRequest extends AutoSafeParcelable {
@Field(1)
public String email;
@Field(2)
public String password;
@Field(3)
public String tenantId;
public static final Creator CREATOR = new AutoCreator<>(CreateUserWithEmailAndPasswordAidlRequest.class);
}
================================================
FILE: firebase-auth/src/main/java/com/google/firebase/auth/api/internal/DeleteAidlRequest.java
================================================
/*
* SPDX-FileCopyrightText: 2020, microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.firebase.auth.api.internal;
import org.microg.safeparcel.AutoSafeParcelable;
public class DeleteAidlRequest extends AutoSafeParcelable {
public static final Creator CREATOR = new AutoCreator<>(DeleteAidlRequest.class);
}
================================================
FILE: firebase-auth/src/main/java/com/google/firebase/auth/api/internal/FinalizeMfaEnrollmentAidlRequest.java
================================================
/*
* SPDX-FileCopyrightText: 2020, microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.firebase.auth.api.internal;
import org.microg.safeparcel.AutoSafeParcelable;
public class FinalizeMfaEnrollmentAidlRequest extends AutoSafeParcelable {
public static final Creator CREATOR = new AutoCreator<>(FinalizeMfaEnrollmentAidlRequest.class);
}
================================================
FILE: firebase-auth/src/main/java/com/google/firebase/auth/api/internal/FinalizeMfaSignInAidlRequest.java
================================================
/*
* SPDX-FileCopyrightText: 2020, microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.firebase.auth.api.internal;
import org.microg.safeparcel.AutoSafeParcelable;
public class FinalizeMfaSignInAidlRequest extends AutoSafeParcelable {
public static final Creator CREATOR = new AutoCreator<>(FinalizeMfaSignInAidlRequest.class);
}
================================================
FILE: firebase-auth/src/main/java/com/google/firebase/auth/api/internal/GetAccessTokenAidlRequest.java
================================================
/*
* SPDX-FileCopyrightText: 2020, microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.firebase.auth.api.internal;
import org.microg.safeparcel.AutoSafeParcelable;
public class GetAccessTokenAidlRequest extends AutoSafeParcelable {
@Field(1)
public String refreshToken;
public static final Creator CREATOR = new AutoCreator<>(GetAccessTokenAidlRequest.class);
}
================================================
FILE: firebase-auth/src/main/java/com/google/firebase/auth/api/internal/GetAccountInfoUser.java
================================================
/*
* SPDX-FileCopyrightText: 2020, microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.firebase.auth.api.internal;
import com.google.firebase.auth.DefaultOAuthCredential;
import org.microg.safeparcel.AutoSafeParcelable;
import java.util.List;
public class GetAccountInfoUser extends AutoSafeParcelable {
@Field(2)
public String localId;
@Field(3)
public String email;
@Field(4)
public boolean isEmailVerified;
@Field(5)
public String displayName;
@Field(6)
public String photoUrl;
@Field(7)
public ProviderUserInfoList providerInfoList = new ProviderUserInfoList();
@Field(8)
public String password;
@Field(9)
public String phoneNumber;
@Field(10)
public long creationTimestamp;
@Field(11)
public long lastSignInTimestamp;
@Field(12)
public boolean isNewUser;
@Field(13)
public DefaultOAuthCredential defaultOAuthCredential;
@Field(14)
public List mfaInfoList;
public static final Creator CREATOR = new AutoCreator<>(GetAccountInfoUser.class);
}
================================================
FILE: firebase-auth/src/main/java/com/google/firebase/auth/api/internal/GetProvidersForEmailAidlRequest.java
================================================
/*
* SPDX-FileCopyrightText: 2020, microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.firebase.auth.api.internal;
import org.microg.safeparcel.AutoSafeParcelable;
public class GetProvidersForEmailAidlRequest extends AutoSafeParcelable {
@Field(1)
public String email;
@Field(2)
public String tenantId;
public static final Creator CREATOR = new AutoCreator<>(GetProvidersForEmailAidlRequest.class);
}
================================================
FILE: firebase-auth/src/main/java/com/google/firebase/auth/api/internal/GetTokenResponse.java
================================================
/*
* SPDX-FileCopyrightText: 2020, microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.firebase.auth.api.internal;
import org.json.JSONException;
import org.json.JSONObject;
import org.microg.safeparcel.AutoSafeParcelable;
public class GetTokenResponse extends AutoSafeParcelable {
@Field(2)
public String refreshToken;
@Field(3)
public String accessToken;
@Field(4)
public Long expiresIn;
@Field(5)
public String tokenType;
@Field(6)
public Long issuedAt;
public GetTokenResponse() {
issuedAt = System.currentTimeMillis();
}
public static GetTokenResponse parseJson(String json) {
try {
JSONObject object = new JSONObject(json);
GetTokenResponse response = new GetTokenResponse();
response.refreshToken = object.optString("refresh_token", null);
response.accessToken = object.optString("access_token", null);
response.tokenType = object.optString("token_type", null);
response.expiresIn = object.optLong("expires_in");
response.issuedAt = object.optLong("issued_at");
return response;
} catch (JSONException e) {
throw new RuntimeException(e);
}
}
public static final Creator CREATOR = new AutoCreator<>(GetTokenResponse.class);
}
================================================
FILE: firebase-auth/src/main/java/com/google/firebase/auth/api/internal/LinkEmailAuthCredentialAidlRequest.java
================================================
/*
* SPDX-FileCopyrightText: 2020, microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.firebase.auth.api.internal;
import org.microg.safeparcel.AutoSafeParcelable;
public class LinkEmailAuthCredentialAidlRequest extends AutoSafeParcelable {
@Field(1)
public String email;
@Field(2)
public String password;
@Field(3)
public String cachedState;
public static final Creator CREATOR = new AutoCreator<>(LinkEmailAuthCredentialAidlRequest.class);
}
================================================
FILE: firebase-auth/src/main/java/com/google/firebase/auth/api/internal/LinkFederatedCredentialAidlRequest.java
================================================
/*
* SPDX-FileCopyrightText: 2020, microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.firebase.auth.api.internal;
import org.microg.safeparcel.AutoSafeParcelable;
public class LinkFederatedCredentialAidlRequest extends AutoSafeParcelable {
public static final Creator CREATOR = new AutoCreator<>(LinkFederatedCredentialAidlRequest.class);
}
================================================
FILE: firebase-auth/src/main/java/com/google/firebase/auth/api/internal/LinkPhoneAuthCredentialAidlRequest.java
================================================
/*
* SPDX-FileCopyrightText: 2020, microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.firebase.auth.api.internal;
import org.microg.safeparcel.AutoSafeParcelable;
public class LinkPhoneAuthCredentialAidlRequest extends AutoSafeParcelable {
public static final Creator CREATOR = new AutoCreator<>(LinkPhoneAuthCredentialAidlRequest.class);
}
================================================
FILE: firebase-auth/src/main/java/com/google/firebase/auth/api/internal/MfaInfo.java
================================================
/*
* SPDX-FileCopyrightText: 2020, microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.firebase.auth.api.internal;
import org.microg.safeparcel.AutoSafeParcelable;
public class MfaInfo extends AutoSafeParcelable {
public static final Creator CREATOR = new AutoCreator<>(MfaInfo.class);
}
================================================
FILE: firebase-auth/src/main/java/com/google/firebase/auth/api/internal/ProviderUserInfo.java
================================================
/*
* SPDX-FileCopyrightText: 2020, microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.firebase.auth.api.internal;
import org.microg.safeparcel.AutoSafeParcelable;
public class ProviderUserInfo extends AutoSafeParcelable {
@Field(2)
public String federatedId;
@Field(3)
public String displayName;
@Field(4)
public String photoUrl;
@Field(5)
public String providerId;
@Field(6)
public String rawUserInfo;
@Field(7)
public String phoneNumber;
@Field(8)
public String email;
public static final Creator CREATOR = new AutoCreator<>(ProviderUserInfo.class);
}
================================================
FILE: firebase-auth/src/main/java/com/google/firebase/auth/api/internal/ProviderUserInfoList.java
================================================
/*
* SPDX-FileCopyrightText: 2020, microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.firebase.auth.api.internal;
import org.microg.safeparcel.AutoSafeParcelable;
import java.util.ArrayList;
import java.util.List;
public class ProviderUserInfoList extends AutoSafeParcelable {
@Field(2)
public List providerUserInfos = new ArrayList<>();
public static final Creator CREATOR = new AutoCreator<>(ProviderUserInfoList.class);
}
================================================
FILE: firebase-auth/src/main/java/com/google/firebase/auth/api/internal/ReloadAidlRequest.java
================================================
/*
* SPDX-FileCopyrightText: 2020, microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.firebase.auth.api.internal;
import org.microg.safeparcel.AutoSafeParcelable;
public class ReloadAidlRequest extends AutoSafeParcelable {
@Field(1)
public String cachedState;
public static final Creator CREATOR = new AutoCreator<>(ReloadAidlRequest.class);
}
================================================
FILE: firebase-auth/src/main/java/com/google/firebase/auth/api/internal/ResetPasswordResponse.java
================================================
/*
* SPDX-FileCopyrightText: 2020, microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.firebase.auth.api.internal;
import org.microg.safeparcel.AutoSafeParcelable;
public class ResetPasswordResponse extends AutoSafeParcelable {
@Field(2)
public String email;
@Field(3)
public String newEmail;
@Field(4)
public String requestType;
@Field(5)
public MfaInfo mfaInfo;
public static final Creator CREATOR = new AutoCreator<>(ResetPasswordResponse.class);
}
================================================
FILE: firebase-auth/src/main/java/com/google/firebase/auth/api/internal/SendEmailVerificationWithSettingsAidlRequest.java
================================================
/*
* SPDX-FileCopyrightText: 2020, microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.firebase.auth.api.internal;
import com.google.firebase.auth.ActionCodeSettings;
import org.microg.safeparcel.AutoSafeParcelable;
public class SendEmailVerificationWithSettingsAidlRequest extends AutoSafeParcelable {
@Field(1)
public String token;
@Field(2)
public ActionCodeSettings settings;
public static final Creator CREATOR = new AutoCreator<>(SendEmailVerificationWithSettingsAidlRequest.class);
}
================================================
FILE: firebase-auth/src/main/java/com/google/firebase/auth/api/internal/SendGetOobConfirmationCodeEmailAidlRequest.java
================================================
/*
* SPDX-FileCopyrightText: 2020, microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.firebase.auth.api.internal;
import com.google.firebase.auth.ActionCodeSettings;
import org.microg.safeparcel.AutoSafeParcelable;
public class SendGetOobConfirmationCodeEmailAidlRequest extends AutoSafeParcelable {
@Field(1)
public String email;
@Field(2)
public ActionCodeSettings settings;
@Field(3)
public String tenantId;
public static final Creator CREATOR = new AutoCreator<>(SendGetOobConfirmationCodeEmailAidlRequest.class);
}
================================================
FILE: firebase-auth/src/main/java/com/google/firebase/auth/api/internal/SendVerificationCodeAidlRequest.java
================================================
/*
* SPDX-FileCopyrightText: 2020, microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.firebase.auth.api.internal;
import org.microg.safeparcel.AutoSafeParcelable;
public class SendVerificationCodeAidlRequest extends AutoSafeParcelable {
@Field(1)
public SendVerificationCodeRequest request;
public static final Creator CREATOR = new AutoCreator<>(SendVerificationCodeAidlRequest.class);
}
================================================
FILE: firebase-auth/src/main/java/com/google/firebase/auth/api/internal/SendVerificationCodeRequest.java
================================================
/*
* SPDX-FileCopyrightText: 2020, microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.firebase.auth.api.internal;
import org.microg.safeparcel.AutoSafeParcelable;
public class SendVerificationCodeRequest extends AutoSafeParcelable {
@Field(1)
public String phoneNumber;
@Field(2)
public Long timeoutInSeconds;
@Field(3)
public boolean forceNewSmsVerificationSession;
@Field(4)
public String languageHeader;
@Field(5)
public String tenantId;
@Field(6)
public String recaptchaToken;
public static final Creator CREATOR = new AutoCreator<>(SendVerificationCodeRequest.class);
}
================================================
FILE: firebase-auth/src/main/java/com/google/firebase/auth/api/internal/SetFirebaseUiVersionAidlRequest.java
================================================
/*
* SPDX-FileCopyrightText: 2020, microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.firebase.auth.api.internal;
import org.microg.safeparcel.AutoSafeParcelable;
public class SetFirebaseUiVersionAidlRequest extends AutoSafeParcelable {
public static final Creator CREATOR = new AutoCreator<>(SetFirebaseUiVersionAidlRequest.class);
}
================================================
FILE: firebase-auth/src/main/java/com/google/firebase/auth/api/internal/SignInAnonymouslyAidlRequest.java
================================================
/*
* SPDX-FileCopyrightText: 2020, microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.firebase.auth.api.internal;
import org.microg.safeparcel.AutoSafeParcelable;
public class SignInAnonymouslyAidlRequest extends AutoSafeParcelable {
@Field(1)
public String tenantId;
public static final Creator CREATOR = new AutoCreator<>(SignInAnonymouslyAidlRequest.class);
}
================================================
FILE: firebase-auth/src/main/java/com/google/firebase/auth/api/internal/SignInWithCredentialAidlRequest.java
================================================
/*
* SPDX-FileCopyrightText: 2020, microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.firebase.auth.api.internal;
import android.os.Parcel;
import androidx.annotation.NonNull;
import com.google.android.gms.common.internal.safeparcel.AbstractSafeParcelable;
import com.google.android.gms.common.internal.safeparcel.SafeParcelable;
import com.google.android.gms.common.internal.safeparcel.SafeParcelableCreatorAndWriter;
@SafeParcelable.Class
public class SignInWithCredentialAidlRequest extends AbstractSafeParcelable {
@Field(1)
public VerifyAssertionRequest request;
public SignInWithCredentialAidlRequest(VerifyAssertionRequest request) {
this.request = request;
}
public SignInWithCredentialAidlRequest() {
}
@Override
public void writeToParcel(@NonNull Parcel dest, int flags) {
CREATOR.writeToParcel(this, dest, flags);
}
public static final SafeParcelableCreatorAndWriter CREATOR = findCreator(SignInWithCredentialAidlRequest.class);
}
================================================
FILE: firebase-auth/src/main/java/com/google/firebase/auth/api/internal/SignInWithCustomTokenAidlRequest.java
================================================
/*
* SPDX-FileCopyrightText: 2020, microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.firebase.auth.api.internal;
import org.microg.safeparcel.AutoSafeParcelable;
public class SignInWithCustomTokenAidlRequest extends AutoSafeParcelable {
@Field(1)
public String token;
@Field(2)
public String tenantId;
public static final Creator CREATOR = new AutoCreator<>(SignInWithCustomTokenAidlRequest.class);
}
================================================
FILE: firebase-auth/src/main/java/com/google/firebase/auth/api/internal/SignInWithEmailAndPasswordAidlRequest.java
================================================
/*
* SPDX-FileCopyrightText: 2020, microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.firebase.auth.api.internal;
import org.microg.safeparcel.AutoSafeParcelable;
public class SignInWithEmailAndPasswordAidlRequest extends AutoSafeParcelable {
@Field(1)
public String email;
@Field(2)
public String password;
@Field(3)
public String tenantId;
public static final Creator CREATOR = new AutoCreator<>(SignInWithEmailAndPasswordAidlRequest.class);
}
================================================
FILE: firebase-auth/src/main/java/com/google/firebase/auth/api/internal/SignInWithEmailLinkAidlRequest.java
================================================
/*
* SPDX-FileCopyrightText: 2020, microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.firebase.auth.api.internal;
import org.microg.safeparcel.AutoSafeParcelable;
public class SignInWithEmailLinkAidlRequest extends AutoSafeParcelable {
public static final Creator CREATOR = new AutoCreator<>(SignInWithEmailLinkAidlRequest.class);
}
================================================
FILE: firebase-auth/src/main/java/com/google/firebase/auth/api/internal/SignInWithPhoneNumberAidlRequest.java
================================================
/*
* SPDX-FileCopyrightText: 2020, microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.firebase.auth.api.internal;
import com.google.firebase.auth.PhoneAuthCredential;
import org.microg.safeparcel.AutoSafeParcelable;
public class SignInWithPhoneNumberAidlRequest extends AutoSafeParcelable {
@Field(1)
public PhoneAuthCredential credential;
@Field(2)
public String tenantId;
public static final Creator CREATOR = new AutoCreator<>(SignInWithPhoneNumberAidlRequest.class);
}
================================================
FILE: firebase-auth/src/main/java/com/google/firebase/auth/api/internal/StartMfaPhoneNumberEnrollmentAidlRequest.java
================================================
/*
* SPDX-FileCopyrightText: 2020, microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.firebase.auth.api.internal;
import org.microg.safeparcel.AutoSafeParcelable;
public class StartMfaPhoneNumberEnrollmentAidlRequest extends AutoSafeParcelable {
public static final Creator CREATOR = new AutoCreator<>(StartMfaPhoneNumberEnrollmentAidlRequest.class);
}
================================================
FILE: firebase-auth/src/main/java/com/google/firebase/auth/api/internal/StartMfaPhoneNumberSignInAidlRequest.java
================================================
/*
* SPDX-FileCopyrightText: 2020, microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.firebase.auth.api.internal;
import org.microg.safeparcel.AutoSafeParcelable;
public class StartMfaPhoneNumberSignInAidlRequest extends AutoSafeParcelable {
public static final Creator CREATOR = new AutoCreator<>(StartMfaPhoneNumberSignInAidlRequest.class);
}
================================================
FILE: firebase-auth/src/main/java/com/google/firebase/auth/api/internal/StringList.java
================================================
/*
* SPDX-FileCopyrightText: 2020, microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.firebase.auth.api.internal;
import org.microg.safeparcel.AutoSafeParcelable;
import java.util.ArrayList;
import java.util.List;
public class StringList extends AutoSafeParcelable {
@Field(1)
public int versionCode = 1;
@Field(2)
public List values = new ArrayList<>();
public static final Creator CREATOR = new AutoCreator<>(StringList.class);
}
================================================
FILE: firebase-auth/src/main/java/com/google/firebase/auth/api/internal/UnenrollMfaAidlRequest.java
================================================
/*
* SPDX-FileCopyrightText: 2020, microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.firebase.auth.api.internal;
import org.microg.safeparcel.AutoSafeParcelable;
public class UnenrollMfaAidlRequest extends AutoSafeParcelable {
public static final Creator CREATOR = new AutoCreator<>(UnenrollMfaAidlRequest.class);
}
================================================
FILE: firebase-auth/src/main/java/com/google/firebase/auth/api/internal/UnlinkEmailCredentialAidlRequest.java
================================================
/*
* SPDX-FileCopyrightText: 2020, microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.firebase.auth.api.internal;
import org.microg.safeparcel.AutoSafeParcelable;
public class UnlinkEmailCredentialAidlRequest extends AutoSafeParcelable {
public static final Creator CREATOR = new AutoCreator<>(UnlinkEmailCredentialAidlRequest.class);
}
================================================
FILE: firebase-auth/src/main/java/com/google/firebase/auth/api/internal/UnlinkFederatedCredentialAidlRequest.java
================================================
/*
* SPDX-FileCopyrightText: 2020, microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.firebase.auth.api.internal;
import org.microg.safeparcel.AutoSafeParcelable;
public class UnlinkFederatedCredentialAidlRequest extends AutoSafeParcelable {
public static final Creator CREATOR = new AutoCreator<>(UnlinkFederatedCredentialAidlRequest.class);
}
================================================
FILE: firebase-auth/src/main/java/com/google/firebase/auth/api/internal/UpdateProfileAidlRequest.java
================================================
/*
* SPDX-FileCopyrightText: 2020, microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.firebase.auth.api.internal;
import com.google.firebase.auth.UserProfileChangeRequest;
import org.microg.safeparcel.AutoSafeParcelable;
public class UpdateProfileAidlRequest extends AutoSafeParcelable {
@Field(1)
public UserProfileChangeRequest request;
@Field(2)
public String cachedState;
public static final Creator CREATOR = new AutoCreator<>(UpdateProfileAidlRequest.class);
}
================================================
FILE: firebase-auth/src/main/java/com/google/firebase/auth/api/internal/VerifyAssertionRequest.java
================================================
/*
* SPDX-FileCopyrightText: 2020, microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.firebase.auth.api.internal;
import android.os.Parcel;
import androidx.annotation.NonNull;
import com.google.android.gms.common.internal.safeparcel.AbstractSafeParcelable;
import com.google.android.gms.common.internal.safeparcel.SafeParcelable;
import com.google.android.gms.common.internal.safeparcel.SafeParcelableCreatorAndWriter;
@SafeParcelable.Class
public class VerifyAssertionRequest extends AbstractSafeParcelable {
@Field(2)
public String requestUri;
@Field(3)
public String accessToken;
@Field(4)
public String idToken;
@Field(5)
public String instanceId;
@Field(6)
public String providerId;
@Field(7)
public String pendingIdToken;
@Field(8)
public String postBody;
@Field(9)
public String localId;
@Field(10)
public boolean returnIdpCredential;
@Field(11)
public boolean returnSecureToken;
@Field(12)
public String delegatedProjectNumber;
@Field(13)
public String sessionId;
@Field(14)
public String queryParameter;
@Field(15)
public String tenantId;
@Field(16)
public boolean returnRefreshToken;
@Field(17)
public String tenantProjectNumber;
@Override
public void writeToParcel(@NonNull Parcel dest, int flags) {
CREATOR.writeToParcel(this, dest, flags);
}
public static final SafeParcelableCreatorAndWriter CREATOR = findCreator(VerifyAssertionRequest.class);
}
================================================
FILE: firebase-auth/src/main/java/com/google/firebase/auth/api/internal/VerifyBeforeUpdateEmailAidlRequest.java
================================================
/*
* SPDX-FileCopyrightText: 2020, microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.firebase.auth.api.internal;
import org.microg.safeparcel.AutoSafeParcelable;
public class VerifyBeforeUpdateEmailAidlRequest extends AutoSafeParcelable {
public static final Creator CREATOR = new AutoCreator<>(VerifyBeforeUpdateEmailAidlRequest.class);
}
================================================
FILE: firebase-auth/src/main/java/org/microg/gms/firebase/auth/Constants.java
================================================
/*
* SPDX-FileCopyrightText: 2020, microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package org.microg.gms.firebase.auth;
public class Constants {
public static final String EXTRA_API_KEY = "com.google.firebase.auth.API_KEY";
public static final String EXTRA_LIBRARY_VERSION = "com.google.firebase.auth.LIBRARY_VERSION";
}
================================================
FILE: firebase-dynamic-links/build.gradle
================================================
/*
* SPDX-FileCopyrightText: 2019 e Foundation
* SPDX-FileCopyrightText: 2020 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
apply plugin: 'com.android.library'
apply plugin: 'maven-publish'
apply plugin: 'signing'
android {
namespace "com.google.firebase.dynamiclinks"
compileSdkVersion androidCompileSdk
buildToolsVersion "$androidBuildVersionTools"
buildFeatures {
aidl = true
}
defaultConfig {
versionName version
minSdkVersion androidMinSdk
targetSdkVersion androidTargetSdk
}
compileOptions {
sourceCompatibility = 1.8
targetCompatibility = 1.8
}
}
dependencies {
// Dependencies from firebase-dynamic-links:21.2.0
api 'androidx.annotation:annotation:1.2.0'
api project(':play-services-base')
api project(':play-services-basement')
api project(':play-services-tasks')
// api project(':firebase-auth-interop')
// api project(':firebase-measurement-connector')
// api project(':firebase-common')
// api project(':firebase-common-ktx')
// api project(':firebase-components')
api 'org.jetbrains.kotlin:kotlin-stdlib:1.7.10'
annotationProcessor project(':safe-parcel-processor')
}
apply from: '../gradle/publish-android.gradle'
description = 'microG API for firebase-dynamic-links'
================================================
FILE: firebase-dynamic-links/src/main/AndroidManifest.xml
================================================
================================================
FILE: firebase-dynamic-links/src/main/aidl/com/google/firebase/dynamiclinks/internal/DynamicLinkData.aidl
================================================
/*
* SPDX-FileCopyrightText: 2019, e Foundation
* SPDX-FileCopyrightText: 2021, Google LLC
* SPDX-FileCopyrightText: 2021, microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.firebase.dynamiclinks.internal;
parcelable DynamicLinkData;
================================================
FILE: firebase-dynamic-links/src/main/aidl/com/google/firebase/dynamiclinks/internal/IDynamicLinksCallbacks.aidl
================================================
/*
* SPDX-FileCopyrightText: 2019, e Foundation
* SPDX-FileCopyrightText: 2021, Google LLC
* SPDX-FileCopyrightText: 2021, microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.firebase.dynamiclinks.internal;
import com.google.android.gms.common.api.Status;
import com.google.firebase.dynamiclinks.internal.DynamicLinkData;
import com.google.firebase.dynamiclinks.internal.ShortDynamicLinkImpl;
interface IDynamicLinksCallbacks {
void onStatusDynamicLinkData(in Status status, in DynamicLinkData dldata) = 0;
void onStatusShortDynamicLink(in Status status, in ShortDynamicLinkImpl sdlink) = 1;
}
================================================
FILE: firebase-dynamic-links/src/main/aidl/com/google/firebase/dynamiclinks/internal/IDynamicLinksService.aidl
================================================
/*
* SPDX-FileCopyrightText: 2019, e Foundation
* SPDX-FileCopyrightText: 2021, Google LLC
* SPDX-FileCopyrightText: 2021, microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.firebase.dynamiclinks.internal;
import com.google.firebase.dynamiclinks.internal.IDynamicLinksCallbacks;
import android.os.Bundle;
interface IDynamicLinksService {
void getDynamicLink(IDynamicLinksCallbacks callback, String link) = 0;
void createShortDynamicLink(IDynamicLinksCallbacks callback, in Bundle extras) = 1;
}
================================================
FILE: firebase-dynamic-links/src/main/aidl/com/google/firebase/dynamiclinks/internal/ShortDynamicLinkImpl.aidl
================================================
/*
* SPDX-FileCopyrightText: 2019, e Foundation
* SPDX-FileCopyrightText: 2021, Google LLC
* SPDX-FileCopyrightText: 2021, microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.firebase.dynamiclinks.internal;
parcelable ShortDynamicLinkImpl;
================================================
FILE: firebase-dynamic-links/src/main/aidl/com/google/firebase/dynamiclinks/internal/WarningImpl.aidl
================================================
/*
* SPDX-FileCopyrightText: 2019, e Foundation
* SPDX-FileCopyrightText: 2021, Google LLC
* SPDX-FileCopyrightText: 2021, microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.firebase.dynamiclinks.internal;
parcelable WarningImpl;
================================================
FILE: firebase-dynamic-links/src/main/java/com/google/firebase/dynamiclinks/ShortDynamicLink.java
================================================
/*
* SPDX-FileCopyrightText: 2021, microG Project Team
* SPDX-License-Identifier: Apache-2.0
* Notice: Portions of this file are reproduced from work created and shared by Google and used
* according to terms described in the Creative Commons 4.0 Attribution License.
* See https://developers.google.com/readme/policies for details.
*/
package com.google.firebase.dynamiclinks;
import android.net.Uri;
import org.microg.gms.common.PublicApi;
import java.util.List;
/**
* Response from {@link DynamicLink.Builder#buildShortDynamicLink()} that returns the shortened Dynamic Link, link flow chart, and warnings from the requested Dynamic Link.
*/
@PublicApi
public interface ShortDynamicLink {
/**
* Gets the preview link to show the link flow chart.
*/
Uri getPreviewLink();
/**
* Gets the short Dynamic Link value.
*/
Uri getShortLink();
/**
* Gets information about potential warnings on link creation.
*/
List extends Warning> getWarnings();
/**
* Path generation option for short Dynamic Link length
*/
@interface Suffix {
/**
* Shorten the path to an unguessable string. Such strings are created by base62-encoding randomly generated
* 96-bit numbers, and consist of 17 alphanumeric characters. Use unguessable strings to prevent your Dynamic
* Links from being crawled, which can potentially expose sensitive information.
*/
int UNGUESSABLE = 1;
/**
* Shorten the path to a string that is only as long as needed to be unique, with a minimum length of 4
* characters. Use this method if sensitive information would not be exposed if a short Dynamic Link URL were
* guessed.
*/
int SHORT = 2;
}
/**
* Information about potential warnings on short Dynamic Link creation.
*/
interface Warning {
/**
* Gets the warning code.
*
* @deprecated See {@link #getMessage()} for more information on this warning and how to correct it.
*/
@Deprecated
String getCode();
/**
* Gets the warning message to help developers improve their requests.
*/
String getMessage();
}
}
================================================
FILE: firebase-dynamic-links/src/main/java/com/google/firebase/dynamiclinks/internal/DynamicLinkData.java
================================================
/*
* SPDX-FileCopyrightText: 2019, e Foundation
* SPDX-FileCopyrightText: 2021, Google LLC
* SPDX-FileCopyrightText: 2021, microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.firebase.dynamiclinks.internal;
import android.os.Parcel;
import androidx.annotation.NonNull;
import com.google.android.gms.common.internal.safeparcel.AbstractSafeParcelable;
import com.google.android.gms.common.internal.safeparcel.SafeParcelable;
import com.google.android.gms.common.internal.safeparcel.SafeParcelableCreatorAndWriter;
import android.os.Bundle;
import android.net.Uri;
import org.microg.gms.utils.ToStringHelper;
@SafeParcelable.Class
public class DynamicLinkData extends AbstractSafeParcelable {
@Field(1)
public final String dynamicLink;
@Field(2)
public final String deepLink;
@Field(3)
public final int minVersion;
@Field(4)
public final long clickTimestamp;
@Field(5)
public final Bundle extensionBundle;
@Field(6)
public final Uri redirectUrl;
@Constructor
public DynamicLinkData(@Param(1) String dynamicLink, @Param(2) String deepLink, @Param(3) int minVersion, @Param(4) long clickTimestamp, @Param(5) Bundle extensionBundle, @Param(6) Uri redirectUrl) {
this.dynamicLink = dynamicLink;
this.deepLink = deepLink;
this.minVersion = minVersion;
this.clickTimestamp = clickTimestamp;
this.extensionBundle = extensionBundle;
this.redirectUrl = redirectUrl;
}
@NonNull
@Override
public String toString() {
return ToStringHelper.name("DynamicLinkData")
.field("dynamicLink", dynamicLink)
.field("deepLink", deepLink)
.field("minVersion", minVersion)
.field("clickTimestamp", clickTimestamp)
.field("extensionBundle", extensionBundle)
.field("redirectUrl", redirectUrl)
.end();
}
@Override
public void writeToParcel(@NonNull Parcel dest, int flags) {
CREATOR.writeToParcel(this, dest, flags);
}
public static final SafeParcelableCreatorAndWriter CREATOR = findCreator(DynamicLinkData.class);
}
================================================
FILE: firebase-dynamic-links/src/main/java/com/google/firebase/dynamiclinks/internal/ShortDynamicLinkImpl.java
================================================
/*
* SPDX-FileCopyrightText: 2019, e Foundation
* SPDX-FileCopyrightText: 2021, Google LLC
* SPDX-FileCopyrightText: 2021, microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.firebase.dynamiclinks.internal;
import android.net.Uri;
import org.microg.safeparcel.AutoSafeParcelable;
import java.util.ArrayList;
import java.util.List;
public class ShortDynamicLinkImpl extends AutoSafeParcelable {
@Field(1)
public final Uri shortLink;
@Field(2)
public final Uri previewLink;
@Field(3)
public final List warnings;
public ShortDynamicLinkImpl() {
shortLink = Uri.EMPTY;
previewLink = Uri.EMPTY;
warnings = new ArrayList<>();
}
public ShortDynamicLinkImpl(Uri shortLink, Uri previewLink, List warnings) {
this.shortLink = shortLink;
this.previewLink = previewLink;
this.warnings = warnings;
}
public static final Creator CREATOR = new AutoCreator(ShortDynamicLinkImpl.class);
}
================================================
FILE: firebase-dynamic-links/src/main/java/com/google/firebase/dynamiclinks/internal/WarningImpl.java
================================================
/*
* SPDX-FileCopyrightText: 2021, microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.firebase.dynamiclinks.internal;
import com.google.firebase.dynamiclinks.ShortDynamicLink;
import org.microg.safeparcel.AutoSafeParcelable;
import org.microg.safeparcel.SafeParceled;
public class WarningImpl extends AutoSafeParcelable implements ShortDynamicLink.Warning {
@Field(1)
@Deprecated
private int code = 1;
@Field(2)
private final String message;
private WarningImpl() {
this.message = null;
}
public WarningImpl(String message) {
this.message = message;
}
@Override
public String getCode() {
return null;
}
@Override
public String getMessage() {
return message;
}
public static final Creator CREATOR = new AutoCreator(WarningImpl.class);
}
================================================
FILE: gradle/publish-android.gradle
================================================
/*
* SPDX-FileCopyrightText: 2020, microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
android {
publishing {
singleVariant("release") {
withSourcesJar()
withJavadocJar()
}
}
}
afterEvaluate {
publishing {
publications {
release(MavenPublication) {
pom {
name = project.name
description = project.description
url = 'https://github.com/microg/GmsCore'
licenses {
license {
name = 'The Apache Software License, Version 2.0'
url = 'http://www.apache.org/licenses/LICENSE-2.0.txt'
}
}
developers {
developer {
id = 'microg'
name = 'microG Team'
}
}
scm {
url = 'https://github.com/microg/GmsCore'
connection = 'scm:git:https://github.com/microg/GmsCore.git'
developerConnection = 'scm:git:ssh://github.com/microg/GmsCore.git'
}
}
from components.release
}
}
if (project.hasProperty('sonatype.username')) {
repositories {
maven {
name = 'sonatype'
url = 'https://oss.sonatype.org/service/local/staging/deploy/maven2/'
credentials {
username project.getProperty('sonatype.username')
password project.getProperty('sonatype.password')
}
}
}
}
}
if (project.hasProperty('signing.keyId')) {
signing {
sign publishing.publications
}
}
tasks.getByPath("sourceReleaseJar").duplicatesStrategy = DuplicatesStrategy.EXCLUDE
}
================================================
FILE: gradle/publish-java.gradle
================================================
/*
* SPDX-FileCopyrightText: 2020, microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
task javaSourcesJar(type: Jar) {
archiveClassifier.set("sources")
from sourceSets.main.allJava
}
javadoc {
classpath = configurations.compileClasspath
source = sourceSets.main.allJava
}
task javaJavadocsJar(type: Jar) {
archiveClassifier.set("javadoc")
from javadoc
}
artifacts {
archives javaSourcesJar
archives javaJavadocsJar
}
afterEvaluate {
publishing {
publications {
release(MavenPublication) {
pom {
name = project.name
description = project.description
url = 'https://github.com/microg/GmsCore'
licenses {
license {
name = 'The Apache Software License, Version 2.0'
url = 'http://www.apache.org/licenses/LICENSE-2.0.txt'
}
}
developers {
developer {
id = 'microg'
name = 'microG Team'
}
}
scm {
url = 'https://github.com/microg/GmsCore'
connection = 'scm:git:https://github.com/microg/GmsCore.git'
developerConnection = 'scm:git:ssh://github.com/microg/GmsCore.git'
}
}
from components.java
artifact javaSourcesJar
artifact javaJavadocsJar
}
}
if (project.hasProperty('sonatype.username')) {
repositories {
maven {
name = 'sonatype'
url = 'https://oss.sonatype.org/service/local/staging/deploy/maven2/'
credentials {
username project.getProperty('sonatype.username')
password project.getProperty('sonatype.password')
}
}
}
}
}
if (project.hasProperty('signing.keyId')) {
signing {
sign publishing.publications
}
}
}
================================================
FILE: gradle/wrapper/gradle-wrapper.properties
================================================
# SPDX-FileCopyrightText: 2015, microG Project Team
# SPDX-License-Identifier: CC0-1.0
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.11.1-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
================================================
FILE: gradle.properties
================================================
android.useAndroidX=true
org.gradle.configuration-cache=true
org.gradle.caching=true
org.gradle.jvmargs=-Xmx4096m -XX:+UseParallelGC --add-exports=jdk.compiler/com.sun.tools.javac.main=ALL-UNNAMED
================================================
FILE: gradlew
================================================
#!/bin/sh
#
# Copyright © 2015-2021 the original authors.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# SPDX-License-Identifier: Apache-2.0
#
##############################################################################
#
# Gradle start up script for POSIX generated by Gradle.
#
# Important for running:
#
# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is
# noncompliant, but you have some other compliant shell such as ksh or
# bash, then to run this script, type that shell name before the whole
# command line, like:
#
# ksh Gradle
#
# Busybox and similar reduced shells will NOT work, because this script
# requires all of these POSIX shell features:
# * functions;
# * expansions «$var», «${var}», «${var:-default}», «${var+SET}»,
# «${var#prefix}», «${var%suffix}», and «$( cmd )»;
# * compound commands having a testable exit status, especially «case»;
# * various built-in commands including «command», «set», and «ulimit».
#
# Important for patching:
#
# (2) This script targets any POSIX shell, so it avoids extensions provided
# by Bash, Ksh, etc; in particular arrays are avoided.
#
# The "traditional" practice of packing multiple parameters into a
# space-separated string is a well documented source of bugs and security
# problems, so this is (mostly) avoided, by progressively accumulating
# options in "$@", and eventually passing that to Java.
#
# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS,
# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly;
# see the in-line comments for details.
#
# There are tweaks for specific operating systems such as AIX, CygWin,
# Darwin, MinGW, and NonStop.
#
# (3) This script is generated from the Groovy template
# https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
# within the Gradle project.
#
# You can find Gradle at https://github.com/gradle/gradle/.
#
##############################################################################
# Attempt to set APP_HOME
# Resolve links: $0 may be a link
app_path=$0
# Need this for daisy-chained symlinks.
while
APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path
[ -h "$app_path" ]
do
ls=$( ls -ld "$app_path" )
link=${ls#*' -> '}
case $link in #(
/*) app_path=$link ;; #(
*) app_path=$APP_HOME$link ;;
esac
done
# This is normally unused
# shellcheck disable=SC2034
APP_BASE_NAME=${0##*/}
# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036)
APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s
' "$PWD" ) || exit
# Use the maximum available, or set MAX_FD != -1 to use that value.
MAX_FD=maximum
warn () {
echo "$*"
} >&2
die () {
echo
echo "$*"
echo
exit 1
} >&2
# OS specific support (must be 'true' or 'false').
cygwin=false
msys=false
darwin=false
nonstop=false
case "$( uname )" in #(
CYGWIN* ) cygwin=true ;; #(
Darwin* ) darwin=true ;; #(
MSYS* | MINGW* ) msys=true ;; #(
NONSTOP* ) nonstop=true ;;
esac
CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
# Determine the Java command to use to start the JVM.
if [ -n "$JAVA_HOME" ] ; then
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
# IBM's JDK on AIX uses strange locations for the executables
JAVACMD=$JAVA_HOME/jre/sh/java
else
JAVACMD=$JAVA_HOME/bin/java
fi
if [ ! -x "$JAVACMD" ] ; then
die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
fi
else
JAVACMD=java
if ! command -v java >/dev/null 2>&1
then
die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
fi
fi
# Increase the maximum file descriptors if we can.
if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
case $MAX_FD in #(
max*)
# In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked.
# shellcheck disable=SC2039,SC3045
MAX_FD=$( ulimit -H -n ) ||
warn "Could not query maximum file descriptor limit"
esac
case $MAX_FD in #(
'' | soft) :;; #(
*)
# In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked.
# shellcheck disable=SC2039,SC3045
ulimit -n "$MAX_FD" ||
warn "Could not set maximum file descriptor limit to $MAX_FD"
esac
fi
# Collect all arguments for the java command, stacking in reverse order:
# * args from the command line
# * the main class name
# * -classpath
# * -D...appname settings
# * --module-path (only if needed)
# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables.
# For Cygwin or MSYS, switch paths to Windows format before running java
if "$cygwin" || "$msys" ; then
APP_HOME=$( cygpath --path --mixed "$APP_HOME" )
CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" )
JAVACMD=$( cygpath --unix "$JAVACMD" )
# Now convert the arguments - kludge to limit ourselves to /bin/sh
for arg do
if
case $arg in #(
-*) false ;; # don't mess with options #(
/?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath
[ -e "$t" ] ;; #(
*) false ;;
esac
then
arg=$( cygpath --path --ignore --mixed "$arg" )
fi
# Roll the args list around exactly as many times as the number of
# args, so each arg winds up back in the position where it started, but
# possibly modified.
#
# NB: a `for` loop captures its iteration list before it begins, so
# changing the positional parameters here affects neither the number of
# iterations, nor the values presented in `arg`.
shift # remove old arg
set -- "$@" "$arg" # push replacement arg
done
fi
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
# Collect all arguments for the java command:
# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments,
# and any embedded shellness will be escaped.
# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be
# treated as '${Hostname}' itself on the command line.
set -- \
"-Dorg.gradle.appname=$APP_BASE_NAME" \
-classpath "$CLASSPATH" \
org.gradle.wrapper.GradleWrapperMain \
"$@"
# Stop when "xargs" is not available.
if ! command -v xargs >/dev/null 2>&1
then
die "xargs is not available"
fi
# Use "xargs" to parse quoted args.
#
# With -n1 it outputs one arg per line, with the quotes and backslashes removed.
#
# In Bash we could simply go:
#
# readarray ARGS < <( xargs -n1 <<<"$var" ) &&
# set -- "${ARGS[@]}" "$@"
#
# but POSIX shell has neither arrays nor command substitution, so instead we
# post-process each arg (as a line of input to sed) to backslash-escape any
# character that might be a shell metacharacter, then use eval to reverse
# that process (while maintaining the separation between arguments), and wrap
# the whole thing up as a single "set" statement.
#
# This will of course break if any of these variables contains a newline or
# an unmatched quote.
#
eval "set -- $(
printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" |
xargs -n1 |
sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' |
tr '\n' ' '
)" '"$@"'
exec "$JAVACMD" "$@"
================================================
FILE: gradlew.bat
================================================
@rem
@rem Copyright 2015 the original author or authors.
@rem
@rem Licensed under the Apache License, Version 2.0 (the "License");
@rem you may not use this file except in compliance with the License.
@rem You may obtain a copy of the License at
@rem
@rem https://www.apache.org/licenses/LICENSE-2.0
@rem
@rem Unless required by applicable law or agreed to in writing, software
@rem distributed under the License is distributed on an "AS IS" BASIS,
@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@rem See the License for the specific language governing permissions and
@rem limitations under the License.
@rem
@rem SPDX-License-Identifier: Apache-2.0
@rem
@if "%DEBUG%"=="" @echo off
@rem ##########################################################################
@rem
@rem Gradle startup script for Windows
@rem
@rem ##########################################################################
@rem Set local scope for the variables with windows NT shell
if "%OS%"=="Windows_NT" setlocal
set DIRNAME=%~dp0
if "%DIRNAME%"=="" set DIRNAME=.
@rem This is normally unused
set APP_BASE_NAME=%~n0
set APP_HOME=%DIRNAME%
@rem Resolve any "." and ".." in APP_HOME to make it shorter.
for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
@rem Find java.exe
if defined JAVA_HOME goto findJavaFromJavaHome
set JAVA_EXE=java.exe
%JAVA_EXE% -version >NUL 2>&1
if %ERRORLEVEL% equ 0 goto execute
echo. 1>&2
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2
echo. 1>&2
echo Please set the JAVA_HOME variable in your environment to match the 1>&2
echo location of your Java installation. 1>&2
goto fail
:findJavaFromJavaHome
set JAVA_HOME=%JAVA_HOME:"=%
set JAVA_EXE=%JAVA_HOME%/bin/java.exe
if exist "%JAVA_EXE%" goto execute
echo. 1>&2
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2
echo. 1>&2
echo Please set the JAVA_HOME variable in your environment to match the 1>&2
echo location of your Java installation. 1>&2
goto fail
:execute
@rem Setup the command line
set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
@rem Execute Gradle
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*
:end
@rem End local scope for the variables with windows NT shell
if %ERRORLEVEL% equ 0 goto mainEnd
:fail
rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
rem the _cmd.exe /c_ return code!
set EXIT_CODE=%ERRORLEVEL%
if %EXIT_CODE% equ 0 set EXIT_CODE=1
if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE%
exit /b %EXIT_CODE%
:mainEnd
if "%OS%"=="Windows_NT" endlocal
:omega
================================================
FILE: play-services/build.gradle
================================================
/*
* Copyright 2013-2015 microG Project Team
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
apply plugin: 'com.android.library'
android {
namespace "org.microg.gms"
compileSdkVersion androidCompileSdk
buildToolsVersion "$androidBuildVersionTools"
defaultConfig {
versionName version
minSdkVersion androidMinSdk
targetSdkVersion androidTargetSdk
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
lintOptions {
disable 'InvalidPackage'
}
}
dependencies {
api project(':play-services-base')
api project(':play-services-cast')
api project(':play-services-gcm')
api project(':play-services-location')
api project(':play-services-wearable')
}
================================================
FILE: play-services/src/main/AndroidManifest.xml
================================================
================================================
FILE: play-services-ads/build.gradle
================================================
/*
* SPDX-FileCopyrightText: 2023 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
apply plugin: 'com.android.library'
apply plugin: 'maven-publish'
apply plugin: 'signing'
android {
namespace "com.google.android.gms.ads.impl"
compileSdkVersion androidCompileSdk
buildToolsVersion "$androidBuildVersionTools"
buildFeatures {
aidl = true
}
defaultConfig {
versionName version
minSdkVersion androidMinSdk
targetSdkVersion androidTargetSdk
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
apply from: '../gradle/publish-android.gradle'
description = 'microG implementation of play-services-ads'
dependencies {
implementation 'androidx.browser:browser:1.4.0'
implementation 'androidx.collection:collection:1.0.0'
implementation 'androidx.core:core:1.0.0'
api project(':play-services-ads-base')
api project(':play-services-ads-identifier')
api project(':play-services-ads-lite')
// api project(':play-services-appset')
api project(':play-services-basement')
api project(':play-services-tasks')
}
================================================
FILE: play-services-ads/core/build.gradle
================================================
/*
* SPDX-FileCopyrightText: 2023 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
apply plugin: 'com.android.library'
apply plugin: 'kotlin-android'
dependencies {
api project(':play-services-ads')
implementation project(':play-services-base-core')
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlinVersion"
}
android {
namespace "org.microg.gms.ads.impl"
compileSdkVersion androidCompileSdk
buildToolsVersion "$androidBuildVersionTools"
defaultConfig {
versionName version
minSdkVersion androidMinSdk
targetSdkVersion androidTargetSdk
}
sourceSets {
main.java.srcDirs += 'src/main/kotlin'
}
compileOptions {
sourceCompatibility = 1.8
targetCompatibility = 1.8
}
kotlinOptions {
jvmTarget = 1.8
}
}
================================================
FILE: play-services-ads/core/src/main/AndroidManifest.xml
================================================
================================================
FILE: play-services-ads/core/src/main/java/com/google/android/gms/dynamite/descriptors/com/google/android/gms/ads/dynamite/ModuleDescriptor.java
================================================
/*
* SPDX-FileCopyrightText: 2023 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.dynamite.descriptors.com.google.android.gms.ads.dynamite;
import android.annotation.SuppressLint;
import android.content.Context;
import android.content.ContextWrapper;
import android.content.SharedPreferences;
import android.util.Log;
import androidx.annotation.Keep;
import java.util.Locale;
import static android.os.Build.DEVICE;
import static android.os.Build.DISPLAY;
import static android.os.Build.VERSION.RELEASE;
@Keep
public class ModuleDescriptor {
public static final String MODULE_ID = "com.google.android.gms.ads.dynamite";
public static final int MODULE_VERSION = 230500001;
private static final String TAG = "AdsDynamiteModule";
/**
* The ads module might try to access the user agent, requiring initialization on the main thread,
* which may result in deadlocks when invoked from any other thread. This only happens with microG,
* because we don't use the highly privileged SELinux Sandbox that regular Play Services uses
* (which allows apps to read the user-agent from Play Services instead of the WebView). To prevent
* the issue we pre-emptively write a user agent in the local storage of the app.
*/
public static void init(Context context) {
do {
try {
injectUserAgentSharedPreference(context);
} catch (Exception e) {
}
if (context instanceof ContextWrapper) {
Context baseContext = ((ContextWrapper) context).getBaseContext();
if (context == baseContext) break;
context = baseContext;
} else {
break;
}
} while (context != null);
}
/**
* @return A user-agent representing a browser on the current device.
*/
private static String buildDefaultUserAgent() {
StringBuilder sb = new StringBuilder();
sb.append("Mozilla/5.0 (Linux; U; Android");
if (RELEASE != null) sb.append(" ").append(RELEASE);
sb.append("; ").append(Locale.getDefault());
if (DEVICE != null) {
sb.append("; ").append(DEVICE);
if (DISPLAY != null) sb.append(" Build/").append(DISPLAY);
}
sb.append(") AppleWebKit/533 Version/4.0 Safari/533");
return sb.toString();
}
@SuppressLint("ApplySharedPref")
private static void injectUserAgentSharedPreference(Context context) {
SharedPreferences preferences = context.getSharedPreferences("admob_user_agent", Context.MODE_PRIVATE);
if (!preferences.contains("user_agent")) {
preferences.edit().putString("user_agent", buildDefaultUserAgent()).commit();
Log.d(TAG, "Injected admob_user_agent into package " + context.getPackageName());
}
}
}
================================================
FILE: play-services-ads/core/src/main/kotlin/org/microg/gms/ads/AdRequestService.kt
================================================
/*
* SPDX-FileCopyrightText: 2023 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package org.microg.gms.ads
import android.os.Bundle
import android.os.Parcel
import android.util.Log
import com.google.android.gms.ads.internal.ExceptionParcel
import com.google.android.gms.ads.internal.NonagonRequestParcel
import com.google.android.gms.ads.internal.request.IAdRequestService
import com.google.android.gms.ads.internal.request.INonagonStreamingResponseListener
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 org.microg.gms.BaseService
import org.microg.gms.common.GmsService
import org.microg.gms.common.PackageUtils
import org.microg.gms.utils.warnOnTransactionIssues
private const val TAG = "AdRequestService"
class AdRequestService : BaseService(TAG, GmsService.ADMOB) {
override fun handleServiceRequest(callback: IGmsCallbacks, request: GetServiceRequest, service: GmsService) {
val packageName = PackageUtils.getAndCheckCallingPackage(this, request.packageName)
?: throw IllegalArgumentException("Missing package name")
val binder = AdRequestServiceImpl().asBinder()
callback.onPostInitComplete(CommonStatusCodes.SUCCESS, binder, Bundle())
}
}
class AdRequestServiceImpl : IAdRequestService.Stub() {
override fun getAdRequest(request: NonagonRequestParcel, listener: INonagonStreamingResponseListener) {
Log.d(TAG, "getAdRequest")
listener.onException(ExceptionParcel().apply {
message = "Not supported"
code = CommonStatusCodes.INTERNAL_ERROR
})
}
override fun getSignals(request: NonagonRequestParcel, listener: INonagonStreamingResponseListener) {
Log.d(TAG, "getSignals")
listener.onException(ExceptionParcel().apply {
message = "Not supported"
code = CommonStatusCodes.INTERNAL_ERROR
})
}
override fun getUrlAndCacheKey(request: NonagonRequestParcel, listener: INonagonStreamingResponseListener) {
Log.d(TAG, "getUrlAndCacheKey")
listener.onException(ExceptionParcel().apply {
message = "Not supported"
code = CommonStatusCodes.INTERNAL_ERROR
})
}
override fun removeCacheUrl(key: String, listener: INonagonStreamingResponseListener) {
Log.d(TAG, "removeCacheUrl")
listener.onException(ExceptionParcel().apply {
message = "Not supported"
code = CommonStatusCodes.INTERNAL_ERROR
})
}
override fun onTransact(code: Int, data: Parcel, reply: Parcel?, flags: Int): Boolean = warnOnTransactionIssues(code, reply, flags, TAG) { super.onTransact(code, data, reply, flags) }
}
================================================
FILE: play-services-ads/src/main/AndroidManifest.xml
================================================
================================================
FILE: play-services-ads/src/main/aidl/com/google/android/gms/ads/internal/ExceptionParcel.aidl
================================================
package com.google.android.gms.ads.internal;
parcelable ExceptionParcel;
================================================
FILE: play-services-ads/src/main/aidl/com/google/android/gms/ads/internal/NonagonRequestParcel.aidl
================================================
package com.google.android.gms.ads.internal;
parcelable NonagonRequestParcel;
================================================
FILE: play-services-ads/src/main/aidl/com/google/android/gms/ads/internal/request/IAdRequestService.aidl
================================================
package com.google.android.gms.ads.internal.request;
import com.google.android.gms.ads.internal.NonagonRequestParcel;
import com.google.android.gms.ads.internal.request.INonagonStreamingResponseListener;
interface IAdRequestService {
void getAdRequest(in NonagonRequestParcel request, INonagonStreamingResponseListener listener) = 3;
void getSignals(in NonagonRequestParcel request, INonagonStreamingResponseListener listener) = 4;
void getUrlAndCacheKey(in NonagonRequestParcel request, INonagonStreamingResponseListener listener) = 5;
void removeCacheUrl(String key, INonagonStreamingResponseListener listener) = 6;
}
================================================
FILE: play-services-ads/src/main/aidl/com/google/android/gms/ads/internal/request/INonagonStreamingResponseListener.aidl
================================================
package com.google.android.gms.ads.internal.request;
import com.google.android.gms.ads.internal.ExceptionParcel;
interface INonagonStreamingResponseListener {
void onSuccess(in ParcelFileDescriptor fd);
void onException(in ExceptionParcel exception);
}
================================================
FILE: play-services-ads/src/main/java/com/google/android/gms/ads/internal/ExceptionParcel.java
================================================
/*
* SPDX-FileCopyrightText: 2023 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.ads.internal;
import org.microg.safeparcel.AutoSafeParcelable;
public class ExceptionParcel extends AutoSafeParcelable {
@Field(1)
public String message;
@Field(2)
public int code;
public static final Creator CREATOR = new AutoCreator<>(ExceptionParcel.class);
}
================================================
FILE: play-services-ads/src/main/java/com/google/android/gms/ads/internal/NonagonRequestParcel.java
================================================
/*
* SPDX-FileCopyrightText: 2023 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.ads.internal;
import org.microg.safeparcel.AutoSafeParcelable;
public class NonagonRequestParcel extends AutoSafeParcelable {
public static final Creator CREATOR = new AutoCreator<>(NonagonRequestParcel.class);
}
================================================
FILE: play-services-ads-base/build.gradle
================================================
/*
* SPDX-FileCopyrightText: 2023 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
apply plugin: 'com.android.library'
apply plugin: 'maven-publish'
apply plugin: 'signing'
android {
namespace "com.google.android.gms.ads_base"
compileSdkVersion androidCompileSdk
buildToolsVersion "$androidBuildVersionTools"
buildFeatures {
aidl = true
}
defaultConfig {
versionName version
minSdkVersion androidMinSdk
targetSdkVersion androidTargetSdk
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
apply from: '../gradle/publish-android.gradle'
description = 'microG implementation of play-services-ads-base'
dependencies {
api project(':play-services-basement')
}
================================================
FILE: play-services-ads-base/src/main/AndroidManifest.xml
================================================
================================================
FILE: play-services-ads-identifier/build.gradle
================================================
/*
* SPDX-FileCopyrightText: 2023 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
apply plugin: 'com.android.library'
apply plugin: 'maven-publish'
apply plugin: 'signing'
android {
namespace "com.google.android.gms.ads.identifier"
compileSdkVersion androidCompileSdk
buildToolsVersion "$androidBuildVersionTools"
buildFeatures {
aidl = true
}
defaultConfig {
versionName version
minSdkVersion androidMinSdk
targetSdkVersion androidTargetSdk
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
apply from: '../gradle/publish-android.gradle'
description = 'microG implementation of play-services-ads-identifier'
dependencies {
api project(':play-services-basement')
}
================================================
FILE: play-services-ads-identifier/core/build.gradle
================================================
/*
* SPDX-FileCopyrightText: 2023 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
apply plugin: 'com.android.library'
apply plugin: 'kotlin-android'
dependencies {
api project(':play-services-ads-identifier')
implementation project(':play-services-base-core')
}
android {
namespace "org.microg.gms.ads.identifier"
compileSdkVersion androidCompileSdk
buildToolsVersion "$androidBuildVersionTools"
defaultConfig {
versionName version
minSdkVersion androidMinSdk
targetSdkVersion androidTargetSdk
}
sourceSets {
main.java.srcDirs += 'src/main/kotlin'
}
compileOptions {
sourceCompatibility = 1.8
targetCompatibility = 1.8
}
kotlinOptions {
jvmTarget = 1.8
}
lintOptions {
disable 'MissingTranslation', 'GetLocales'
}
}
================================================
FILE: play-services-ads-identifier/core/src/main/AndroidManifest.xml
================================================
================================================
FILE: play-services-ads-identifier/core/src/main/kotlin/org/microg/gms/ads/identifier/AdvertisingIdService.kt
================================================
/*
* SPDX-FileCopyrightText: 2023 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package org.microg.gms.ads.identifier
import android.app.Service
import android.content.Context
import android.content.Intent
import android.content.pm.PackageManager
import android.os.Binder
import android.os.Bundle
import android.os.IBinder
import android.util.Log
import androidx.core.os.bundleOf
import com.google.android.gms.ads.identifier.internal.IAdvertisingIdService
import org.microg.gms.common.GooglePackagePermission
import org.microg.gms.common.PackageUtils
import java.util.UUID
const val TAG = "AdvertisingId"
const val EMPTY_AD_ID = "00000000-0000-0000-0000-000000000000"
class AdvertisingIdService : Service() {
override fun onBind(intent: Intent): IBinder? {
return AdvertisingIdServiceImpl(this).asBinder()
}
}
class MemoryAdvertisingIdConfiguration(context: Context) : AdvertisingIdConfiguration(context) {
override val adTrackingLimitedPerApp: MutableMap = hashMapOf()
override var adTrackingLimitedGlobally: Boolean = true
override var debugLogging: Boolean = false
override var adId: String = EMPTY_AD_ID
override var debugAdId: String = EMPTY_AD_ID
init {
resetAdvertisingId()
}
}
abstract class AdvertisingIdConfiguration(private val context: Context) {
abstract val adTrackingLimitedPerApp: MutableMap
abstract var adTrackingLimitedGlobally: Boolean
abstract var debugLogging: Boolean
abstract var adId: String
abstract var debugAdId: String
fun isAdTrackingLimitedForApp(uid: Int): Boolean {
if (adTrackingLimitedGlobally) return true
return adTrackingLimitedPerApp[uid] ?: false
}
fun resetAdvertisingId(): String {
adId = UUID.randomUUID().toString()
debugAdId = UUID.randomUUID().toString().dropLast(12) + "10ca1ad1abe1"
return if (debugLogging) debugAdId else adId
}
fun getAdvertisingIdForApp(uid: Int): String {
if (isAdTrackingLimitedForApp(uid)) return EMPTY_AD_ID
try {
val packageNames = context.packageManager.getPackagesForUid(uid) ?: return EMPTY_AD_ID
for (packageName in packageNames) {
val applicationInfo = context.packageManager.getApplicationInfo(packageName, 0)
if (applicationInfo.targetSdkVersion > 33) {
if (context.packageManager.checkPermission("com.google.android.gms.permission.AD_ID", packageName) == PackageManager.PERMISSION_DENIED) {
throw SecurityException("Permission not granted")
}
}
}
} catch (e: Exception) {
Log.w(TAG, "Permission check failed", e)
return EMPTY_AD_ID
}
val adId = if (debugLogging) debugAdId else adId
return adId.ifEmpty { resetAdvertisingId() }
}
}
class AdvertisingIdServiceImpl(private val context: Context) : IAdvertisingIdService.Stub() {
private val configuration = MemoryAdvertisingIdConfiguration(context)
override fun getAdvertisingId(): String {
return configuration.getAdvertisingIdForApp(Binder.getCallingUid())
}
override fun isAdTrackingLimited(ignored: Boolean): Boolean {
return configuration.isAdTrackingLimitedForApp(Binder.getCallingUid())
}
override fun resetAdvertisingId(packageName: String): String {
PackageUtils.checkPackageUid(context, packageName, getCallingUid())
PackageUtils.assertGooglePackagePermission(context, GooglePackagePermission.AD_ID)
return configuration.resetAdvertisingId()
}
override fun setAdTrackingLimitedGlobally(packageName: String, limited: Boolean) {
PackageUtils.checkPackageUid(context, packageName, getCallingUid())
PackageUtils.assertGooglePackagePermission(context, GooglePackagePermission.AD_ID)
configuration.adTrackingLimitedGlobally = limited
}
override fun setDebugLoggingEnabled(packageName: String, enabled: Boolean): String {
PackageUtils.checkPackageUid(context, packageName, getCallingUid())
PackageUtils.assertGooglePackagePermission(context, GooglePackagePermission.AD_ID)
configuration.debugLogging = enabled
return advertisingId
}
override fun isDebugLoggingEnabled(): Boolean {
return configuration.debugLogging
}
override fun isAdTrackingLimitedGlobally(): Boolean {
PackageUtils.assertGooglePackagePermission(context, GooglePackagePermission.AD_ID)
return configuration.adTrackingLimitedGlobally
}
override fun setAdTrackingLimitedForApp(uid: Int, limited: Boolean) {
PackageUtils.assertGooglePackagePermission(context, GooglePackagePermission.AD_ID)
configuration.adTrackingLimitedPerApp[uid] = limited
}
override fun resetAdTrackingLimitedForApp(uid: Int) {
PackageUtils.assertGooglePackagePermission(context, GooglePackagePermission.AD_ID)
configuration.adTrackingLimitedPerApp.remove(uid)
}
override fun getAllAppsLimitedAdTrackingConfiguration(): Bundle {
PackageUtils.assertGooglePackagePermission(context, GooglePackagePermission.AD_ID)
return bundleOf(*configuration.adTrackingLimitedPerApp.map { it.key.toString() to it.value }.toTypedArray())
}
override fun getAdvertisingIdForApp(uid: Int): String {
PackageUtils.assertGooglePackagePermission(context, GooglePackagePermission.AD_ID)
return configuration.getAdvertisingIdForApp(uid)
}
}
================================================
FILE: play-services-ads-identifier/core/src/main/res/values/strings.xml
================================================
Advertising ID Permission
Allows a publisher app to access a valid advertising ID directly or indirectly.
Advertising ID notification
Allows an app to receive a notification when the advertising ID or limit ad tracking preference of the user is updated.
================================================
FILE: play-services-ads-identifier/core/src/main/res/values-ar/strings.xml
================================================
إشعار مُعَرِّف الإعلان
إذن مُعَرِّف الإعلان
يتيح للتطبيق تلقي إشعار عند تحديث مُعَرِّف الإعلان أو تحديد تفضيلات تتبع الإعلانات للمستخدم.
يتيح لتطبيق الناشر بالوصول إلى مُعَرِّف إعلان صالح بشكل مباشر أو غير مباشر.
================================================
FILE: play-services-ads-identifier/core/src/main/res/values-ast/strings.xml
================================================
Permite qu\'una aplicación reciba un avisu al anovar la ID de publicidá o al llendar la preferencia de rastrexu publicitariu del usuariu.
Avisu d\'ID de publicidá
Permite que l\'aplicación d\'un espublizador acceda in/direutamente a una ID de publicidá.
Permisu d\'ID de publicidá
================================================
FILE: play-services-ads-identifier/core/src/main/res/values-az/strings.xml
================================================
Reklam ID İcazəsi
Dərc edici tətbiq birbaşa və ya dolayı yolla etibarlı reklam ID-ə keçid icazəsi verir.
Reklam ID bildirişi
İstifadəçinin reklam ID-i və ya reklam izləmə seçiminin məhdudlaşdırılması yeniləndikdə, tətbiqə bildiriş almaq icazəsi verir.
================================================
FILE: play-services-ads-identifier/core/src/main/res/values-be/strings.xml
================================================
Дазвол рэкламнага ідэнтыфікатара
Дазваляе выдаўцу дадатку прама ці ўскосна атрымліваць доступ да рэкламнага ідэнтыфікатара.
Апавяшчэнне рэкламнага ідэнтыфікатара
Дазваляе дадаткам атрымліваць апавяшчэнне калі рэкламны ідэнтыфікатар або перавага аб ліміце рэкламнай сачэння карыстальніка абноўленыя.
================================================
FILE: play-services-ads-identifier/core/src/main/res/values-bn/strings.xml
================================================
================================================
FILE: play-services-ads-identifier/core/src/main/res/values-ca/strings.xml
================================================
Permís d\'identificador de publicitat
Permet que una aplicació editorial accedeixi a un identificador de publicitat vàlid directa o indirectament.
Notificació d\'identificador de publicitat
Permet que una aplicació rebi una notificació quan s\'actualitza l\'identificador de publicitat o la preferència de limitació del seguiment d\'anuncis de l\'usuari.
================================================
FILE: play-services-ads-identifier/core/src/main/res/values-cs/strings.xml
================================================
Oprávnění k reklamnímu ID
Umožní vydavatelské aplikaci přímý nebo nepřímý přístup k platnému reklamnímu ID.
Oznámení o reklamním ID
Umožní aplikaci obdržet oznámení při aktualizaci reklamního ID nebo uživatelské předvolby omezení reklamního sledování.
================================================
FILE: play-services-ads-identifier/core/src/main/res/values-de/strings.xml
================================================
Erlaubt einer App, eine Benachrichtigung zu erhalten, wenn sich die Werbe-ID ändert oder der Nutzer das Tracking einschränkt.
Werbe-ID-Benachrichtigung
Erlaubt einer App, direkt oder indirekt, auf die Werbe-ID zuzugreifen.
Werbe-ID-Berechtigung
================================================
FILE: play-services-ads-identifier/core/src/main/res/values-eo/strings.xml
================================================
================================================
FILE: play-services-ads-identifier/core/src/main/res/values-es/strings.xml
================================================
Permiso de identificación publicitaria
Permite que una aplicación de editor acceda directa o indirectamente a un ID de publicidad válido.
Notificación del ID de publicidad
Permite que una aplicación reciba una notificación cuando se actualiza el ID de publicidad o la preferencia de limitar el seguimiento de anuncios del usuario.
================================================
FILE: play-services-ads-identifier/core/src/main/res/values-fa/strings.xml
================================================
مجوز شناسه آگهی
به یک برنامه ناشر اجازه میدهد تا به شیوه مستقیم یا غیرمستقیم به یک شناسه آگهی معتبر دسترسی پیدا کند.
آگاهساز شناسه آگهی
به یک برنامه اجازه میدهد تا هنگام بهروزرسانی شناسه آگهی یا تنظیمات ردیابی محدود آگهی کاربر، آگاهساز دریافت کند.
================================================
FILE: play-services-ads-identifier/core/src/main/res/values-fi/strings.xml
================================================
Sallii sovelluksen vastaanottaa ilmoituksen, kun käyttäjän mainostunnus tai mainonnan seurantaa rajoittava asetus päivitetään.
Mainostunnuslupa
Mainostunnusilmoitus
Mahdollistaa julkaisijasovellukselle pääsyn voimassa olevaan mainostunnukseen suoraan tai välillisesti.
================================================
FILE: play-services-ads-identifier/core/src/main/res/values-fil/strings.xml
================================================
Pahintulot ng Advertising ID
Nagbibigay-daan sa isang publisher app na mag-access ng wastong advertising ID nang direkta o hindi direkta.
Notification ng Advertising ID
Nagbibigay-daan sa isang app na makatanggap ng notification kapag na-update ang advertising ID o limitahan ang kagustuhan sa pagsubaybay sa ad ng user.
================================================
FILE: play-services-ads-identifier/core/src/main/res/values-fr/strings.xml
================================================
Permission de l\'identifiant publicitaire
Autorise une application affichant de la publicité à accéder directement ou indirectement à un identifiant publicitaire valide.
Notification de l\'identifiant publicitaire
Autorise une application à être notifiée de la modification de l\'identifiant publicitaire ou de la limitation du suivi publicitaire de l\'utilisateur.
================================================
FILE: play-services-ads-identifier/core/src/main/res/values-ga/strings.xml
================================================
Ligeann sé d’aip fógra a fháil nuair a nuashonraítear an t-aitheantas fógraíochta nó an rogha rianaithe teorann atá ag an úsáideoir.
Fógra aitheantais fógraíochta
Cead ID Fógraíochta
Ligeann sé d’aip foilsitheora rochtain a fháil ar aitheantas bailí fógraíochta go díreach nó go hindíreach.
================================================
FILE: play-services-ads-identifier/core/src/main/res/values-hu/strings.xml
================================================
Hirdetésazonosító engedély
Engedélyezi a kiadói alkalmazás számára, hogy közvetlenül vagy közvetve hozzáférjen egy érvényes hirdetési azonosítóhoz.
Hírdetésazonosító értesítés
================================================
FILE: play-services-ads-identifier/core/src/main/res/values-in/strings.xml
================================================
Memungkinkan aplikasi penerbit mengakses ID periklanan yang valid secara langsung atau tidak langsung.
Izin ID Periklanan
Pemberitahuan ID periklanan
Memungkinkan aplikasi menerima notifikasi ketika ID periklanan atau batas preferensi pelacakan iklan pengguna diperbarui.
================================================
FILE: play-services-ads-identifier/core/src/main/res/values-is/strings.xml
================================================
================================================
FILE: play-services-ads-identifier/core/src/main/res/values-it/strings.xml
================================================
Consente a un\'app di ricevere una notifica in caso di aggiornamento dell\'ID pubblicità o della preferenza dell\'utente relativa alla limitazione del tracciamento degli annunci.
Notifica sull\'ID pubblicità
Consente a un\'app dell\'autore di accedere direttamente o indirettamente a un ID pubblicità valido.
Autorizzazione accesso all\'ID pubblicità
================================================
FILE: play-services-ads-identifier/core/src/main/res/values-iw/strings.xml
================================================
התראה על מזהה פרסום
================================================
FILE: play-services-ads-identifier/core/src/main/res/values-ja/strings.xml
================================================
ユーザーの広告 ID またはトラッキング拒否設定が更新されたときに、アプリが通知を受信できるようにします。
広告 ID の通知
外部アプリが有効な広告 ID に直接的または間接的にアクセスできるようにします。
広告 ID の許可
================================================
FILE: play-services-ads-identifier/core/src/main/res/values-ko/strings.xml
================================================
광고 ID 권한
퍼블리셔 앱이 유효한 광고 ID에 직접 또는 간접적으로 접근할 수 있도록 합니다.
광고 ID 알림
사용자의 광고 ID 또는 광고 추적 제한 설정이 변경되면 앱이 알림을 받을 수 있습니다.
================================================
FILE: play-services-ads-identifier/core/src/main/res/values-lv/strings.xml
================================================
Reklāmas identifikatora atļauja
Ļauj lietotnes izdevējam tieši vai netieši piekļūt derīgam reklāmas identifikatoram.
Reklāmas identifikatora paziņojums
Ļauj informēt lietotni, ja mainās reklāmas identifikators vai lietotāja ierobežotie, iestatītie reklāmu izsekošanas iestatījumi.
================================================
FILE: play-services-ads-identifier/core/src/main/res/values-lzh/strings.xml
================================================
================================================
FILE: play-services-ads-identifier/core/src/main/res/values-ml/strings.xml
================================================
പരസ്യ ഐഡി അനുമതി
ഒരു പ്രസാധക ആപ്പിന് സാധുവായ ഒരു പരസ്യ ഐഡി നേരിട്ടോ അല്ലാതെയോ ആക്സസ് ചെയ്യാൻ അനുവദിക്കുന്നു.
പരസ്യ ഐഡി അറിയിപ്പ്
ഉപയോക്താവിന്റെ പരസ്യ ഐഡി അല്ലെങ്കിൽ പരസ്യ ട്രാക്കിംഗ് മുൻഗണന പരിമിതപ്പെടുത്തുമ്പോൾ ഒരു ആപ്പിന് അറിയിപ്പ് ലഭിക്കാൻ അനുവദിക്കുന്നു.
================================================
FILE: play-services-ads-identifier/core/src/main/res/values-nb-rNO/strings.xml
================================================
Tillatelse til reklame-ID
Lar en app få tilgang til en gyldig reklame-ID direkte eller indirekte.
Reklame-ID-varsling
Lar en app bli varslet når reklame-ID-en til brukeren eller innstillingene til denne oppdateres.
================================================
FILE: play-services-ads-identifier/core/src/main/res/values-nl/strings.xml
================================================
Staart een app om een bericht te ontvangen wanneer de reclame ID of de beperkte advertentie verkiesbaar is.
Adverteren van ID Permissie
Staart een uitgever app toe om toegang te krijgen tot een geldige advertentie ID direct of indirect.
Adverteren van ID-informatie
================================================
FILE: play-services-ads-identifier/core/src/main/res/values-pl/strings.xml
================================================
Umożliwia aplikacji otrzymywanie powiadomień w przypadku aktualizacji identyfikatora reklamowego lub ograniczenia preferencji śledzenia użytkownika w celach reklamowych.
Powiadomienie o indentyfikatorze reklamowym
Umożliwia wydawcy aplikacji na bezpośredni lub pośredni dostęp do ważnego identyfikatora reklamowego.
Pozwolenie na używanie identyfikatora reklamowego
================================================
FILE: play-services-ads-identifier/core/src/main/res/values-pt/strings.xml
================================================
Permissão do ID de publicidade
Permite que a app de publicação aceda um ID de publicidade válido direta ou indireto.
Notificação do ID de publicidade
Permite que uma app receba uma notificação quando o ID de publicidade muda ou a configuração de limitação de rastreamento de anúncios do utilizador muda.
================================================
FILE: play-services-ads-identifier/core/src/main/res/values-pt-rBR/strings.xml
================================================
Permissão do ID de publicidade
Permite que o app publicante acesse um ID de publicidade válido diretamente ou indiretamente.
Notificação do ID de publicidade
Permite que um app receba uma notificação quando o ID de publicidade muda ou a configuração de limitação de rastreamento de anúncios do usuário muda.
================================================
FILE: play-services-ads-identifier/core/src/main/res/values-ro/strings.xml
================================================
Permite unei aplicații să primească o notificare atunci când ID-ul de publicitate sau preferința limitată de urmărire a anunțurilor a utilizatorului este actualizată.
Notificare de identificare publicitară
Permite unei aplicații de editor să acceseze direct sau indirect un ID de publicitate valid.
Permisiune de identificare publicitară
================================================
FILE: play-services-ads-identifier/core/src/main/res/values-ru/strings.xml
================================================
Разрешает приложению получать уведомление когда рекламный идентификатор или предпочтение о лимите рекламной слежки пользователя обновлены.
Разрешение рекламного идентификатора
Разрешает издателю приложения прямо или косвенно получать доступ к рекламному идентификатору.
Уведомление рекламного идентификатора
================================================
FILE: play-services-ads-identifier/core/src/main/res/values-sl/strings.xml
================================================
================================================
FILE: play-services-ads-identifier/core/src/main/res/values-sr/strings.xml
================================================
Обавештење за ID оглашавања
Дозвољава апликацији објављивача да директно или индиректно приступи важећем ID-у оглашавања.
Дозвола за ID оглашавања
Дозвољава апликацији да прими обавештење када се ажурира ID оглашавања или ограничење праћења огласа корисника.
================================================
FILE: play-services-ads-identifier/core/src/main/res/values-sv/strings.xml
================================================
Tillåter en app att ta emot ett meddelande när annons-ID eller begränsad annonsspårningsinställning för användaren uppdateras.
Annons-ID-avisering
Tillåter en app att få tillgång till ett giltigt annons-ID direkt eller indirekt.
Behörighet för annons-ID
================================================
FILE: play-services-ads-identifier/core/src/main/res/values-ta/strings.xml
================================================
விளம்பர அடையாளம் அறிவிப்பு
விளம்பர அடையாளம் அல்லது பயனரின் விளம்பர கண்காணிப்பு விருப்பம் புதுப்பிக்கப்படும்போது ஒரு பயன்பாட்டை அறிவிப்பைப் பெற அனுமதிக்கிறது.
விளம்பர அடையாளம் இசைவு
சரியான விளம்பர அடையளத்தை நேரடியாகவோ அல்லது மறைமுகமாகவோ அணுக ஒரு வெளியீட்டாளர் பயன்பாட்டை அனுமதிக்கிறது.
================================================
FILE: play-services-ads-identifier/core/src/main/res/values-th/strings.xml
================================================
การอนุญาต ID โฆษณา
การแจ้งเตือน รหัสประจำตัวของโฆษณา
อนุญาตให้แอปของผู้เผยแพร่เข้าถึง ID โฆษณาที่ถูกต้องได้โดยตรงหรือโดยอ้อม
อนุญาตให้แอปรับการแจ้งเตือนเมื่อมีการอัปเดต รหัสประจำตัวของโฆษณา หรือ การตั้งค่าการติดตามโฆษณาของผู้ใช้
================================================
FILE: play-services-ads-identifier/core/src/main/res/values-tr/strings.xml
================================================
Reklam kimliği izni
Reklam kimliği bildirimi
Bir uygulamanın, kullanıcının reklam takibini kısıtlama ayarını veya reklam kimliğini değiştirdiğinde bildirim almasına izin verir.
Bir uygulamanın geçerli bir reklam kimliğine doğrudan veya dolaylı olarak erişmesine izin verir.
================================================
FILE: play-services-ads-identifier/core/src/main/res/values-ug/strings.xml
================================================
ئېلان كىملىك ئۇقتۇرۇشى
ئېلان كىملىك ئىجازىتى
ئەپنىڭ ئىشلەتكۈچى ئېلان كىملىكى ياكى ئېلان ئىزلاشنى چەكلەش مايىللىقى ئۆزگەرگەندە ئۇقتۇرۇش تاپشۇرۇۋېلىشىغا يول قويىدۇ.
تارقاتقۇچىنىڭ ئەپىنىڭ بىۋاسىتە ياكى ۋاسىتىلىك ھالدا ئېلان كىملىكىنى زىيارەت قىلىشىغا يول قويىدۇ.
================================================
FILE: play-services-ads-identifier/core/src/main/res/values-uk/strings.xml
================================================
Дозволяє програмі отримувати сповіщення, коли рекламний ідентифікатор або обмеження налаштувань відстеження реклами користувача оновлюється.
Сповіщення рекламного ідентифікатора
Дозволяє застосунку видавця отримувати доступ до дійсного рекламного ідентифікатор прямо або опосередковано.
Дозвіл на рекламний ідентифікатор
================================================
FILE: play-services-ads-identifier/core/src/main/res/values-vi/strings.xml
================================================
Cho phép một ứng dụng nhận thông báo khi ID quảng cáo hoặc tùy chọn giới hạn theo dõi quảng cáo của người dùng được cập nhật.
Quyền truy cập ID quảng cáo
Thông báo về ID quảng cáo
Cho phép ứng dụng của nhà phát hành truy cập trực tiếp hoặc gián tiếp vào ID quảng cáo hợp lệ.
================================================
FILE: play-services-ads-identifier/core/src/main/res/values-zh-rCN/strings.xml
================================================
广告 ID 权限
允许发布者应用直接或间接地访问广告 ID。
广告 ID 通知
允许应用在用户的广告 ID 或限制广告跟踪设置更改时接收通知。
================================================
FILE: play-services-ads-identifier/core/src/main/res/values-zh-rTW/strings.xml
================================================
廣告 ID 權限
廣告 ID 通知
允許應用程式在使用者更新廣告 ID 或限制廣告追蹤設定時收到通知。
允許發布商應用程式直接或間接存取有效的廣告 ID。
================================================
FILE: play-services-ads-identifier/src/main/AndroidManifest.xml
================================================
================================================
FILE: play-services-ads-identifier/src/main/aidl/com/google/android/gms/ads/identifier/internal/IAdvertisingIdService.aidl
================================================
package com.google.android.gms.ads.identifier.internal;
import android.os.Bundle;
interface IAdvertisingIdService {
String getAdvertisingId() = 0;
boolean isAdTrackingLimited(boolean ignored) = 1;
String resetAdvertisingId(String packageName) = 2;
void setAdTrackingLimitedGlobally(String packageName, boolean limited) = 3;
String setDebugLoggingEnabled(String packageName, boolean enabled) = 4;
boolean isDebugLoggingEnabled() = 5;
boolean isAdTrackingLimitedGlobally() = 6;
void setAdTrackingLimitedForApp(int uid, boolean limited) = 7;
void resetAdTrackingLimitedForApp(int uid) = 8;
Bundle getAllAppsLimitedAdTrackingConfiguration() = 9; // Map packageName -> Boolean
String getAdvertisingIdForApp(int uid) = 10;
}
================================================
FILE: play-services-ads-identifier/src/main/java/com/google/android/gms/ads/identifier/AdvertisingIdClient.java
================================================
/*
* SPDX-FileCopyrightText: 2023 microG Project Team
* SPDX-License-Identifier: Apache-2.0
* Notice: Portions of this file are reproduced from work created and shared by Google and used
* according to terms described in the Creative Commons 4.0 Attribution License.
* See https://developers.google.com/readme/policies for details.
*/
package com.google.android.gms.ads.identifier;
import android.app.Activity;
import android.content.Context;
import android.provider.Settings;
import com.google.android.gms.common.GooglePlayServicesNotAvailableException;
import com.google.android.gms.common.GooglePlayServicesRepairableException;
import java.io.IOException;
/**
* Helper library for retrieval of advertising ID and related information such as the limit ad tracking setting.
*
* It is intended that the advertising ID completely replace existing usage of other identifiers for ads purposes (such as use
* of {@code ANDROID_ID} in {@link Settings.Secure}) when Google Play Services is available. Cases where Google Play Services is
* unavailable are indicated by a {@link GooglePlayServicesNotAvailableException} being thrown by getAdvertisingIdInfo().
*/
public class AdvertisingIdClient {
/**
* Retrieves the user's advertising ID and limit ad tracking preference.
*
* This method cannot be called in the main thread as it may block leading to ANRs. An {@code IllegalStateException} will be
* thrown if this is called on the main thread.
*
* @param context Current {@link Context} (such as the current {@link Activity}).
* @return AdvertisingIdClient.Info with user's advertising ID and limit ad tracking preference.
* @throws IOException signaling connection to Google Play Services failed.
* @throws IllegalStateException indicating this method was called on the main thread.
* @throws GooglePlayServicesNotAvailableException indicating that Google Play is not installed on this device.
* @throws GooglePlayServicesRepairableException indicating that there was a recoverable error connecting to Google Play Services.
*/
public static Info getAdvertisingIdInfo(Context context) {
// We don't actually implement this functionality, but always claim that ad tracking was limited by user preference
return new Info("00000000-0000-0000-0000-000000000000", true);
}
/**
* Includes both the advertising ID as well as the limit ad tracking setting.
*/
public static class Info {
private final String advertisingId;
private final boolean limitAdTrackingEnabled;
/**
* Constructs an {@code Info} Object with the specified advertising Id and limit ad tracking setting.
*
* @param advertisingId The advertising ID.
* @param limitAdTrackingEnabled The limit ad tracking setting. It is true if the user has limit ad tracking enabled. False, otherwise.
*/
public Info(String advertisingId, boolean limitAdTrackingEnabled) {
this.advertisingId = advertisingId;
this.limitAdTrackingEnabled = limitAdTrackingEnabled;
}
/**
* Retrieves the advertising ID.
*/
public String getId() {
return advertisingId;
}
/**
* Retrieves whether the user has limit ad tracking enabled or not.
*
* When the returned value is true, the returned value of {@link #getId()} will always be
* {@code 00000000-0000-0000-0000-000000000000} starting with Android 12.
*/
public boolean isLimitAdTrackingEnabled() {
return limitAdTrackingEnabled;
}
}
}
================================================
FILE: play-services-ads-identifier/src/main/java/com/google/android/gms/ads/identifier/package-info.java
================================================
/*
* SPDX-FileCopyrightText: 2022 microG Project Team
* SPDX-License-Identifier: CC-BY-4.0
* Notice: Portions of this file are reproduced from work created and shared by Google and used
* according to terms described in the Creative Commons 4.0 Attribution License.
* See https://developers.google.com/readme/policies for details.
*/
/**
* Contains classes relating to the Android Advertising ID (AAID).
*/
package com.google.android.gms.ads.identifier;
================================================
FILE: play-services-ads-lite/build.gradle
================================================
/*
* SPDX-FileCopyrightText: 2023 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
apply plugin: 'com.android.library'
apply plugin: 'maven-publish'
apply plugin: 'signing'
android {
namespace "com.google.android.gms.ads"
compileSdkVersion androidCompileSdk
buildToolsVersion "$androidBuildVersionTools"
buildFeatures {
aidl = true
}
defaultConfig {
versionName version
minSdkVersion androidMinSdk
targetSdkVersion androidTargetSdk
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
apply from: '../gradle/publish-android.gradle'
description = 'microG implementation of play-services-ads-lite'
dependencies {
api 'androidx.work:work-runtime:2.7.0'
api project(':play-services-ads-base')
api project(':play-services-basement')
// api project(':play-services-measurement-sdk-api')
// api project(':user-messaging-platform')
}
================================================
FILE: play-services-ads-lite/core/build.gradle
================================================
/*
* SPDX-FileCopyrightText: 2023 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
apply plugin: 'com.android.library'
apply plugin: 'kotlin-android'
dependencies {
api project(':play-services-ads-lite')
implementation project(':play-services-base-core')
}
android {
namespace "org.microg.gms.ads"
compileSdkVersion androidCompileSdk
buildToolsVersion "$androidBuildVersionTools"
defaultConfig {
versionName version
minSdkVersion androidMinSdk
targetSdkVersion androidTargetSdk
}
sourceSets {
main.java.srcDirs += 'src/main/kotlin'
}
compileOptions {
sourceCompatibility = 1.8
targetCompatibility = 1.8
}
kotlinOptions {
jvmTarget = 1.8
}
}
================================================
FILE: play-services-ads-lite/core/src/main/AndroidManifest.xml
================================================
================================================
FILE: play-services-ads-lite/core/src/main/kotlin/com/google/android/gms/ads/AdLoaderBuilderCreatorImpl.kt
================================================
/*
* SPDX-FileCopyrightText: 2023 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.ads
import android.os.IBinder
import android.os.Parcel
import android.util.Log
import androidx.annotation.Keep
import com.google.android.gms.ads.internal.client.IAdLoaderBuilderCreator
import com.google.android.gms.ads.internal.mediation.client.IAdapterCreator
import com.google.android.gms.dynamic.IObjectWrapper
import org.microg.gms.utils.warnOnTransactionIssues
private const val TAG = "AdLoaderBuilder"
@Keep
class AdLoaderBuilderCreatorImpl : IAdLoaderBuilderCreator.Stub() {
override fun newAdLoaderBuilder(context: IObjectWrapper?, adUnitId: String, adapterCreator: IAdapterCreator?, clientVersion: Int): IBinder? {
Log.d(TAG, "newAdLoaderBuilder: adUnitId=$adUnitId clientVersion=$clientVersion")
return null
}
override fun onTransact(code: Int, data: Parcel, reply: Parcel?, flags: Int): Boolean = warnOnTransactionIssues(code, reply, flags, TAG) { super.onTransact(code, data, reply, flags) }
}
================================================
FILE: play-services-ads-lite/core/src/main/kotlin/com/google/android/gms/ads/AdManagerCreatorImpl.kt
================================================
/*
* SPDX-FileCopyrightText: 2023 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.ads
import android.os.Parcel
import androidx.annotation.Keep
import org.microg.gms.utils.warnOnTransactionIssues
private const val TAG = "AdManager"
@Keep
class AdManagerCreatorImpl : AdManagerCreator.Stub() {
override fun onTransact(code: Int, data: Parcel, reply: Parcel?, flags: Int): Boolean =
warnOnTransactionIssues(code, reply, flags, TAG) { super.onTransact(code, data, reply, flags) }
}
================================================
FILE: play-services-ads-lite/core/src/main/kotlin/com/google/android/gms/ads/MobileAdsSettingManagerCreatorImpl.kt
================================================
/*
* SPDX-FileCopyrightText: 2023 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.ads
import android.content.Context
import android.os.IBinder
import android.os.Parcel
import android.util.Log
import androidx.annotation.Keep
import com.google.android.gms.ads.internal.client.IMobileAdsSettingManagerCreator
import com.google.android.gms.dynamic.IObjectWrapper
import com.google.android.gms.dynamic.ObjectWrapper
import org.microg.gms.ads.MobileAdsSettingManagerImpl
import org.microg.gms.utils.warnOnTransactionIssues
private const val TAG = "AdsSettingManager"
@Keep
class MobileAdsSettingManagerCreatorImpl : IMobileAdsSettingManagerCreator.Stub() {
override fun getMobileAdsSettingManager(context: IObjectWrapper?, clientVersion: Int): IBinder {
Log.d(TAG, "getMobileAdsSettingManager($clientVersion)")
return MobileAdsSettingManagerImpl(ObjectWrapper.unwrap(context) as Context)
}
override fun onTransact(code: Int, data: Parcel, reply: Parcel?, flags: Int): Boolean = warnOnTransactionIssues(code, reply, flags, TAG) { super.onTransact(code, data, reply, flags) }
}
================================================
FILE: play-services-ads-lite/core/src/main/kotlin/com/google/android/gms/ads/measurement/DynamiteMeasurementManager.kt
================================================
/*
* SPDX-FileCopyrightText: 2023 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.ads.measurement
import android.os.Parcel
import android.util.Log
import androidx.annotation.Keep
import com.google.android.gms.dynamic.IObjectWrapper
import org.microg.gms.utils.warnOnTransactionIssues
private const val TAG = "DynamiteMeasurement"
@Keep
class DynamiteMeasurementManager : IMeasurementManager.Stub() {
override fun initialize(context: IObjectWrapper?, proxy: IAppMeasurementProxy?) {
Log.d(TAG, "Not yet implemented: initialize")
}
override fun onTransact(code: Int, data: Parcel, reply: Parcel?, flags: Int): Boolean =
warnOnTransactionIssues(code, reply, flags, TAG) { super.onTransact(code, data, reply, flags) }
}
================================================
FILE: play-services-ads-lite/core/src/main/kotlin/com/google/android/gms/ads/rewarded/ChimeraRewardedAdCreatorImpl.kt
================================================
/*
* SPDX-FileCopyrightText: 2023 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.ads.rewarded
import android.content.Context
import android.os.IBinder
import android.util.Log
import androidx.annotation.Keep
import com.google.android.gms.ads.internal.mediation.client.IAdapterCreator
import com.google.android.gms.ads.internal.rewarded.client.IRewardedAdCreator
import com.google.android.gms.dynamic.IObjectWrapper
import com.google.android.gms.dynamic.ObjectWrapper
import org.microg.gms.ads.rewarded.RewardedAdImpl
private const val TAG = "RewardedAd"
@Keep
class ChimeraRewardedAdCreatorImpl : IRewardedAdCreator.Stub() {
override fun newRewardedAd(context: IObjectWrapper, str: String, adapterCreator: IAdapterCreator, clientVersion: Int): IBinder {
Log.d(TAG, "newRewardedAd($str, $clientVersion)")
return RewardedAdImpl(ObjectWrapper.unwrap(context) as Context?, str, adapterCreator, clientVersion)
}
}
================================================
FILE: play-services-ads-lite/core/src/main/kotlin/org/microg/gms/ads/MobileAdsSettingManagerImpl.kt
================================================
/*
* SPDX-FileCopyrightText: 2023 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package org.microg.gms.ads
import android.content.Context
import android.os.Handler
import android.os.Looper
import android.os.Parcel
import android.os.RemoteException
import android.util.Log
import com.google.android.gms.ads.internal.AdapterStatusParcel
import com.google.android.gms.ads.internal.RequestConfigurationParcel
import com.google.android.gms.ads.internal.client.IMobileAdsSettingManager
import com.google.android.gms.ads.internal.client.IOnAdInspectorClosedListener
import com.google.android.gms.ads.internal.initialization.IInitializationCallback
import com.google.android.gms.ads.internal.mediation.client.IAdapterCreator
import com.google.android.gms.dynamic.IObjectWrapper
import org.microg.gms.utils.warnOnTransactionIssues
private const val TAG = "AdsSettingManager"
class MobileAdsSettingManagerImpl(private val context: Context?) : IMobileAdsSettingManager.Stub() {
private var initialized = false
private val initializationCallbacks = mutableListOf()
private var muted = false
private var volume = 1.0f
override fun initialize() {
Log.d(TAG, "initialize")
if (initialized) return
initialized = true
for (callback in initializationCallbacks) {
runCatching { callback.onInitialized(emptyList()) }
}
}
override fun setAppVolume(volume: Float) {
this.volume = volume
}
override fun fetchAppSettings(appId: String?) {
fetchAppSettingsV2(appId, null)
}
override fun setAppMuted(muted: Boolean) {
this.muted = muted
}
override fun openDebugMenu(context: IObjectWrapper?, adUnitId: String?) {
Log.d(TAG, "openDebugMenu($adUnitId)")
}
override fun fetchAppSettingsV2(appId: String?, runnable: IObjectWrapper?) {
Log.d(TAG, "fetchAppSettings($appId)")
}
override fun getAdVolume(): Float {
return volume
}
override fun isAdMuted(): Boolean {
return muted
}
override fun getVersionString(): String {
return ""
}
override fun registerRtbAdapter(className: String?) {
Log.d(TAG, "registerRtbAdapter($className)")
}
override fun setAdapterCreator(iAdapterCreator: IAdapterCreator?) {
Log.d(TAG, "Not yet implemented: setAdapterCreator")
}
override fun addInitializationCallback(callback: IInitializationCallback?) {
Log.d(TAG, "addInitializationCallback")
callback?.let { initializationCallbacks.add(it) }
}
override fun getAdapterStatus(): List {
Log.d(TAG, "getAdapterStatus")
return arrayListOf(AdapterStatusParcel("com.google.android.gms.ads.MobileAds", true, 0, "Dummy"))
}
override fun setRequestConfiguration(configuration: RequestConfigurationParcel?) {
Log.d(TAG, "setRequestConfiguration")
}
override fun disableMediationAdapterInitialization() {
Log.d(TAG, "disableMediationAdapterInitialization")
}
override fun openAdInspector(listener: IOnAdInspectorClosedListener?) {
Log.d(TAG, "openAdInspector")
}
override fun enableSameAppKey(enabled: Boolean) {
Log.d(TAG, "enableSameAppKey($enabled)")
}
override fun setPlugin(plugin: String?) {
Log.d(TAG, "setPlugin($plugin)")
}
override fun onTransact(code: Int, data: Parcel, reply: Parcel?, flags: Int): Boolean = warnOnTransactionIssues(code, reply, flags, TAG) { super.onTransact(code, data, reply, flags) }
}
================================================
FILE: play-services-ads-lite/core/src/main/kotlin/org/microg/gms/ads/rewarded/ResponseInfoImpl.kt
================================================
/*
* SPDX-FileCopyrightText: 2023 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package org.microg.gms.ads.rewarded
import android.os.Bundle
import android.util.Log
import com.google.android.gms.ads.internal.AdapterResponseInfoParcel
import com.google.android.gms.ads.internal.client.IResponseInfo
private const val TAG = "RewardedAdResponseInfo"
class ResponseInfoImpl : IResponseInfo.Stub() {
override fun getMediationAdapterClassName(): String? {
Log.d(TAG, "getMediationAdapterClassName")
return null
}
override fun getResponseId(): String? {
Log.d(TAG, "getResponseId")
return null
}
override fun getAdapterResponseInfo(): List {
Log.d(TAG, "getAdapterResponseInfo")
return arrayListOf()
}
override fun getLoadedAdapterResponse(): AdapterResponseInfoParcel? {
Log.d(TAG, "getLoadedAdapterResponse")
return null
}
override fun getResponseExtras(): Bundle {
Log.d(TAG, "getResponseExtras")
return Bundle()
}
}
================================================
FILE: play-services-ads-lite/core/src/main/kotlin/org/microg/gms/ads/rewarded/RewardedAdImpl.kt
================================================
/*
* SPDX-FileCopyrightText: 2023 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package org.microg.gms.ads.rewarded
import android.content.Context
import android.os.Bundle
import android.os.Handler
import android.os.Looper
import android.os.RemoteException
import android.util.Log
import com.google.android.gms.ads.internal.AdErrorParcel
import com.google.android.gms.ads.internal.AdRequestParcel
import com.google.android.gms.ads.internal.ServerSideVerificationOptionsParcel
import com.google.android.gms.ads.internal.client.IOnAdMetadataChangedListener
import com.google.android.gms.ads.internal.client.IOnPaidEventListener
import com.google.android.gms.ads.internal.client.IResponseInfo
import com.google.android.gms.ads.internal.mediation.client.IAdapterCreator
import com.google.android.gms.ads.internal.rewarded.client.*
import com.google.android.gms.common.api.CommonStatusCodes
import com.google.android.gms.dynamic.IObjectWrapper
private const val TAG = "RewardedAd"
class RewardedAdImpl(context: Context?, str: String?, adapterCreator: IAdapterCreator?, clientVersion: Int) : IRewardedAd.Stub() {
private var immersive: Boolean = false
private fun load(request: AdRequestParcel, callback: IRewardedAdLoadCallback, interstitial: Boolean) {
Handler(Looper.getMainLooper()).post {
try {
callback.onAdLoadError(AdErrorParcel().apply { code = CommonStatusCodes.INTERNAL_ERROR; message = "Not supported" })
} catch (e: RemoteException) {
Log.w(TAG, e)
}
}
}
override fun load(request: AdRequestParcel, callback: IRewardedAdLoadCallback) {
Log.d(TAG, "load")
load(request, callback, false)
}
override fun setCallback(callback: IRewardedAdCallback) {
Log.d(TAG, "setCallback")
}
override fun canBeShown(): Boolean {
Log.d(TAG, "canBeShown")
return false
}
override fun getMediationAdapterClassName(): String {
Log.d(TAG, "getMediationAdapterClassName")
return responseInfo.mediationAdapterClassName
}
override fun show(activity: IObjectWrapper) {
Log.d(TAG, "show")
showWithImmersive(activity, immersive)
}
override fun setRewardedAdSkuListener(listener: IRewardedAdSkuListener?) {
Log.d(TAG, "setRewardedAdSkuListener")
}
override fun setServerSideVerificationOptions(options: ServerSideVerificationOptionsParcel) {
Log.d(TAG, "setServerSideVerificationOptions")
}
override fun setOnAdMetadataChangedListener(listener: IOnAdMetadataChangedListener) {
Log.d(TAG, "setOnAdMetadataChangedListener")
}
override fun getAdMetadata(): Bundle {
Log.d(TAG, "getAdMetadata")
return Bundle()
}
override fun showWithImmersive(activity: IObjectWrapper?, immersive: Boolean) {
Log.d(TAG, "showWithBoolean")
}
override fun getRewardItem(): IRewardItem? {
Log.d(TAG, "getRewardItem")
return null
}
override fun getResponseInfo(): IResponseInfo {
Log.d(TAG, "getResponseInfo")
return ResponseInfoImpl()
}
override fun setOnPaidEventListener(listener: IOnPaidEventListener) {
Log.d(TAG, "setOnPaidEventListener")
}
override fun loadInterstitial(request: AdRequestParcel, callback: IRewardedAdLoadCallback) {
Log.d(TAG, "loadInterstitial")
load(request, callback, true)
}
override fun setImmersiveMode(enabled: Boolean) {
Log.d(TAG, "setImmersiveMode($enabled)")
}
}
================================================
FILE: play-services-ads-lite/src/main/AndroidManifest.xml
================================================
================================================
FILE: play-services-ads-lite/src/main/aidl/com/google/android/gms/ads/AdManagerCreator.aidl
================================================
package com.google.android.gms.ads;
interface AdManagerCreator {
}
================================================
FILE: play-services-ads-lite/src/main/aidl/com/google/android/gms/ads/internal/AdErrorParcel.aidl
================================================
package com.google.android.gms.ads.internal;
parcelable AdErrorParcel;
================================================
FILE: play-services-ads-lite/src/main/aidl/com/google/android/gms/ads/internal/AdRequestParcel.aidl
================================================
package com.google.android.gms.ads.internal;
parcelable AdRequestParcel;
================================================
FILE: play-services-ads-lite/src/main/aidl/com/google/android/gms/ads/internal/AdapterResponseInfoParcel.aidl
================================================
package com.google.android.gms.ads.internal;
parcelable AdapterResponseInfoParcel;
================================================
FILE: play-services-ads-lite/src/main/aidl/com/google/android/gms/ads/internal/AdapterStatusParcel.aidl
================================================
package com.google.android.gms.ads.internal;
parcelable AdapterStatusParcel;
================================================
FILE: play-services-ads-lite/src/main/aidl/com/google/android/gms/ads/internal/RequestConfigurationParcel.aidl
================================================
package com.google.android.gms.ads.internal;
parcelable RequestConfigurationParcel;
================================================
FILE: play-services-ads-lite/src/main/aidl/com/google/android/gms/ads/internal/ServerSideVerificationOptionsParcel.aidl
================================================
package com.google.android.gms.ads.internal;
parcelable ServerSideVerificationOptionsParcel;
================================================
FILE: play-services-ads-lite/src/main/aidl/com/google/android/gms/ads/internal/client/IAdLoaderBuilderCreator.aidl
================================================
package com.google.android.gms.ads.internal.client;
import com.google.android.gms.ads.internal.mediation.client.IAdapterCreator;
import com.google.android.gms.dynamic.IObjectWrapper;
interface IAdLoaderBuilderCreator {
IBinder newAdLoaderBuilder(IObjectWrapper context, String adUnitId, IAdapterCreator adapterCreator, int clientVersion);
}
================================================
FILE: play-services-ads-lite/src/main/aidl/com/google/android/gms/ads/internal/client/IMobileAdsSettingManager.aidl
================================================
package com.google.android.gms.ads.internal.client;
import com.google.android.gms.ads.internal.AdapterStatusParcel;
import com.google.android.gms.ads.internal.RequestConfigurationParcel;
import com.google.android.gms.ads.internal.client.IOnAdInspectorClosedListener;
import com.google.android.gms.ads.internal.initialization.IInitializationCallback;
import com.google.android.gms.ads.internal.mediation.client.IAdapterCreator;
import com.google.android.gms.dynamic.IObjectWrapper;
interface IMobileAdsSettingManager {
void initialize() = 0;
void setAppVolume(float volume) = 1;
void fetchAppSettings(String appId) = 2;
void setAppMuted(boolean muted) = 3;
void openDebugMenu(IObjectWrapper context, String adUnitId) = 4;
void fetchAppSettingsV2(String appId, IObjectWrapper runnable) = 5;
float getAdVolume() = 6;
boolean isAdMuted() = 7;
String getVersionString() = 8;
void registerRtbAdapter(String className) = 9;
void setAdapterCreator(IAdapterCreator iAdapterCreator) = 10;
void addInitializationCallback(IInitializationCallback callback) = 11;
List getAdapterStatus() = 12;
void setRequestConfiguration(in RequestConfigurationParcel configuration) = 13;
void disableMediationAdapterInitialization() = 14;
void openAdInspector(IOnAdInspectorClosedListener listener) = 15;
void enableSameAppKey(boolean enabled) = 16;
void setPlugin(String plugin) = 17;
}
================================================
FILE: play-services-ads-lite/src/main/aidl/com/google/android/gms/ads/internal/client/IMobileAdsSettingManagerCreator.aidl
================================================
package com.google.android.gms.ads.internal.client;
import com.google.android.gms.dynamic.IObjectWrapper;
interface IMobileAdsSettingManagerCreator {
IBinder getMobileAdsSettingManager(IObjectWrapper context, int clientVersion);
}
================================================
FILE: play-services-ads-lite/src/main/aidl/com/google/android/gms/ads/internal/client/IOnAdInspectorClosedListener.aidl
================================================
package com.google.android.gms.ads.internal.client;
import com.google.android.gms.ads.internal.AdErrorParcel;
interface IOnAdInspectorClosedListener {
void onAdInspectorClosed(in @nullable AdErrorParcel adErrorParcel);
}
================================================
FILE: play-services-ads-lite/src/main/aidl/com/google/android/gms/ads/internal/client/IOnAdMetadataChangedListener.aidl
================================================
package com.google.android.gms.ads.internal.client;
import com.google.android.gms.ads.internal.AdErrorParcel;
interface IOnAdMetadataChangedListener {
}
================================================
FILE: play-services-ads-lite/src/main/aidl/com/google/android/gms/ads/internal/client/IOnPaidEventListener.aidl
================================================
package com.google.android.gms.ads.internal.client;
import com.google.android.gms.ads.internal.AdErrorParcel;
interface IOnPaidEventListener {
}
================================================
FILE: play-services-ads-lite/src/main/aidl/com/google/android/gms/ads/internal/client/IResponseInfo.aidl
================================================
package com.google.android.gms.ads.internal.client;
import com.google.android.gms.ads.internal.AdapterResponseInfoParcel;
interface IResponseInfo {
String getMediationAdapterClassName() = 0;
String getResponseId() = 1;
List getAdapterResponseInfo() = 2;
AdapterResponseInfoParcel getLoadedAdapterResponse() = 3;
Bundle getResponseExtras() = 4;
}
================================================
FILE: play-services-ads-lite/src/main/aidl/com/google/android/gms/ads/internal/initialization/IInitializationCallback.aidl
================================================
package com.google.android.gms.ads.internal.initialization;
import com.google.android.gms.ads.internal.AdapterStatusParcel;
interface IInitializationCallback {
void onInitialized(in List status);
}
================================================
FILE: play-services-ads-lite/src/main/aidl/com/google/android/gms/ads/internal/mediation/client/IAdapterCreator.aidl
================================================
package com.google.android.gms.ads.internal.mediation.client;
interface IAdapterCreator {
}
================================================
FILE: play-services-ads-lite/src/main/aidl/com/google/android/gms/ads/internal/rewarded/client/IRewardItem.aidl
================================================
package com.google.android.gms.ads.internal.rewarded.client;
interface IRewardItem {
}
================================================
FILE: play-services-ads-lite/src/main/aidl/com/google/android/gms/ads/internal/rewarded/client/IRewardedAd.aidl
================================================
package com.google.android.gms.ads.internal.rewarded.client;
import com.google.android.gms.ads.internal.AdRequestParcel;
import com.google.android.gms.ads.internal.ServerSideVerificationOptionsParcel;
import com.google.android.gms.ads.internal.client.IOnPaidEventListener;
import com.google.android.gms.ads.internal.client.IOnAdMetadataChangedListener;
import com.google.android.gms.ads.internal.client.IResponseInfo;
import com.google.android.gms.ads.internal.rewarded.client.IRewardedAdCallback;
import com.google.android.gms.ads.internal.rewarded.client.IRewardedAdLoadCallback;
import com.google.android.gms.ads.internal.rewarded.client.IRewardedAdSkuListener;
import com.google.android.gms.ads.internal.rewarded.client.IRewardItem;
import com.google.android.gms.dynamic.IObjectWrapper;
interface IRewardedAd {
void load(in AdRequestParcel request, IRewardedAdLoadCallback callback) = 0;
void setCallback(IRewardedAdCallback callback) = 1;
boolean canBeShown() = 2;
String getMediationAdapterClassName() = 3;
void show(IObjectWrapper activity) = 4;
void setRewardedAdSkuListener(IRewardedAdSkuListener listener) = 5;
void setServerSideVerificationOptions(in ServerSideVerificationOptionsParcel options) = 6;
void setOnAdMetadataChangedListener(IOnAdMetadataChangedListener listener) = 7;
Bundle getAdMetadata() = 8;
void showWithImmersive(IObjectWrapper activity, boolean immersive) = 9;
IRewardItem getRewardItem() = 10;
IResponseInfo getResponseInfo() = 11;
void setOnPaidEventListener(IOnPaidEventListener listener) = 12;
void loadInterstitial(in AdRequestParcel request, IRewardedAdLoadCallback callback) = 13;
void setImmersiveMode(boolean enabled) = 14;
}
================================================
FILE: play-services-ads-lite/src/main/aidl/com/google/android/gms/ads/internal/rewarded/client/IRewardedAdCallback.aidl
================================================
package com.google.android.gms.ads.internal.rewarded.client;
interface IRewardedAdCallback {
}
================================================
FILE: play-services-ads-lite/src/main/aidl/com/google/android/gms/ads/internal/rewarded/client/IRewardedAdCreator.aidl
================================================
package com.google.android.gms.ads.internal.rewarded.client;
import com.google.android.gms.ads.internal.mediation.client.IAdapterCreator;
import com.google.android.gms.dynamic.IObjectWrapper;
interface IRewardedAdCreator {
IBinder newRewardedAd(IObjectWrapper context, String str, IAdapterCreator adapterCreator, int clientVersion);
}
================================================
FILE: play-services-ads-lite/src/main/aidl/com/google/android/gms/ads/internal/rewarded/client/IRewardedAdLoadCallback.aidl
================================================
package com.google.android.gms.ads.internal.rewarded.client;
import com.google.android.gms.ads.internal.AdErrorParcel;
interface IRewardedAdLoadCallback {
void onAdLoaded() = 0;
void onAdLoadErrorCode(int code) = 1;
void onAdLoadError(in AdErrorParcel error) = 2;
}
================================================
FILE: play-services-ads-lite/src/main/aidl/com/google/android/gms/ads/internal/rewarded/client/IRewardedAdSkuListener.aidl
================================================
package com.google.android.gms.ads.internal.rewarded.client;
import com.google.android.gms.ads.internal.AdErrorParcel;
interface IRewardedAdSkuListener {
}
================================================
FILE: play-services-ads-lite/src/main/aidl/com/google/android/gms/ads/measurement/IAppMeasurementProxy.aidl
================================================
package com.google.android.gms.ads.measurement;
interface IAppMeasurementProxy {
}
================================================
FILE: play-services-ads-lite/src/main/aidl/com/google/android/gms/ads/measurement/IMeasurementManager.aidl
================================================
package com.google.android.gms.ads.measurement;
import com.google.android.gms.ads.measurement.IAppMeasurementProxy;
import com.google.android.gms.dynamic.IObjectWrapper;
interface IMeasurementManager {
void initialize(IObjectWrapper context, IAppMeasurementProxy proxy) = 1;
}
================================================
FILE: play-services-ads-lite/src/main/java/com/google/android/gms/ads/admanager/package-info.java
================================================
/*
* SPDX-FileCopyrightText: 2022 microG Project Team
* SPDX-License-Identifier: CC-BY-4.0
* Notice: Portions of this file are reproduced from work created and shared by Google and used
* according to terms described in the Creative Commons 4.0 Attribution License.
* See https://developers.google.com/readme/policies for details.
*/
/**
* Contains classes for Google Ad Manager.
*/
package com.google.android.gms.ads.admanager;
================================================
FILE: play-services-ads-lite/src/main/java/com/google/android/gms/ads/h5/package-info.java
================================================
/*
* SPDX-FileCopyrightText: 2022 microG Project Team
* SPDX-License-Identifier: CC-BY-4.0
* Notice: Portions of this file are reproduced from work created and shared by Google and used
* according to terms described in the Creative Commons 4.0 Attribution License.
* See https://developers.google.com/readme/policies for details.
*/
/**
* Contains classes for H5 ads.
*/
package com.google.android.gms.ads.h5;
================================================
FILE: play-services-ads-lite/src/main/java/com/google/android/gms/ads/initialization/package-info.java
================================================
/*
* SPDX-FileCopyrightText: 2022 microG Project Team
* SPDX-License-Identifier: CC-BY-4.0
* Notice: Portions of this file are reproduced from work created and shared by Google and used
* according to terms described in the Creative Commons 4.0 Attribution License.
* See https://developers.google.com/readme/policies for details.
*/
/**
* Contains classes related to SDK initialization.
*/
package com.google.android.gms.ads.initialization;
================================================
FILE: play-services-ads-lite/src/main/java/com/google/android/gms/ads/internal/AdDataParcel.java
================================================
/*
* SPDX-FileCopyrightText: 2023 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.ads.internal;
import org.microg.safeparcel.AutoSafeParcelable;
public class AdDataParcel extends AutoSafeParcelable {
public static final Creator CREATOR = new AutoCreator<>(AdDataParcel.class);
}
================================================
FILE: play-services-ads-lite/src/main/java/com/google/android/gms/ads/internal/AdErrorParcel.java
================================================
/*
* SPDX-FileCopyrightText: 2023 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.ads.internal;
import com.google.android.gms.ads.internal.client.IResponseInfo;
import org.microg.safeparcel.AutoSafeParcelable;
public class AdErrorParcel extends AutoSafeParcelable {
@Field(1)
public int code;
@Field(2)
public String message;
@Field(3)
public String domain;
@Field(4)
public AdErrorParcel cause;
@Field(5)
public IResponseInfo responseInfo;
public static final Creator CREATOR = new AutoCreator<>(AdErrorParcel.class);
}
================================================
FILE: play-services-ads-lite/src/main/java/com/google/android/gms/ads/internal/AdRequestParcel.java
================================================
/*
* SPDX-FileCopyrightText: 2023 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.ads.internal;
import android.location.Location;
import android.os.Bundle;
import org.microg.safeparcel.AutoSafeParcelable;
import java.util.ArrayList;
import java.util.List;
public class AdRequestParcel extends AutoSafeParcelable {
@Field(1)
private int versionCode = 8;
@Field(2)
public long birthday;
@Field(3)
public Bundle adMobNetworkExtras = new Bundle();
@Field(4)
public int gender;
@Field(5)
public ArrayList keywords;
@Field(6)
public boolean isTestDevice;
@Field(7)
public int taggedForChildDirectedTreatment;
@Field(9)
public String publisherProvidedId;
@Field(10)
public SearchAdRequestParcel searchAdRequest;
@Field(11)
public Location location;
@Field(12)
public String contentUrl;
@Field(13)
public Bundle networkExtrasBundles = new Bundle();
@Field(14)
public Bundle customTargeting;
@Field(15)
public List categoryExclusion;
@Field(16)
public String requestAgent;
@Field(18)
public boolean designedForFamilies;
@Field(19)
public AdDataParcel adData;
@Field(20)
public int tagForUnderAgeOfConsent;
@Field(21)
public String maxAdContentRating;
@Field(22)
public List neighboringContentUrls;
@Field(23)
public int httpTimeoutMillis;
@Field(24)
public String adString;
public static final Creator CREATOR = new AutoCreator<>(AdRequestParcel.class);
}
================================================
FILE: play-services-ads-lite/src/main/java/com/google/android/gms/ads/internal/AdapterResponseInfoParcel.java
================================================
/*
* SPDX-FileCopyrightText: 2023 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.ads.internal;
import android.os.Bundle;
import org.microg.safeparcel.AutoSafeParcelable;
public class AdapterResponseInfoParcel extends AutoSafeParcelable {
@Field(1)
public String adapterClassName;
@Field(2)
public long latencyMillis;
@Field(3)
public AdErrorParcel error;
@Field(4)
public Bundle credentials;
@Field(5)
public String adSourceName;
@Field(6)
public String adSourceId;
@Field(7)
public String adSourceInstanceName;
@Field(8)
public String adSourceInstanceId;
public static final Creator CREATOR = new AutoCreator<>(AdapterResponseInfoParcel.class);
}
================================================
FILE: play-services-ads-lite/src/main/java/com/google/android/gms/ads/internal/AdapterStatusParcel.java
================================================
/*
* SPDX-FileCopyrightText: 2023 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.ads.internal;
import org.microg.safeparcel.AutoSafeParcelable;
public class AdapterStatusParcel extends AutoSafeParcelable {
@Field(1)
public String className;
@Field(2)
public boolean isReady;
@Field(3)
public int latency;
@Field(4)
public String description;
public AdapterStatusParcel() {}
public AdapterStatusParcel(String className, boolean isReady, int latency, String description) {
this.className = className;
this.isReady = isReady;
this.latency = latency;
this.description = description;
}
public static final Creator CREATOR = new AutoCreator<>(AdapterStatusParcel.class);
}
================================================
FILE: play-services-ads-lite/src/main/java/com/google/android/gms/ads/internal/RequestConfigurationParcel.java
================================================
/*
* SPDX-FileCopyrightText: 2023 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.ads.internal;
import org.microg.safeparcel.AutoSafeParcelable;
public class RequestConfigurationParcel extends AutoSafeParcelable {
public static final Creator CREATOR = new AutoCreator<>(RequestConfigurationParcel.class);
}
================================================
FILE: play-services-ads-lite/src/main/java/com/google/android/gms/ads/internal/SearchAdRequestParcel.java
================================================
/*
* SPDX-FileCopyrightText: 2023 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.ads.internal;
import org.microg.safeparcel.AutoSafeParcelable;
public class SearchAdRequestParcel extends AutoSafeParcelable {
@Field(15)
public String query;
public static final Creator CREATOR = new AutoCreator<>(SearchAdRequestParcel.class);
}
================================================
FILE: play-services-ads-lite/src/main/java/com/google/android/gms/ads/internal/ServerSideVerificationOptionsParcel.java
================================================
/*
* SPDX-FileCopyrightText: 2023 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.ads.internal;
import org.microg.safeparcel.AutoSafeParcelable;
public class ServerSideVerificationOptionsParcel extends AutoSafeParcelable {
@Field(1)
public String userId;
@Field(2)
public String customData;
public static final Creator CREATOR = new AutoCreator<>(ServerSideVerificationOptionsParcel.class);
}
================================================
FILE: play-services-ads-lite/src/main/java/com/google/android/gms/ads/interstitial/package-info.java
================================================
/*
* SPDX-FileCopyrightText: 2022 microG Project Team
* SPDX-License-Identifier: CC-BY-4.0
* Notice: Portions of this file are reproduced from work created and shared by Google and used
* according to terms described in the Creative Commons 4.0 Attribution License.
* See https://developers.google.com/readme/policies for details.
*/
/**
* Contains classes for Interstitial Ads.
*/
package com.google.android.gms.ads.interstitial;
================================================
FILE: play-services-ads-lite/src/main/java/com/google/android/gms/ads/mediation/customevent/package-info.java
================================================
/*
* SPDX-FileCopyrightText: 2022 microG Project Team
* SPDX-License-Identifier: CC-BY-4.0
* Notice: Portions of this file are reproduced from work created and shared by Google and used
* according to terms described in the Creative Commons 4.0 Attribution License.
* See https://developers.google.com/readme/policies for details.
*/
/**
* Contains classes for Google Mobile Ads mediation custom events.
*/
package com.google.android.gms.ads.mediation.customevent;
================================================
FILE: play-services-ads-lite/src/main/java/com/google/android/gms/ads/mediation/package-info.java
================================================
/*
* SPDX-FileCopyrightText: 2022 microG Project Team
* SPDX-License-Identifier: CC-BY-4.0
* Notice: Portions of this file are reproduced from work created and shared by Google and used
* according to terms described in the Creative Commons 4.0 Attribution License.
* See https://developers.google.com/readme/policies for details.
*/
/**
* Contains classes for Google Mobile Ads mediation adapters.
*/
package com.google.android.gms.ads.mediation;
================================================
FILE: play-services-ads-lite/src/main/java/com/google/android/gms/ads/mediation/rtb/package-info.java
================================================
/*
* SPDX-FileCopyrightText: 2022 microG Project Team
* SPDX-License-Identifier: CC-BY-4.0
* Notice: Portions of this file are reproduced from work created and shared by Google and used
* according to terms described in the Creative Commons 4.0 Attribution License.
* See https://developers.google.com/readme/policies for details.
*/
/**
* Contains classes for Google Mobile Ads RTB mediation adapters.
*/
package com.google.android.gms.ads.mediation.rtb;
================================================
FILE: play-services-ads-lite/src/main/java/com/google/android/gms/ads/nativead/package-info.java
================================================
/*
* SPDX-FileCopyrightText: 2022 microG Project Team
* SPDX-License-Identifier: CC-BY-4.0
* Notice: Portions of this file are reproduced from work created and shared by Google and used
* according to terms described in the Creative Commons 4.0 Attribution License.
* See https://developers.google.com/readme/policies for details.
*/
/**
* Contains classes for native ads functionality within Google Mobile
Ads.
*/
package com.google.android.gms.ads.nativead;
================================================
FILE: play-services-ads-lite/src/main/java/com/google/android/gms/ads/package-info.java
================================================
/*
* SPDX-FileCopyrightText: 2022 microG Project Team
* SPDX-License-Identifier: CC-BY-4.0
* Notice: Portions of this file are reproduced from work created and shared by Google and used
* according to terms described in the Creative Commons 4.0 Attribution License.
* See https://developers.google.com/readme/policies for details.
*/
/**
* Contains classes for Google Mobile Ads.
*/
package com.google.android.gms.ads;
================================================
FILE: play-services-ads-lite/src/main/java/com/google/android/gms/ads/rewarded/package-info.java
================================================
/*
* SPDX-FileCopyrightText: 2022 microG Project Team
* SPDX-License-Identifier: CC-BY-4.0
* Notice: Portions of this file are reproduced from work created and shared by Google and used
* according to terms described in the Creative Commons 4.0 Attribution License.
* See https://developers.google.com/readme/policies for details.
*/
/**
* Contains classes for Rewarded Ads.
*/
package com.google.android.gms.ads.rewarded;
================================================
FILE: play-services-ads-lite/src/main/java/com/google/android/gms/ads/rewardedinterstitial/package-info.java
================================================
/*
* SPDX-FileCopyrightText: 2022 microG Project Team
* SPDX-License-Identifier: CC-BY-4.0
* Notice: Portions of this file are reproduced from work created and shared by Google and used
* according to terms described in the Creative Commons 4.0 Attribution License.
* See https://developers.google.com/readme/policies for details.
*/
/**
* Contains classes for Rewarded Interstitial Ads.
*/
package com.google.android.gms.ads.rewardedinterstitial;
================================================
FILE: play-services-ads-lite/src/main/java/com/google/android/gms/ads/search/package-info.java
================================================
/*
* SPDX-FileCopyrightText: 2022 microG Project Team
* SPDX-License-Identifier: CC-BY-4.0
* Notice: Portions of this file are reproduced from work created and shared by Google and used
* according to terms described in the Creative Commons 4.0 Attribution License.
* See https://developers.google.com/readme/policies for details.
*/
/**
* Contains classes for Search Ads for Apps.
*/
package com.google.android.gms.ads.search;
================================================
FILE: play-services-api/build.gradle
================================================
/*
* Copyright 2013-2015 microG Project Team
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
apply plugin: 'com.android.library'
android {
namespace "org.microg.gms.api"
compileSdkVersion androidCompileSdk
buildToolsVersion "$androidBuildVersionTools"
buildFeatures {
aidl = true
}
defaultConfig {
versionName version
minSdkVersion androidMinSdk
targetSdkVersion androidTargetSdk
}
compileOptions {
sourceCompatibility = 1.8
targetCompatibility = 1.8
}
}
dependencies {
api project(':play-services-base')
api project(':play-services-location')
api project(':play-services-phenotype')
annotationProcessor project(':safe-parcel-processor')
}
================================================
FILE: play-services-api/src/main/AndroidManifest.xml
================================================
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/ads/omid/IOmid.aidl
================================================
package com.google.android.gms.ads.omid;
import com.google.android.gms.dynamic.IObjectWrapper;
interface IOmid {
boolean initializeOmid(IObjectWrapper context) = 1;
IObjectWrapper createHtmlAdSession(String version, IObjectWrapper webView, String customReferenceData, String impressionOwner, String altImpressionOwner) = 2;
void startAdSession(IObjectWrapper adSession) = 3;
void registerAdView(IObjectWrapper adSession, IObjectWrapper view) = 4;
String getVersion() = 5;
void finishAdSession(IObjectWrapper adSession) = 6;
void addFriendlyObstruction(IObjectWrapper adSession, IObjectWrapper view) = 7;
IObjectWrapper createHtmlAdSessionWithPartnerName(String version, IObjectWrapper webView, String customReferenceData, String impressionOwner, String altImpressionOwner, String parterName) = 8;
IObjectWrapper createJavascriptAdSessionWithPartnerNameImpressionCreativeType(String version, IObjectWrapper webView, String customReferenceData, String impressionOwner, String altImpressionOwner, String parterName, String impressionType, String creativeType, String contentUrl) = 9;
IObjectWrapper createHtmlAdSessionWithPartnerNameImpressionCreativeType(String version, IObjectWrapper webView, String customReferenceData, String impressionOwner, String altImpressionOwner, String parterName, String impressionType, String creativeType, String contentUrl) = 10;
}
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/appdatasearch/CorpusStatus.aidl
================================================
package com.google.android.gms.appdatasearch;
parcelable CorpusStatus;
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/appdatasearch/PIMEUpdate.aidl
================================================
package com.google.android.gms.appdatasearch;
parcelable PIMEUpdate;
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/appdatasearch/PIMEUpdateResponse.aidl
================================================
package com.google.android.gms.appdatasearch;
parcelable PIMEUpdateResponse;
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/appdatasearch/RequestIndexingSpecification.aidl
================================================
package com.google.android.gms.appdatasearch;
parcelable RequestIndexingSpecification;
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/appdatasearch/SuggestSpecification.aidl
================================================
package com.google.android.gms.appdatasearch;
parcelable SuggestSpecification;
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/appdatasearch/SuggestionResults.aidl
================================================
package com.google.android.gms.appdatasearch;
parcelable SuggestionResults;
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/appdatasearch/UsageInfo.aidl
================================================
package com.google.android.gms.appdatasearch;
parcelable UsageInfo;
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/appdatasearch/internal/IAppDataSearch.aidl
================================================
package com.google.android.gms.appdatasearch.internal;
import com.google.android.gms.appdatasearch.CorpusStatus;
import com.google.android.gms.appdatasearch.PIMEUpdateResponse;
import com.google.android.gms.appdatasearch.RequestIndexingSpecification;
import com.google.android.gms.appdatasearch.SuggestionResults;
import com.google.android.gms.appdatasearch.SuggestSpecification;
interface IAppDataSearch {
SuggestionResults getSuggestions(String var1, String packageName, in String[] accounts, int maxNum, in SuggestSpecification specs) = 1;
boolean requestIndexing(String packageName, String accountName, long l, in RequestIndexingSpecification specs) = 3;
CorpusStatus getStatus(String packageName, String accountName) = 4;
PIMEUpdateResponse requestPIMEUpdate(String s1, String s2, int i, in byte[] bs) = 34;
}
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/appdatasearch/internal/ILightweightAppDataSearch.aidl
================================================
package com.google.android.gms.appdatasearch.internal;
import com.google.android.gms.appdatasearch.internal.ILightweightAppDataSearchCallbacks;
import com.google.android.gms.appdatasearch.UsageInfo;
interface ILightweightAppDataSearch {
void view(ILightweightAppDataSearchCallbacks callbacks, String packageName, in UsageInfo[] usageInfos);
}
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/appdatasearch/internal/ILightweightAppDataSearchCallbacks.aidl
================================================
package com.google.android.gms.appdatasearch.internal;
interface ILightweightAppDataSearchCallbacks {
}
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/audit/LogAuditRecordsRequest.aidl
================================================
/*
* SPDX-FileCopyrightText: 2023 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.audit;
parcelable LogAuditRecordsRequest;
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/audit/internal/IAuditService.aidl
================================================
/*
* SPDX-FileCopyrightText: 2023 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.audit.internal;
import com.google.android.gms.common.api.internal.IStatusCallback;
import com.google.android.gms.audit.LogAuditRecordsRequest;
interface IAuditService {
void logAuditRecords(in LogAuditRecordsRequest request, IStatusCallback callback);
}
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/auth/appcert/IAppCertService.aidl
================================================
package com.google.android.gms.auth.appcert;
interface IAppCertService {
boolean fetchDeviceKey() = 0;
String getSpatulaHeader(String packageName) = 1;
}
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/checkin/internal/ICheckinService.aidl
================================================
package com.google.android.gms.checkin.internal;
interface ICheckinService {
String getDeviceDataVersionInfo();
long getLastCheckinSuccessTime();
String getLastSimOperator();
}
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/credential/manager/common/IPendingIntentCallback.aidl
================================================
/*
* SPDX-FileCopyrightText: 2023 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.credential.manager.common;
import com.google.android.gms.common.api.Status;
interface IPendingIntentCallback {
void onPendingIntent(in Status status, in PendingIntent pendingIntent);
}
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/credential/manager/common/ISettingsCallback.aidl
================================================
/*
* SPDX-FileCopyrightText: 2023 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.credential.manager.common;
import com.google.android.gms.common.api.Status;
interface ISettingsCallback {
void onSetting(in Status status, in byte[] value);
}
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/credential/manager/firstparty/internal/ICredentialManagerService.aidl
================================================
/*
* SPDX-FileCopyrightText: 2023 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.credential.manager.firstparty.internal;
import com.google.android.gms.common.api.internal.IStatusCallback;
import com.google.android.gms.credential.manager.common.IPendingIntentCallback;
import com.google.android.gms.credential.manager.common.ISettingsCallback;
import com.google.android.gms.credential.manager.invocationparams.CredentialManagerInvocationParams;
interface ICredentialManagerService {
void getCredentialManagerIntent(IPendingIntentCallback callback, in CredentialManagerInvocationParams params) = 0;
void getSetting(ISettingsCallback callback, String key) = 1;
void setSetting(IStatusCallback callback, String key, in byte[] value) = 2;
}
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/credential/manager/invocationparams/CredentialManagerInvocationParams.aidl
================================================
/*
* SPDX-FileCopyrightText: 2023 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.credential.manager.invocationparams;
parcelable CredentialManagerInvocationParams;
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/facs/cache/FacsCacheCallOptions.aidl
================================================
package com.google.android.gms.facs.cache;
parcelable FacsCacheCallOptions;
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/facs/cache/ForceSettingsCacheRefreshResult.aidl
================================================
package com.google.android.gms.facs.cache;
parcelable ForceSettingsCacheRefreshResult;
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/facs/cache/GetActivityControlsSettingsResult.aidl
================================================
package com.google.android.gms.facs.cache;
parcelable GetActivityControlsSettingsResult;
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/facs/cache/ReadDeviceLevelSettingsResult.aidl
================================================
package com.google.android.gms.facs.cache;
parcelable ReadDeviceLevelSettingsResult;
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/facs/cache/UpdateActivityControlsSettingsResult.aidl
================================================
package com.google.android.gms.facs.cache;
parcelable UpdateActivityControlsSettingsResult;
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/facs/cache/internal/IFacsCacheCallbacks.aidl
================================================
package com.google.android.gms.facs.cache.internal;
import com.google.android.gms.common.api.Status;
import com.google.android.gms.facs.cache.ForceSettingsCacheRefreshResult;
import com.google.android.gms.facs.cache.GetActivityControlsSettingsResult;
import com.google.android.gms.facs.cache.ReadDeviceLevelSettingsResult;
import com.google.android.gms.facs.cache.UpdateActivityControlsSettingsResult;
interface IFacsCacheCallbacks {
void onForceSettingsCacheRefreshResult(in Status status, in ForceSettingsCacheRefreshResult result) = 0;
void onUpdateActivityControlsSettingsResult(in Status status, in UpdateActivityControlsSettingsResult result) = 1;
void onGetActivityControlsSettingsResult(in Status status, in GetActivityControlsSettingsResult result) = 2;
void onWriteDeviceLevelSettingsResult(in Status status) = 3;
void onReadDeviceLevelSettingsResult(in Status status, in ReadDeviceLevelSettingsResult result) = 4;
}
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/facs/cache/internal/IFacsCacheService.aidl
================================================
package com.google.android.gms.facs.cache.internal;
import com.google.android.gms.facs.cache.FacsCacheCallOptions;
import com.google.android.gms.facs.cache.internal.IFacsCacheCallbacks;
interface IFacsCacheService {
void forceSettingsCacheRefresh(IFacsCacheCallbacks callbacks, in FacsCacheCallOptions options) = 0;
void updateActivityControlsSettings(IFacsCacheCallbacks callbacks, in byte[] bytes, in FacsCacheCallOptions options) = 1;
void getActivityControlsSettings(IFacsCacheCallbacks callbacks, in FacsCacheCallOptions options) = 2;
void readDeviceLevelSettings(IFacsCacheCallbacks callbacks) = 3;
void writeDeviceLevelSettings(IFacsCacheCallbacks callbacks, in byte[] bytes) = 4;
}
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/feedback/ErrorReport.aidl
================================================
/*
* SPDX-FileCopyrightText: 2023 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.feedback;
parcelable ErrorReport;
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/feedback/FeedbackOptions.aidl
================================================
package com.google.android.gms.feedback;
parcelable FeedbackOptions;
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/feedback/FileTeleporter.aidl
================================================
/*
* SPDX-FileCopyrightText: 2023 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.feedback;
parcelable FileTeleporter;
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/feedback/LogOptions.aidl
================================================
/*
* SPDX-FileCopyrightText: 2023 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.feedback;
parcelable LogOptions;
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/feedback/ThemeSettings.aidl
================================================
/*
* SPDX-FileCopyrightText: 2023 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.feedback;
parcelable ThemeSettings;
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/feedback/internal/IFeedbackCallbacks.aidl
================================================
/*
* SPDX-FileCopyrightText: 2023 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.feedback.internal;
interface IFeedbackCallbacks {
void onServiceDestroy();
}
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/feedback/internal/IFeedbackService.aidl
================================================
/*
* SPDX-FileCopyrightText: 2023 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.feedback.internal;
import com.google.android.gms.feedback.FeedbackOptions;
import android.os.IBinder;
import android.os.IInterface;
import android.os.Parcel;
import com.google.android.gms.googlehelp.GoogleHelp;
import com.google.android.gms.feedback.ErrorReport;
import android.content.Context;
import android.os.Bundle;
import android.content.Intent;
interface IFeedbackService {
boolean startFeedbackFlow(in ErrorReport errorReport) = 0;
boolean silentSendFeedback(in ErrorReport errorReport) = 2;
void saveFeedbackDataAsync(in Bundle bundle, long id) = 3;
void saveFeedbackDataAsyncWithOption(in FeedbackOptions options, in Bundle bundle, long id) = 4;
void startFeedbackFlowAsync(in ErrorReport errorReport, long id) = 5;
boolean isValidConfiguration(in FeedbackOptions options) = 6;
}
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/gass/internal/GassRequestParcel.aidl
================================================
/*
* SPDX-FileCopyrightText: 2023 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.gass.internal;
parcelable GassRequestParcel;
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/gass/internal/GassResponseParcel.aidl
================================================
/*
* SPDX-FileCopyrightText: 2023 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.gass.internal;
parcelable GassResponseParcel;
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/gass/internal/IGassService.aidl
================================================
/*
* SPDX-FileCopyrightText: 2023 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.gass.internal;
import android.os.Bundle;
import android.os.IInterface;
import com.google.android.gms.gass.internal.GassRequestParcel;
import com.google.android.gms.gass.internal.GassResponseParcel;
interface IGassService {
GassResponseParcel getGassResponse(in GassRequestParcel gassRequestParcel) = 0;
Bundle getGassBundle(in Bundle bundle, int code) = 3;
}
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/googlehelp/GoogleHelp.aidl
================================================
package com.google.android.gms.googlehelp;
parcelable GoogleHelp;
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/googlehelp/InProductHelp.aidl
================================================
package com.google.android.gms.googlehelp;
parcelable InProductHelp;
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/googlehelp/SupportRequestHelp.aidl
================================================
package com.google.android.gms.googlehelp;
parcelable SupportRequestHelp;
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/googlehelp/internal/common/IGoogleHelpCallbacks.aidl
================================================
package com.google.android.gms.googlehelp.internal.common;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.os.IBinder;
import android.os.Parcel;
import com.google.android.gms.googlehelp.GoogleHelp;
import com.google.android.gms.googlehelp.InProductHelp;
interface IGoogleHelpCallbacks {
void onProcessGoogleHelpFinished(in GoogleHelp googleHelp) = 0;
oneway void onSaveAsyncPsdFinished() = 6;
oneway void onSaveAsyncPsbdFinished() = 7;
void onRequestChatSupportSuccess(int chatQueuePosition) = 8;
void onRequestChatSupportFailed() = 9;
void onRequestC2cSupportSuccess() = 10;
void onRequestC2cSupportFailed() = 11;
void onSuggestions(in byte[] suggestions) = 12;
void onNoSuggestions() = 13;
void onEscalationOptions(in byte[] options) = 14;
void onNoEscalationOptions() = 15;
void onProcessInProductHelpFinished(in InProductHelp inProductHelp) = 16;
void onRealtimeSupportStatus(in byte[] status) = 17;
void onNoRealtimeSupportStatus() = 18;
}
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/googlehelp/internal/common/IGoogleHelpService.aidl
================================================
package com.google.android.gms.googlehelp.internal.common;
import android.graphics.Bitmap;
import android.os.Bundle;
import com.google.android.gms.feedback.FeedbackOptions;
import com.google.android.gms.googlehelp.GoogleHelp;
import com.google.android.gms.googlehelp.InProductHelp;
import com.google.android.gms.googlehelp.SupportRequestHelp;
import com.google.android.gms.googlehelp.internal.common.IGoogleHelpCallbacks;
interface IGoogleHelpService {
void processGoogleHelpAndPip(in GoogleHelp googleHelp, IGoogleHelpCallbacks callbacks) = 0;
void processGoogleHelpAndPipWithBitmap(in GoogleHelp googleHelp, in Bitmap bitmap, IGoogleHelpCallbacks callbacks) = 1;
oneway void saveAsyncHelpPsd(in Bundle bundle, long timestamp, in GoogleHelp googleHelp, IGoogleHelpCallbacks callbacks) = 7;
oneway void saveAsyncFeedbackPsd(in Bundle bundle, long timestamp, in GoogleHelp googleHelp, IGoogleHelpCallbacks callbacks) = 8;
oneway void saveAsyncFeedbackPsbd(in FeedbackOptions options, in Bundle bundle, long timestamp, in GoogleHelp googleHelp, IGoogleHelpCallbacks callbacks) = 9;
oneway void requestChatSupport(in GoogleHelp googleHelp, String phoneNumber, String s2, IGoogleHelpCallbacks callbacks) = 10;
oneway void requestC2cSupport(in GoogleHelp googleHelp, String phoneNumber, String s2, IGoogleHelpCallbacks callbacks) = 11;
oneway void getSuggestions(in GoogleHelp googleHelp, IGoogleHelpCallbacks callbacks) = 12;
oneway void getEscalationOptions(in GoogleHelp googleHelp, IGoogleHelpCallbacks callbacks) = 13;
oneway void requestChatSupportWithSupportRequest(in SupportRequestHelp supportRequestHelp, IGoogleHelpCallbacks callbacks) = 14;
oneway void requestC2cSupportWithSupportRequest(in SupportRequestHelp supportRequestHelp, IGoogleHelpCallbacks callbacks) = 15;
void processInProductHelpAndPip(in InProductHelp inProductHelp, in Bitmap bitmap, IGoogleHelpCallbacks callbacks) = 16;
oneway void getRealtimeSupportStatus(in GoogleHelp googleHelp, IGoogleHelpCallbacks callbacks) = 17;
}
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/http/IGoogleHttpService.aidl
================================================
package com.google.android.gms.http;
import android.os.Bundle;
interface IGoogleHttpService {
Bundle checkUrl(String url);
}
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/languageprofile/ClientLanguageSettings.aidl
================================================
package com.google.android.gms.languageprofile;
parcelable ClientLanguageSettings;
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/languageprofile/LanguageFluency.aidl
================================================
package com.google.android.gms.languageprofile;
parcelable LanguageFluency;
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/languageprofile/LanguageFluencyParams.aidl
================================================
package com.google.android.gms.languageprofile;
parcelable LanguageFluencyParams;
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/languageprofile/LanguagePreference.aidl
================================================
package com.google.android.gms.languageprofile;
parcelable LanguagePreference;
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/languageprofile/LanguagePreferenceParams.aidl
================================================
package com.google.android.gms.languageprofile;
parcelable LanguagePreferenceParams;
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/languageprofile/internal/ILanguageProfileCallbacks.aidl
================================================
package com.google.android.gms.languageprofile.internal;
import com.google.android.gms.common.api.Status;
import com.google.android.gms.languageprofile.LanguageFluency;
import com.google.android.gms.languageprofile.LanguagePreference;
interface ILanguageProfileCallbacks {
oneway void onString(in Status status, String s) = 0;
oneway void onLanguagePreferences(in Status status, in List preferences) = 1;
oneway void onLanguageFluencies(in Status status, in List fluencies) = 2;
}
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/languageprofile/internal/ILanguageProfileService.aidl
================================================
package com.google.android.gms.languageprofile.internal;
import com.google.android.gms.common.api.internal.IStatusCallback;
import com.google.android.gms.languageprofile.ClientLanguageSettings;
import com.google.android.gms.languageprofile.LanguageFluencyParams;
import com.google.android.gms.languageprofile.LanguagePreferenceParams;
import com.google.android.gms.languageprofile.internal.ILanguageProfileCallbacks;
interface ILanguageProfileService {
String fun1(String accountName) = 0;
void fun2(String accountName, ILanguageProfileCallbacks callbacks) = 1;
void getLanguagePreferences(String accountName, in LanguagePreferenceParams params, ILanguageProfileCallbacks callbacks) = 2;
void getLanguageFluencies(String accountName, in LanguageFluencyParams params, ILanguageProfileCallbacks callbacks) = 3;
void getLanguageSettings(String accountName, in ClientLanguageSettings settings, IStatusCallback callback) = 4;
void removeLanguageSettings(String accountName, IStatusCallback callback) = 5;
}
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/locationsharingreporter/IneligibilityRationale.aidl
================================================
/*
* SPDX-FileCopyrightText: 2025 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.locationsharingreporter;
parcelable IneligibilityRationale;
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/locationsharingreporter/LocationReportingStatus.aidl
================================================
/*
* SPDX-FileCopyrightText: 2025 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.locationsharingreporter;
parcelable LocationReportingStatus;
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/locationsharingreporter/LocationShare.aidl
================================================
/*
* SPDX-FileCopyrightText: 2025 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.locationsharingreporter;
parcelable LocationShare;
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/locationsharingreporter/LocationUploadRequest.aidl
================================================
/*
* SPDX-FileCopyrightText: 2025 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.locationsharingreporter;
parcelable LocationUploadRequest;
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/locationsharingreporter/LocationUploadResponse.aidl
================================================
/*
* SPDX-FileCopyrightText: 2025 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.locationsharingreporter;
parcelable LocationUploadResponse;
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/locationsharingreporter/NoticeAckedUpdateRequest.aidl
================================================
/*
* SPDX-FileCopyrightText: 2025 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.locationsharingreporter;
parcelable NoticeAckedUpdateRequest;
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/locationsharingreporter/PeriodicLocationReportingIssues.aidl
================================================
/*
* SPDX-FileCopyrightText: 2025 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.locationsharingreporter;
parcelable PeriodicLocationReportingIssues;
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/locationsharingreporter/PeriodicLocationUploadRequest.aidl
================================================
/*
* SPDX-FileCopyrightText: 2025 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.locationsharingreporter;
parcelable PeriodicLocationUploadRequest;
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/locationsharingreporter/StartLocationReportingRequest.aidl
================================================
/*
* SPDX-FileCopyrightText: 2025 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.locationsharingreporter;
parcelable StartLocationReportingRequest;
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/locationsharingreporter/StopLocationReportingRequest.aidl
================================================
/*
* SPDX-FileCopyrightText: 2025 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.locationsharingreporter;
parcelable StopLocationReportingRequest;
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/locationsharingreporter/internal/ILocationReportingIssuesCallback.aidl
================================================
/*
* SPDX-FileCopyrightText: 2025 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.locationsharingreporter.internal;
import com.google.android.gms.common.api.ApiMetadata;
import com.google.android.gms.common.api.Status;
import com.google.android.gms.locationsharingreporter.PeriodicLocationReportingIssues;
interface ILocationReportingIssuesCallback {
void onPeriodicLocationReportingIssues(in Status status, in PeriodicLocationReportingIssues periodicLocationReportingIssues, in ApiMetadata apiMetadata) = 0;
}
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/locationsharingreporter/internal/ILocationReportingStatusCallbacks.aidl
================================================
/*
* SPDX-FileCopyrightText: 2025 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.locationsharingreporter.internal;
import com.google.android.gms.common.api.ApiMetadata;
import com.google.android.gms.common.api.Status;
import com.google.android.gms.locationsharingreporter.LocationReportingStatus;
interface ILocationReportingStatusCallbacks {
void onLocationReportingStatus(in Status status, in LocationReportingStatus locationReportingStatus, in ApiMetadata apiMetadata) = 0;
}
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/locationsharingreporter/internal/ILocationSharingReporterService.aidl
================================================
/*
* SPDX-FileCopyrightText: 2025 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.locationsharingreporter.internal;
import android.accounts.Account;
import com.google.android.gms.common.api.ApiMetadata;
import com.google.android.gms.common.api.internal.IStatusCallback;
import com.google.android.gms.locationsharingreporter.internal.ILocationReportingIssuesCallback;
import com.google.android.gms.locationsharingreporter.internal.ILocationReportingStatusCallbacks;
import com.google.android.gms.locationsharingreporter.internal.ILocationUploadCallbacks;
import com.google.android.gms.locationsharingreporter.LocationUploadRequest;
import com.google.android.gms.locationsharingreporter.PeriodicLocationUploadRequest;
import com.google.android.gms.locationsharingreporter.StartLocationReportingRequest;
import com.google.android.gms.locationsharingreporter.StopLocationReportingRequest;
import com.google.android.gms.locationsharingreporter.NoticeAckedUpdateRequest;
interface ILocationSharingReporterService {
void uploadLocation(ILocationUploadCallbacks callback, in Account account, in LocationUploadRequest request, in ApiMetadata apiMetadata) = 0;
void getReportingStatus(ILocationReportingStatusCallbacks callback, in Account account, in ApiMetadata apiMetadata) = 1;
void syncReportingStatus(IStatusCallback callback, in Account account, in ApiMetadata apiMetadata) = 2;
void periodicLocationUpload(IStatusCallback callback, in Account account, in PeriodicLocationUploadRequest request, in ApiMetadata apiMetadata) = 3;
void startLocationReporting(IStatusCallback callback, in Account account, in StartLocationReportingRequest request, in ApiMetadata apiMetadata) = 4;
void stopLocationReporting(IStatusCallback callback, in Account account, in StopLocationReportingRequest request, in ApiMetadata apiMetadata) = 5;
void updateNoticeState(IStatusCallback callback, in Account account, in NoticeAckedUpdateRequest request, in ApiMetadata apiMetadata) = 6;
void getReportingIssues(ILocationReportingIssuesCallback callback, in Account account, in ApiMetadata apiMetadata) = 7;
}
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/locationsharingreporter/internal/ILocationUploadCallbacks.aidl
================================================
/*
* SPDX-FileCopyrightText: 2025 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.locationsharingreporter.internal;
import com.google.android.gms.common.api.ApiMetadata;
import com.google.android.gms.common.api.Status;
import com.google.android.gms.locationsharingreporter.LocationUploadResponse;
interface ILocationUploadCallbacks {
void onLocationUploadResponse(in Status status, in LocationUploadResponse locationUploadResponse, in ApiMetadata apiMetadata) = 0;
}
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/maps/auth/IApiTokenService.aidl
================================================
/*
* SPDX-FileCopyrightText: 2025 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.maps.auth;
import android.os.Bundle;
interface IApiTokenService {
Bundle requestApiToken(in Bundle params);
}
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/measurement/internal/AppMetadata.aidl
================================================
package com.google.android.gms.measurement.internal;
parcelable AppMetadata;
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/measurement/internal/ConditionalUserPropertyParcel.aidl
================================================
package com.google.android.gms.measurement.internal;
parcelable ConditionalUserPropertyParcel;
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/measurement/internal/EventParcel.aidl
================================================
package com.google.android.gms.measurement.internal;
parcelable EventParcel;
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/measurement/internal/IMeasurementService.aidl
================================================
package com.google.android.gms.measurement.internal;
import com.google.android.gms.measurement.internal.AppMetadata;
import com.google.android.gms.measurement.internal.ConditionalUserPropertyParcel;
import com.google.android.gms.measurement.internal.EventParcel;
import com.google.android.gms.measurement.internal.UserAttributeParcel;
interface IMeasurementService {
void sendEvent(in EventParcel event, in AppMetadata app) = 0;
void sendUserProperty(in UserAttributeParcel attribute, in AppMetadata app) = 1;
void sendAppLaunch(in AppMetadata app) = 3;
// void f5(in EventParcel event, String p1, String p2) = 4;
void sendMeasurementEnabled(in AppMetadata p0) = 5;
List getAllUserProperties(in AppMetadata app, boolean includeInternal) = 6;
// byte[] f9(in EventParcel event, String p1) = 8;
void sendCurrentScreen(long id, String name, String referrer, String packageName) = 9;
String getAppInstanceId(in AppMetadata app) = 10;
void sendConditionalUserProperty(in ConditionalUserPropertyParcel property, in AppMetadata app) = 11;
// void f13(ConditionalUserPropertyParcel p0) = 12;
List getUserProperties(String origin, String propertyNamePrefix, boolean includeInternal, in AppMetadata app) = 13;
List getUserPropertiesAs(String packageName, String origin, String propertyNamePrefix, boolean includeInternal) = 14;
List getConditionalUserProperties(String origin, String propertyNamePrefix, in AppMetadata app) = 15;
List getConditionalUserPropertiesAs(String packageName, String origin, String propertyNamePrefix) = 16;
void reset(in AppMetadata app) = 17;
void sendDefaultEventParameters(in Bundle params, in AppMetadata app) = 18;
void sendConsentSettings(in AppMetadata app) = 19;
}
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/measurement/internal/UserAttributeParcel.aidl
================================================
package com.google.android.gms.measurement.internal;
parcelable UserAttributeParcel;
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/people/internal/IPeopleCallbacks.aidl
================================================
package com.google.android.gms.people.internal;
import android.os.Bundle;
import android.os.ParcelFileDescriptor;
import com.google.android.gms.common.data.DataHolder;
interface IPeopleCallbacks {
void onDataHolder(int code, in Bundle resolution, in DataHolder holder) = 1;
void onDataHolders(int code, in Bundle resolution, in DataHolder[] holders) = 3;
void onParcelFileDescriptor(int code, in Bundle resolution, in ParcelFileDescriptor fileDescriptor, in Bundle extras) = 4;
}
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/people/internal/IPeopleService.aidl
================================================
package com.google.android.gms.people.internal;
import android.os.Bundle;
import com.google.android.gms.people.internal.IPeopleCallbacks;
import com.google.android.gms.common.server.FavaDiagnosticsEntity;
import com.google.android.gms.common.internal.ICancelToken;
interface IPeopleService {
// void loadOwners1(IPeopleCallbacks var1, boolean var2, boolean var3, String var4, String var5);
// void loadCirclesOld(IPeopleCallbacks var1, String var2, String var3, String var4, int var5, String var6);
// void loadPeopleOld(IPeopleCallbacks var1, String var2, String var3, String var4, in List var5, int var6, boolean var7, long var8);
// void loadAvatarLegacy(IPeopleCallbacks var1, String var2, int var3, int var4);
// void loadContactImageLegacy(IPeopleCallbacks var1, long var2, boolean var4);
// void blockPerson(IPeopleCallbacks var1, String var2, String var3, String var4, boolean var5);
// Bundle syncRawContact(in Uri var1);
// void loadPeopleForAggregation8(IPeopleCallbacks var1, String var2, String var3, String var4, boolean var5, int var6);
// void setSyncToContactsSettings(IPeopleCallbacks var1, String var2, boolean var3, in String[] var4);
// Bundle startSync(String var1, String var2);
// void requestSync(IPeopleCallbacks var1, String var2, String var3, in Uri var4);
// void updatePersonCirclesOld(IPeopleCallbacks var1, String var2, String var3, String var4, in List var5, in List var6);
// boolean isSyncToContactsEnabled();
// Bundle requestSyncOld(String var1, String var2);
// void setAvatar(IPeopleCallbacks var1, String var2, String var3, in Uri var4, boolean var5);
// void loadCircles(IPeopleCallbacks var1, String var2, String var3, String var4, int var5, String var6, boolean var7);
// Bundle requestSyncOld19(String var1, String var2, long var3);
// void loadPeople20(IPeopleCallbacks var1, String var2, String var3, String var4, in List var5, int var6, boolean var7, long var8, String var10, int var11);
// void loadPeopleLive(IPeopleCallbacks var1, String var2, String var3, String var4, int var5, String var6);
// void updatePersonCircles(IPeopleCallbacks var1, String var2, String var3, String var4, in List var5, in List var6, in FavaDiagnosticsEntity var7);
// void loadRemoteImageLegacy(IPeopleCallbacks var1, String var2);
// void loadContactsGaiaIds24(IPeopleCallbacks var1, String var2, String var3);
// Bundle requestSyncOld25(String var1, String var2, long var3, boolean var5);
// void addCircle(IPeopleCallbacks var1, String var2, String var3, String var4, String var5);
// void addPeopleToCircle(IPeopleCallbacks var1, String var2, String var3, String var4, in List var5);
Bundle registerDataChangedListener(IPeopleCallbacks callbacks, boolean register, String var3, String var4, int scopes) = 10;
void loadCircles(IPeopleCallbacks callbacks, String account, String pageGaiaId, String circleId, int type, String var6, boolean var7) = 18;
Bundle requestSync(String account, String var2, long var3, boolean var5, boolean var6) = 204;
void loadOwners(IPeopleCallbacks callbacks, boolean var2, boolean var3, String account, String var5, int sortOrder) = 304;
void loadPeopleForAggregation(IPeopleCallbacks callbacks, String account, String var3, String filter, int var5, boolean var6, int var7, int var8, String var9, boolean var10, int var11, int var12) = 401;
ICancelToken loadOwnerAvatar(IPeopleCallbacks callbacks, String account, String pageId, int size, int flags) = 504;
ICancelToken loadAutocompleteList(IPeopleCallbacks callbacks, String account, String pageId, boolean directorySearch, String var5, String query, int autocompleteType, int var8, int numberOfResults, boolean var10) = 506;
}
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/phenotype/Configurations.aidl
================================================
package com.google.android.gms.phenotype;
parcelable Configurations;
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/phenotype/DogfoodsToken.aidl
================================================
package com.google.android.gms.phenotype;
parcelable DogfoodsToken;
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/phenotype/ExperimentTokens.aidl
================================================
package com.google.android.gms.phenotype;
parcelable ExperimentTokens;
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/phenotype/Flag.aidl
================================================
package com.google.android.gms.phenotype;
parcelable Flag;
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/phenotype/FlagOverrides.aidl
================================================
package com.google.android.gms.phenotype;
parcelable FlagOverrides;
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/phenotype/RegistrationInfo.aidl
================================================
package com.google.android.gms.phenotype;
parcelable RegistrationInfo;
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/phenotype/internal/IPhenotypeCallbacks.aidl
================================================
package com.google.android.gms.phenotype.internal;
import com.google.android.gms.common.api.Status;
import com.google.android.gms.phenotype.Configurations;
import com.google.android.gms.phenotype.DogfoodsToken;
import com.google.android.gms.phenotype.ExperimentTokens;
import com.google.android.gms.phenotype.Flag;
import com.google.android.gms.phenotype.FlagOverrides;
interface IPhenotypeCallbacks {
oneway void onRegistered(in Status status) = 0;
oneway void onWeakRegistered(in Status status) = 1;
oneway void onUnregistered(in Status status) = 2;
oneway void onConfiguration(in Status status, in Configurations configurations) = 3;
oneway void onCommitedToConfiguration(in Status status) = 4;
oneway void onExperimentTokens(in Status status, in ExperimentTokens experimentTokens) = 5;
oneway void onDogfoodsToken(in Status status, in DogfoodsToken dogfoodsToken) = 6;
oneway void onDogfoodsTokenSet(in Status status) = 7;
oneway void onFlag(in Status status, in Flag flag) = 8;
oneway void onCommittedConfiguration(in Status status, in Configurations configuration) = 9;
oneway void onSyncFinished(in Status status, long p1) = 10;
oneway void onFlagOverridesSet(in Status status) = 11;
oneway void onFlagOverrides(in Status status, in FlagOverrides overrides) = 12;
oneway void onAppSpecificPropertiesSet(in Status status) = 13;
oneway void onServingVersion(in Status status, long version) = 15;
}
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/phenotype/internal/IPhenotypeService.aidl
================================================
package com.google.android.gms.phenotype.internal;
import com.google.android.gms.common.api.internal.IStatusCallback;
import com.google.android.gms.phenotype.internal.IPhenotypeCallbacks;
import com.google.android.gms.phenotype.Flag;
import com.google.android.gms.phenotype.RegistrationInfo;
interface IPhenotypeService {
oneway void register(IPhenotypeCallbacks callbacks, String packageName, int version, in String[] p3, in byte[] p4) = 0; // returns via callbacks.onRegistered()
oneway void weakRegister(IPhenotypeCallbacks callbacks, String packageName, int version, in String[] p3, in int[] p4, in byte[] p5) = 1; // returns via callbacks.onWeakRegistered()
oneway void unregister(IPhenotypeCallbacks callbacks, String packageName) = 2; // returns via callbacks.onUnregistered()
oneway void getConfigurationSnapshot(IPhenotypeCallbacks callbacks, String packageName, String user) = 3; // returns via callbacks.onConfiguration()
oneway void commitToConfiguration(IPhenotypeCallbacks callbacks, String snapshotToken) = 4; // returns via callbacks.onCommitedToConfiguration()
oneway void getExperimentTokens(IPhenotypeCallbacks callbacks, String packageName, String logSourceName) = 5; // returns via callbacks.onExperimentTokens()
oneway void getDogfoodsToken(IPhenotypeCallbacks callbacks) = 6; // returns via callbacks.onDogfoodsToken()
oneway void setDogfoodsToken(IPhenotypeCallbacks callbacks, in byte[] p1) = 7; // returns via callbacks.onDogfoodsTokenSet()
oneway void getFlag(IPhenotypeCallbacks callbacks, String packageName, String name, int type) = 8; // returns via callbacks.onFlag()
oneway void getCommitedConfiguration(IPhenotypeCallbacks callbacks, String packageName) = 9; // returns via callbacks.onCommittedConfiguration()
oneway void getConfigurationSnapshotWithToken(IPhenotypeCallbacks callbacks, String packageName, String user, String token) = 10; // returns via callbacks.onConfiguration()
oneway void syncAfterOperation(IPhenotypeCallbacks callbacks, String packageName, long version) = 11; // returns via callbacks.onSyncFinished()
oneway void registerSync(IPhenotypeCallbacks callbacks, String packageName, int version, in String[] p3, in byte[] p4, String p5, String p6) = 12; // returns via callbacks.onConfiguration()
oneway void setFlagOverrides(IPhenotypeCallbacks callbacks, String packageName, String user, String flagName, int flagType, int flagDataType, String flagValue) = 13; // returns via callbacks.onFlagOverridesSet()
oneway void deleteFlagOverrides(IPhenotypeCallbacks callbacks, String packageName, String user, String flagName) = 14; // returns via callbacks.onFlagOverrides()
oneway void listFlagOverrides(IPhenotypeCallbacks callbacks, String packageName, String user, String flagName) = 15; // returns via callbacks.onFlagOverrides()
oneway void clearFlagOverrides(IPhenotypeCallbacks callbacks, String packageName, String user) = 17; // returns via callbacks.onFlagOverridesSet()
oneway void bulkRegister(IPhenotypeCallbacks callbacks, in RegistrationInfo[] infos) = 18; // returns via callbacks.onRegister()
oneway void setAppSpecificProperties(IPhenotypeCallbacks callbacks, String packageName, in byte[] p2) = 19; // returns via callbacks.onAppSpecificPropertiesSet()
oneway void getServingVersion(IPhenotypeCallbacks callbacks) = 21; // returns via callbacks.onServingVersion()
oneway void getExperimentTokensForLogging(IPhenotypeCallbacks callbacks, String packageName, String logSourceName, String p3, String clientPackageName) = 22; // returns via callbacks.onExperimentTokens()
oneway void syncAllAfterOperation(IPhenotypeCallbacks callbacks, long p1) = 23; // returns via callbacks.onSyncFinished()
oneway void setRuntimeProperties(IStatusCallback callbacks, String p1, in byte[] p2) = 24;
// oneway void setExternalExperiments(IStatusCallback callbacks, String p1, in List p2) = 25;
}
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/plus/internal/IPlusOneButtonCreator.aidl
================================================
package com.google.android.gms.plus.internal;
import com.google.android.gms.dynamic.IObjectWrapper;
interface IPlusOneButtonCreator {
IObjectWrapper create(IObjectWrapper context, int size, int annotation, String url, int activityRequestCode);
IObjectWrapper createForAccount(IObjectWrapper context, int size, int annotation, String url, String account);
}
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/potokens/PoToken.aidl
================================================
/*
* SPDX-FileCopyrightText: 2023 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.potokens;
parcelable PoToken;
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/potokens/internal/IPoTokensService.aidl
================================================
/*
* SPDX-FileCopyrightText: 2023 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.potokens.internal;
import com.google.android.gms.common.api.internal.IStatusCallback;
import com.google.android.gms.potokens.internal.ITokenCallbacks;
interface IPoTokensService {
void responseStatus(IStatusCallback call, int code) = 1;
void responseStatusToken(ITokenCallbacks call, int i, in byte[] bArr) = 2;
}
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/potokens/internal/ITokenCallbacks.aidl
================================================
/*
* SPDX-FileCopyrightText: 2023 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.potokens.internal;
import com.google.android.gms.common.api.Status;
import com.google.android.gms.potokens.PoToken;
interface ITokenCallbacks {
void responseToken(in Status status, in PoToken token) = 1;
}
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/pseudonymous/PseudonymousIdToken.aidl
================================================
/*
* SPDX-FileCopyrightText: 2023 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.pseudonymous;
parcelable PseudonymousIdToken;
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/pseudonymous/internal/IPseudonymousIdCallbacks.aidl
================================================
/*
* SPDX-FileCopyrightText: 2023 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.pseudonymous.internal;
import com.google.android.gms.common.api.Status;
import com.google.android.gms.pseudonymous.PseudonymousIdToken;
interface IPseudonymousIdCallbacks {
void onGetTokenResponse(in Status status, in PseudonymousIdToken token) = 0;
void onSetTokenResponse(in Status status) = 1;
void onGetLastResetWallTimeMsResponse(in Status status, long time) = 2;
}
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/pseudonymous/internal/IPseudonymousIdService.aidl
================================================
/*
* SPDX-FileCopyrightText: 2023 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.pseudonymous.internal;
import com.google.android.gms.pseudonymous.internal.IPseudonymousIdCallbacks;
import com.google.android.gms.pseudonymous.PseudonymousIdToken;
interface IPseudonymousIdService {
void getToken(IPseudonymousIdCallbacks call) = 0;
void setToken(IPseudonymousIdCallbacks call, in PseudonymousIdToken token) = 1;
void getLastResetWallTimeMs(IPseudonymousIdCallbacks callbacks) = 2;
}
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/reminders/AccountState.aidl
================================================
package com.google.android.gms.reminders;
parcelable AccountState;
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/reminders/CreateReminderOptionsInternal.aidl
================================================
package com.google.android.gms.reminders;
parcelable CreateReminderOptionsInternal;
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/reminders/LoadRemindersOptions.aidl
================================================
package com.google.android.gms.reminders;
parcelable LoadRemindersOptions;
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/reminders/ReindexDueDatesOptions.aidl
================================================
package com.google.android.gms.reminders;
parcelable ReindexDueDatesOptions;
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/reminders/UpdateRecurrenceOptions.aidl
================================================
package com.google.android.gms.reminders;
parcelable UpdateRecurrenceOptions;
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/reminders/internal/IRemindersCallbacks.aidl
================================================
package com.google.android.gms.reminders.internal;
import com.google.android.gms.common.api.Status;
import com.google.android.gms.common.data.DataHolder;
import com.google.android.gms.reminders.AccountState;
interface IRemindersCallbacks {
void onDataHolder(in DataHolder data, in Status status) = 0;
void onStatus(in Status status) = 1;
void onNoStatus() = 2;
void onDataHolderNoStatus(in DataHolder data, in Status status) = 3;
void onBool(boolean b, in Status status) = 4;
void onString(in String s, in Status status) = 5;
void onAccountState(in AccountState accountState, in Status status) = 6;
void onAsyncDataHolder(in DataHolder data) = 7;
}
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/reminders/internal/IRemindersListener.aidl
================================================
package com.google.android.gms.reminders.internal;
interface IRemindersListener {
}
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/reminders/internal/IRemindersService.aidl
================================================
package com.google.android.gms.reminders.internal;
import com.google.android.gms.reminders.internal.IRemindersCallbacks;
import com.google.android.gms.reminders.AccountState;
import com.google.android.gms.reminders.CreateReminderOptionsInternal;
import com.google.android.gms.reminders.LoadRemindersOptions;
import com.google.android.gms.reminders.ReindexDueDatesOptions;
import com.google.android.gms.reminders.UpdateRecurrenceOptions;
import com.google.android.gms.reminders.model.CustomizedSnoozePresetEntity;
import com.google.android.gms.reminders.model.TaskEntity;
import com.google.android.gms.reminders.model.TaskIdEntity;
interface IRemindersService {
void loadReminders(IRemindersCallbacks callbacks, in LoadRemindersOptions options) = 0;
void addListener(IRemindersCallbacks callbacks) = 1;
void createReminder(IRemindersCallbacks callbacks, in TaskEntity task) = 2;
void updateReminder(IRemindersCallbacks callbacks, in TaskEntity task) = 3;
void deleteReminder(IRemindersCallbacks callbacks, in TaskIdEntity taskId) = 4;
void bumpReminder(IRemindersCallbacks callbacks, in TaskIdEntity taskId) = 5;
void hasUpcomingReminders(IRemindersCallbacks callbacks) = 6;
void createRecurrence(IRemindersCallbacks callbacks, in TaskEntity task) = 7;
void updateRecurrence(IRemindersCallbacks callbacks, String s1, in TaskEntity task, in UpdateRecurrenceOptions options) = 8;
void deleteRecurrence(IRemindersCallbacks callbacks, String s1, in UpdateRecurrenceOptions options) = 9;
void changeRecurrence(IRemindersCallbacks callbacks, String s1, in TaskEntity task, in UpdateRecurrenceOptions options) = 10;
void makeTaskRecurring(IRemindersCallbacks callbacks, in TaskEntity task) = 11;
void makeRecurrenceSingleInstance(IRemindersCallbacks callbacks, String s1, in TaskEntity task, in UpdateRecurrenceOptions options) = 12;
void clearListeners() = 13;
void batchUpdateReminders(IRemindersCallbacks callbacks, in List tasks) = 14;
void createReminderWithOptions(IRemindersCallbacks callbacks, in TaskEntity task, in CreateReminderOptionsInternal options) = 15;
void getCustomizedSnoozePreset(IRemindersCallbacks callbacks) = 16;
void setCustomizedSnoozePreset(IRemindersCallbacks callbacks, in CustomizedSnoozePresetEntity preset) = 17;
void setAccountState(IRemindersCallbacks callbacks, in AccountState accountState) = 18;
void getAccountState(IRemindersCallbacks callbacks) = 19;
void checkReindexDueDatesNeeded(IRemindersCallbacks callbacks, in ReindexDueDatesOptions options) = 20;
void reindexDueDates(IRemindersCallbacks callbacks, in ReindexDueDatesOptions options) = 21;
}
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/reminders/model/CustomizedSnoozePresetEntity.aidl
================================================
package com.google.android.gms.reminders.model;
parcelable CustomizedSnoozePresetEntity;
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/reminders/model/TaskEntity.aidl
================================================
package com.google.android.gms.reminders.model;
parcelable TaskEntity;
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/reminders/model/TaskIdEntity.aidl
================================================
package com.google.android.gms.reminders.model;
parcelable TaskIdEntity;
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/search/administration/internal/ISearchAdministrationService.aidl
================================================
package com.google.android.gms.search.administration.internal;
interface ISearchAdministrationService {
}
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/search/corpora/ClearCorpusRequest.aidl
================================================
package com.google.android.gms.search.corpora;
parcelable ClearCorpusRequest;
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/search/corpora/GetCorpusInfoRequest.aidl
================================================
package com.google.android.gms.search.corpora;
parcelable GetCorpusInfoRequest;
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/search/corpora/GetCorpusStatusRequest.aidl
================================================
package com.google.android.gms.search.corpora;
parcelable GetCorpusStatusRequest;
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/search/corpora/GetCorpusStatusResponse.aidl
================================================
package com.google.android.gms.search.corpora;
parcelable GetCorpusStatusResponse;
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/search/corpora/RequestIndexingRequest.aidl
================================================
package com.google.android.gms.search.corpora;
parcelable RequestIndexingRequest;
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/search/corpora/RequestIndexingResponse.aidl
================================================
package com.google.android.gms.search.corpora;
parcelable RequestIndexingResponse;
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/search/corpora/internal/ISearchCorporaCallbacks.aidl
================================================
package com.google.android.gms.search.corpora.internal;
import com.google.android.gms.search.corpora.RequestIndexingResponse;
import com.google.android.gms.search.corpora.GetCorpusStatusResponse;
interface ISearchCorporaCallbacks {
void onRequestIndexing(in RequestIndexingResponse response) = 1;
void onGetCorpusStatus(in GetCorpusStatusResponse response) = 3;
}
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/search/corpora/internal/ISearchCorporaService.aidl
================================================
package com.google.android.gms.search.corpora.internal;
import com.google.android.gms.search.corpora.ClearCorpusRequest;
import com.google.android.gms.search.corpora.GetCorpusStatusRequest;
import com.google.android.gms.search.corpora.GetCorpusInfoRequest;
import com.google.android.gms.search.corpora.RequestIndexingRequest;
import com.google.android.gms.search.corpora.internal.ISearchCorporaCallbacks;
interface ISearchCorporaService {
void requestIndexing(in RequestIndexingRequest request, ISearchCorporaCallbacks callbacks) = 1;
void clearCorpus(in ClearCorpusRequest request, ISearchCorporaCallbacks callbacks) = 2;
void getCorpusStatus(in GetCorpusStatusRequest request, ISearchCorporaCallbacks callbacks) = 3;
void getCorpusInfo(in GetCorpusInfoRequest request, ISearchCorporaCallbacks callbacks) = 4;
}
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/search/global/GetCurrentExperimentIdsRequest.aidl
================================================
package com.google.android.gms.search.global;
parcelable GetCurrentExperimentIdsRequest;
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/search/global/GetCurrentExperimentIdsResponse.aidl
================================================
package com.google.android.gms.search.global;
parcelable GetCurrentExperimentIdsResponse;
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/search/global/GetGlobalSearchSourcesRequest.aidl
================================================
package com.google.android.gms.search.global;
parcelable GetGlobalSearchSourcesRequest;
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/search/global/GetGlobalSearchSourcesResponse.aidl
================================================
package com.google.android.gms.search.global;
parcelable GetGlobalSearchSourcesResponse;
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/search/global/GetPendingExperimentIdsRequest.aidl
================================================
package com.google.android.gms.search.global;
parcelable GetPendingExperimentIdsRequest;
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/search/global/GetPendingExperimentIdsResponse.aidl
================================================
package com.google.android.gms.search.global;
parcelable GetPendingExperimentIdsResponse;
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/search/global/SetExperimentIdsRequest.aidl
================================================
package com.google.android.gms.search.global;
parcelable SetExperimentIdsRequest;
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/search/global/SetExperimentIdsResponse.aidl
================================================
package com.google.android.gms.search.global;
parcelable SetExperimentIdsResponse;
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/search/global/SetIncludeInGlobalSearchRequest.aidl
================================================
package com.google.android.gms.search.global;
parcelable SetIncludeInGlobalSearchRequest;
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/search/global/SetIncludeInGlobalSearchResponse.aidl
================================================
package com.google.android.gms.search.global;
parcelable SetIncludeInGlobalSearchResponse;
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/search/global/internal/IGlobalSearchAdminCallbacks.aidl
================================================
package com.google.android.gms.search.global.internal;
import com.google.android.gms.search.global.GetCurrentExperimentIdsResponse;
import com.google.android.gms.search.global.GetGlobalSearchSourcesResponse;
import com.google.android.gms.search.global.GetPendingExperimentIdsResponse;
import com.google.android.gms.search.global.SetExperimentIdsResponse;
import com.google.android.gms.search.global.SetIncludeInGlobalSearchResponse;
interface IGlobalSearchAdminCallbacks {
void onGetGlobalSearchSourcesResponse(in GetGlobalSearchSourcesResponse request) = 1;
void onSetExperimentIdsResponse(in SetExperimentIdsResponse response) = 2;
void onGetCurrentExperimentIdsResponse(in GetCurrentExperimentIdsResponse response) = 3;
void onGetPendingExperimentIdsResponse(in GetPendingExperimentIdsResponse response) = 4;
void onSetIncludeInGlobalSearchResponse(in SetIncludeInGlobalSearchResponse response) = 7;
}
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/search/global/internal/IGlobalSearchAdminService.aidl
================================================
package com.google.android.gms.search.global.internal;
import com.google.android.gms.search.global.GetCurrentExperimentIdsRequest;
import com.google.android.gms.search.global.GetGlobalSearchSourcesRequest;
import com.google.android.gms.search.global.GetPendingExperimentIdsRequest;
import com.google.android.gms.search.global.SetExperimentIdsRequest;
import com.google.android.gms.search.global.SetIncludeInGlobalSearchRequest;
import com.google.android.gms.search.global.internal.IGlobalSearchAdminCallbacks;
interface IGlobalSearchAdminService {
void getGlobalSearchSources(in GetGlobalSearchSourcesRequest request, IGlobalSearchAdminCallbacks callbacks) = 1;
void setExperimentIds(in SetExperimentIdsRequest request, IGlobalSearchAdminCallbacks callbacks) = 2;
void getCurrentExperimentIds(in GetCurrentExperimentIdsRequest request, IGlobalSearchAdminCallbacks callbacks) = 3;
void getPendingExperimentIds(in GetPendingExperimentIdsRequest request, IGlobalSearchAdminCallbacks callbacks) = 4;
void setIncludeInGlobalSearch(in SetIncludeInGlobalSearchRequest request, IGlobalSearchAdminCallbacks callbacks) = 7;
}
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/search/queries/QueryRequest.aidl
================================================
package com.google.android.gms.search.queries;
parcelable QueryRequest;
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/search/queries/QueryResponse.aidl
================================================
package com.google.android.gms.search.queries;
parcelable QueryResponse;
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/search/queries/internal/ISearchQueriesCallbacks.aidl
================================================
package com.google.android.gms.search.queries.internal;
import com.google.android.gms.search.queries.QueryResponse;
interface ISearchQueriesCallbacks {
void onQuery(in QueryResponse response) = 1;
}
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/search/queries/internal/ISearchQueriesService.aidl
================================================
package com.google.android.gms.search.queries.internal;
import com.google.android.gms.search.queries.QueryRequest;
import com.google.android.gms.search.queries.internal.ISearchQueriesCallbacks;
interface ISearchQueriesService {
void query(in QueryRequest request, ISearchQueriesCallbacks callbacks) = 1;
}
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/semanticlocation/PlaceCandidate.aidl
================================================
/*
* SPDX-FileCopyrightText: 2025 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.semanticlocation;
parcelable PlaceCandidate;
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/semanticlocation/SemanticLocationEventRequest.aidl
================================================
/*
* SPDX-FileCopyrightText: 2023 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.semanticlocation;
parcelable SemanticLocationEventRequest;
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/semanticlocation/SemanticLocationState.aidl
================================================
/*
* SPDX-FileCopyrightText: 2025 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.semanticlocation;
parcelable SemanticLocationState;
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/semanticlocation/internal/ISemanticLocationService.aidl
================================================
/*
* SPDX-FileCopyrightText: 2023 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.semanticlocation.internal;
import android.app.PendingIntent;
import android.os.IInterface;
import com.google.android.gms.semanticlocation.SemanticLocationEventRequest;
import com.google.android.gms.semanticlocation.internal.SemanticLocationParameters;
import com.google.android.gms.common.api.internal.IStatusCallback;
interface ISemanticLocationService {
void registerSemanticLocationEvents(in SemanticLocationParameters params, IStatusCallback callback, in SemanticLocationEventRequest request, in PendingIntent pendingIntent) = 0;
void unregisterSemanticLocationEvents(in SemanticLocationParameters params, IStatusCallback callback, in PendingIntent pendingIntent) = 1;
void setIncognitoMode(in SemanticLocationParameters params, IStatusCallback callback, boolean mode) = 4;
}
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/semanticlocation/internal/SemanticLocationParameters.aidl
================================================
/*
* SPDX-FileCopyrightText: 2023 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.semanticlocation.internal;
parcelable SemanticLocationParameters;
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/semanticlocationhistory/ExperimentVisitsResponse.aidl
================================================
/*
* SPDX-FileCopyrightText: 2025 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.semanticlocationhistory;
parcelable ExperimentVisitsResponse;
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/semanticlocationhistory/FieldMask.aidl
================================================
/*
* SPDX-FileCopyrightText: 2025 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.semanticlocationhistory;
parcelable FieldMask;
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/semanticlocationhistory/FrequentPlace.aidl
================================================
/*
* SPDX-FileCopyrightText: 2025 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.semanticlocationhistory;
parcelable FrequentPlace;
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/semanticlocationhistory/FrequentTrip.aidl
================================================
/*
* SPDX-FileCopyrightText: 2025 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.semanticlocationhistory;
parcelable FrequentTrip;
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/semanticlocationhistory/InferredPlace.aidl
================================================
/*
* SPDX-FileCopyrightText: 2025 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.semanticlocationhistory;
parcelable InferredPlace;
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/semanticlocationhistory/LocationHistorySegment.aidl
================================================
/*
* SPDX-FileCopyrightText: 2025 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.semanticlocationhistory;
parcelable LocationHistorySegment;
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/semanticlocationhistory/LocationHistorySegmentRequest.aidl
================================================
/*
* SPDX-FileCopyrightText: 2025 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.semanticlocationhistory;
parcelable LocationHistorySegmentRequest;
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/semanticlocationhistory/LocationHistorySettings.aidl
================================================
/*
* SPDX-FileCopyrightText: 2025 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.semanticlocationhistory;
parcelable LocationHistorySettings;
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/semanticlocationhistory/LookupParameters.aidl
================================================
/*
* SPDX-FileCopyrightText: 2025 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.semanticlocationhistory;
parcelable LookupParameters;
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/semanticlocationhistory/OdlhBackupSummary.aidl
================================================
/*
* SPDX-FileCopyrightText: 2025 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.semanticlocationhistory;
parcelable OdlhBackupSummary;
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/semanticlocationhistory/Persona.aidl
================================================
/*
* SPDX-FileCopyrightText: 2025 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.semanticlocationhistory;
parcelable Persona;
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/semanticlocationhistory/RequestCredentials.aidl
================================================
/*
* SPDX-FileCopyrightText: 2025 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.semanticlocationhistory;
parcelable RequestCredentials;
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/semanticlocationhistory/SemanticLocationEditInputs.aidl
================================================
/*
* SPDX-FileCopyrightText: 2025 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.semanticlocationhistory;
parcelable SemanticLocationEditInputs;
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/semanticlocationhistory/TimeRangeFilter.aidl
================================================
/*
* SPDX-FileCopyrightText: 2025 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.semanticlocationhistory;
parcelable TimeRangeFilter;
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/semanticlocationhistory/UserLocationProfile.aidl
================================================
/*
* SPDX-FileCopyrightText: 2025 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.semanticlocationhistory;
parcelable UserLocationProfile;
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/semanticlocationhistory/internal/ISemanticLocationHistoryCallbacks.aidl
================================================
/*
* SPDX-FileCopyrightText: 2025 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.semanticlocationhistory.internal;
import com.google.android.gms.common.api.ApiMetadata;
import com.google.android.gms.common.api.Status;
import com.google.android.gms.common.data.DataHolder;
import com.google.android.gms.semanticlocationhistory.ExperimentVisitsResponse;
import com.google.android.gms.semanticlocationhistory.InferredPlace;
import com.google.android.gms.semanticlocationhistory.LocationHistorySegment;
import com.google.android.gms.semanticlocationhistory.LocationHistorySettings;
import com.google.android.gms.semanticlocationhistory.OdlhBackupSummary;
import com.google.android.gms.semanticlocationhistory.UserLocationProfile;
interface ISemanticLocationHistoryCallbacks {
void onSegmentListResponse(in Status status, in List segments, in ApiMetadata apiMetadata) = 0;
void onGetInferredHomeResponse(in Status status, in InferredPlace inferredPlace, in ApiMetadata apiMetadata) = 1;
void onGetInferredWorkResponse(in Status status, in InferredPlace inferredPlace, in ApiMetadata apiMetadata) = 2;
void onEditSegmentsResponse(in Status status, in ApiMetadata apiMetadata) = 3;
void onGetSegmentsResponse(in DataHolder dataHolder, in ApiMetadata apiMetadata) = 4;
void onDeleteHistoryResponse(in Status status, in ApiMetadata apiMetadata) = 5;
void onGetUserLocationProfileResponse(in Status status, in UserLocationProfile userLocationProfile, in ApiMetadata apiMetadata) = 6;
void onGetBackupSummaryResponse(in Status status, in List summaries, in ApiMetadata apiMetadata) = 7;
void onLocationHistorySettings(in Status status, in LocationHistorySettings locationHistorySettings, in ApiMetadata apiMetadata) = 8;
void onGetExperimentVisitsResponse(in Status status, in ExperimentVisitsResponse response, in ApiMetadata apiMetadata) = 9;
}
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/semanticlocationhistory/internal/ISemanticLocationHistoryService.aidl
================================================
/*
* SPDX-FileCopyrightText: 2025 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.semanticlocationhistory.internal;
import com.google.android.gms.common.api.ApiMetadata;
import com.google.android.gms.common.api.internal.IStatusCallback;
import com.google.android.gms.semanticlocation.SemanticLocationState;
import com.google.android.gms.semanticlocationhistory.LocationHistorySegment;
import com.google.android.gms.semanticlocationhistory.LocationHistorySegmentRequest;
import com.google.android.gms.semanticlocationhistory.RequestCredentials;
import com.google.android.gms.semanticlocationhistory.SemanticLocationEditInputs;
import com.google.android.gms.semanticlocationhistory.internal.ISemanticLocationHistoryCallbacks;
interface ISemanticLocationHistoryService {
void getSegments(in ISemanticLocationHistoryCallbacks callback, in RequestCredentials requestCredentials, in LocationHistorySegmentRequest request, in ApiMetadata apiMetadata) = 0;
void onDemandBackup(in IStatusCallback callback, in RequestCredentials requestCredentials, in ApiMetadata apiMetadata) = 1;
void onDemandRestore(in IStatusCallback callback, in RequestCredentials requestCredentials, in List/**/ list, in ApiMetadata apiMetadata) = 2;
void getInferredHome(in ISemanticLocationHistoryCallbacks callback, in RequestCredentials requestCredentials, in ApiMetadata apiMetadata) = 3;
void getInferredWork(in ISemanticLocationHistoryCallbacks callback, in RequestCredentials requestCredentials, in ApiMetadata apiMetadata) = 4;
void editSegments(in ISemanticLocationHistoryCallbacks callback, in List list, in RequestCredentials requestCredentials, in ApiMetadata apiMetadata) = 5;
void deleteHistory(in ISemanticLocationHistoryCallbacks callback, in RequestCredentials requestCredentials, long startTime, long endTime, in ApiMetadata apiMetadata) = 6;
void getUserLocationProfile(in ISemanticLocationHistoryCallbacks callback, in RequestCredentials requestCredentials, in ApiMetadata apiMetadata) = 7;
void getBackupSummary(in ISemanticLocationHistoryCallbacks callback, in RequestCredentials requestCredentials, in ApiMetadata apiMetadata) = 8;
void deleteBackups(in IStatusCallback callback, in RequestCredentials requestCredentials, in List list, in ApiMetadata apiMetadata) = 9;
void getLocationHistorySettings(in ISemanticLocationHistoryCallbacks callback, in RequestCredentials requestCredentials, in ApiMetadata apiMetadata) = 10;
void getExperimentVisits(in ISemanticLocationHistoryCallbacks callback, in RequestCredentials requestCredentials, in ApiMetadata apiMetadata) = 11;
void editCsl(in IStatusCallback callback, in RequestCredentials requestCredentials, in SemanticLocationEditInputs editInputs, in SemanticLocationState state, in ApiMetadata apiMetadata) = 12;
}
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/usagereporting/UsageReportingOptInOptions.aidl
================================================
package com.google.android.gms.usagereporting;
parcelable UsageReportingOptInOptions;
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/usagereporting/internal/IUsageReportingCallbacks.aidl
================================================
package com.google.android.gms.usagereporting.internal;
import com.google.android.gms.common.api.Status;
import com.google.android.gms.usagereporting.UsageReportingOptInOptions;
interface IUsageReportingCallbacks {
oneway void onOptInOptions(in Status status, in UsageReportingOptInOptions options) = 1;
oneway void onOptInOptionsSet(in Status status) = 2;
oneway void onOptInOptionsChangedListenerAdded(in Status status) = 3;
oneway void onOptInOptionsChangedListenerRemoved(in Status status) = 4;
}
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/usagereporting/internal/IUsageReportingOptInOptionsChangedListener.aidl
================================================
package com.google.android.gms.usagereporting.internal;
interface IUsageReportingOptInOptionsChangedListener {
oneway void onOptionsChanged() = 1;
}
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/usagereporting/internal/IUsageReportingService.aidl
================================================
package com.google.android.gms.usagereporting.internal;
import com.google.android.gms.usagereporting.internal.IUsageReportingCallbacks;
import com.google.android.gms.usagereporting.internal.IUsageReportingOptInOptionsChangedListener;
import com.google.android.gms.usagereporting.UsageReportingOptInOptions;
interface IUsageReportingService {
oneway void getOptInOptions(IUsageReportingCallbacks callbacks) = 1;
oneway void setOptInOptions(in UsageReportingOptInOptions options, IUsageReportingCallbacks callbacks) = 2;
oneway void addOptInOptionsChangedListener(IUsageReportingOptInOptionsChangedListener listener, IUsageReportingCallbacks callbacks) = 3;
oneway void removeOptInOptionsChangedListener(IUsageReportingOptInOptionsChangedListener listener, IUsageReportingCallbacks callbacks) = 4;
}
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/wallet/GetClientTokenRequest.aidl
================================================
/*
* SPDX-FileCopyrightText: 2025 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.wallet;
parcelable GetClientTokenRequest;
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/wallet/GetClientTokenResponse.aidl
================================================
/*
* SPDX-FileCopyrightText: 2025 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.wallet;
parcelable GetClientTokenResponse;
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/wallet/IsReadyToPayRequest.aidl
================================================
package com.google.android.gms.wallet;
parcelable IsReadyToPayRequest;
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/wallet/internal/IOwService.aidl
================================================
package com.google.android.gms.wallet.internal;
import com.google.android.gms.wallet.internal.IWalletServiceCallbacks;
import com.google.android.gms.wallet.IsReadyToPayRequest;
import com.google.android.gms.wallet.GetClientTokenRequest;
interface IOwService {
void isReadyToPay(in IsReadyToPayRequest request, in Bundle args, IWalletServiceCallbacks callbacks) = 13;
void getClientToken(in GetClientTokenRequest getClientTokenRequest, in Bundle options, IWalletServiceCallbacks callbacks) = 14;
}
================================================
FILE: play-services-api/src/main/aidl/com/google/android/gms/wallet/internal/IWalletServiceCallbacks.aidl
================================================
package com.google.android.gms.wallet.internal;
import com.google.android.gms.common.api.Status;
import com.google.android.gms.wallet.GetClientTokenResponse;
interface IWalletServiceCallbacks {
void onIsReadyToPayResponse(in Status status, boolean result, in Bundle args) = 8;
void onClientTokenReceived(in Status status, in GetClientTokenResponse response, in Bundle extras) = 9;
}
================================================
FILE: play-services-api/src/main/aidl/com/google/firebase/database/connection/idl/CompoundHashParcelable.aidl
================================================
package com.google.firebase.database.connection.idl;
parcelable CompoundHashParcelable;
================================================
FILE: play-services-api/src/main/aidl/com/google/firebase/database/connection/idl/ConnectionConfig.aidl
================================================
package com.google.firebase.database.connection.idl;
parcelable ConnectionConfig;
================================================
FILE: play-services-api/src/main/aidl/com/google/firebase/database/connection/idl/IConnectionAuthTokenProvider.aidl
================================================
package com.google.firebase.database.connection.idl;
import com.google.firebase.database.connection.idl.IGetTokenCallback;
interface IConnectionAuthTokenProvider {
void zero(boolean var1, IGetTokenCallback var2) = 0;
}
================================================
FILE: play-services-api/src/main/aidl/com/google/firebase/database/connection/idl/IGetTokenCallback.aidl
================================================
package com.google.firebase.database.connection.idl;
interface IGetTokenCallback {
void zero(String s) = 0;
void onError(String s) = 1;
}
================================================
FILE: play-services-api/src/main/aidl/com/google/firebase/database/connection/idl/IListenHashProvider.aidl
================================================
package com.google.firebase.database.connection.idl;
import com.google.firebase.database.connection.idl.CompoundHashParcelable;
interface IListenHashProvider {
String zzPY() = 0;
boolean zzPZ() = 1;
CompoundHashParcelable zzQF() = 2;
}
================================================
FILE: play-services-api/src/main/aidl/com/google/firebase/database/connection/idl/IPersistentConnection.aidl
================================================
package com.google.firebase.database.connection.idl;
import com.google.android.gms.dynamic.IObjectWrapper;
import com.google.firebase.database.connection.idl.ConnectionConfig;
import com.google.firebase.database.connection.idl.IConnectionAuthTokenProvider;
import com.google.firebase.database.connection.idl.IListenHashProvider;
import com.google.firebase.database.connection.idl.IPersistentConnectionDelegate;
import com.google.firebase.database.connection.idl.IRequestResultCallback;
interface IPersistentConnection {
void setup(in ConnectionConfig var1, IConnectionAuthTokenProvider var2, IObjectWrapper var3, IPersistentConnectionDelegate var4) = 0;
void initialize() = 1;
void shutdown() = 2;
void refreshAuthToken() = 3;
void listen(in List var1, IObjectWrapper var2, IListenHashProvider var3, long var4, IRequestResultCallback var6) = 4;
void unlisten(in List var1, IObjectWrapper var2) = 5;
void purgeOutstandingWrites() = 6;
void put(in List var1, IObjectWrapper var2, IRequestResultCallback var3) = 7;
void compareAndPut(in List var1, IObjectWrapper var2, String var3, IRequestResultCallback var4) = 8;
void merge(in List var1, IObjectWrapper var2, IRequestResultCallback var3) = 9;
void onDisconnectPut(in List var1, IObjectWrapper var2, IRequestResultCallback var3) = 10;
void onDisconnectMerge(in List var1, IObjectWrapper var2, IRequestResultCallback var3) = 11;
void onDisconnectCancel(in List var1, IRequestResultCallback var2) = 12;
void interrupt(String var1) = 13;
void resume(String var1) = 14;
boolean isInterrupted(String var1) = 15;
}
================================================
FILE: play-services-api/src/main/aidl/com/google/firebase/database/connection/idl/IPersistentConnectionDelegate.aidl
================================================
package com.google.firebase.database.connection.idl;
import com.google.android.gms.dynamic.IObjectWrapper;
import com.google.firebase.database.connection.idl.RangeParcelable;
interface IPersistentConnectionDelegate {
void zero(in List var1, IObjectWrapper var2, boolean var3, long var4) = 0;
void one(in List var1, in List var2, IObjectWrapper var3, long var4) = 1;
void two() = 2;
void onDisconnect() = 3;
void four(boolean var1) = 4;
void five(IObjectWrapper var1) = 5;
}
================================================
FILE: play-services-api/src/main/aidl/com/google/firebase/database/connection/idl/IRequestResultCallback.aidl
================================================
package com.google.firebase.database.connection.idl;
interface IRequestResultCallback {
void zero(String var1, String var2) = 0;
}
================================================
FILE: play-services-api/src/main/aidl/com/google/firebase/database/connection/idl/RangeParcelable.aidl
================================================
package com.google.firebase.database.connection.idl;
parcelable RangeParcelable;
================================================
FILE: play-services-api/src/main/java/com/google/android/gms/appdatasearch/CorpusStatus.java
================================================
/*
* Copyright (C) 2013-2017 microG Project Team
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.google.android.gms.appdatasearch;
import android.os.Bundle;
import org.microg.safeparcel.AutoSafeParcelable;
import org.microg.safeparcel.SafeParceled;
public class CorpusStatus extends AutoSafeParcelable {
@SafeParceled(1000)
private int versionCode;
@SafeParceled(1)
public boolean found;
@SafeParceled(2)
public long lastIndexedSeqno;
@SafeParceled(3)
public long lastCommittedSeqno;
@SafeParceled(4)
public long committedNumDocuments;
@SafeParceled(5)
public Bundle counters;
@SafeParceled(6)
public String g;
public CorpusStatus() {
versionCode = 2;
}
public static final Creator CREATOR = new AutoCreator(CorpusStatus.class);
}
================================================
FILE: play-services-api/src/main/java/com/google/android/gms/appdatasearch/PIMEUpdate.java
================================================
/*
* Copyright (C) 2013-2017 microG Project Team
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.google.android.gms.appdatasearch;
import org.microg.safeparcel.AutoSafeParcelable;
public class PIMEUpdate extends AutoSafeParcelable {
public static final Creator CREATOR = new AutoCreator(PIMEUpdate.class);
}
================================================
FILE: play-services-api/src/main/java/com/google/android/gms/appdatasearch/PIMEUpdateResponse.java
================================================
/*
* Copyright (C) 2013-2017 microG Project Team
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.google.android.gms.appdatasearch;
import org.microg.safeparcel.AutoSafeParcelable;
import org.microg.safeparcel.SafeParceled;
public class PIMEUpdateResponse extends AutoSafeParcelable {
@SafeParceled(1000)
private int versionCode;
@SafeParceled(1)
private String b;
@SafeParceled(2)
public final byte[] bytes;
@SafeParceled(3)
public final PIMEUpdate[] updates;
public PIMEUpdateResponse() {
versionCode = 1;
this.bytes = null;
this.updates = new PIMEUpdate[0];
}
public static final Creator CREATOR = new AutoCreator(PIMEUpdateResponse.class);
}
================================================
FILE: play-services-api/src/main/java/com/google/android/gms/appdatasearch/QuerySpecification.java
================================================
/*
* Copyright (C) 2013-2017 microG Project Team
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.google.android.gms.appdatasearch;
import org.microg.safeparcel.AutoSafeParcelable;
import org.microg.safeparcel.SafeParceled;
import java.util.List;
public class QuerySpecification extends AutoSafeParcelable {
@SafeParceled(1000)
private int versionCode = 2;
@SafeParceled(1)
public final boolean b;
//@SafeParceled(value = 2, subType = "TODO")
public final List c;
//@SafeParceled(value = 3, subType = "TODO")
public final List d;
@SafeParceled(4)
public final boolean e;
@SafeParceled(5)
public final int f;
@SafeParceled(6)
public final int g;
@SafeParceled(7)
public final boolean h;
@SafeParceled(8)
public final int i;
private QuerySpecification() {
b = false;
c = null;
d = null;
e = false;
f = 0;
g = 0;
h = false;
i = 0;
}
@Override
public String toString() {
return "QuerySpecification{" +
"versionCode=" + versionCode +
", b=" + b +
", c=" + c +
", d=" + d +
", e=" + e +
", f=" + f +
", g=" + g +
", h=" + h +
", i=" + i +
'}';
}
public static final Creator CREATOR = new AutoCreator(QuerySpecification.class);
}
================================================
FILE: play-services-api/src/main/java/com/google/android/gms/appdatasearch/RequestIndexingSpecification.java
================================================
/*
* Copyright (C) 2013-2017 microG Project Team
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.google.android.gms.appdatasearch;
import org.microg.safeparcel.AutoSafeParcelable;
import org.microg.safeparcel.SafeParceled;
public class RequestIndexingSpecification extends AutoSafeParcelable {
@SafeParceled(1000)
private int versionCode;
public static final Creator CREATOR = new AutoCreator(RequestIndexingSpecification.class);
}
================================================
FILE: play-services-api/src/main/java/com/google/android/gms/appdatasearch/SearchResults.java
================================================
/*
* Copyright (C) 2013-2017 microG Project Team
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.google.android.gms.appdatasearch;
import org.microg.safeparcel.AutoSafeParcelable;
import org.microg.safeparcel.SafeParceled;
public class SearchResults extends AutoSafeParcelable {
@SafeParceled(1000)
private int versionCode = 2;
public static Creator CREATOR = new AutoCreator(SearchResults.class);
}
================================================
FILE: play-services-api/src/main/java/com/google/android/gms/appdatasearch/SuggestSpecification.java
================================================
/*
* Copyright (C) 2013-2017 microG Project Team
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.google.android.gms.appdatasearch;
import org.microg.safeparcel.AutoSafeParcelable;
import org.microg.safeparcel.SafeParceled;
public class SuggestSpecification extends AutoSafeParcelable {
@SafeParceled(1000)
private int versionCode;
public SuggestSpecification() {
versionCode = 2;
}
public static final Creator CREATOR = new AutoCreator(SuggestSpecification.class);
}
================================================
FILE: play-services-api/src/main/java/com/google/android/gms/appdatasearch/SuggestionResults.java
================================================
/*
* Copyright (C) 2013-2017 microG Project Team
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.google.android.gms.appdatasearch;
import org.microg.safeparcel.AutoSafeParcelable;
import org.microg.safeparcel.SafeParceled;
public class SuggestionResults extends AutoSafeParcelable {
@SafeParceled(1000)
private int versionCode;
@SafeParceled(1)
public final String errorMessage;
@SafeParceled(2)
public final String[] s1;
@SafeParceled(3)
public final String[] s2;
private SuggestionResults() {
versionCode = 2;
errorMessage = null;
s1 = s2 = null;
}
public SuggestionResults(String errorMessage) {
versionCode = 2;
this.errorMessage = errorMessage;
this.s1 = null;
this.s2 = null;
}
public SuggestionResults(String[] s1, String[] s2) {
versionCode = 2;
this.errorMessage = null;
this.s1 = s1;
this.s2 = s2;
}
public static final Creator CREATOR = new AutoCreator(SuggestionResults.class);
}
================================================
FILE: play-services-api/src/main/java/com/google/android/gms/appdatasearch/UsageInfo.java
================================================
/*
* Copyright (C) 2013-2017 microG Project Team
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.google.android.gms.appdatasearch;
import org.microg.safeparcel.AutoSafeParcelable;
public class UsageInfo extends AutoSafeParcelable {
public static Creator CREATOR = new AutoCreator(UsageInfo.class);
}
================================================
FILE: play-services-api/src/main/java/com/google/android/gms/audit/LogAuditRecordsRequest.java
================================================
/*
* SPDX-FileCopyrightText: 2023 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.audit;
import android.os.Parcel;
import androidx.annotation.NonNull;
import com.google.android.gms.common.internal.safeparcel.AbstractSafeParcelable;
import com.google.android.gms.common.internal.safeparcel.SafeParcelable;
import com.google.android.gms.common.internal.safeparcel.SafeParcelableCreatorAndWriter;
import org.microg.gms.utils.ToStringHelper;
@SafeParcelable.Class
public class LogAuditRecordsRequest extends AbstractSafeParcelable {
@Field(1)
public int writeMode;
@Field(2)
public int componentId;
@Field(3)
public String accountName;
@Field(4)
public byte[][] auditRecords;
@Field(5)
public byte[] traceToken;
@Field(6)
public byte[] auditToken;
@NonNull
@Override
public String toString() {
return ToStringHelper.name("LogAuditRecordsRequest")
.field("writeMode", writeMode)
.field("componentId", componentId)
.field("accountName", accountName)
.field("auditRecords", auditRecords)
.field("traceToken", traceToken)
.field("auditToken", auditToken)
.end();
}
@Override
public void writeToParcel(@NonNull Parcel dest, int flags) {
CREATOR.writeToParcel(this, dest, flags);
}
public static final SafeParcelableCreatorAndWriter CREATOR = findCreator(LogAuditRecordsRequest.class);
}
================================================
FILE: play-services-api/src/main/java/com/google/android/gms/auth/firstparty/dataservice/AccountRecoveryGuidanceRequest.java
================================================
/*
* Copyright (C) 2013-2017 microG Project Team
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.google.android.gms.auth.firstparty.dataservice;
import android.accounts.Account;
import org.microg.gms.auth.AuthConstants;
import org.microg.safeparcel.AutoSafeParcelable;
import org.microg.safeparcel.SafeParceled;
public class AccountRecoveryGuidanceRequest extends AutoSafeParcelable {
@SafeParceled(1)
private int versionCode = 1;
@SafeParceled(2)
@Deprecated
public final String accountName;
@SafeParceled(3)
public final Account account;
public AccountRecoveryGuidanceRequest(String accountName) {
this.accountName = accountName;
this.account = new Account(accountName, AuthConstants.DEFAULT_ACCOUNT_TYPE);
}
public AccountRecoveryGuidanceRequest(Account account) {
this.accountName = account.name;
this.account = account;
}
public static final Creator CREATOR = new AutoCreator(AccountRecoveryGuidanceRequest.class);
}
================================================
FILE: play-services-api/src/main/java/com/google/android/gms/auth/firstparty/dataservice/AccountRemovalRequest.java
================================================
/*
* Copyright (C) 2013-2017 microG Project Team
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.google.android.gms.auth.firstparty.dataservice;
import android.accounts.Account;
import org.microg.gms.auth.AuthConstants;
import org.microg.safeparcel.AutoSafeParcelable;
import org.microg.safeparcel.SafeParceled;
public class AccountRemovalRequest extends AutoSafeParcelable {
@SafeParceled(1)
private int versionCode = 1;
@SafeParceled(2)
@Deprecated
public final String accountName;
@SafeParceled(3)
public final Account account;
public AccountRemovalRequest(String accountName) {
this.accountName = accountName;
this.account = new Account(accountName, AuthConstants.DEFAULT_ACCOUNT_TYPE);
}
public AccountRemovalRequest(Account account) {
this.accountName = account.name;
this.account = account;
}
public static final Creator CREATOR = new AutoCreator(AccountRemovalRequest.class);
}
================================================
FILE: play-services-api/src/main/java/com/google/android/gms/auth/firstparty/dataservice/ConfirmCredentialsRequest.java
================================================
/*
* Copyright (C) 2013-2017 microG Project Team
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.google.android.gms.auth.firstparty.dataservice;
import com.google.android.gms.auth.firstparty.shared.AccountCredentials;
import com.google.android.gms.auth.firstparty.shared.CaptchaSolution;
import org.microg.safeparcel.AutoSafeParcelable;
import org.microg.safeparcel.SafeParceled;
public class ConfirmCredentialsRequest extends AutoSafeParcelable {
@SafeParceled(1)
private int versionCode = 1;
@SafeParceled(2)
public AccountCredentials accountCredentials;
@SafeParceled(3)
public CaptchaSolution captchaSolution;
public static final Creator CREATOR = new AutoCreator(ConfirmCredentialsRequest.class);
}
================================================
FILE: play-services-api/src/main/java/com/google/android/gms/auth/firstparty/dataservice/FACLConfig.java
================================================
/*
* SPDX-FileCopyrightText: 2024 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.auth.firstparty.dataservice;
import org.microg.safeparcel.AutoSafeParcelable;
public class FACLConfig extends AutoSafeParcelable {
@Field(1)
public int versionCode = 1;
@Field(2)
public boolean allCirclesVisible;
@Field(3)
public String visibleEdges;
@Field(4)
public boolean allContactsVisible;
@Field(5)
public boolean showCircles;
@Field(6)
public boolean showContacts;
@Field(7)
public boolean hasShowCircles;
public static final Creator CREATOR = new AutoCreator(FACLConfig.class);
}
================================================
FILE: play-services-api/src/main/java/com/google/android/gms/auth/firstparty/dataservice/PACLConfig.java
================================================
/*
* SPDX-FileCopyrightText: 2024 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.auth.firstparty.dataservice;
import org.microg.safeparcel.AutoSafeParcelable;
public class PACLConfig extends AutoSafeParcelable {
@Field(1)
private int versionCode = 1;
@Field(2)
public String visibleActions;
@Field(3)
public String data;
public static final Creator CREATOR = new AutoCreator(PACLConfig.class);
}
================================================
FILE: play-services-api/src/main/java/com/google/android/gms/auth/firstparty/dataservice/TokenRequest.java
================================================
/*
* SPDX-FileCopyrightText: 2015 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.auth.firstparty.dataservice;
import android.accounts.Account;
import android.os.Bundle;
import com.google.android.gms.auth.firstparty.shared.AppDescription;
import com.google.android.gms.auth.firstparty.shared.CaptchaSolution;
import org.microg.safeparcel.AutoSafeParcelable;
public class TokenRequest extends AutoSafeParcelable {
@Field(1)
private int versionCode = 8;
@Field(2)
private String service;
@Field(3)
public String accountName;
@Field(4)
public Bundle extras;
@Field(5)
public FACLConfig faclConfig;
@Field(6)
public PACLConfig paclConfig;
@Field(7)
public boolean signingIn;
@Field(9)
public String consent;
@Field(10)
public AppDescription callingAppDescription;
@Field(11)
public CaptchaSolution captchaSolution;
@Field(14)
public boolean useCache;
@Field(15)
public String accountType;
@Field(16)
public int delegationType;
@Field(17)
public String delegateeUserId;
@Field(19)
public String consentResult;
@Field(24)
public int mode;
public Account getAccount() {
return new Account(accountName, accountType);
}
public static final Creator CREATOR = new AutoCreator(TokenRequest.class);
}
================================================
FILE: play-services-api/src/main/java/com/google/android/gms/auth/firstparty/dataservice/TokenResponse.java
================================================
/*
* Copyright (C) 2013-2017 microG Project Team
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.google.android.gms.auth.firstparty.dataservice;
public class TokenResponse {
}
================================================
FILE: play-services-api/src/main/java/com/google/android/gms/auth/firstparty/delegate/ConfirmCredentialsWorkflowRequest.java
================================================
/*
* Copyright (C) 2013-2017 microG Project Team
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.google.android.gms.auth.firstparty.delegate;
import android.accounts.Account;
import android.accounts.AccountAuthenticatorResponse;
import android.os.Bundle;
import com.google.android.gms.auth.firstparty.shared.AppDescription;
import org.microg.safeparcel.AutoSafeParcelable;
import org.microg.safeparcel.SafeParceled;
public class ConfirmCredentialsWorkflowRequest extends AutoSafeParcelable {
@SafeParceled(1)
private int versionCode = 3;
@SafeParceled(2)
public String accountName;
@SafeParceled(3)
public AppDescription appDescription;
@SafeParceled(4)
public Bundle extras;
@SafeParceled(5)
public Account account;
@SafeParceled(6)
public AccountAuthenticatorResponse accountAuthenticatorResponse;
public static final Creator CREATOR = new AutoCreator(ConfirmCredentialsWorkflowRequest.class);
}
================================================
FILE: play-services-api/src/main/java/com/google/android/gms/auth/firstparty/proximity/data/Permit.java
================================================
/*
* Copyright (C) 2013-2017 microG Project Team
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.google.android.gms.auth.firstparty.proximity.data;
public class Permit {
}
================================================
FILE: play-services-api/src/main/java/com/google/android/gms/auth/firstparty/shared/AccountCredentials.java
================================================
/*
* Copyright (C) 2013-2017 microG Project Team
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.google.android.gms.auth.firstparty.shared;
import android.accounts.Account;
import org.microg.safeparcel.AutoSafeParcelable;
import org.microg.safeparcel.SafeParceled;
// TODO
public class AccountCredentials extends AutoSafeParcelable {
@SafeParceled(1)
private int versionCode = 2;
@SafeParceled(3)
public String accountName;
@SafeParceled(9)
public String accountType;
public Account getAccount() {
return new Account(accountName, accountType);
}
public static final Creator CREATOR = new AutoCreator(AccountCredentials.class);
}
================================================
FILE: play-services-api/src/main/java/com/google/android/gms/auth/firstparty/shared/AppDescription.java
================================================
/*
* Copyright (C) 2013-2017 microG Project Team
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.google.android.gms.auth.firstparty.shared;
import org.microg.safeparcel.AutoSafeParcelable;
import org.microg.safeparcel.SafeParceled;
public class AppDescription extends AutoSafeParcelable {
@SafeParceled(1)
private int versionCode = 1;
@SafeParceled(2)
public int callingUid;
@SafeParceled(3)
public String sessiondId;
@SafeParceled(4)
public String sessiondSig;
@SafeParceled(5)
public String callingPkg;
public static final Creator CREATOR = new AutoCreator(AppDescription.class);
}
================================================
FILE: play-services-api/src/main/java/com/google/android/gms/auth/firstparty/shared/CaptchaSolution.java
================================================
/*
* Copyright (C) 2013-2017 microG Project Team
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.google.android.gms.auth.firstparty.shared;
import org.microg.safeparcel.AutoSafeParcelable;
import org.microg.safeparcel.SafeParceled;
// TODO
public class CaptchaSolution extends AutoSafeParcelable {
@SafeParceled(1)
private int versionCode = 1;
public static final Creator CREATOR = new AutoCreator(CaptchaSolution.class);
}
================================================
FILE: play-services-api/src/main/java/com/google/android/gms/credential/manager/invocationparams/CallerInfo.java
================================================
/*
* SPDX-FileCopyrightText: 2023 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.credential.manager.invocationparams;
import androidx.annotation.NonNull;
import org.microg.safeparcel.AutoSafeParcelable;
public class CallerInfo extends AutoSafeParcelable {
@Field(1)
public String source;
@Field(2)
public String medium;
@Field(3)
public String campaign;
@Field(4)
public String content;
@NonNull
@Override
public String toString() {
return "CallerInfo(" + source + "," + medium + "," + campaign + "," + content + ")";
}
public static final Creator CREATOR = new AutoCreator<>(CallerInfo.class);
}
================================================
FILE: play-services-api/src/main/java/com/google/android/gms/credential/manager/invocationparams/CredentialManagerAccount.java
================================================
/*
* SPDX-FileCopyrightText: 2023 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.credential.manager.invocationparams;
import androidx.annotation.NonNull;
import org.microg.safeparcel.AutoSafeParcelable;
public class CredentialManagerAccount extends AutoSafeParcelable {
@Field(1)
public String name;
@NonNull
@Override
public String toString() {
return name;
}
public static final String NAME_LOCAL = "pwm.constant.LocalAccount";
public static final Creator CREATOR = new AutoCreator<>(CredentialManagerAccount.class);
}
================================================
FILE: play-services-api/src/main/java/com/google/android/gms/credential/manager/invocationparams/CredentialManagerInvocationParams.java
================================================
/*
* SPDX-FileCopyrightText: 2023 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.credential.manager.invocationparams;
import androidx.annotation.NonNull;
import org.microg.gms.utils.ToStringHelper;
import org.microg.safeparcel.AutoSafeParcelable;
public class CredentialManagerInvocationParams extends AutoSafeParcelable {
@Field(1)
public CredentialManagerAccount account;
@Field(2)
public CallerInfo caller;
@NonNull
@Override
public String toString() {
return ToStringHelper.name("CredentialManagerInvocationParams")
.field("account", account)
.field("caller", caller)
.end();
}
public static final Creator CREATOR = new AutoCreator<>(CredentialManagerInvocationParams.class);
}
================================================
FILE: play-services-api/src/main/java/com/google/android/gms/facs/cache/FacsCacheCallOptions.java
================================================
/*
* SPDX-FileCopyrightText: 2021, microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.facs.cache;
import org.microg.safeparcel.AutoSafeParcelable;
public class FacsCacheCallOptions extends AutoSafeParcelable {
@Field(1)
public String instanceId;
@Field(2)
public long version;
public static final Creator CREATOR = new AutoCreator<>(FacsCacheCallOptions.class);
}
================================================
FILE: play-services-api/src/main/java/com/google/android/gms/facs/cache/ForceSettingsCacheRefreshResult.java
================================================
/*
* SPDX-FileCopyrightText: 2021, microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.facs.cache;
import org.microg.safeparcel.AutoSafeParcelable;
public class ForceSettingsCacheRefreshResult extends AutoSafeParcelable {
public static final Creator CREATOR = new AutoCreator<>(ForceSettingsCacheRefreshResult.class);
}
================================================
FILE: play-services-api/src/main/java/com/google/android/gms/facs/cache/GetActivityControlsSettingsResult.java
================================================
/*
* SPDX-FileCopyrightText: 2021, microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.facs.cache;
import android.os.Parcel;
import androidx.annotation.NonNull;
import com.google.android.gms.common.internal.safeparcel.AbstractSafeParcelable;
import com.google.android.gms.common.internal.safeparcel.SafeParcelable;
import com.google.android.gms.common.internal.safeparcel.SafeParcelableCreatorAndWriter;
@SafeParcelable.Class
public class GetActivityControlsSettingsResult extends AbstractSafeParcelable {
@Field(value = 1)
public byte[] bytes;
@Constructor
public GetActivityControlsSettingsResult(@Param(1) byte[] data) {
this.bytes = data;
}
@Override
public void writeToParcel(@NonNull Parcel dest, int flags) {
CREATOR.writeToParcel(this, dest, flags);
}
public static final SafeParcelableCreatorAndWriter CREATOR = findCreator(GetActivityControlsSettingsResult.class);
}
================================================
FILE: play-services-api/src/main/java/com/google/android/gms/facs/cache/ReadDeviceLevelSettingsResult.java
================================================
/*
* SPDX-FileCopyrightText: 2021, microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.facs.cache;
import org.microg.safeparcel.AutoSafeParcelable;
public class ReadDeviceLevelSettingsResult extends AutoSafeParcelable {
public static final Creator CREATOR = new AutoCreator<>(ReadDeviceLevelSettingsResult.class);
}
================================================
FILE: play-services-api/src/main/java/com/google/android/gms/facs/cache/UpdateActivityControlsSettingsResult.java
================================================
/*
* SPDX-FileCopyrightText: 2021, microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.facs.cache;
import org.microg.safeparcel.AutoSafeParcelable;
public class UpdateActivityControlsSettingsResult extends AutoSafeParcelable {
public static final Creator CREATOR = new AutoCreator<>(UpdateActivityControlsSettingsResult.class);
}
================================================
FILE: play-services-api/src/main/java/com/google/android/gms/family/model/MemberDataModel.java
================================================
/**
* SPDX-FileCopyrightText: 2025 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.family.model;
import android.os.Parcel;
import androidx.annotation.NonNull;
import com.google.android.gms.common.internal.safeparcel.AbstractSafeParcelable;
import com.google.android.gms.common.internal.safeparcel.SafeParcelable;
import com.google.android.gms.common.internal.safeparcel.SafeParcelableCreatorAndWriter;
@SafeParcelable.Class
public class MemberDataModel extends AbstractSafeParcelable {
@Field(1)
public String memberId = "";
@Field(2)
public String email = "";
@Field(3)
public String displayName = "";
@Field(4)
public String hohGivenName = "";
@Field(5)
public String profilePhotoUrl = "";
@Field(6)
public String roleName = "";
@Field(7)
public int role = 0;
@Field(8)
public boolean isActive = false;
@Field(9)
public int supervisionType = 0;
@Field(10)
public long timestamp = 0;
@Field(11)
public boolean isInviteEntry = false;
@Field(12)
public int inviteSlots = 0;
@Field(13)
public boolean isInvited = false;
@Field(14)
public String invitationId = "";
@Field(15)
public long inviteState = 0;
@Field(16)
public String inviteSentDate = "";
public static final SafeParcelableCreatorAndWriter CREATOR = findCreator(MemberDataModel.class);
@Override
public void writeToParcel(@NonNull Parcel dest, int flags) {
CREATOR.writeToParcel(this, dest, flags);
}
@Override
public String toString() {
return "MemberDataModel{" +
"memberId='" + memberId + '\'' +
", email='" + email + '\'' +
", displayName='" + displayName + '\'' +
", hohGivenName='" + hohGivenName + '\'' +
", profilePhotoUrl='" + profilePhotoUrl + '\'' +
", roleName='" + roleName + '\'' +
", role=" + role +
", isActive=" + isActive +
", supervisionType=" + supervisionType +
", timestamp=" + timestamp +
", isInviteEntry=" + isInviteEntry +
", inviteSlots=" + inviteSlots +
", isInvited=" + isInvited +
", invitationId='" + invitationId + '\'' +
", inviteState=" + inviteState +
", inviteSentDate='" + inviteSentDate + '\'' +
'}';
}
}
================================================
FILE: play-services-api/src/main/java/com/google/android/gms/family/v2/model/BulletPoint.java
================================================
/**
* SPDX-FileCopyrightText: 2025 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.family.v2.model;
import android.os.Parcel;
import android.os.Parcelable;
import androidx.annotation.NonNull;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
public class BulletPoint implements Parcelable {
public HashMap contentMap = new HashMap<>();
public BulletPoint() {
}
public BulletPoint(HashMap contentMap) {
this.contentMap = contentMap;
}
public BulletPoint(Parcel parcel) {
int readInt = parcel.readInt();
for (int i = 0; i < readInt; i++) {
this.contentMap.put(parcel.readInt(), parcel.readString());
}
}
public final boolean equals(Object obj) {
return (obj instanceof BulletPoint) && ((BulletPoint) obj).contentMap.equals(this.contentMap);
}
public final int hashCode() {
return Arrays.hashCode(new Object[]{this.contentMap});
}
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(@NonNull Parcel dest, int flags) {
dest.writeInt(this.contentMap.size());
for (Map.Entry entry : this.contentMap.entrySet()) {
dest.writeInt((Integer) entry.getKey());
dest.writeString((String) entry.getValue());
}
}
public static final Creator CREATOR = new Creator() {
@Override
public BulletPoint createFromParcel(Parcel source) {
return new BulletPoint(source);
}
@Override
public BulletPoint[] newArray(int size) {
return new BulletPoint[size];
}
};
}
================================================
FILE: play-services-api/src/main/java/com/google/android/gms/family/v2/model/HelpData.java
================================================
/**
* SPDX-FileCopyrightText: 2025 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.family.v2.model;
import android.os.Parcel;
import androidx.annotation.NonNull;
import com.google.android.gms.common.internal.safeparcel.AbstractSafeParcelable;
import com.google.android.gms.common.internal.safeparcel.SafeParcelable;
import com.google.android.gms.common.internal.safeparcel.SafeParcelableCreatorAndWriter;
@SafeParcelable.Class
public class HelpData extends AbstractSafeParcelable {
@Field(1)
public String linkUrl;
@Field(2)
public String appContext;
public HelpData() {
}
public HelpData(String linkUrl, String appContext) {
this.linkUrl = linkUrl;
this.appContext = appContext;
}
public static final SafeParcelableCreatorAndWriter CREATOR = findCreator(HelpData.class);
@Override
public void writeToParcel(@NonNull Parcel dest, int flags) {
CREATOR.writeToParcel(this, dest, flags);
}
@Override
public String toString() {
return "HelpData{" +
"linkUrl='" + linkUrl + '\'' +
", appContext='" + appContext + '\'' +
'}';
}
}
================================================
FILE: play-services-api/src/main/java/com/google/android/gms/family/v2/model/PageData.java
================================================
/**
* SPDX-FileCopyrightText: 2025 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.family.v2.model;
import android.os.Parcelable;
import org.microg.safeparcel.AutoSafeParcelable;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Objects;
public class PageData extends AutoSafeParcelable {
@Field(1)
public int version = 1;
@Field(2)
public HashMap sectionMap = new HashMap<>();
@Field(3)
public HashMap helpMap = new HashMap<>();
@Field(4)
public ArrayList bulletPoints = new ArrayList<>();
public PageData() {}
public PageData(HashMap sectionMap, HashMap helpMap, ArrayList bulletPoints) {
this.sectionMap = sectionMap;
this.helpMap = helpMap;
this.bulletPoints = bulletPoints;
}
@Override
public boolean equals(Object obj) {
if (this == obj) return true;
if (!(obj instanceof PageData)) return false;
PageData other = (PageData) obj;
return version == other.version &&
Objects.equals(sectionMap, other.sectionMap) &&
Objects.equals(helpMap, other.helpMap) &&
Objects.equals(bulletPoints, other.bulletPoints);
}
@Override
public int hashCode() {
return Objects.hash(version, sectionMap, helpMap, bulletPoints);
}
@Override
public String toString() {
return "PageData{" +
"version=" + version +
", sectionMap=" + sectionMap +
", helpMap=" + helpMap +
", bulletPoints=" + bulletPoints +
'}';
}
public static final Parcelable.Creator CREATOR = findCreator(PageData.class);
}
================================================
FILE: play-services-api/src/main/java/com/google/android/gms/feedback/ErrorReport.java
================================================
/*
* SPDX-FileCopyrightText: 2023 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.feedback;
import android.app.ApplicationErrorReport;
import android.graphics.Bitmap;
import android.graphics.RectF;
import android.os.Bundle;
import android.os.Parcel;
import androidx.annotation.NonNull;
import com.google.android.gms.common.data.BitmapTeleporter;
import com.google.android.gms.common.internal.safeparcel.AbstractSafeParcelable;
import com.google.android.gms.common.internal.safeparcel.SafeParcelable;
import com.google.android.gms.common.internal.safeparcel.SafeParcelableCreatorAndWriter;
import java.util.List;
@SafeParcelable.Class
public class ErrorReport extends AbstractSafeParcelable {
@Field(2)
public ApplicationErrorReport applicationErrorReport;
@Field(3)
public String feedbackMsg;
@Field(4)
public int versionCode;
@Field(5)
public String versionName;
@Field(6)
public String mobileDevice;
@Field(7)
public String mobileDisplay;
@Field(8)
public String mobileType;
@Field(9)
public String mobileModel;
@Field(10)
public String mobileProduct;
@Field(11)
public String mobileFingerprint;
@Field(12)
public int mobileSdkInt;
@Field(13)
public String mobileRelease;
@Field(14)
public String mobileIncremental;
@Field(15)
public String mobileCodeName;
@Field(16)
public String mobileBoard;
@Field(17)
public String mobileBrand;
@Field(18)
public String[] unknownStringArray18;
@Field(19)
public String[] unknownStringArray19;
@Field(20)
public String[] unknownStringArray20;
@Field(21)
public String unknownString21;
@Field(22)
public String screenshotImgSrc;
@Field(23)
public byte[] screenshotImgData;
@Field(24)
public int screenshotHeight;
@Field(25)
public int screenshotWidth;
@Field(26)
public int phoneType;
@Field(27)
public int networkType;
@Field(28)
public String networkOperatorName;
@Field(29)
public String email;
@Field(30)
public String languageTag;
@Field(31)
public Bundle bundle;
@Field(32)
public boolean isFixedUri;
@Field(33)
public int mobileCountryCode;
@Field(34)
public int mobileNetworkCode;
@Field(35)
public boolean unknownBool35;
@Field(36)
public String exceptionClassName;
@Field(37)
public String throwFileName;
@Field(38)
public int throwLineNumber;
@Field(39)
public String throwClassName;
@Field(40)
public String throwMethodName;
@Field(41)
public String stackTrace;
@Field(42)
public String exceptionMessage;
@Field(43)
public String unknownString43;
@Field(44)
public String unknownString44;
@Field(45)
public String packageName;
@Field(46)
public BitmapTeleporter bitmapTeleporter;
@Field(47)
public String unknownString47;
@Field(48)
public FileTeleporter[] files;
@Field(49)
public String[] unknownByteArray49;
@Field(50)
public boolean unknownBool50;
@Field(51)
public String unknownString51;
@Field(52)
public ThemeSettings themeSettings;
@Field(53)
public LogOptions logOptions;
@Field(54)
public String unknownString54;
@Field(55)
public boolean unknownBool55;
@Field(56)
public Bundle bundleText;
@Field(57)
public List rectFS;
@Field(58)
public boolean unknownBool58;
@Field(59)
public Bitmap bitmap;
@Field(60)
public String unknownString60;
@Field(61)
public List camList;
@Field(62)
public int unknownInt62;
@Field(63)
public int unknownInt63;
@Field(64)
public String[] unknownStringArray64;
@Field(65)
public String[] unknownStringArray65;
@Field(66)
public String[] unknownStringArray66;
public static final SafeParcelableCreatorAndWriter CREATOR = findCreator(ErrorReport.class);
@Override
public void writeToParcel(@NonNull Parcel dest, int flags) {
CREATOR.writeToParcel(this, dest, flags);
}
}
================================================
FILE: play-services-api/src/main/java/com/google/android/gms/feedback/FeedbackOptions.java
================================================
/*
* SPDX-FileCopyrightText: 2023 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.feedback;
import android.app.ApplicationErrorReport;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.os.Parcel;
import androidx.annotation.NonNull;
import com.google.android.gms.common.data.BitmapTeleporter;
import com.google.android.gms.common.internal.safeparcel.AbstractSafeParcelable;
import com.google.android.gms.common.internal.safeparcel.SafeParcelable;
import com.google.android.gms.common.internal.safeparcel.SafeParcelableCreatorAndWriter;
import java.util.List;
@SafeParcelable.Class
public class FeedbackOptions extends AbstractSafeParcelable {
public static final SafeParcelableCreatorAndWriter CREATOR = findCreator(FeedbackOptions.class);
@Field(2)
public String unknownString2;
@Field(3)
public Bundle unknownBundle3;
@Field(5)
public String unknownString3;
@Field(6)
public ApplicationErrorReport applicationErrorReport;
@Field(7)
public String unknownString7;
@Field(8)
public BitmapTeleporter bitmapTeleporter;
@Field(9)
public String packageName;
@Field(10)
public List files;
@Field(11)
public boolean unknownBoolean11;
@Field(12)
public ThemeSettings themeSettings;
@Field(13)
public LogOptions logOptions;
@Field(14)
public boolean unknownBoolean14;
@Field(15)
public Bitmap screenshot;
@Field(16)
public String unknownString16;
@Field(17)
public boolean unknownBoolean17;
@Field(18)
public long unknownLong18;
@Field(19)
public boolean unknownBool19;
@Override
public void writeToParcel(@NonNull Parcel dest, int flags) {
CREATOR.writeToParcel(this, dest, flags);
}
}
================================================
FILE: play-services-api/src/main/java/com/google/android/gms/feedback/FileTeleporter.java
================================================
/*
* SPDX-FileCopyrightText: 2023 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.feedback;
import android.os.Parcel;
import androidx.annotation.NonNull;
import com.google.android.gms.common.internal.safeparcel.AbstractSafeParcelable;
import com.google.android.gms.common.internal.safeparcel.SafeParcelable;
import com.google.android.gms.common.internal.safeparcel.SafeParcelableCreatorAndWriter;
@SafeParcelable.Class
public class FileTeleporter extends AbstractSafeParcelable {
@Field(3)
public String contentType;
@Field(4)
public String content;
@Override
public void writeToParcel(@NonNull Parcel dest, int flags) {
CREATOR.writeToParcel(this, dest, flags);
}
public static final SafeParcelableCreatorAndWriter CREATOR = findCreator(FileTeleporter.class);
}
================================================
FILE: play-services-api/src/main/java/com/google/android/gms/feedback/LogOptions.java
================================================
/*
* SPDX-FileCopyrightText: 2023 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.feedback;
import android.os.Parcel;
import androidx.annotation.NonNull;
import com.google.android.gms.common.internal.safeparcel.AbstractSafeParcelable;
import com.google.android.gms.common.internal.safeparcel.SafeParcelable;
import com.google.android.gms.common.internal.safeparcel.SafeParcelableCreatorAndWriter;
@SafeParcelable.Class
public class LogOptions extends AbstractSafeParcelable {
@Field(2)
public String options;
@Field(3)
public boolean unknownBool3;
@Field(4)
public boolean unknownBool4;
@Field(5)
public boolean unknownBool5;
@Field(6)
public boolean unknownBool6;
@Override
public void writeToParcel(@NonNull Parcel dest, int flags) {
CREATOR.writeToParcel(this, dest, flags);
}
public static final SafeParcelableCreatorAndWriter CREATOR = findCreator(LogOptions.class);
}
================================================
FILE: play-services-api/src/main/java/com/google/android/gms/feedback/ThemeSettings.java
================================================
/*
* SPDX-FileCopyrightText: 2023 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.feedback;
import androidx.annotation.NonNull;
import org.microg.gms.utils.ToStringHelper;
import org.microg.safeparcel.AutoSafeParcelable;
public class ThemeSettings extends AutoSafeParcelable {
@Field(2)
public int unknownInt2;
@Field(3)
public int unknownInt3;
@NonNull
@Override
public String toString() {
return ToStringHelper.name("ThemeSettings")
.field("2", unknownInt2)
.field("3", unknownInt3)
.end();
}
public static final Creator CREATOR = findCreator(ThemeSettings.class);
}
================================================
FILE: play-services-api/src/main/java/com/google/android/gms/gass/internal/GassRequestParcel.java
================================================
/*
* SPDX-FileCopyrightText: 2023 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.gass.internal;
import android.os.Parcel;
import androidx.annotation.NonNull;
import com.google.android.gms.common.internal.safeparcel.AbstractSafeParcelable;
import com.google.android.gms.common.internal.safeparcel.SafeParcelable;
import com.google.android.gms.common.internal.safeparcel.SafeParcelableCreatorAndWriter;
@SafeParcelable.Class
public class GassRequestParcel extends AbstractSafeParcelable {
@Field(1)
public int versionCode;
@Field(2)
public String packageName;
@Field(3)
public String appVersionCode;
@Override
public void writeToParcel(@NonNull Parcel dest, int flags) {
CREATOR.writeToParcel(this, dest, flags);
}
public static final SafeParcelableCreatorAndWriter CREATOR = findCreator(GassRequestParcel.class);
}
================================================
FILE: play-services-api/src/main/java/com/google/android/gms/gass/internal/GassResponseParcel.java
================================================
/*
* SPDX-FileCopyrightText: 2023 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.gass.internal;
import android.os.Parcel;
import androidx.annotation.NonNull;
import com.google.android.gms.common.internal.safeparcel.AbstractSafeParcelable;
import com.google.android.gms.common.internal.safeparcel.SafeParcelable;
import com.google.android.gms.common.internal.safeparcel.SafeParcelableCreatorAndWriter;
import com.google.android.gms.feedback.ErrorReport;
@SafeParcelable.Class
public class GassResponseParcel extends AbstractSafeParcelable {
@Field(1)
public int versionCode;
@Field(2)
public byte[] data;
public ErrorReport report;
public GassResponseParcel() {
}
public GassResponseParcel(int i, byte[] bArr) {
this.versionCode = i;
this.report = null;
this.data = bArr;
}
public GassResponseParcel(ErrorReport report) {
this.versionCode = 1;
this.report = report;
this.data = null;
}
@Override
public void writeToParcel(@NonNull Parcel dest, int flags) {
CREATOR.writeToParcel(this, dest, flags);
}
public static final SafeParcelableCreatorAndWriter CREATOR = findCreator(GassResponseParcel.class);
}
================================================
FILE: play-services-api/src/main/java/com/google/android/gms/googlehelp/FRDProductSpecificDataEntry.java
================================================
/*
* SPDX-FileCopyrightText: 2023 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.googlehelp;
import org.microg.safeparcel.AutoSafeParcelable;
public class FRDProductSpecificDataEntry extends AutoSafeParcelable {
public static final Creator CREATOR = findCreator(FRDProductSpecificDataEntry.class);
}
================================================
FILE: play-services-api/src/main/java/com/google/android/gms/googlehelp/GoogleHelp.java
================================================
/*
* SPDX-FileCopyrightText: 2023 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.googlehelp;
import android.accounts.Account;
import android.app.PendingIntent;
import android.graphics.Bitmap;
import android.net.Uri;
import android.os.Bundle;
import androidx.annotation.NonNull;
import com.google.android.gms.feedback.ErrorReport;
import com.google.android.gms.feedback.ThemeSettings;
import com.google.android.gms.googlehelp.internal.common.OverflowMenuItem;
import com.google.android.gms.googlehelp.internal.common.TogglingData;
import org.microg.gms.utils.ToStringHelper;
import org.microg.safeparcel.AutoSafeParcelable;
import java.util.List;
public class GoogleHelp extends AutoSafeParcelable {
@Field(1)
private int versionCode;
@Field(2)
public String appContext;
@Field(3)
public Account account;
@Field(4)
public Bundle extras;
@Field(5)
public boolean unknownBool5;
@Field(6)
public boolean unknownBool6;
@Field(7)
public List unknownStringList7;
@Field(15)
public Uri uri;
@Field(16)
public List overflowMenuItems;
@Field(17)
public int unknownAlwaysZero17;
@Field(18)
public List offlineSuggestions;
@Field(20)
public int unknownInt20;
@Field(21)
public int unknownInt21;
@Field(22)
public boolean unknownBool22;
@Field(23)
public ErrorReport errorReport;
@Field(25)
public ThemeSettings themeSettings;
@Field(28)
public String appPackageName;
@Field(31)
public TogglingData togglingData;
@Field(32)
public int unknownInt32;
@Field(33)
public PendingIntent customFeedbackPendingIntent;
@Field(34)
public String title;
@Field(35)
public Bitmap icon;
@Field(36)
public int unknownInt36;
@Field(37)
public boolean unknownBool37;
@Field(38)
public boolean unknownBool38;
@Field(39)
public int timeout;
@Field(40)
public String sessionId;
@Field(41)
public boolean unknownBool41;
@Field(42)
public String clientPackageName;
@Field(43)
public boolean unknownBool43;
@Field(44)
public ND4CSettings nd4CSettings;
@Field(45)
public boolean unknownBool45;
@Field(46)
public List productSpecificDataEntries;
@NonNull
@Override
public String toString() {
return ToStringHelper.name("GoogleHelp")
.field("appContext", appContext)
.field("account", account)
.field("extras", extras)
.field("5", unknownBool5)
.field("6", unknownBool6)
.field("7", unknownStringList7)
.field("uri", uri)
.field("overflowMenuItems", overflowMenuItems)
.field("17", unknownAlwaysZero17)
.field("offlineSuggestions", offlineSuggestions)
.field("20", unknownInt20)
.field("21", unknownInt21)
.field("22", unknownBool22)
.field("errorReport", errorReport)
.field("themeSettings", themeSettings)
.field("appPackageName", appPackageName)
.field("togglingData", togglingData)
.field("32", unknownInt32)
.field("customFeedbackPendingIntent", customFeedbackPendingIntent)
.field("title", title)
.field("icon", icon)
.field("36", unknownInt36)
.field("37", unknownBool37)
.field("38", unknownBool38)
.field("timeout", timeout)
.field("sessionId", sessionId)
.field("41", unknownBool41)
.field("clientPackageName", clientPackageName)
.field("43", unknownBool43)
.field("nd4CSettings", nd4CSettings)
.field("45", unknownBool45)
.field("productSpecificDataEntries", productSpecificDataEntries)
.end();
}
public static final Creator CREATOR = findCreator(GoogleHelp.class);
}
================================================
FILE: play-services-api/src/main/java/com/google/android/gms/googlehelp/InProductHelp.java
================================================
/*
* SPDX-FileCopyrightText: 2023 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.googlehelp;
import org.microg.safeparcel.AutoSafeParcelable;
public class InProductHelp extends AutoSafeParcelable {
@Field(1)
public GoogleHelp googleHelp;
public static final Creator CREATOR = findCreator(InProductHelp.class);
}
================================================
FILE: play-services-api/src/main/java/com/google/android/gms/googlehelp/ND4CSettings.java
================================================
/*
* SPDX-FileCopyrightText: 2023 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.googlehelp;
import org.microg.safeparcel.AutoSafeParcelable;
public class ND4CSettings extends AutoSafeParcelable {
public static final Creator CREATOR = findCreator(ND4CSettings.class);
}
================================================
FILE: play-services-api/src/main/java/com/google/android/gms/googlehelp/OfflineSuggestion.java
================================================
/*
* SPDX-FileCopyrightText: 2023 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.googlehelp;
import org.microg.safeparcel.AutoSafeParcelable;
public class OfflineSuggestion extends AutoSafeParcelable {
public static final Creator CREATOR = findCreator(OfflineSuggestion.class);
}
================================================
FILE: play-services-api/src/main/java/com/google/android/gms/googlehelp/SupportRequestHelp.java
================================================
/*
* SPDX-FileCopyrightText: 2023 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.googlehelp;
import org.microg.safeparcel.AutoSafeParcelable;
public class SupportRequestHelp extends AutoSafeParcelable {
@Field(1)
public GoogleHelp googleHelp;
@Field(4)
public String phoneNumber;
public static final Creator CREATOR = findCreator(SupportRequestHelp.class);
}
================================================
FILE: play-services-api/src/main/java/com/google/android/gms/googlehelp/internal/common/OverflowMenuItem.java
================================================
/*
* SPDX-FileCopyrightText: 2023 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.googlehelp.internal.common;
import org.microg.safeparcel.AutoSafeParcelable;
public class OverflowMenuItem extends AutoSafeParcelable {
public static final Creator CREATOR = findCreator(OverflowMenuItem.class);
}
================================================
FILE: play-services-api/src/main/java/com/google/android/gms/googlehelp/internal/common/TogglingData.java
================================================
/*
* SPDX-FileCopyrightText: 2023 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.googlehelp.internal.common;
import org.microg.safeparcel.AutoSafeParcelable;
public class TogglingData extends AutoSafeParcelable {
public static final Creator CREATOR = findCreator(TogglingData.class);
}
================================================
FILE: play-services-api/src/main/java/com/google/android/gms/identity/accounts/api/AccountData.java
================================================
/*
* Copyright (C) 2013-2017 microG Project Team
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.google.android.gms.identity.accounts.api;
public class AccountData {
}
================================================
FILE: play-services-api/src/main/java/com/google/android/gms/identity/intents/model/CountrySpecification.java
================================================
/*
* Copyright (C) 2013-2017 microG Project Team
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.google.android.gms.identity.intents.model;
public class CountrySpecification {
}
================================================
FILE: play-services-api/src/main/java/com/google/android/gms/identity/intents/model/UserAddress.java
================================================
/*
* Copyright (C) 2013-2017 microG Project Team
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.google.android.gms.identity.intents.model;
public class UserAddress {
}
================================================
FILE: play-services-api/src/main/java/com/google/android/gms/languageprofile/ClientLanguageSettings.java
================================================
/*
* SPDX-FileCopyrightText: 2022 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.languageprofile;
import org.microg.safeparcel.AutoSafeParcelable;
public class ClientLanguageSettings extends AutoSafeParcelable {
public static final Creator CREATOR = new AutoCreator<>(ClientLanguageSettings.class);
}
================================================
FILE: play-services-api/src/main/java/com/google/android/gms/languageprofile/LanguageFluency.java
================================================
/*
* SPDX-FileCopyrightText: 2022 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.languageprofile;
import org.microg.safeparcel.AutoSafeParcelable;
public class LanguageFluency extends AutoSafeParcelable {
public static final Creator CREATOR = new AutoCreator<>(LanguageFluency.class);
}
================================================
FILE: play-services-api/src/main/java/com/google/android/gms/languageprofile/LanguageFluencyParams.java
================================================
/*
* SPDX-FileCopyrightText: 2022 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.languageprofile;
import org.microg.safeparcel.AutoSafeParcelable;
public class LanguageFluencyParams extends AutoSafeParcelable {
public static final Creator CREATOR = new AutoCreator<>(LanguageFluencyParams.class);
}
================================================
FILE: play-services-api/src/main/java/com/google/android/gms/languageprofile/LanguagePreference.java
================================================
/*
* SPDX-FileCopyrightText: 2022 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.languageprofile;
import org.microg.safeparcel.AutoSafeParcelable;
public class LanguagePreference extends AutoSafeParcelable {
public static final Creator CREATOR = new AutoCreator<>(LanguagePreference.class);
}
================================================
FILE: play-services-api/src/main/java/com/google/android/gms/languageprofile/LanguagePreferenceParams.java
================================================
/*
* SPDX-FileCopyrightText: 2022 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.languageprofile;
import org.microg.safeparcel.AutoSafeParcelable;
public class LanguagePreferenceParams extends AutoSafeParcelable {
public static final Creator CREATOR = new AutoCreator<>(LanguagePreferenceParams.class);
}
================================================
FILE: play-services-api/src/main/java/com/google/android/gms/locationsharingreporter/IneligibilityRationale.java
================================================
/*
* SPDX-FileCopyrightText: 2025 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.locationsharingreporter;
import android.os.Parcel;
import androidx.annotation.NonNull;
import com.google.android.gms.common.internal.safeparcel.AbstractSafeParcelable;
import com.google.android.gms.common.internal.safeparcel.SafeParcelable;
import com.google.android.gms.common.internal.safeparcel.SafeParcelableCreatorAndWriter;
@SafeParcelable.Class
public class IneligibilityRationale extends AbstractSafeParcelable {
@Field(1)
public final String unknownStr1;
@Field(2)
public final boolean unknownBool2;
@Field(3)
public final String unknownStr3;
@Field(4)
public final boolean unknownBool4;
@Field(5)
public final boolean unknownBool5;
@Field(6)
public final boolean unknownBool6;
@Constructor
public IneligibilityRationale(@Param(1) String unknownStr1, @Param(2) boolean unknownBool2, @Param(3) String unknownStr3,
@Param(4) boolean unknownBool4, @Param(5) boolean unknownBool5, @Param(6) boolean unknownBool6) {
this.unknownStr1 = unknownStr1;
this.unknownBool2 = unknownBool2;
this.unknownStr3 = unknownStr3;
this.unknownBool4 = unknownBool4;
this.unknownBool5 = unknownBool5;
this.unknownBool6 = unknownBool6;
}
@Override
public void writeToParcel(@NonNull Parcel dest, int flags) {
CREATOR.writeToParcel(this, dest, flags);
}
public static final SafeParcelableCreatorAndWriter CREATOR = findCreator(IneligibilityRationale.class);
}
================================================
FILE: play-services-api/src/main/java/com/google/android/gms/locationsharingreporter/LocationCollectionReason.java
================================================
/*
* SPDX-FileCopyrightText: 2025 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.locationsharingreporter;
import android.os.Parcel;
import androidx.annotation.NonNull;
import com.google.android.gms.common.internal.safeparcel.AbstractSafeParcelable;
import com.google.android.gms.common.internal.safeparcel.SafeParcelable;
import com.google.android.gms.common.internal.safeparcel.SafeParcelableCreatorAndWriter;
@SafeParcelable.Class
public class LocationCollectionReason extends AbstractSafeParcelable {
@Field(1)
public final int locationCollectionReason;
@Constructor
public LocationCollectionReason(@Param(1) int locationCollectionReason) {
this.locationCollectionReason = locationCollectionReason;
}
@NonNull
@Override
public String toString() {
return "LocationCollectionReason{" +
"locationCollectionReason=" + locationCollectionReason +
'}';
}
@Override
public void writeToParcel(@NonNull Parcel dest, int flags) {
CREATOR.writeToParcel(this, dest, flags);
}
public static final SafeParcelableCreatorAndWriter CREATOR = findCreator(LocationCollectionReason.class);
}
================================================
FILE: play-services-api/src/main/java/com/google/android/gms/locationsharingreporter/LocationReportingStatus.java
================================================
/*
* SPDX-FileCopyrightText: 2025 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.locationsharingreporter;
import android.os.Parcel;
import androidx.annotation.NonNull;
import com.google.android.gms.common.internal.safeparcel.AbstractSafeParcelable;
import com.google.android.gms.common.internal.safeparcel.SafeParcelable;
import com.google.android.gms.common.internal.safeparcel.SafeParcelableCreatorAndWriter;
@SafeParcelable.Class
public class LocationReportingStatus extends AbstractSafeParcelable {
@Field(1)
public final int unknownInt1;
@Field(2)
public final int unknownInt2;
@Field(3)
public final boolean unknownBool3;
@Field(4)
public final IneligibilityRationale ineligibilityRationale;
@Constructor
public LocationReportingStatus(@Param(1) int unknownInt1, @Param(2) int unknownInt2, @Param(3) boolean unknownBool3, @Param(4) IneligibilityRationale ineligibilityRationale0) {
this.unknownInt1 = unknownInt1;
this.unknownInt2 = unknownInt2;
this.unknownBool3 = unknownBool3;
this.ineligibilityRationale = ineligibilityRationale0;
}
@Override
public void writeToParcel(@NonNull Parcel dest, int flags) {
CREATOR.writeToParcel(this, dest, flags);
}
public static final SafeParcelableCreatorAndWriter CREATOR = findCreator(LocationReportingStatus.class);
}
================================================
FILE: play-services-api/src/main/java/com/google/android/gms/locationsharingreporter/LocationShare.java
================================================
/*
* SPDX-FileCopyrightText: 2025 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.locationsharingreporter;
import android.os.Parcel;
import androidx.annotation.NonNull;
import com.google.android.gms.common.internal.safeparcel.AbstractSafeParcelable;
import com.google.android.gms.common.internal.safeparcel.SafeParcelable;
import com.google.android.gms.common.internal.safeparcel.SafeParcelableCreatorAndWriter;
@SafeParcelable.Class
public class LocationShare extends AbstractSafeParcelable {
@Field(1)
public final int locationShareType;
@Field(2)
public final String tokenId;
@Field(3)
public final String obfuscatedGaiaId;
@Constructor
public LocationShare(@Param(1) int locationShareType, @Param(2) String tokenId, @Param(3) String obfuscatedGaiaId) {
this.locationShareType = locationShareType;
this.tokenId = tokenId;
this.obfuscatedGaiaId = obfuscatedGaiaId;
}
@Override
public void writeToParcel(@NonNull Parcel dest, int flags) {
CREATOR.writeToParcel(this, dest, flags);
}
public static final SafeParcelableCreatorAndWriter CREATOR = findCreator(LocationShare.class);
@Override
public String toString() {
return "LocationShare{" +
"locationShareType=" + locationShareType +
", tokenId=" + (tokenId != null ? "\"" + tokenId + "\"" : "null") +
", obfuscatedGaiaId=" + (obfuscatedGaiaId != null ? "\"" + obfuscatedGaiaId + "\"" : "null") +
'}';
}
}
================================================
FILE: play-services-api/src/main/java/com/google/android/gms/locationsharingreporter/LocationUploadRequest.java
================================================
/*
* SPDX-FileCopyrightText: 2025 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.locationsharingreporter;
import android.os.Parcel;
import androidx.annotation.NonNull;
import com.google.android.gms.common.internal.safeparcel.AbstractSafeParcelable;
import com.google.android.gms.common.internal.safeparcel.SafeParcelable;
import com.google.android.gms.common.internal.safeparcel.SafeParcelableCreatorAndWriter;
@SafeParcelable.Class
public class LocationUploadRequest extends AbstractSafeParcelable {
@Field(1)
public final long accuracyMeters;
@Field(2)
public final int numberOfFix;
@Field(3)
public final long intervalMillis;
@Field(4)
public final long fastIntervalMillis;
@Field(5)
public final long expirationMillis;
@Field(6)
public final LocationCollectionReason locationCollectionReason;
@Field(7)
public final boolean unknownBool7;
@Field(8)
public final boolean throttleExempt;
@Field(9)
public final String moduleId;
@Field(10)
public final String unknownString10;
@Field(11)
public final long unknownLong11;
@Constructor
public LocationUploadRequest(@Param(1) long accuracyMeters, @Param(2) int numberOfFix, @Param(3) long intervalMillis, @Param(4) long fastIntervalMillis,
@Param(5) long expirationMillis, @Param(6) LocationCollectionReason locationCollectionReason,
@Param(7) boolean unknownBool7, @Param(8) boolean throttleExempt, @Param(9) String moduleId, @Param(10) String unknownString10, @Param(11) long unknownLong11) {
this.accuracyMeters = accuracyMeters;
this.numberOfFix = numberOfFix;
this.intervalMillis = intervalMillis;
this.fastIntervalMillis = fastIntervalMillis;
this.expirationMillis = expirationMillis;
this.locationCollectionReason = locationCollectionReason;
this.unknownBool7 = unknownBool7;
this.throttleExempt = throttleExempt;
this.moduleId = moduleId;
this.unknownString10 = unknownString10;
this.unknownLong11 = unknownLong11;
}
@Override
public void writeToParcel(@NonNull Parcel dest, int flags) {
CREATOR.writeToParcel(this, dest, flags);
}
public static final SafeParcelableCreatorAndWriter CREATOR = findCreator(LocationUploadRequest.class);
}
================================================
FILE: play-services-api/src/main/java/com/google/android/gms/locationsharingreporter/LocationUploadResponse.java
================================================
/*
* SPDX-FileCopyrightText: 2025 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.locationsharingreporter;
import android.os.Parcel;
import androidx.annotation.NonNull;
import com.google.android.gms.common.internal.safeparcel.AbstractSafeParcelable;
import com.google.android.gms.common.internal.safeparcel.SafeParcelable;
import com.google.android.gms.common.internal.safeparcel.SafeParcelableCreatorAndWriter;
@SafeParcelable.Class
public class LocationUploadResponse extends AbstractSafeParcelable {
@Field(1)
public final int unknownInt1;
@Field(2)
public final LocationReportingStatus locationReportingStatus;
@Constructor
public LocationUploadResponse(@Param(1) int unknownInt1, @Param(2) LocationReportingStatus locationReportingStatus) {
this.unknownInt1 = unknownInt1;
this.locationReportingStatus = locationReportingStatus;
}
@Override
public void writeToParcel(@NonNull Parcel dest, int flags) {
CREATOR.writeToParcel(this, dest, flags);
}
public static final SafeParcelableCreatorAndWriter CREATOR = findCreator(LocationUploadResponse.class);
}
================================================
FILE: play-services-api/src/main/java/com/google/android/gms/locationsharingreporter/NoticeAckedUpdateRequest.java
================================================
/*
* SPDX-FileCopyrightText: 2025 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.locationsharingreporter;
import android.os.Parcel;
import androidx.annotation.NonNull;
import com.google.android.gms.common.internal.safeparcel.AbstractSafeParcelable;
import com.google.android.gms.common.internal.safeparcel.SafeParcelable;
import com.google.android.gms.common.internal.safeparcel.SafeParcelableCreatorAndWriter;
@SafeParcelable.Class
public class NoticeAckedUpdateRequest extends AbstractSafeParcelable {
@Field(1)
public final int isConfirmed;
@Constructor
public NoticeAckedUpdateRequest(@Param(1) int isConfirmed) {
this.isConfirmed = isConfirmed;
}
@NonNull
@Override
public final String toString() {
return "NoticeAckedUpdateRequest{" +
"isConfirmed=" + isConfirmed +
'}';
}
@Override
public void writeToParcel(@NonNull Parcel dest, int flags) {
CREATOR.writeToParcel(this, dest, flags);
}
public static final SafeParcelableCreatorAndWriter CREATOR = findCreator(NoticeAckedUpdateRequest.class);
}
================================================
FILE: play-services-api/src/main/java/com/google/android/gms/locationsharingreporter/PeriodicLocationReportingIssues.java
================================================
/*
* SPDX-FileCopyrightText: 2025 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.locationsharingreporter;
import android.os.Bundle;
import android.os.Parcel;
import androidx.annotation.NonNull;
import com.google.android.gms.common.internal.safeparcel.AbstractSafeParcelable;
import com.google.android.gms.common.internal.safeparcel.SafeParcelable;
import com.google.android.gms.common.internal.safeparcel.SafeParcelableCreatorAndWriter;
import java.util.Arrays;
@SafeParcelable.Class
public class PeriodicLocationReportingIssues extends AbstractSafeParcelable {
@Field(1)
final int[] generalIssues;
@Field(2)
final Bundle issuesByAccount;
@Field(4)
final boolean isCentralizedSharingFlagEnabled;
@Constructor
public PeriodicLocationReportingIssues(@Param(1) int[] generalIssues, @Param(2) Bundle issuesByAccount, @Param(4) boolean isCentralizedSharingFlagEnabled) {
this.generalIssues = generalIssues;
this.issuesByAccount = issuesByAccount;
this.isCentralizedSharingFlagEnabled = isCentralizedSharingFlagEnabled;
}
@NonNull
@Override
public final String toString() {
return "PeriodicLocationReportingIssues{generalIssues=" + Arrays.toString(this.generalIssues)
+ ", issuesByAccount=" + this.issuesByAccount + ", isCentralizedSharingFlagEnabled="
+ this.isCentralizedSharingFlagEnabled + "}";
}
@Override
public void writeToParcel(@NonNull Parcel dest, int flags) {
CREATOR.writeToParcel(this, dest, flags);
}
public static final SafeParcelableCreatorAndWriter CREATOR = findCreator(PeriodicLocationReportingIssues.class);
}
================================================
FILE: play-services-api/src/main/java/com/google/android/gms/locationsharingreporter/PeriodicLocationUploadRequest.java
================================================
/*
* SPDX-FileCopyrightText: 2025 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.locationsharingreporter;
import android.os.Parcel;
import androidx.annotation.NonNull;
import com.google.android.gms.common.internal.safeparcel.AbstractSafeParcelable;
import com.google.android.gms.common.internal.safeparcel.SafeParcelable;
import com.google.android.gms.common.internal.safeparcel.SafeParcelableCreatorAndWriter;
@SafeParcelable.Class
public class PeriodicLocationUploadRequest extends AbstractSafeParcelable {
@Field(1)
public final LocationCollectionReason locationCollectionReason;
@Field(2)
public final LocationShare locationShare;
@Field(3)
public final int makePrimaryOption;
@Field(4)
public final long duration;
@Field(5)
public final boolean unknownBool5;
@Field(6)
public final String unknownStr6;
@Field(7)
public final boolean unknownBool7;
@Constructor
public PeriodicLocationUploadRequest(@Param(1) LocationCollectionReason locationCollectionReason, @Param(2) LocationShare locationShare,
@Param(3) int makePrimaryOption, @Param(4) long duration, @Param(5) boolean unknownBool5, @Param(6) String unknownStr6, @Param(7) boolean unknownBool7) {
this.locationCollectionReason = locationCollectionReason;
this.locationShare = locationShare;
this.makePrimaryOption = makePrimaryOption;
this.duration = duration;
this.unknownBool5 = unknownBool5;
this.unknownStr6 = unknownStr6;
this.unknownBool7 = unknownBool7;
}
@Override
public void writeToParcel(@NonNull Parcel dest, int flags) {
CREATOR.writeToParcel(this, dest, flags);
}
public static final SafeParcelableCreatorAndWriter CREATOR = findCreator(PeriodicLocationUploadRequest.class);
}
================================================
FILE: play-services-api/src/main/java/com/google/android/gms/locationsharingreporter/StartLocationReportingRequest.java
================================================
/*
* SPDX-FileCopyrightText: 2025 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.locationsharingreporter;
import android.os.Parcel;
import androidx.annotation.NonNull;
import com.google.android.gms.common.internal.safeparcel.AbstractSafeParcelable;
import com.google.android.gms.common.internal.safeparcel.SafeParcelable;
import com.google.android.gms.common.internal.safeparcel.SafeParcelableCreatorAndWriter;
@SafeParcelable.Class
public class StartLocationReportingRequest extends AbstractSafeParcelable {
@Field(1)
public final int makePrimary;
@Field(2)
public final int reportingType;
@Field(3)
public final LocationShare locationShare;
@Field(4)
public final long requestDurationMs;
@Field(5)
public final NoticeAckedUpdateRequest noticeAckedUpdateRequest;
@Constructor
public StartLocationReportingRequest(@Param(1) int makePrimary, @Param(2) int reportingType, @Param(3) LocationShare locationShare,
@Param(4) long requestDurationMs, @Param(5) NoticeAckedUpdateRequest noticeAckedUpdateRequest) {
this.makePrimary = makePrimary;
this.reportingType = reportingType;
this.requestDurationMs = requestDurationMs;
this.locationShare = locationShare;
this.noticeAckedUpdateRequest = noticeAckedUpdateRequest;
}
@NonNull
@Override
public final String toString() {
return "StartLocationReportingRequest{" +
"makePrimary=" + makePrimary +
", reportingType=" + reportingType +
", locationShare=" + locationShare +
", requestDurationMs=" + requestDurationMs +
", noticeAckedUpdateRequest=" + noticeAckedUpdateRequest +
'}';
}
@Override
public void writeToParcel(@NonNull Parcel dest, int flags) {
CREATOR.writeToParcel(this, dest, flags);
}
public static final SafeParcelableCreatorAndWriter CREATOR = findCreator(StartLocationReportingRequest.class);
}
================================================
FILE: play-services-api/src/main/java/com/google/android/gms/locationsharingreporter/StopLocationReportingRequest.java
================================================
/*
* SPDX-FileCopyrightText: 2025 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.locationsharingreporter;
import android.os.Parcel;
import androidx.annotation.NonNull;
import com.google.android.gms.common.internal.safeparcel.AbstractSafeParcelable;
import com.google.android.gms.common.internal.safeparcel.SafeParcelable;
import com.google.android.gms.common.internal.safeparcel.SafeParcelableCreatorAndWriter;
@SafeParcelable.Class
public class StopLocationReportingRequest extends AbstractSafeParcelable {
@Field(1)
public final LocationShare locationShare;
@Constructor
public StopLocationReportingRequest(@Param(1) LocationShare locationShare) {
this.locationShare = locationShare;
}
@Override
public void writeToParcel(@NonNull Parcel dest, int flags) {
CREATOR.writeToParcel(this, dest, flags);
}
public static final SafeParcelableCreatorAndWriter CREATOR = findCreator(StopLocationReportingRequest.class);
@Override
public String toString() {
return "StopLocationReportingRequest{" +
"locationShare=" + (locationShare != null ? locationShare.toString() : "null") +
'}';
}
}
================================================
FILE: play-services-api/src/main/java/com/google/android/gms/measurement/internal/AppMetadata.java
================================================
/*
* SPDX-FileCopyrightText: 2020, microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.measurement.internal;
import androidx.annotation.Nullable;
import org.microg.safeparcel.AutoSafeParcelable;
import java.util.List;
public class AppMetadata extends AutoSafeParcelable {
@Field(2)
@Nullable
public String packageName;
@Field(3)
@Nullable
public String appId;
@Field(4)
@Nullable
public String appVersion;
@Field(5)
@Nullable
public String appStore;
@Field(6)
public long gmpVersion;
@Field(7)
public long devCertHash;
@Field(8)
@Nullable
public String healthMonitorSample;
@Field(value = 9, defaultValue = "true")
public boolean measurementEnabled = true;
@Field(10)
public boolean firstOpen;
@Field(value = 11, defaultValue = "java.lang.Integer.MIN_VALUE")
public long appVersionInt = Integer.MIN_VALUE;
@Field(12)
@Nullable
public String firebaseInstanceId;
@Field(13)
public long androidId;
@Field(14)
public long instantiationTime;
@Field(15)
public int appType;
@Field(value = 16, defaultValue = "true")
public boolean adIdReportingEnabled = true;
@Field(value = 17, defaultValue = "true")
public boolean ssaidCollectionEnabled = true;
@Field(18)
public boolean deferredAnalyticsCollection;
@Field(19)
public String admobAppId;
@Field(21)
@Nullable
public Boolean allowAdPersonalization;
@Field(22)
public long dynamiteVersion;
@Field(23)
@Nullable
public List safelistedEvents;
@Field(24)
public String gaAppId;
@Field(value = 25, defaultValue = "\"\"")
public String consentSettings = "";
@Field(value = 26, defaultValue = "\"\"")
public String ephemeralAppInstanceId = "";
@Field(27)
@Nullable
public String sessionStitchingToken;
@Field(28)
public boolean sgtmUploadEnabled = false;
@Field(29)
public long targetOsVersion;
@Field(value = 30, defaultValue = "100")
public int consentSource = 100;
@Field(value = 31, defaultValue = "\"\"")
public String dmaConsent = "";
@Field(32)
public int adServicesVersion;
@Field(34)
public long l34;
@Field(35)
@Nullable
public String sgtmPreviewKey;
@Field(value = 36, defaultValue = "\"\"")
public String serializedNpaMetadata;
@Field(37)
public long timestamp;
@Field(38)
public int clientUploadEligibility;
public String toString() {
return "AppMetadata[" + packageName + "]";
}
public static final Creator CREATOR = new AutoCreator<>(AppMetadata.class);
}
================================================
FILE: play-services-api/src/main/java/com/google/android/gms/measurement/internal/ConditionalUserPropertyParcel.java
================================================
/*
* SPDX-FileCopyrightText: 2020, microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.measurement.internal;
import org.microg.safeparcel.AutoSafeParcelable;
public class ConditionalUserPropertyParcel extends AutoSafeParcelable {
@Field(2)
public String appId;
@Field(3)
public String origin;
@Field(4)
public UserAttributeParcel userAttribute;
@Field(5)
public long creationTimestamp;
@Field(6)
public boolean active;
@Field(7)
public String triggerEventName;
@Field(8)
public EventParcel timedOutEvent;
@Field(9)
public long triggerTimeout;
@Field(10)
public EventParcel triggerEvent;
@Field(11)
public long timeToLive;
@Field(12)
public EventParcel expiredEvent;
public static final Creator CREATOR = new AutoCreator<>(ConditionalUserPropertyParcel.class);
}
================================================
FILE: play-services-api/src/main/java/com/google/android/gms/measurement/internal/EventParams.java
================================================
/*
* SPDX-FileCopyrightText: 2020, microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.measurement.internal;
import android.os.Bundle;
import org.microg.safeparcel.AutoSafeParcelable;
public class EventParams extends AutoSafeParcelable {
@Field(2)
public Bundle data;
public static final Creator CREATOR = new AutoCreator<>(EventParams.class);
}
================================================
FILE: play-services-api/src/main/java/com/google/android/gms/measurement/internal/EventParcel.java
================================================
/*
* SPDX-FileCopyrightText: 2020, microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.measurement.internal;
import android.os.Parcel;
import androidx.annotation.NonNull;
import com.google.android.gms.common.internal.safeparcel.AbstractSafeParcelable;
import com.google.android.gms.common.internal.safeparcel.SafeParcelable;
import com.google.android.gms.common.internal.safeparcel.SafeParcelableCreatorAndWriter;
@SafeParcelable.Class
public class EventParcel extends AbstractSafeParcelable {
@Field(2)
public String name;
@Field(3)
public EventParams params;
@Field(4)
public String origin;
@Field(5)
public long timestamp;
@Override
public void writeToParcel(@NonNull Parcel dest, int flags) {
CREATOR.writeToParcel(this, dest, flags);
}
public static final SafeParcelableCreatorAndWriter CREATOR = findCreator(EventParcel.class);
}
================================================
FILE: play-services-api/src/main/java/com/google/android/gms/measurement/internal/UserAttributeParcel.java
================================================
/*
* SPDX-FileCopyrightText: 2020, microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.measurement.internal;
import androidx.annotation.Nullable;
import org.microg.safeparcel.AutoSafeParcelable;
public class UserAttributeParcel extends AutoSafeParcelable {
@Field(1)
public int versionCode = 2;
@Field(2)
public String name;
@Field(3)
public long timestamp;
@Field(4)
@Nullable
public Long longValue;
@Deprecated
@Field(5)
@Nullable
public Float floatValue;
@Field(6)
@Nullable
public String stringValue;
@Field(7)
public String field7;
@Field(8)
@Nullable
public Double doubleValue;
public static final Creator CREATOR = new AutoCreator<>(UserAttributeParcel.class);
}
================================================
FILE: play-services-api/src/main/java/com/google/android/gms/people/internal/ParcelableLoadImageOptions.java
================================================
/*
* Copyright (C) 2013-2017 microG Project Team
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.google.android.gms.people.internal;
import org.microg.safeparcel.AutoSafeParcelable;
import org.microg.safeparcel.SafeParceled;
public class ParcelableLoadImageOptions extends AutoSafeParcelable {
@SafeParceled(1000)
private int versionCode = 1;
@SafeParceled(1)
public int imageSize;
@SafeParceled(2)
public int avatarOptions;
@SafeParceled(3)
public boolean useLargePictureForCp2Images;
public static final Creator CREATOR = new AutoCreator(ParcelableLoadImageOptions.class);
}
================================================
FILE: play-services-api/src/main/java/com/google/android/gms/people/model/AccountMetadata.java
================================================
/*
* Copyright (C) 2013-2017 microG Project Team
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.google.android.gms.people.model;
import org.microg.safeparcel.AutoSafeParcelable;
import org.microg.safeparcel.SafeParceled;
public class AccountMetadata extends AutoSafeParcelable {
@SafeParceled(1)
private int versionCode = 2;
@SafeParceled(2)
public boolean hasGooglePlus = true;
@SafeParceled(3)
public boolean hasFeature2 = true;
@SafeParceled(4)
public boolean hasFeature3 = true;
@SafeParceled(5)
public boolean hasFeature4 = true;
public static Creator CREATOR = new AutoCreator(AccountMetadata.class);
}
================================================
FILE: play-services-api/src/main/java/com/google/android/gms/people/model/AvatarReference.java
================================================
/*
* Copyright (C) 2013-2017 microG Project Team
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.google.android.gms.people.model;
import org.microg.safeparcel.AutoSafeParcelable;
import org.microg.safeparcel.SafeParceled;
public class AvatarReference extends AutoSafeParcelable {
@SafeParceled(1000)
private int versionCode;
@SafeParceled(1)
public int source;
@SafeParceled(2)
public String location;
public static final Creator CREATOR = new AutoCreator(AvatarReference.class);
}
================================================
FILE: play-services-api/src/main/java/com/google/android/gms/phenotype/Configurations.java
================================================
/*
* SPDX-FileCopyrightText: 2020, microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.phenotype;
import org.microg.safeparcel.AutoSafeParcelable;
public class Configurations extends AutoSafeParcelable {
@Field(2)
public String snapshotToken;
@Field(3)
public String serverToken;
@Field(4)
public Configuration[] field4;
@Field(5)
public boolean field5;
@Field(6)
public byte[] field6;
@Field(7)
public long version;
public static final Creator CREATOR = new AutoCreator<>(Configurations.class);
}
================================================
FILE: play-services-api/src/main/java/com/google/android/gms/phenotype/DogfoodsToken.java
================================================
/*
* SPDX-FileCopyrightText: 2020, microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.phenotype;
import org.microg.safeparcel.AutoSafeParcelable;
public class DogfoodsToken extends AutoSafeParcelable {
public static final Creator CREATOR = new AutoCreator<>(DogfoodsToken.class);
}
================================================
FILE: play-services-api/src/main/java/com/google/android/gms/phenotype/FlagOverrides.java
================================================
/*
* SPDX-FileCopyrightText: 2020, microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.phenotype;
import org.microg.safeparcel.AutoSafeParcelable;
public class FlagOverrides extends AutoSafeParcelable {
public static final Creator CREATOR = new AutoCreator<>(FlagOverrides.class);
}
================================================
FILE: play-services-api/src/main/java/com/google/android/gms/phenotype/RegistrationInfo.java
================================================
/*
* SPDX-FileCopyrightText: 2021 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.phenotype;
import org.microg.safeparcel.AutoSafeParcelable;
public class RegistrationInfo extends AutoSafeParcelable {
@Field(1)
public String packageName;
@Field(2)
public int version;
@Field(3)
public String[] field3;
@Field(4)
public byte[] field4;
@Field(5)
public boolean weak;
@Field(6)
public int[] field6;
@Field(7)
public String clientPackageName;
public static final Creator CREATOR = new AutoCreator<>(RegistrationInfo.class);
}
================================================
FILE: play-services-api/src/main/java/com/google/android/gms/plus/internal/PlusCommonExtras.java
================================================
/*
* Copyright (C) 2013-2017 microG Project Team
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.google.android.gms.plus.internal;
public class PlusCommonExtras {
}
================================================
FILE: play-services-api/src/main/java/com/google/android/gms/plus/internal/PlusSession.java
================================================
/*
* Copyright (C) 2013-2017 microG Project Team
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.google.android.gms.plus.internal;
public class PlusSession {
}
================================================
FILE: play-services-api/src/main/java/com/google/android/gms/plus/internal/model/smart_profile/CardsRequest.java
================================================
/*
* Copyright (C) 2013-2017 microG Project Team
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.google.android.gms.plus.internal.model.smart_profile;
public class CardsRequest {
}
================================================
FILE: play-services-api/src/main/java/com/google/android/gms/plus/internal/model/smart_profile/CardsResponse.java
================================================
/*
* Copyright (C) 2013-2017 microG Project Team
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.google.android.gms.plus.internal.model.smart_profile;
public class CardsResponse {
}
================================================
FILE: play-services-api/src/main/java/com/google/android/gms/plus/internal/model/smart_profile/PeopleForProfilesRequest.java
================================================
/*
* Copyright (C) 2013-2017 microG Project Team
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.google.android.gms.plus.internal.model.smart_profile;
public class PeopleForProfilesRequest {
}
================================================
FILE: play-services-api/src/main/java/com/google/android/gms/plus/internal/model/smart_profile/PeopleForProfilesResponse.java
================================================
/*
* Copyright (C) 2013-2017 microG Project Team
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.google.android.gms.plus.internal.model.smart_profile;
public class PeopleForProfilesResponse {
}
================================================
FILE: play-services-api/src/main/java/com/google/android/gms/plus/model/posts/Comment.java
================================================
/*
* Copyright (C) 2013-2017 microG Project Team
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.google.android.gms.plus.model.posts;
public class Comment {
}
================================================
FILE: play-services-api/src/main/java/com/google/android/gms/plus/model/posts/Post.java
================================================
/*
* Copyright (C) 2013-2017 microG Project Team
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.google.android.gms.plus.model.posts;
public class Post {
}
================================================
FILE: play-services-api/src/main/java/com/google/android/gms/plus/model/posts/Settings.java
================================================
/*
* Copyright (C) 2013-2017 microG Project Team
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.google.android.gms.plus.model.posts;
public class Settings {
}
================================================
FILE: play-services-api/src/main/java/com/google/android/gms/potokens/PoToken.java
================================================
/*
* SPDX-FileCopyrightText: 2023 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.potokens;
import org.microg.safeparcel.AutoSafeParcelable;
public class PoToken extends AutoSafeParcelable {
@Field(1)
public byte[] data;
public PoToken(byte[] data) {
this.data = data;
}
public static Creator CREATOR = findCreator(PoToken.class);
}
================================================
FILE: play-services-api/src/main/java/com/google/android/gms/pseudonymous/PseudonymousIdToken.java
================================================
/*
* SPDX-FileCopyrightText: 2023 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.pseudonymous;
import android.os.Parcel;
import androidx.annotation.NonNull;
import com.google.android.gms.common.internal.safeparcel.AbstractSafeParcelable;
import com.google.android.gms.common.internal.safeparcel.SafeParcelable;
import com.google.android.gms.common.internal.safeparcel.SafeParcelableCreatorAndWriter;
@SafeParcelable.Class
public class PseudonymousIdToken extends AbstractSafeParcelable {
@Field(2)
public String name;
@Constructor
public PseudonymousIdToken(@Param(2) String name) {
this.name = name;
}
@Override
public void writeToParcel(@NonNull Parcel dest, int flags) {
CREATOR.writeToParcel(this, dest, flags);
}
public static final SafeParcelableCreatorAndWriter CREATOR = findCreator(PseudonymousIdToken.class);
}
================================================
FILE: play-services-api/src/main/java/com/google/android/gms/reminders/AccountState.java
================================================
/*
* Copyright (C) 2013-2017 microG Project Team
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.google.android.gms.reminders;
import org.microg.safeparcel.AutoSafeParcelable;
public class AccountState extends AutoSafeParcelable {
public static Creator CREATOR = new AutoCreator(AccountState.class);
}
================================================
FILE: play-services-api/src/main/java/com/google/android/gms/reminders/CreateReminderOptionsInternal.java
================================================
/*
* Copyright (C) 2013-2017 microG Project Team
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.google.android.gms.reminders;
import org.microg.safeparcel.AutoSafeParcelable;
public class CreateReminderOptionsInternal extends AutoSafeParcelable {
public static Creator CREATOR = new AutoCreator(CreateReminderOptionsInternal.class);
}
================================================
FILE: play-services-api/src/main/java/com/google/android/gms/reminders/LoadRemindersOptions.java
================================================
/*
* Copyright (C) 2013-2017 microG Project Team
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.google.android.gms.reminders;
import org.microg.safeparcel.AutoSafeParcelable;
public class LoadRemindersOptions extends AutoSafeParcelable {
public static Creator CREATOR = new AutoCreator(LoadRemindersOptions.class);
}
================================================
FILE: play-services-api/src/main/java/com/google/android/gms/reminders/ReindexDueDatesOptions.java
================================================
/*
* Copyright (C) 2013-2017 microG Project Team
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.google.android.gms.reminders;
import org.microg.safeparcel.AutoSafeParcelable;
public class ReindexDueDatesOptions extends AutoSafeParcelable {
public static Creator CREATOR = new AutoCreator(ReindexDueDatesOptions.class);
}
================================================
FILE: play-services-api/src/main/java/com/google/android/gms/reminders/UpdateRecurrenceOptions.java
================================================
/*
* Copyright (C) 2013-2017 microG Project Team
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.google.android.gms.reminders;
import org.microg.safeparcel.AutoSafeParcelable;
public class UpdateRecurrenceOptions extends AutoSafeParcelable {
public static Creator CREATOR = new AutoCreator(UpdateRecurrenceOptions.class);
}
================================================
FILE: play-services-api/src/main/java/com/google/android/gms/reminders/model/CustomizedSnoozePresetEntity.java
================================================
/*
* Copyright (C) 2013-2017 microG Project Team
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.google.android.gms.reminders.model;
import org.microg.safeparcel.AutoSafeParcelable;
public class CustomizedSnoozePresetEntity extends AutoSafeParcelable {
public static Creator CREATOR = new AutoCreator