From f9b413332f82873aab43066e19170dddcefa8322 Mon Sep 17 00:00:00 2001 From: Xavier Gouchet Date: Tue, 8 Oct 2019 09:43:16 +0200 Subject: Reset playback statistics Fixes #1867 --- .../fragment/preferences/StatisticsFragment.java | 52 +++++++++++++++++++--- 1 file changed, 45 insertions(+), 7 deletions(-) (limited to 'app/src/main/java') diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/preferences/StatisticsFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/preferences/StatisticsFragment.java index 2b5310837..2e6a3b5d5 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/preferences/StatisticsFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/preferences/StatisticsFragment.java @@ -3,12 +3,6 @@ package de.danoeh.antennapod.fragment.preferences; import android.content.Context; import android.content.SharedPreferences; import android.os.Bundle; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; -import androidx.fragment.app.Fragment; -import androidx.appcompat.app.AlertDialog; -import androidx.recyclerview.widget.LinearLayoutManager; -import androidx.recyclerview.widget.RecyclerView; import android.util.Log; import android.view.LayoutInflater; import android.view.Menu; @@ -18,10 +12,23 @@ import android.view.View; import android.view.ViewGroup; import android.widget.ProgressBar; import android.widget.RadioButton; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.appcompat.app.AlertDialog; +import androidx.fragment.app.Fragment; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import org.greenrobot.eventbus.EventBus; +import org.greenrobot.eventbus.Subscribe; + import de.danoeh.antennapod.R; import de.danoeh.antennapod.activity.PreferenceActivity; import de.danoeh.antennapod.adapter.StatisticsListAdapter; +import de.danoeh.antennapod.core.event.StatisticsEvent; import de.danoeh.antennapod.core.storage.DBReader; +import de.danoeh.antennapod.core.storage.DBWriter; import io.reactivex.Observable; import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.disposables.Disposable; @@ -52,7 +59,9 @@ public class StatisticsFragment extends Fragment { @Nullable @Override - public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { + public View onCreateView( + @NonNull LayoutInflater inflater, + @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View root = inflater.inflate(R.layout.statistics_activity, container, false); feedStatisticsList = root.findViewById(R.id.statistics_list); progressBar = root.findViewById(R.id.progressBar); @@ -63,6 +72,11 @@ public class StatisticsFragment extends Fragment { return root; } + @Override public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) { + super.onViewCreated(view, savedInstanceState); + EventBus.getDefault().register(this); + } + @Override public void onStart() { super.onStart(); @@ -70,6 +84,14 @@ public class StatisticsFragment extends Fragment { refreshStatistics(); } + @Override public void onDestroyView() { + super.onDestroyView(); + EventBus.getDefault().unregister(this); + if (disposable != null) { + disposable.dispose(); + } + } + @Override public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { inflater.inflate(R.menu.statistics, menu); @@ -81,9 +103,19 @@ public class StatisticsFragment extends Fragment { selectStatisticsMode(); return true; } + if (item.getItemId() == R.id.statistics_reset) { + resetStatistics(); + return true; + } return super.onOptionsItemSelected(item); } + @Subscribe + public void onEvent(StatisticsEvent event) { + Log.d(TAG, "onEvent() called with: " + "event = [" + event + "]"); + refreshStatistics(); + } + private void selectStatisticsMode() { View contentView = View.inflate(getContext(), R.layout.statistics_mode_select_dialog, null); AlertDialog.Builder builder = new AlertDialog.Builder(getContext()); @@ -106,6 +138,12 @@ public class StatisticsFragment extends Fragment { builder.show(); } + private void resetStatistics() { + progressBar.setVisibility(View.VISIBLE); + feedStatisticsList.setVisibility(View.GONE); + DBWriter.resetStatistics(); + } + private void refreshStatistics() { progressBar.setVisibility(View.VISIBLE); feedStatisticsList.setVisibility(View.GONE); -- cgit v1.2.3