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

Commit 36cd4ba8 authored by Hasib Prince's avatar Hasib Prince
Browse files

Merge branch '654-single_source_mandatory' into 'main'

654 single source mandatory

See merge request !195
parents a92ef29e bfc23f54
Loading
Loading
Loading
Loading
Loading
+29 −1
Original line number Diff line number Diff line
@@ -29,11 +29,14 @@ import androidx.appcompat.app.AlertDialog
import androidx.appcompat.app.AppCompatActivity
import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.lifecycleScope
import androidx.navigation.NavController
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.bottomnavigation.BottomNavigationView
import com.google.android.material.snackbar.Snackbar
import dagger.hilt.android.AndroidEntryPoint
import foundation.e.apps.application.subFrags.ApplicationDialogFragment
@@ -41,6 +44,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 +77,7 @@ class MainActivity : AppCompatActivity() {
            supportFragmentManager.findFragmentById(R.id.fragment) as NavHostFragment
        val navController = navHostFragment.navController
        bottomNavigationView.setupWithNavController(navController)
        setupBottomNavItemSelectedListener(bottomNavigationView, navHostFragment, navController)

        var hasInternet = true

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

            when (destination.id) {
                R.id.applicationFragment,
                R.id.applicationListFragment,
@@ -223,6 +227,30 @@ class MainActivity : AppCompatActivity() {
        }
    }

    private fun setupBottomNavItemSelectedListener(
        bottomNavigationView: BottomNavigationView,
        navHostFragment: NavHostFragment,
        navController: 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
            )
        }
    }

    private fun handleFusedDownloadQueued(
        it: FusedDownload,
        viewModel: MainActivityViewModel
+1 −1
Original line number Diff line number Diff line
@@ -1224,7 +1224,7 @@ class FusedAPIImpl @Inject constructor(
            mapOf(
                "popular_apps" to context.getString(R.string.popular_apps),
                "popular_games" to context.getString(R.string.popular_games),
                "discover" to context.getString(R.string.discover)
                "discover" to context.getString(R.string.discover_pwa)
            )
        }
        headings.forEach { (key, value) ->
+0 −16
Original line number Diff line number Diff line
@@ -19,7 +19,6 @@
package foundation.e.apps.home.model

import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.lifecycle.LifecycleOwner
import androidx.recyclerview.widget.LinearLayoutManager
@@ -27,8 +26,6 @@ import androidx.recyclerview.widget.ListAdapter
import androidx.recyclerview.widget.RecyclerView
import foundation.e.apps.AppInfoFetchViewModel
import foundation.e.apps.MainActivityViewModel
import foundation.e.apps.R
import foundation.e.apps.api.fused.FusedAPIImpl
import foundation.e.apps.api.fused.FusedAPIInterface
import foundation.e.apps.api.fused.data.FusedApp
import foundation.e.apps.api.fused.data.FusedHome
@@ -74,19 +71,6 @@ class HomeParentRVAdapter(

        holder.binding.titleTV.text = fusedHome.title

        when (fusedHome.source) {
            FusedAPIImpl.APP_TYPE_OPEN -> {
                holder.binding.categoryTag.visibility = View.VISIBLE
                holder.binding.categoryTag.text = holder.binding.root.context.getString(R.string.open_source)
            }
            FusedAPIImpl.APP_TYPE_PWA -> {
                holder.binding.categoryTag.visibility = View.VISIBLE
                holder.binding.categoryTag.text = holder.binding.root.context.getString(R.string.pwa)
            }
            else -> {
                holder.binding.categoryTag.visibility = View.GONE
            }
        }
        holder.binding.childRV.apply {
            recycledViewPool.setMaxRecycledViews(0, 0)
            adapter = homeChildRVAdapter
+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 −21
Original line number Diff line number Diff line
@@ -36,27 +36,7 @@
            android:paddingEnd="10dp"
            android:textColor="?android:textColorPrimary"
            android:textSize="18sp"
            android:textStyle="bold"
            android:ellipsize="end"
            android:lines="1"
            android:layout_toStartOf="@id/categoryTag"/>

        <TextView
            android:id="@+id/categoryTag"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentEnd="true"
            android:layout_marginEnd="14dp"
            android:background="@drawable/bg_tag_rounded"
            android:paddingStart="6dp"
            android:paddingTop="2dp"
            android:paddingEnd="6dp"
            android:paddingBottom="2dp"
            android:textAllCaps="false"
            android:textColor="#626262"
            android:textSize="15sp"
            android:visibility="gone"
            tools:text="Open Source" />
            android:textStyle="bold" />

    </RelativeLayout>

Loading