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

Commit acc277cc authored by Guillaume Jacquart's avatar Guillaume Jacquart
Browse files

Merge branch '1964-thousand_separator' into 'main'

1964: add tousand separators on leaks counts.

See merge request !163
parents ab073223 c50d13f8
Loading
Loading
Loading
Loading
Loading
+0 −4
Original line number Diff line number Diff line
@@ -83,15 +83,11 @@ android {
    productFlavors {
        eos {
            dimension 'os'
            minSdkVersion 29
            targetSdkVersion 32
            signingConfig signingConfigs.eDebug
        }
        standalone {
            dimension 'os'
            applicationIdSuffix '.standalone'
            minSdkVersion 26
            targetSdkVersion 31
            manifestPlaceholders = [
                persistent: "false",
                mainActivityIntentFilterCategory: "android.intent.category.LAUNCHER"
+26 −0
Original line number Diff line number Diff line
/*
 * Copyright (C) 2024 MURENA SAS
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see <https://www.gnu.org/licenses/>.
 */
package foundation.e.advancedprivacy.common

import android.content.Context
import android.icu.number.NumberFormatter

class BigNumberFormatter(context: Context) {
    private val formatter = NumberFormatter.withLocale(context.resources.configuration.locales[0])

    fun format(number: Int): CharSequence = formatter.format(number)
}
+4 −2
Original line number Diff line number Diff line
/*
 * Copyright (C) 2023 MURENA SAS
 * Copyright (C) 2023-2024 MURENA SAS
 * Copyright (C) 2021 E FOUNDATION
 *
 * This program is free software: you can redistribute it and/or modify
@@ -29,6 +29,7 @@ import androidx.lifecycle.lifecycleScope
import androidx.lifecycle.repeatOnLifecycle
import androidx.navigation.fragment.findNavController
import foundation.e.advancedprivacy.R
import foundation.e.advancedprivacy.common.BigNumberFormatter
import foundation.e.advancedprivacy.common.NavToolbarFragment
import foundation.e.advancedprivacy.databinding.FragmentDashboardBinding
import foundation.e.advancedprivacy.domain.entities.FeatureState
@@ -39,6 +40,7 @@ import org.koin.androidx.viewmodel.ext.android.viewModel

class DashboardFragment : NavToolbarFragment(R.layout.fragment_dashboard) {
    private val viewModel: DashboardViewModel by viewModel()
    private val numberFormatter: BigNumberFormatter by lazy { BigNumberFormatter(requireContext()) }

    private lateinit var binding: FragmentDashboardBinding

@@ -164,7 +166,7 @@ class DashboardFragment : NavToolbarFragment(R.layout.fragment_dashboard) {
    }

    private fun render(state: DashboardState) {
        binding.dataBlockedTrackers.number.text = state.blockedCallsCount.toString()
        binding.dataBlockedTrackers.number.text = numberFormatter.format(state.blockedCallsCount)
        binding.dataApps.number.text = state.appsWithCallsCount.toString()

        with(binding.trackersControl) {
+6 −3
Original line number Diff line number Diff line
/*
 * Copyright (C) 2023 MURENA SAS
 * Copyright (C) 2023-2024 MURENA SAS
 * Copyright (C) 2021 E FOUNDATION
 *
 * This program is free software: you can redistribute it and/or modify
@@ -33,6 +33,7 @@ import androidx.recyclerview.widget.LinearLayoutManager
import com.google.android.material.divider.MaterialDividerItemDecoration
import com.google.android.material.snackbar.Snackbar
import foundation.e.advancedprivacy.R
import foundation.e.advancedprivacy.common.BigNumberFormatter
import foundation.e.advancedprivacy.common.NavToolbarFragment
import foundation.e.advancedprivacy.databinding.ApptrackersFragmentBinding
import foundation.e.advancedprivacy.features.trackers.setupDisclaimerBlock
@@ -45,6 +46,8 @@ class AppTrackersFragment : NavToolbarFragment(R.layout.apptrackers_fragment) {
    private val args: AppTrackersFragmentArgs by navArgs()
    private val viewModel: AppTrackersViewModel by viewModel { parametersOf(args.appUid) }

    private val numberFormatter: BigNumberFormatter by lazy { BigNumberFormatter(requireContext()) }

    private lateinit var binding: ApptrackersFragmentBinding

    override fun getTitle(): CharSequence {
@@ -145,8 +148,8 @@ class AppTrackersFragment : NavToolbarFragment(R.layout.apptrackers_fragment) {

        binding.dataBlockedLeaks.apply {
            primaryMessage.setText(R.string.apptrackers_blocked_leaks_primary)
            number.text = state.blocked.toString()
            secondaryMessage.text = getString(R.string.apptrackers_blocked_leaks_secondary, state.leaked.toString())
            number.text = numberFormatter.format(state.blocked)
            secondaryMessage.text = getString(R.string.apptrackers_blocked_leaks_secondary, numberFormatter.format(state.leaked))
        }

        binding.blockAllToggle.isChecked = state.isBlockingActivated
+5 −3
Original line number Diff line number Diff line
/*
 * Copyright (C) 2023 MURENA SAS
 * Copyright (C) 2023-2024 MURENA SAS
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
@@ -31,6 +31,7 @@ import androidx.recyclerview.widget.LinearLayoutManager
import com.google.android.material.divider.MaterialDividerItemDecoration
import com.google.android.material.snackbar.Snackbar
import foundation.e.advancedprivacy.R
import foundation.e.advancedprivacy.common.BigNumberFormatter
import foundation.e.advancedprivacy.common.NavToolbarFragment
import foundation.e.advancedprivacy.databinding.TrackerdetailsFragmentBinding
import foundation.e.advancedprivacy.features.trackers.setupDisclaimerBlock
@@ -42,6 +43,7 @@ class TrackerDetailsFragment : NavToolbarFragment(R.layout.trackerdetails_fragme

    private val args: TrackerDetailsFragmentArgs by navArgs()
    private val viewModel: TrackerDetailsViewModel by viewModel { parametersOf(args.trackerId) }
    private val numberFormatter: BigNumberFormatter by lazy { BigNumberFormatter(requireContext()) }

    private lateinit var binding: TrackerdetailsFragmentBinding

@@ -136,8 +138,8 @@ class TrackerDetailsFragment : NavToolbarFragment(R.layout.trackerdetails_fragme

        binding.dataBlockedLeaks.apply {
            primaryMessage.setText(R.string.trackerdetails_blocked_leaks_primary)
            number.text = state.blockedCount.toString()
            secondaryMessage.text = getString(R.string.trackerdetails_blocked_leaks_secondary, state.leakedCount.toString())
            number.text = numberFormatter.format(state.blockedCount)
            secondaryMessage.text = getString(R.string.trackerdetails_blocked_leaks_secondary, numberFormatter.format(state.leakedCount))
        }

        binding.blockAllToggle.isChecked = state.isBlockAllActivated
Loading