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

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

Merge branch '5161_empty_graphs_message' into 'main'

5161 display message when trackers graphs empty.

See merge request e/privacy-central/privacycentralapp!35
parents 66863262 387e9b0c
Loading
Loading
Loading
Loading
Loading

app/libs/trackerfilter.aar

deleted100644 → 0
−578 KiB

File deleted.

+20 −10
Original line number Diff line number Diff line
@@ -23,6 +23,7 @@ import android.text.Html
import android.text.Html.FROM_HTML_MODE_LEGACY
import android.view.View
import androidx.core.content.ContextCompat.getColor
import androidx.core.view.isVisible
import androidx.fragment.app.activityViewModels
import androidx.fragment.app.add
import androidx.fragment.app.commit
@@ -216,6 +217,14 @@ class DashboardFragment :
            )
        )

        if (state.dayStatistics?.all { it == 0 } == true) {
            binding.graph.visibility = View.INVISIBLE
            binding.graphLegend.isVisible = false
            binding.graphEmpty.isVisible = true
        } else {
            binding.graph.isVisible = true
            binding.graphLegend.isVisible = true
            binding.graphEmpty.isVisible = false
            state.dayStatistics?.let { graphHolder.data = it }
            state.dayLabels?.let { graphHolder.labels = it }

@@ -226,6 +235,7 @@ class DashboardFragment :
                ),
                FROM_HTML_MODE_LEGACY
            )
        }

        if (state.activeTrackersCount != null && state.trackersCount != null) {
            binding.amITracked.subTitle = getString(R.string.dashboard_am_i_tracked_subtitle, state.trackersCount, state.activeTrackersCount)
+12 −5
Original line number Diff line number Diff line
@@ -18,9 +18,9 @@
package foundation.e.privacycentralapp.features.trackers

import android.os.Bundle
import android.util.Log
import android.view.View
import android.widget.Toast
import androidx.core.view.isVisible
import androidx.fragment.app.commit
import androidx.fragment.app.replace
import androidx.fragment.app.viewModels
@@ -114,7 +114,6 @@ class TrackersFragment :
    }

    override fun onResume() {
        Log.d("TestCounts", "OnResume")
        super.onResume()
        viewModel.submitAction(TrackersFeature.Action.FetchStatistics)
    }
@@ -138,9 +137,17 @@ class TrackersFragment :
        graphHolder: GraphHolder,
        graphBinding: TrackersItemGraphBinding
    ) {
        if (statistics.calls.all { it == 0 }) {
            graphBinding.graph.visibility = View.INVISIBLE
            graphBinding.graphEmpty.isVisible = true
        } else {
            graphBinding.graph.isVisible = true
            graphBinding.graphEmpty.isVisible = false
            graphHolder.data = statistics.calls
            graphHolder.labels = statistics.periods
        graphBinding.trackersCountLabel.text = getString(R.string.trackers_count_label, statistics.trackersCount)
            graphBinding.trackersCountLabel.text =
                getString(R.string.trackers_count_label, statistics.trackersCount)
        }
    }

    override fun actions(): Flow<TrackersFeature.Action> = viewModel.actions
+27 −10
Original line number Diff line number Diff line
@@ -111,7 +111,7 @@ fun render(
            context.getString(
                if (state.internetPrivacyMode != InternetPrivacyMode.HIDE_IP)
                    R.string.widget_state_ipaddress_off
                else R.string.widget_state_title_on
                else R.string.widget_state_ipaddress_on
            )
        )

@@ -124,8 +124,18 @@ fun render(

        setViewVisibility(R.id.state_ip_address_loader, if (loading) View.VISIBLE else View.GONE)

        if (state.dayStatistics.all { it == 0 }) {
            setViewVisibility(R.id.graph, View.GONE)
            setViewVisibility(R.id.graph_legend, View.GONE)
            setViewVisibility(R.id.graph_empty, View.VISIBLE)
        } else {
            setViewVisibility(R.id.graph, View.VISIBLE)
            setViewVisibility(R.id.graph_legend, View.VISIBLE)
            setViewVisibility(R.id.graph_empty, View.GONE)

            val graphHeightPx = 26.dpToPxF(context)
        val maxValue = state.dayStatistics.maxOrNull().let { if (it == null || it == 0) 1 else it }
            val maxValue =
                state.dayStatistics.maxOrNull().let { if (it == null || it == 0) 1 else it }
            val ratio = graphHeightPx / maxValue

            state.dayStatistics.zip(barIds).forEach { (value, viewId) ->
@@ -133,7 +143,14 @@ fun render(
                setViewPadding(viewId, 0, topPadding.toInt(), 0, 0)
            }

        setTextViewText(R.id.graph_legend, context.getString(R.string.widget_graph_trackers_legend, state.activeTrackersCount.toString()))
            setTextViewText(
                R.id.graph_legend,
                context.getString(
                    R.string.widget_graph_trackers_legend,
                    state.activeTrackersCount.toString()
                )
            )
        }
    }

    appWidgetManager.updateAppWidget(ComponentName(context, Widget::class.java), views)
+14 −0
Original line number Diff line number Diff line
@@ -185,6 +185,20 @@ android:text="@string/dashboard_state_ipaddress_off"
                    app:layout_constraintLeft_toLeftOf="parent"
                    app:layout_constraintTop_toBottomOf="@+id/graph"
                    />
                <TextView
                    android:id="@+id/graph_empty"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:textSize="12sp"
                    android:textColor="@color/secondary_text"
                    android:layout_marginHorizontal="16dp"
                    app:layout_constraintTop_toTopOf="parent"
                    app:layout_constraintBottom_toBottomOf="parent"
                    android:text="@string/graph_empty_message"
                    android:gravity="center"
                    android:visibility="gone"
                    />

            </androidx.constraintlayout.widget.ConstraintLayout>

            <include
Loading