GoogleFragment: Drop dependency upon kovenant
Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
This commit is contained in:
@@ -33,15 +33,11 @@ import androidx.fragment.app.Fragment
|
||||
import androidx.fragment.app.activityViewModels
|
||||
import androidx.navigation.fragment.findNavController
|
||||
import androidx.navigation.fragment.navArgs
|
||||
import com.aurora.Constants
|
||||
import com.aurora.store.R
|
||||
import com.aurora.store.data.event.BusEvent
|
||||
import com.aurora.store.databinding.FragmentGoogleBinding
|
||||
import com.aurora.store.util.AC2DMTask
|
||||
import com.aurora.store.util.AC2DMUtil
|
||||
import com.aurora.store.util.Preferences
|
||||
import com.aurora.store.viewmodel.auth.AuthViewModel
|
||||
import nl.komponents.kovenant.task
|
||||
import org.greenrobot.eventbus.EventBus
|
||||
import org.greenrobot.eventbus.Subscribe
|
||||
import org.greenrobot.eventbus.ThreadMode
|
||||
@@ -99,7 +95,7 @@ class GoogleFragment : Fragment(R.layout.fragment_google) {
|
||||
val oauthToken = cookieMap[AUTH_TOKEN]
|
||||
evaluateJavascript(JS_SCRIPT) {
|
||||
val email = it.replace("\"".toRegex(), "")
|
||||
buildAuthData(email, oauthToken)
|
||||
viewModel.buildAuthData(view.context, email, oauthToken)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -131,7 +127,16 @@ class GoogleFragment : Fragment(R.layout.fragment_google) {
|
||||
fun onEventReceived(event: BusEvent) {
|
||||
when (event) {
|
||||
is BusEvent.GoogleAAS -> {
|
||||
if (event.success) viewModel.buildGoogleAuthData(event.email, event.aasToken)
|
||||
if (event.success) {
|
||||
viewModel.buildGoogleAuthData(event.email, event.aasToken)
|
||||
} else {
|
||||
Toast.makeText(
|
||||
requireContext(),
|
||||
getString(R.string.toast_aas_token_failed),
|
||||
Toast.LENGTH_LONG
|
||||
).show()
|
||||
}
|
||||
|
||||
when (args.destination) {
|
||||
R.id.splashFragment -> {
|
||||
findNavController().navigate(
|
||||
@@ -150,37 +155,4 @@ class GoogleFragment : Fragment(R.layout.fragment_google) {
|
||||
else -> {}
|
||||
}
|
||||
}
|
||||
|
||||
private fun buildAuthData(email: String, oauthToken: String?) {
|
||||
task {
|
||||
AC2DMTask().getAC2DMResponse(email, oauthToken)
|
||||
} success {
|
||||
if (it.isNotEmpty()) {
|
||||
val aasToken = it["Token"]
|
||||
if (aasToken != null) {
|
||||
Preferences.putString(requireContext(), Constants.ACCOUNT_EMAIL_PLAIN, email)
|
||||
Preferences.putString(requireContext(), Constants.ACCOUNT_AAS_PLAIN, aasToken)
|
||||
EventBus.getDefault().post(BusEvent.GoogleAAS(true, email, aasToken))
|
||||
} else {
|
||||
Preferences.putString(requireContext(), Constants.ACCOUNT_EMAIL_PLAIN, "")
|
||||
Preferences.putString(requireContext(), Constants.ACCOUNT_AAS_PLAIN, "")
|
||||
EventBus.getDefault().post(BusEvent.GoogleAAS(false))
|
||||
}
|
||||
} else {
|
||||
Toast.makeText(
|
||||
requireContext(),
|
||||
getString(R.string.toast_aas_token_failed),
|
||||
Toast.LENGTH_LONG
|
||||
).show()
|
||||
EventBus.getDefault().post(BusEvent.GoogleAAS(false))
|
||||
}
|
||||
} fail {
|
||||
Toast.makeText(
|
||||
requireContext(),
|
||||
getString(R.string.toast_aas_token_failed),
|
||||
Toast.LENGTH_LONG
|
||||
).show()
|
||||
EventBus.getDefault().post(BusEvent.GoogleAAS(false))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,6 +21,7 @@ package com.aurora.store.viewmodel.auth
|
||||
|
||||
import android.app.Application
|
||||
import android.content.Context
|
||||
import android.util.Log
|
||||
import androidx.lifecycle.MutableLiveData
|
||||
import androidx.lifecycle.viewModelScope
|
||||
import com.aurora.Constants
|
||||
@@ -32,11 +33,13 @@ import com.aurora.store.AccountType
|
||||
import com.aurora.store.R
|
||||
import com.aurora.store.data.AuthState
|
||||
import com.aurora.store.data.RequestState
|
||||
import com.aurora.store.data.event.BusEvent
|
||||
import com.aurora.store.data.model.InsecureAuth
|
||||
import com.aurora.store.data.network.HttpClient
|
||||
import com.aurora.store.data.providers.AccountProvider
|
||||
import com.aurora.store.data.providers.NativeDeviceInfoProvider
|
||||
import com.aurora.store.data.providers.SpoofProvider
|
||||
import com.aurora.store.util.AC2DMTask
|
||||
import com.aurora.store.util.Preferences
|
||||
import com.aurora.store.util.Preferences.PREFERENCE_AUTH_DATA
|
||||
import com.aurora.store.viewmodel.BaseAndroidViewModel
|
||||
@@ -47,9 +50,12 @@ import nl.komponents.kovenant.task
|
||||
import java.net.ConnectException
|
||||
import java.net.UnknownHostException
|
||||
import java.util.*
|
||||
import org.greenrobot.eventbus.EventBus
|
||||
|
||||
class AuthViewModel(application: Application) : BaseAndroidViewModel(application) {
|
||||
|
||||
private val TAG = AuthViewModel::class.java.simpleName
|
||||
|
||||
private val spoofProvider = SpoofProvider(getApplication())
|
||||
|
||||
val liveData: MutableLiveData<AuthState> = MutableLiveData()
|
||||
@@ -191,6 +197,31 @@ class AuthViewModel(application: Application) : BaseAndroidViewModel(application
|
||||
}
|
||||
}
|
||||
|
||||
fun buildAuthData(context: Context, email: String, oauthToken: String?) {
|
||||
viewModelScope.launch(Dispatchers.IO) {
|
||||
try {
|
||||
val response = AC2DMTask().getAC2DMResponse(email, oauthToken)
|
||||
if (response.isNotEmpty()) {
|
||||
val aasToken = response["Token"]
|
||||
if (aasToken != null) {
|
||||
Preferences.putString(context, Constants.ACCOUNT_EMAIL_PLAIN, email)
|
||||
Preferences.putString(context, Constants.ACCOUNT_AAS_PLAIN, aasToken)
|
||||
EventBus.getDefault().post(BusEvent.GoogleAAS(true, email, aasToken))
|
||||
} else {
|
||||
Preferences.putString(context, Constants.ACCOUNT_EMAIL_PLAIN, "")
|
||||
Preferences.putString(context, Constants.ACCOUNT_AAS_PLAIN, "")
|
||||
EventBus.getDefault().post(BusEvent.GoogleAAS(false))
|
||||
}
|
||||
} else {
|
||||
EventBus.getDefault().post(BusEvent.GoogleAAS(false))
|
||||
}
|
||||
} catch (exception: Exception) {
|
||||
Log.e(TAG, "Failed to build AuthData", exception)
|
||||
EventBus.getDefault().post(BusEvent.GoogleAAS(false))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun buildSavedAuthData() {
|
||||
viewModelScope.launch(Dispatchers.IO) {
|
||||
supervisorScope {
|
||||
|
||||
Reference in New Issue
Block a user