Loading app/src/main/java/foundation/e/apps/data/login/CleanApkAuthenticator.kt +3 −3 Original line number Diff line number Diff line Loading @@ -28,11 +28,11 @@ import javax.inject.Singleton */ @Singleton class CleanApkAuthenticator @Inject constructor( val loginDataStore: LoginDataStore, val loginData: LoginData, ) : StoreAuthenticator { private val user: User get() = loginDataStore.getUserType() get() = loginData.getUserType() override fun isStoreActive(): Boolean { if (user == User.UNAVAILABLE) { Loading @@ -41,7 +41,7 @@ class CleanApkAuthenticator @Inject constructor( */ return false } return loginDataStore.isOpenSourceSelected() || loginDataStore.isPWASelected() return loginData.isOpenSourceSelected() || loginData.isPWASelected() } override suspend fun getAuthObject(): AuthObject.CleanApk { Loading app/src/main/java/foundation/e/apps/data/login/GooglePlayAuthenticator.kt +11 −11 Original line number Diff line number Diff line Loading @@ -43,14 +43,14 @@ import javax.inject.Singleton class GooglePlayAuthenticator @Inject constructor( @ApplicationContext private val context: Context, private val gson: Gson, private val loginDataStore: LoginDataStore, private val loginData: LoginData, ) : StoreAuthenticator, AuthDataValidator { @Inject lateinit var gPlayApiFactory: GPlayApiFactory private val user: User get() = loginDataStore.getUserType() get() = loginData.getUserType() private val gPlayLoginInterface: GPlayLoginInterface get() = gPlayApiFactory.getGPlayApi(user) Loading @@ -68,7 +68,7 @@ class GooglePlayAuthenticator @Inject constructor( */ return false } return loginDataStore.isGplaySelected() return loginData.isGplaySelected() } /** Loading Loading @@ -103,7 +103,7 @@ class GooglePlayAuthenticator @Inject constructor( } override suspend fun clearSavedAuth() { loginDataStore.clearAuthData() loginData.clearAuthData() } /** Loading @@ -111,7 +111,7 @@ class GooglePlayAuthenticator @Inject constructor( * Returns null if nothing is saved. */ private fun getSavedAuthData(): AuthData? { val authJson = loginDataStore.getAuthData() val authJson = loginData.getAuthData() return if (authJson.isBlank()) null else try { gson.fromJson(authJson, AuthData::class.java) Loading @@ -122,20 +122,20 @@ class GooglePlayAuthenticator @Inject constructor( } private suspend fun saveAuthData(authData: AuthData) { loginDataStore.saveAuthData(authData) loginData.saveAuthData(authData) } /** * Generate new AuthData based on the user type. */ private suspend fun generateAuthData(): ResultSupreme<AuthData?> { return when (loginDataStore.getUserType()) { return when (loginData.getUserType()) { User.ANONYMOUS -> getAuthData() User.GOOGLE -> { getAuthData( loginDataStore.getEmail(), loginDataStore.getOAuthToken(), loginDataStore.getAASToken() loginData.getEmail(), loginData.getOAuthToken(), loginData.getAASToken() ) } else -> ResultSupreme.Error("User type not ANONYMOUS or GOOGLE") Loading Loading @@ -205,7 +205,7 @@ class GooglePlayAuthenticator @Inject constructor( /* * Finally save the aasToken and create auth data. */ loginDataStore.saveAasToken(aasTokenFetched) loginData.saveAasToken(aasTokenFetched) return loginApiRepository.fetchAuthData(email, aasTokenFetched, locale).run { if (isSuccess()) ResultSupreme.Success(formatAuthData(this.data!!)) else this Loading app/src/main/java/foundation/e/apps/data/login/LoginCommon.kt +13 −13 Original line number Diff line number Diff line Loading @@ -30,33 +30,33 @@ import javax.inject.Singleton */ @Singleton class LoginCommon @Inject constructor( private val loginDataStore: LoginDataStore, private val loginData: LoginData, ) { suspend fun saveUserType(user: User) { loginDataStore.saveUserType(user) loginData.saveUserType(user) } fun getUserType(): User { return loginDataStore.getUserType() return loginData.getUserType() } suspend fun saveGoogleLogin(email: String, oauth: String) { loginDataStore.saveGoogleLogin(email, oauth) loginData.saveGoogleLogin(email, oauth) } suspend fun setNoGoogleMode() { loginDataStore.setSource(Constants.PREFERENCE_SHOW_FOSS, true) loginDataStore.setSource(Constants.PREFERENCE_SHOW_PWA, true) loginDataStore.setSource(Constants.PREFERENCE_SHOW_GPLAY, false) loginDataStore.saveUserType(User.NO_GOOGLE) loginData.setSource(Constants.PREFERENCE_SHOW_FOSS, true) loginData.setSource(Constants.PREFERENCE_SHOW_PWA, true) loginData.setSource(Constants.PREFERENCE_SHOW_GPLAY, false) loginData.saveUserType(User.NO_GOOGLE) } suspend fun logout() { loginDataStore.destroyCredentials() loginDataStore.clearUserType() loginData.destroyCredentials() loginData.clearUserType() // reset app source preferences on logout. loginDataStore.setSource(Constants.PREFERENCE_SHOW_FOSS, true) loginDataStore.setSource(Constants.PREFERENCE_SHOW_PWA, true) loginDataStore.setSource(Constants.PREFERENCE_SHOW_GPLAY, true) loginData.setSource(Constants.PREFERENCE_SHOW_FOSS, true) loginData.setSource(Constants.PREFERENCE_SHOW_PWA, true) loginData.setSource(Constants.PREFERENCE_SHOW_GPLAY, true) } } app/src/main/java/foundation/e/apps/data/login/LoginDataStore.kt→app/src/main/java/foundation/e/apps/data/login/LoginData.kt +1 −1 Original line number Diff line number Diff line Loading @@ -36,7 +36,7 @@ import javax.inject.Inject import javax.inject.Singleton @Singleton class LoginDataStore @Inject constructor( class LoginData @Inject constructor( @ApplicationContext private val context: Context, private val gson: Gson Loading Loading
app/src/main/java/foundation/e/apps/data/login/CleanApkAuthenticator.kt +3 −3 Original line number Diff line number Diff line Loading @@ -28,11 +28,11 @@ import javax.inject.Singleton */ @Singleton class CleanApkAuthenticator @Inject constructor( val loginDataStore: LoginDataStore, val loginData: LoginData, ) : StoreAuthenticator { private val user: User get() = loginDataStore.getUserType() get() = loginData.getUserType() override fun isStoreActive(): Boolean { if (user == User.UNAVAILABLE) { Loading @@ -41,7 +41,7 @@ class CleanApkAuthenticator @Inject constructor( */ return false } return loginDataStore.isOpenSourceSelected() || loginDataStore.isPWASelected() return loginData.isOpenSourceSelected() || loginData.isPWASelected() } override suspend fun getAuthObject(): AuthObject.CleanApk { Loading
app/src/main/java/foundation/e/apps/data/login/GooglePlayAuthenticator.kt +11 −11 Original line number Diff line number Diff line Loading @@ -43,14 +43,14 @@ import javax.inject.Singleton class GooglePlayAuthenticator @Inject constructor( @ApplicationContext private val context: Context, private val gson: Gson, private val loginDataStore: LoginDataStore, private val loginData: LoginData, ) : StoreAuthenticator, AuthDataValidator { @Inject lateinit var gPlayApiFactory: GPlayApiFactory private val user: User get() = loginDataStore.getUserType() get() = loginData.getUserType() private val gPlayLoginInterface: GPlayLoginInterface get() = gPlayApiFactory.getGPlayApi(user) Loading @@ -68,7 +68,7 @@ class GooglePlayAuthenticator @Inject constructor( */ return false } return loginDataStore.isGplaySelected() return loginData.isGplaySelected() } /** Loading Loading @@ -103,7 +103,7 @@ class GooglePlayAuthenticator @Inject constructor( } override suspend fun clearSavedAuth() { loginDataStore.clearAuthData() loginData.clearAuthData() } /** Loading @@ -111,7 +111,7 @@ class GooglePlayAuthenticator @Inject constructor( * Returns null if nothing is saved. */ private fun getSavedAuthData(): AuthData? { val authJson = loginDataStore.getAuthData() val authJson = loginData.getAuthData() return if (authJson.isBlank()) null else try { gson.fromJson(authJson, AuthData::class.java) Loading @@ -122,20 +122,20 @@ class GooglePlayAuthenticator @Inject constructor( } private suspend fun saveAuthData(authData: AuthData) { loginDataStore.saveAuthData(authData) loginData.saveAuthData(authData) } /** * Generate new AuthData based on the user type. */ private suspend fun generateAuthData(): ResultSupreme<AuthData?> { return when (loginDataStore.getUserType()) { return when (loginData.getUserType()) { User.ANONYMOUS -> getAuthData() User.GOOGLE -> { getAuthData( loginDataStore.getEmail(), loginDataStore.getOAuthToken(), loginDataStore.getAASToken() loginData.getEmail(), loginData.getOAuthToken(), loginData.getAASToken() ) } else -> ResultSupreme.Error("User type not ANONYMOUS or GOOGLE") Loading Loading @@ -205,7 +205,7 @@ class GooglePlayAuthenticator @Inject constructor( /* * Finally save the aasToken and create auth data. */ loginDataStore.saveAasToken(aasTokenFetched) loginData.saveAasToken(aasTokenFetched) return loginApiRepository.fetchAuthData(email, aasTokenFetched, locale).run { if (isSuccess()) ResultSupreme.Success(formatAuthData(this.data!!)) else this Loading
app/src/main/java/foundation/e/apps/data/login/LoginCommon.kt +13 −13 Original line number Diff line number Diff line Loading @@ -30,33 +30,33 @@ import javax.inject.Singleton */ @Singleton class LoginCommon @Inject constructor( private val loginDataStore: LoginDataStore, private val loginData: LoginData, ) { suspend fun saveUserType(user: User) { loginDataStore.saveUserType(user) loginData.saveUserType(user) } fun getUserType(): User { return loginDataStore.getUserType() return loginData.getUserType() } suspend fun saveGoogleLogin(email: String, oauth: String) { loginDataStore.saveGoogleLogin(email, oauth) loginData.saveGoogleLogin(email, oauth) } suspend fun setNoGoogleMode() { loginDataStore.setSource(Constants.PREFERENCE_SHOW_FOSS, true) loginDataStore.setSource(Constants.PREFERENCE_SHOW_PWA, true) loginDataStore.setSource(Constants.PREFERENCE_SHOW_GPLAY, false) loginDataStore.saveUserType(User.NO_GOOGLE) loginData.setSource(Constants.PREFERENCE_SHOW_FOSS, true) loginData.setSource(Constants.PREFERENCE_SHOW_PWA, true) loginData.setSource(Constants.PREFERENCE_SHOW_GPLAY, false) loginData.saveUserType(User.NO_GOOGLE) } suspend fun logout() { loginDataStore.destroyCredentials() loginDataStore.clearUserType() loginData.destroyCredentials() loginData.clearUserType() // reset app source preferences on logout. loginDataStore.setSource(Constants.PREFERENCE_SHOW_FOSS, true) loginDataStore.setSource(Constants.PREFERENCE_SHOW_PWA, true) loginDataStore.setSource(Constants.PREFERENCE_SHOW_GPLAY, true) loginData.setSource(Constants.PREFERENCE_SHOW_FOSS, true) loginData.setSource(Constants.PREFERENCE_SHOW_PWA, true) loginData.setSource(Constants.PREFERENCE_SHOW_GPLAY, true) } }
app/src/main/java/foundation/e/apps/data/login/LoginDataStore.kt→app/src/main/java/foundation/e/apps/data/login/LoginData.kt +1 −1 Original line number Diff line number Diff line Loading @@ -36,7 +36,7 @@ import javax.inject.Inject import javax.inject.Singleton @Singleton class LoginDataStore @Inject constructor( class LoginData @Inject constructor( @ApplicationContext private val context: Context, private val gson: Gson Loading