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

Commit c9e70f76 authored by Hasib Prince's avatar Hasib Prince
Browse files

fixed: post method for gplay login

parent 7c511b99
Loading
Loading
Loading
Loading
+8 −7
Original line number Diff line number Diff line
@@ -74,11 +74,12 @@ class LoginViewModel @Inject constructor(
        oauthToken: String = ""
    ) {
        viewModelScope.launch {
            val authObject = loginUseCase.getAuthObject(user, email, oauthToken)
//            val authObjectsLocal = loginSourceRepository.getAuthObjects(clearList)
            authObject?.data?.let {
                authObjects.postValue(listOf(it))
            val authObjectList = mutableListOf<AuthObject>()
            loginUseCase.getAuthObject(user, email, oauthToken)?.data?.let {
                authObjectList.add(it)
            }
//            val authObjectsLocal = loginSourceRepository.getAuthObjects(clearList)
            authObjects.postValue(authObjectList)
        }
    }

@@ -103,10 +104,10 @@ class LoginViewModel @Inject constructor(
     */
    fun initialGoogleLogin(email: String, oauthToken: String, onUserSaved: () -> Unit) {
        viewModelScope.launch {
            loginSourceRepository.saveGoogleLogin(email, oauthToken)
            loginSourceRepository.saveUserType(User.GOOGLE)
//            loginSourceRepository.saveGoogleLogin(email, oauthToken)
//            loginSourceRepository.saveUserType(User.GOOGLE)
            onUserSaved()
            startLoginFlow()
            startLoginFlow(email = email, oauthToken = oauthToken)
        }
    }

+6 −0
Original line number Diff line number Diff line
@@ -29,8 +29,10 @@ import android.webkit.WebViewClient
import androidx.fragment.app.Fragment
import androidx.lifecycle.ViewModelProvider
import androidx.navigation.findNavController
import app.lounge.storage.cache.configurations
import dagger.hilt.android.AndroidEntryPoint
import foundation.e.apps.R
import foundation.e.apps.data.enums.User
import foundation.e.apps.data.gplay.utils.AC2DMUtil
import foundation.e.apps.presentation.login.LoginViewModel
import foundation.e.apps.databinding.FragmentGoogleSigninBinding
@@ -80,6 +82,10 @@ class GoogleSignInFragment : Fragment(R.layout.fragment_google_signin) {
                    ) {
                        val email = it.replace("\"".toRegex(), "")
                        viewModel.initialGoogleLogin(email, oauthToken) {
                            requireContext().configurations.email = email
                            requireContext().configurations.oauthtoken = oauthToken
                            requireContext().configurations.userType = User.GOOGLE.name

                            view.findNavController()
                                .safeNavigate(
                                    R.id.googleSignInFragment,
+12 −5
Original line number Diff line number Diff line
@@ -8,9 +8,11 @@ import okhttp3.HttpUrl.Companion.toHttpUrl
import okhttp3.MediaType.Companion.toMediaType
import okhttp3.OkHttpClient
import okhttp3.Request
import okhttp3.RequestBody
import okhttp3.RequestBody.Companion.toRequestBody
import okhttp3.Response
import timber.log.Timber
import java.io.IOException
import java.net.SocketTimeoutException
import java.net.UnknownHostException
import javax.inject.Inject
@@ -86,6 +88,16 @@ class GplayHttpClient @Inject constructor(@Named("privateOkHttpClient") val okHt
        return processRequest(request)
    }

    @Throws(IOException::class)
    fun post(url: String, headers: Map<String, String>, requestBody: RequestBody): PlayResponse {
        val request = Request.Builder()
            .url(url)
            .headers(headers.toHeaders())
            .method(POST, requestBody)
            .build()
        return processRequest(request)
    }

    override fun postAuth(url: String, body: ByteArray): PlayResponse {
        TODO("Not yet implemented")
    }
@@ -103,11 +115,6 @@ class GplayHttpClient @Inject constructor(@Named("privateOkHttpClient") val okHt
            val call = okHttpClient.newCall(request)
            buildPlayResponse(call.execute())
        } catch (e: Exception) {
            when (e) {
                is UnknownHostException,
                is SocketTimeoutException -> handleExceptionOnGooglePlayRequest(e)
                else -> handleExceptionOnGooglePlayRequest(e)
            }
            throw e
        }
    }
+2 −1
Original line number Diff line number Diff line
@@ -2,6 +2,7 @@ package app.lounge.login.google

import app.lounge.gplay.GplayHttpClient
import com.aurora.gplayapi.data.models.PlayResponse
import okhttp3.RequestBody.Companion.toRequestBody
import java.util.Locale
import javax.inject.Inject

@@ -41,6 +42,6 @@ class AuthTokenFetchApi @Inject constructor(private val gplayHttpClient: GplayHt
         * Returning PlayResponse instead of map so that we can get the network response code.
         * Issue: https://gitlab.e.foundation/e/backlog/-/issues/5709
         */
        return gplayHttpClient.post(TOKEN_AUTH_URL, header, body.toByteArray())
        return gplayHttpClient.post(TOKEN_AUTH_URL, header, body.toRequestBody())
    }
}
 No newline at end of file