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

Commit f616b6e5 authored by Aayush Gupta's avatar Aayush Gupta
Browse files

App Lounge: Show TOS and SignIn fragment as required

parent 5b286c9d
Loading
Loading
Loading
Loading
+37 −14
Original line number Diff line number Diff line
@@ -24,10 +24,13 @@ import android.util.Log
import android.view.View
import androidx.appcompat.app.AppCompatActivity
import androidx.lifecycle.ViewModelProvider
import androidx.navigation.NavOptions
import androidx.navigation.Navigation
import androidx.navigation.fragment.NavHostFragment
import androidx.navigation.ui.setupWithNavController
import dagger.hilt.android.AndroidEntryPoint
import foundation.e.apps.databinding.ActivityMainBinding
import foundation.e.apps.utils.USER

@AndroidEntryPoint
class MainActivity : AppCompatActivity() {
@@ -47,6 +50,21 @@ class MainActivity : AppCompatActivity() {

        val viewModel = ViewModelProvider(this)[MainActivityViewModel::class.java]

        viewModel.tocStatus.observe(this, {
            if (it != true) {
                val navOptions = NavOptions.Builder()
                    .setPopUpTo(R.id.navigation_resource, true)
                    .build()
                navOptions.shouldLaunchSingleTop()
                Navigation.findNavController(this, binding.fragment.id)
                    .navigate(R.id.TOSFragment, null, navOptions)
            }
        })

        viewModel.userType.observe(this, { user ->
            if (viewModel.tocStatus.value == true) {
                when (USER.valueOf(user)) {
                    USER.ANONYMOUS -> {
                        // Watch and refresh authentication data
                        viewModel.authDataJson.observe(this, {
                            if (it.isNullOrEmpty()) {
@@ -66,6 +84,11 @@ class MainActivity : AppCompatActivity() {
                                Log.d(TAG, "Authentication data is valid!")
                            }
                        })
                    }
                    else -> {}
                }
            }
        })

        navController.addOnDestinationChangedListener { _, destination, _ ->
            when (destination.id) {
+2 −5
Original line number Diff line number Diff line
@@ -22,16 +22,13 @@ import android.app.NotificationChannel
import android.app.NotificationManager
import android.os.Build
import androidx.annotation.RequiresApi
import androidx.lifecycle.LiveData
import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.ViewModel
import androidx.lifecycle.asLiveData
import androidx.lifecycle.viewModelScope
import androidx.lifecycle.*
import com.aurora.gplayapi.data.models.AuthData
import com.google.gson.Gson
import dagger.hilt.android.lifecycle.HiltViewModel
import foundation.e.apps.api.fused.FusedAPIRepository
import foundation.e.apps.utils.DataStoreModule
import foundation.e.apps.utils.USER
import kotlinx.coroutines.launch
import javax.inject.Inject
import javax.inject.Named
+1 −1
Original line number Diff line number Diff line
@@ -45,7 +45,7 @@ class DataStoreModule @Inject constructor(
    private val TOCSTATUS = booleanPreferencesKey("tocStatus")

    val authData = context.dataStore.data.map { it[AUTHDATA] ?: "" }
    val userType = context.dataStore.data.map { it[USERTYPE] ?: "" }
    val userType = context.dataStore.data.map { it[USERTYPE] ?: USER.UNAVAILABLE.name }
    val tocStatus = context.dataStore.data.map { it[TOCSTATUS] ?: false }

    /**
+8 −2
Original line number Diff line number Diff line
@@ -32,10 +32,16 @@
            app:destination="@id/applicationFragment" />
        <action
            android:id="@+id/action_homeFragment_to_signInFragment"
            app:destination="@id/signInFragment" />
            app:destination="@id/signInFragment"
            app:launchSingleTop="true"
            app:popUpTo="@+id/navigation_resource"
            app:popUpToInclusive="true" />
        <action
            android:id="@+id/action_homeFragment_to_TOSFragment"
            app:destination="@id/TOSFragment" />
            app:destination="@id/TOSFragment"
            app:launchSingleTop="true"
            app:popUpTo="@+id/navigation_resource"
            app:popUpToInclusive="true" />
    </fragment>
    <fragment
        android:id="@+id/categoriesFragment"