summaryrefslogtreecommitdiff
path: root/app/src/main/java/foundation/e/privacycentralapp
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main/java/foundation/e/privacycentralapp')
-rw-r--r--app/src/main/java/foundation/e/privacycentralapp/features/dashboard/DashboardFragment.kt30
-rw-r--r--app/src/main/java/foundation/e/privacycentralapp/features/trackers/TrackersFragment.kt17
-rw-r--r--app/src/main/java/foundation/e/privacycentralapp/widget/WidgetUI.kt35
3 files changed, 58 insertions, 24 deletions
diff --git a/app/src/main/java/foundation/e/privacycentralapp/features/dashboard/DashboardFragment.kt b/app/src/main/java/foundation/e/privacycentralapp/features/dashboard/DashboardFragment.kt
index f5cb2e1..dec3234 100644
--- a/app/src/main/java/foundation/e/privacycentralapp/features/dashboard/DashboardFragment.kt
+++ b/app/src/main/java/foundation/e/privacycentralapp/features/dashboard/DashboardFragment.kt
@@ -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,16 +217,25 @@ class DashboardFragment :
)
)
- state.dayStatistics?.let { graphHolder.data = it }
- state.dayLabels?.let { graphHolder.labels = it }
-
- binding.graphLegend.text = Html.fromHtml(
- getString(
- R.string.dashboard_graph_trackers_legend,
- state.activeTrackersCount?.toString() ?: "No"
- ),
- FROM_HTML_MODE_LEGACY
- )
+ 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 }
+
+ binding.graphLegend.text = Html.fromHtml(
+ getString(
+ R.string.dashboard_graph_trackers_legend,
+ state.activeTrackersCount?.toString() ?: "No"
+ ),
+ 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)
diff --git a/app/src/main/java/foundation/e/privacycentralapp/features/trackers/TrackersFragment.kt b/app/src/main/java/foundation/e/privacycentralapp/features/trackers/TrackersFragment.kt
index 0f686b4..c0212a5 100644
--- a/app/src/main/java/foundation/e/privacycentralapp/features/trackers/TrackersFragment.kt
+++ b/app/src/main/java/foundation/e/privacycentralapp/features/trackers/TrackersFragment.kt
@@ -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
) {
- graphHolder.data = statistics.calls
- graphHolder.labels = statistics.periods
- graphBinding.trackersCountLabel.text = getString(R.string.trackers_count_label, statistics.trackersCount)
+ 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)
+ }
}
override fun actions(): Flow<TrackersFeature.Action> = viewModel.actions
diff --git a/app/src/main/java/foundation/e/privacycentralapp/widget/WidgetUI.kt b/app/src/main/java/foundation/e/privacycentralapp/widget/WidgetUI.kt
index ae2238f..1196920 100644
--- a/app/src/main/java/foundation/e/privacycentralapp/widget/WidgetUI.kt
+++ b/app/src/main/java/foundation/e/privacycentralapp/widget/WidgetUI.kt
@@ -124,16 +124,33 @@ fun render(
setViewVisibility(R.id.state_ip_address_loader, if (loading) View.VISIBLE else View.GONE)
- val graphHeightPx = 26.dpToPxF(context)
- 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) ->
- val topPadding = graphHeightPx - value * ratio
- setViewPadding(viewId, 0, topPadding.toInt(), 0, 0)
+ 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 ratio = graphHeightPx / maxValue
+
+ state.dayStatistics.zip(barIds).forEach { (value, viewId) ->
+ val topPadding = graphHeightPx - value * ratio
+ 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)