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.fragment.app.activityViewModels
|
||||||
import androidx.navigation.fragment.findNavController
|
import androidx.navigation.fragment.findNavController
|
||||||
import androidx.navigation.fragment.navArgs
|
import androidx.navigation.fragment.navArgs
|
||||||
import com.aurora.Constants
|
|
||||||
import com.aurora.store.R
|
import com.aurora.store.R
|
||||||
import com.aurora.store.data.event.BusEvent
|
import com.aurora.store.data.event.BusEvent
|
||||||
import com.aurora.store.databinding.FragmentGoogleBinding
|
import com.aurora.store.databinding.FragmentGoogleBinding
|
||||||
import com.aurora.store.util.AC2DMTask
|
|
||||||
import com.aurora.store.util.AC2DMUtil
|
import com.aurora.store.util.AC2DMUtil
|
||||||
import com.aurora.store.util.Preferences
|
|
||||||
import com.aurora.store.viewmodel.auth.AuthViewModel
|
import com.aurora.store.viewmodel.auth.AuthViewModel
|
||||||
import nl.komponents.kovenant.task
|
|
||||||
import org.greenrobot.eventbus.EventBus
|
import org.greenrobot.eventbus.EventBus
|
||||||
import org.greenrobot.eventbus.Subscribe
|
import org.greenrobot.eventbus.Subscribe
|
||||||
import org.greenrobot.eventbus.ThreadMode
|
import org.greenrobot.eventbus.ThreadMode
|
||||||
@@ -99,7 +95,7 @@ class GoogleFragment : Fragment(R.layout.fragment_google) {
|
|||||||
val oauthToken = cookieMap[AUTH_TOKEN]
|
val oauthToken = cookieMap[AUTH_TOKEN]
|
||||||
evaluateJavascript(JS_SCRIPT) {
|
evaluateJavascript(JS_SCRIPT) {
|
||||||
val email = it.replace("\"".toRegex(), "")
|
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) {
|
fun onEventReceived(event: BusEvent) {
|
||||||
when (event) {
|
when (event) {
|
||||||
is BusEvent.GoogleAAS -> {
|
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) {
|
when (args.destination) {
|
||||||
R.id.splashFragment -> {
|
R.id.splashFragment -> {
|
||||||
findNavController().navigate(
|
findNavController().navigate(
|
||||||
@@ -150,37 +155,4 @@ class GoogleFragment : Fragment(R.layout.fragment_google) {
|
|||||||
else -> {}
|
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.app.Application
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
|
import android.util.Log
|
||||||
import androidx.lifecycle.MutableLiveData
|
import androidx.lifecycle.MutableLiveData
|
||||||
import androidx.lifecycle.viewModelScope
|
import androidx.lifecycle.viewModelScope
|
||||||
import com.aurora.Constants
|
import com.aurora.Constants
|
||||||
@@ -32,11 +33,13 @@ import com.aurora.store.AccountType
|
|||||||
import com.aurora.store.R
|
import com.aurora.store.R
|
||||||
import com.aurora.store.data.AuthState
|
import com.aurora.store.data.AuthState
|
||||||
import com.aurora.store.data.RequestState
|
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.model.InsecureAuth
|
||||||
import com.aurora.store.data.network.HttpClient
|
import com.aurora.store.data.network.HttpClient
|
||||||
import com.aurora.store.data.providers.AccountProvider
|
import com.aurora.store.data.providers.AccountProvider
|
||||||
import com.aurora.store.data.providers.NativeDeviceInfoProvider
|
import com.aurora.store.data.providers.NativeDeviceInfoProvider
|
||||||
import com.aurora.store.data.providers.SpoofProvider
|
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
|
||||||
import com.aurora.store.util.Preferences.PREFERENCE_AUTH_DATA
|
import com.aurora.store.util.Preferences.PREFERENCE_AUTH_DATA
|
||||||
import com.aurora.store.viewmodel.BaseAndroidViewModel
|
import com.aurora.store.viewmodel.BaseAndroidViewModel
|
||||||
@@ -47,9 +50,12 @@ import nl.komponents.kovenant.task
|
|||||||
import java.net.ConnectException
|
import java.net.ConnectException
|
||||||
import java.net.UnknownHostException
|
import java.net.UnknownHostException
|
||||||
import java.util.*
|
import java.util.*
|
||||||
|
import org.greenrobot.eventbus.EventBus
|
||||||
|
|
||||||
class AuthViewModel(application: Application) : BaseAndroidViewModel(application) {
|
class AuthViewModel(application: Application) : BaseAndroidViewModel(application) {
|
||||||
|
|
||||||
|
private val TAG = AuthViewModel::class.java.simpleName
|
||||||
|
|
||||||
private val spoofProvider = SpoofProvider(getApplication())
|
private val spoofProvider = SpoofProvider(getApplication())
|
||||||
|
|
||||||
val liveData: MutableLiveData<AuthState> = MutableLiveData()
|
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() {
|
private fun buildSavedAuthData() {
|
||||||
viewModelScope.launch(Dispatchers.IO) {
|
viewModelScope.launch(Dispatchers.IO) {
|
||||||
supervisorScope {
|
supervisorScope {
|
||||||
|
|||||||
Reference in New Issue
Block a user