Loading .github/workflows/build.yml +2 −2 Original line number Diff line number Diff line Loading @@ -23,9 +23,9 @@ jobs: distribution: "temurin" java-version: "17" - name: "Gradle Wrapper validation" uses: gradle/actions/wrapper-validation@v3 uses: gradle/actions/wrapper-validation@v4 - name: "Setup Gradle" uses: gradle/actions/setup-gradle@v3 uses: gradle/actions/setup-gradle@v4 - name: "Setup matchers" run: | # Setting up matchers... Loading firebase-auth/build.gradle +2 −0 Original line number Diff line number Diff line Loading @@ -28,4 +28,6 @@ android { dependencies { api project(':play-services-basement') annotationProcessor project(':safe-parcel-processor') } firebase-auth/core/src/main/kotlin/org/microg/gms/firebase/auth/FirebaseAuthService.kt +18 −4 Original line number Diff line number Diff line Loading @@ -487,13 +487,27 @@ class FirebaseAuthServiceImpl(private val context: Context, override val lifecyc } override fun signInWithCredential(request: SignInWithCredentialAidlRequest, callbacks: IFirebaseAuthCallbacks) { Log.d(TAG, "Not yet implemented: signInWithCredential") callbacks.onFailure(Status(CommonStatusCodes.CANCELED, "Not supported")) lifecycleScope.launchWhenStarted { Log.d(TAG, "signInWithCredential request: ${request.request}") try { val tokenResult = client.verifyAssertion(request.request.requestUri, request.request.postBody, request.request.returnSecureToken, request.request.returnIdpCredential) Log.d(TAG, "signInWithCredential callback: $tokenResult ") val idToken = tokenResult.getString("idToken") val refreshToken = tokenResult.getString("refreshToken") val getTokenResponse = client.getTokenByRefreshToken(refreshToken).toGetTokenResponse() val accountInfoResult = client.getAccountInfo(idToken = idToken).getJSONArray("users").getJSONObject(0).toGetAccountInfoUser() Log.d(TAG, "signInWithCredential callback: onGetTokenResponseAndUser") callbacks.onGetTokenResponseAndUser(getTokenResponse, accountInfoResult) } catch (e: Exception) { Log.w(TAG, "signInWithCredential callback: onFailure", e) callbacks.onFailure(Status(CommonStatusCodes.INTERNAL_ERROR, e.message)) } } } override fun signInWithCredentialCompat(verifyAssertionRequest: VerifyAssertionRequest, callbacks: IFirebaseAuthCallbacks) { Log.d(TAG, "Not yet implemented: signInWithCredentialCompat") callbacks.onFailure(Status(CommonStatusCodes.CANCELED, "Not supported")) Log.d(TAG, "signInWithCredentialCompat verifyAssertionRequest: $verifyAssertionRequest") signInWithCredential(SignInWithCredentialAidlRequest(verifyAssertionRequest), callbacks) } override fun signInWithCustomToken(request: SignInWithCustomTokenAidlRequest, callbacks: IFirebaseAuthCallbacks) { Loading firebase-auth/core/src/main/kotlin/org/microg/gms/firebase/auth/IdentityToolkitClient.kt +7 −0 Original line number Diff line number Diff line Loading @@ -109,6 +109,13 @@ class IdentityToolkitClient(context: Context, private val apiKey: String, privat .put("token", token) .put("returnSecureToken", returnSecureToken)) suspend fun verifyAssertion(requestUri: String? = null, postBody: String? = null, returnSecureToken: Boolean = true, returnIdpCredential: Boolean = true): JSONObject = request("verifyAssertion", JSONObject() .put("requestUri", requestUri) .put("postBody", postBody) .put("returnSecureToken", returnSecureToken) .put("returnIdpCredential", returnIdpCredential)) suspend fun verifyPassword(email: String? = null, password: String? = null, tenantId: String? = null, returnSecureToken: Boolean = true): JSONObject = request("verifyPassword", JSONObject() .put("email", email) Loading firebase-auth/src/main/java/com/google/firebase/auth/api/internal/SignInWithCredentialAidlRequest.java +27 −3 Original line number Diff line number Diff line Loading @@ -5,8 +5,32 @@ package com.google.firebase.auth.api.internal; import org.microg.safeparcel.AutoSafeParcelable; 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<SignInWithCredentialAidlRequest> CREATOR = findCreator(SignInWithCredentialAidlRequest.class); public class SignInWithCredentialAidlRequest extends AutoSafeParcelable { public static final Creator<SignInWithCredentialAidlRequest> CREATOR = new AutoCreator<>(SignInWithCredentialAidlRequest.class); } Loading
.github/workflows/build.yml +2 −2 Original line number Diff line number Diff line Loading @@ -23,9 +23,9 @@ jobs: distribution: "temurin" java-version: "17" - name: "Gradle Wrapper validation" uses: gradle/actions/wrapper-validation@v3 uses: gradle/actions/wrapper-validation@v4 - name: "Setup Gradle" uses: gradle/actions/setup-gradle@v3 uses: gradle/actions/setup-gradle@v4 - name: "Setup matchers" run: | # Setting up matchers... Loading
firebase-auth/build.gradle +2 −0 Original line number Diff line number Diff line Loading @@ -28,4 +28,6 @@ android { dependencies { api project(':play-services-basement') annotationProcessor project(':safe-parcel-processor') }
firebase-auth/core/src/main/kotlin/org/microg/gms/firebase/auth/FirebaseAuthService.kt +18 −4 Original line number Diff line number Diff line Loading @@ -487,13 +487,27 @@ class FirebaseAuthServiceImpl(private val context: Context, override val lifecyc } override fun signInWithCredential(request: SignInWithCredentialAidlRequest, callbacks: IFirebaseAuthCallbacks) { Log.d(TAG, "Not yet implemented: signInWithCredential") callbacks.onFailure(Status(CommonStatusCodes.CANCELED, "Not supported")) lifecycleScope.launchWhenStarted { Log.d(TAG, "signInWithCredential request: ${request.request}") try { val tokenResult = client.verifyAssertion(request.request.requestUri, request.request.postBody, request.request.returnSecureToken, request.request.returnIdpCredential) Log.d(TAG, "signInWithCredential callback: $tokenResult ") val idToken = tokenResult.getString("idToken") val refreshToken = tokenResult.getString("refreshToken") val getTokenResponse = client.getTokenByRefreshToken(refreshToken).toGetTokenResponse() val accountInfoResult = client.getAccountInfo(idToken = idToken).getJSONArray("users").getJSONObject(0).toGetAccountInfoUser() Log.d(TAG, "signInWithCredential callback: onGetTokenResponseAndUser") callbacks.onGetTokenResponseAndUser(getTokenResponse, accountInfoResult) } catch (e: Exception) { Log.w(TAG, "signInWithCredential callback: onFailure", e) callbacks.onFailure(Status(CommonStatusCodes.INTERNAL_ERROR, e.message)) } } } override fun signInWithCredentialCompat(verifyAssertionRequest: VerifyAssertionRequest, callbacks: IFirebaseAuthCallbacks) { Log.d(TAG, "Not yet implemented: signInWithCredentialCompat") callbacks.onFailure(Status(CommonStatusCodes.CANCELED, "Not supported")) Log.d(TAG, "signInWithCredentialCompat verifyAssertionRequest: $verifyAssertionRequest") signInWithCredential(SignInWithCredentialAidlRequest(verifyAssertionRequest), callbacks) } override fun signInWithCustomToken(request: SignInWithCustomTokenAidlRequest, callbacks: IFirebaseAuthCallbacks) { Loading
firebase-auth/core/src/main/kotlin/org/microg/gms/firebase/auth/IdentityToolkitClient.kt +7 −0 Original line number Diff line number Diff line Loading @@ -109,6 +109,13 @@ class IdentityToolkitClient(context: Context, private val apiKey: String, privat .put("token", token) .put("returnSecureToken", returnSecureToken)) suspend fun verifyAssertion(requestUri: String? = null, postBody: String? = null, returnSecureToken: Boolean = true, returnIdpCredential: Boolean = true): JSONObject = request("verifyAssertion", JSONObject() .put("requestUri", requestUri) .put("postBody", postBody) .put("returnSecureToken", returnSecureToken) .put("returnIdpCredential", returnIdpCredential)) suspend fun verifyPassword(email: String? = null, password: String? = null, tenantId: String? = null, returnSecureToken: Boolean = true): JSONObject = request("verifyPassword", JSONObject() .put("email", email) Loading
firebase-auth/src/main/java/com/google/firebase/auth/api/internal/SignInWithCredentialAidlRequest.java +27 −3 Original line number Diff line number Diff line Loading @@ -5,8 +5,32 @@ package com.google.firebase.auth.api.internal; import org.microg.safeparcel.AutoSafeParcelable; 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<SignInWithCredentialAidlRequest> CREATOR = findCreator(SignInWithCredentialAidlRequest.class); public class SignInWithCredentialAidlRequest extends AutoSafeParcelable { public static final Creator<SignInWithCredentialAidlRequest> CREATOR = new AutoCreator<>(SignInWithCredentialAidlRequest.class); }