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

Commit 79099a24 authored by Fynn Godau's avatar Fynn Godau
Browse files

Merge master branch into basic-workspace

parents a6d108f9 108bd88a
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -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...
+2 −0
Original line number Diff line number Diff line
@@ -28,4 +28,6 @@ android {

dependencies {
    api project(':play-services-basement')

    annotationProcessor project(':safe-parcel-processor')
}
+18 −4
Original line number Diff line number Diff line
@@ -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) {
+7 −0
Original line number Diff line number Diff line
@@ -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)
+27 −3
Original line number Diff line number Diff line
@@ -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