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

Commit b490e680 authored by Hasib Prince's avatar Hasib Prince
Browse files

user is forced to select at least one app source

parent e4e1cad1
Loading
Loading
Loading
Loading
+19 −1
Original line number Diff line number Diff line
@@ -32,6 +32,7 @@ import androidx.lifecycle.lifecycleScope
import androidx.navigation.NavOptions
import androidx.navigation.findNavController
import androidx.navigation.fragment.NavHostFragment
import androidx.navigation.ui.NavigationUI
import androidx.navigation.ui.setupWithNavController
import com.aurora.gplayapi.exceptions.ApiException
import com.google.android.material.snackbar.Snackbar
@@ -41,6 +42,7 @@ import foundation.e.apps.databinding.ActivityMainBinding
import foundation.e.apps.manager.database.fusedDownload.FusedDownload
import foundation.e.apps.manager.workmanager.InstallWorkManager
import foundation.e.apps.purchase.AppPurchaseFragmentDirections
import foundation.e.apps.settings.SettingsFragment
import foundation.e.apps.setup.signin.SignInViewModel
import foundation.e.apps.updates.UpdatesNotifier
import foundation.e.apps.utils.enums.Status
@@ -73,6 +75,23 @@ class MainActivity : AppCompatActivity() {
            supportFragmentManager.findFragmentById(R.id.fragment) as NavHostFragment
        val navController = navHostFragment.navController
        bottomNavigationView.setupWithNavController(navController)
        bottomNavigationView.setOnItemSelectedListener {
            val fragment =
                navHostFragment.childFragmentManager.fragments.find { fragment -> fragment is SettingsFragment }
            if (bottomNavigationView.selectedItemId == R.id.settingsFragment && fragment is SettingsFragment && !fragment.isAnyAppSourceSelected()) {
                ApplicationDialogFragment(
                    title = "",
                    message = getString(R.string.select_one_source_of_applications),
                    positiveButtonText = getString(R.string.ok)
                ).show(supportFragmentManager, TAG)
                return@setOnItemSelectedListener false
            }

            return@setOnItemSelectedListener NavigationUI.onNavDestinationSelected(
                it,
                navController
            )
        }

        var hasInternet = true

@@ -135,7 +154,6 @@ class MainActivity : AppCompatActivity() {
            if (!hasInternet) {
                showNoInternet()
            }

            when (destination.id) {
                R.id.applicationFragment,
                R.id.applicationListFragment,
+9 −4
Original line number Diff line number Diff line
@@ -55,6 +55,9 @@ class SettingsFragment : PreferenceFragmentCompat() {
    private val binding get() = _binding!!
    private val viewModel: SignInViewModel by viewModels()
    private val mainActivityViewModel: MainActivityViewModel by viewModels()
    private var showAllApplications: CheckBoxPreference? = null
    private var showFOSSApplications: CheckBoxPreference? = null
    private var showPWAApplications: CheckBoxPreference? = null

    @Inject
    lateinit var gson: Gson
@@ -70,10 +73,9 @@ class SettingsFragment : PreferenceFragmentCompat() {
        setPreferencesFromResource(R.xml.settings_preferences, rootKey)

        // Show applications preferences
        val showAllApplications = findPreference<CheckBoxPreference>("showAllApplications")
        val showFOSSApplications = findPreference<CheckBoxPreference>("showFOSSApplications")
        val showPWAApplications = findPreference<CheckBoxPreference>("showPWAApplications")

        showAllApplications = findPreference<CheckBoxPreference>("showAllApplications")
        showFOSSApplications = findPreference<CheckBoxPreference>("showFOSSApplications")
        showPWAApplications = findPreference<CheckBoxPreference>("showPWAApplications")
        val updateCheckInterval =
            preferenceManager.findPreference<Preference>(getString(R.string.update_check_intervals))
        updateCheckInterval?.setOnPreferenceChangeListener { _, newValue ->
@@ -149,6 +151,9 @@ class SettingsFragment : PreferenceFragmentCompat() {
        }
    }

    fun isAnyAppSourceSelected() =
        showAllApplications?.isChecked == true || showFOSSApplications?.isChecked == true || showPWAApplications?.isChecked == true

    private fun backToMainActivity() {
        Intent(context, MainActivity::class.java).also {
            activity?.finish()
+1 −1
Original line number Diff line number Diff line
@@ -24,7 +24,7 @@
    <string name="preference_update_notify_available_description">Benachrichtige, wenn App-Aktualisierungen verfügbar sind</string>
    <string name="Show_applications">Zeige Anwendungen:</string>
    <string name="show_only_open_source_apps">Zeige nur quelloffene Apps an</string>
    <string name="Show_all_apps">Zeige alle Apps an</string>
    <string name="Show_commercial_apps">Zeige alle Apps an</string>
    <string name="show_only_pwa_apps">Zeige nur PWAs an</string>
    <string name="account">Konto</string>
    <string name="terms_services">Nutzungsbedingungen</string>
+1 −1
Original line number Diff line number Diff line
@@ -36,7 +36,7 @@
    <string name="preference_update_install_automatically_description">Descargar e instalar actualizaciones de aplicaciones en segundo plano</string>
    <string name="preference_update_notify_available_title">Mostrar aplicaciones disponibles</string>
    <string name="Show_applications">Mostrar aplicaciones:</string>
    <string name="Show_all_apps">Mostrar todas las aplicaciones</string>
    <string name="Show_commercial_apps">Mostrar todas las aplicaciones</string>
    <string name="show_only_open_source_apps">Mostrar solo aplicaciones de código abierto</string>
    <string name="show_only_pwa_apps">Mostrar solo las PWA</string>
    <string name="account">Cuenta</string>
+1 −1
Original line number Diff line number Diff line
@@ -43,7 +43,7 @@
    <string name="account">Tili</string>
    <string name="show_only_pwa_apps">Näytä vain PWAt</string>
    <string name="show_only_open_source_apps">Näytä vain avoimen lähdekoodin sovellukset</string>
    <string name="Show_all_apps">Näytä kaikki sovellukset</string>
    <string name="Show_commercial_apps">Näytä kaikki sovellukset</string>
    <string name="Show_applications">Näytä sovellukset:</string>
    <string name="preference_update_notify_available_description">Näytä ilmoitus kun sovelluspäivityksiä on saatavilla</string>
    <string name="preference_update_notify_available_title">Näytä saatavilla olevat päivitykset</string>
Loading