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

Commit 698ff66b authored by Hasib Prince's avatar Hasib Prince
Browse files

App Lounge: force accept tos on update

parent 704ffa6e
Loading
Loading
Loading
Loading
Loading
+15 −0
Original line number Original line Diff line number Diff line
@@ -24,7 +24,11 @@ import androidx.work.Configuration
import dagger.hilt.android.HiltAndroidApp
import dagger.hilt.android.HiltAndroidApp
import foundation.e.apps.manager.pkg.PkgManagerBR
import foundation.e.apps.manager.pkg.PkgManagerBR
import foundation.e.apps.manager.pkg.PkgManagerModule
import foundation.e.apps.manager.pkg.PkgManagerModule
import foundation.e.apps.setup.tos.TOS_VERSION
import foundation.e.apps.utils.modules.DataStoreModule
import kotlinx.coroutines.DelicateCoroutinesApi
import kotlinx.coroutines.DelicateCoroutinesApi
import kotlinx.coroutines.MainScope
import kotlinx.coroutines.launch
import java.util.concurrent.Executors
import java.util.concurrent.Executors
import javax.inject.Inject
import javax.inject.Inject


@@ -34,15 +38,26 @@ class AppLoungeApplication : Application(), Configuration.Provider {


    @Inject
    @Inject
    lateinit var pkgManagerModule: PkgManagerModule
    lateinit var pkgManagerModule: PkgManagerModule

    @Inject
    @Inject
    lateinit var workerFactory: HiltWorkerFactory
    lateinit var workerFactory: HiltWorkerFactory


    @Inject
    lateinit var dataStoreModule: DataStoreModule

    override fun onCreate() {
    override fun onCreate() {
        super.onCreate()
        super.onCreate()


        // Register broadcast receiver for package manager
        // Register broadcast receiver for package manager
        val pkgManagerBR = object : PkgManagerBR() {}
        val pkgManagerBR = object : PkgManagerBR() {}
        registerReceiver(pkgManagerBR, pkgManagerModule.getFilter())
        registerReceiver(pkgManagerBR, pkgManagerModule.getFilter())

        val currentVersion = dataStoreModule.getTOSVersion()
        if (!currentVersion.contentEquals(TOS_VERSION)) {
            MainScope().launch {
                dataStoreModule.saveTOCStatus(false, "")
            }
        }
    }
    }


    override fun getWorkManagerConfiguration() =
    override fun getWorkManagerConfiguration() =
+3 −1
Original line number Original line Diff line number Diff line
@@ -18,7 +18,9 @@ class TOSViewModel @Inject constructor(


    fun saveTOCStatus(status: Boolean) {
    fun saveTOCStatus(status: Boolean) {
        viewModelScope.launch {
        viewModelScope.launch {
            dataStoreModule.saveTOCStatus(status)
            dataStoreModule.saveTOCStatus(status, TOS_VERSION)
        }
        }
    }
    }
}
}

const val TOS_VERSION = "1.0.3"
+10 −1
Original line number Original line Diff line number Diff line
@@ -48,12 +48,14 @@ class DataStoreModule @Inject constructor(
    private val OAUTHTOKEN = stringPreferencesKey("oauthtoken")
    private val OAUTHTOKEN = stringPreferencesKey("oauthtoken")
    private val USERTYPE = stringPreferencesKey("userType")
    private val USERTYPE = stringPreferencesKey("userType")
    private val TOCSTATUS = booleanPreferencesKey("tocStatus")
    private val TOCSTATUS = booleanPreferencesKey("tocStatus")
    private val TOSVERSION = stringPreferencesKey("tosversion")


    val authData = context.dataStore.data.map { it[AUTHDATA] ?: "" }
    val authData = context.dataStore.data.map { it[AUTHDATA] ?: "" }
    val emailData = context.dataStore.data.map { it[EMAIL] ?: "" }
    val emailData = context.dataStore.data.map { it[EMAIL] ?: "" }
    val aasToken = context.dataStore.data.map { it[OAUTHTOKEN] ?: "" }
    val aasToken = context.dataStore.data.map { it[OAUTHTOKEN] ?: "" }
    val userType = context.dataStore.data.map { it[USERTYPE] ?: "" }
    val userType = context.dataStore.data.map { it[USERTYPE] ?: "" }
    val tocStatus = context.dataStore.data.map { it[TOCSTATUS] ?: false }
    val tocStatus = context.dataStore.data.map { it[TOCSTATUS] ?: false }
    val tosVersion = context.dataStore.data.map { it[TOSVERSION] ?: "" }


    /**
    /**
     * Allows to save gplay API token data into datastore
     * Allows to save gplay API token data into datastore
@@ -88,9 +90,16 @@ class DataStoreModule @Inject constructor(
    /**
    /**
     * TOC status
     * TOC status
     */
     */
    suspend fun saveTOCStatus(status: Boolean) {
    suspend fun saveTOCStatus(status: Boolean, tosVersion: String) {
        context.dataStore.edit {
        context.dataStore.edit {
            it[TOCSTATUS] = status
            it[TOCSTATUS] = status
            it[TOSVERSION] = tosVersion
        }
    }

    fun getTOSVersion(): String {
        return runBlocking {
            tosVersion.first()
        }
        }
    }
    }