diff --git a/app/src/main/java/org/isoron/uhabits/fragments/ShowHabitFragment.java b/app/src/main/java/org/isoron/uhabits/fragments/ShowHabitFragment.java index a95afd8fa..3d0521711 100644 --- a/app/src/main/java/org/isoron/uhabits/fragments/ShowHabitFragment.java +++ b/app/src/main/java/org/isoron/uhabits/fragments/ShowHabitFragment.java @@ -19,9 +19,7 @@ package org.isoron.uhabits.fragments; -import android.content.SharedPreferences; import android.os.Bundle; -import android.preference.PreferenceManager; import android.support.annotation.Nullable; import android.support.v4.app.Fragment; import android.view.LayoutInflater; @@ -74,9 +72,6 @@ public class ShowHabitFragment extends Fragment @Nullable private HabitScoreView scoreView; - @Nullable - private SharedPreferences prefs; - private int previousScoreInterval; private float todayScore; @@ -112,9 +107,7 @@ public class ShowHabitFragment extends Fragment scoreView = (HabitScoreView) view.findViewById(R.id.scoreView); - prefs = PreferenceManager.getDefaultSharedPreferences(getActivity()); - int defaultScoreInterval = prefs.getInt("pref_score_view_interval", 1); - if(defaultScoreInterval > 5 || defaultScoreInterval < 0) defaultScoreInterval = 1; + int defaultScoreInterval = UIHelper.getDefaultScoreInterval(getContext()); previousScoreInterval = defaultScoreInterval; setScoreBucketSize(defaultScoreInterval); @@ -291,6 +284,8 @@ public class ShowHabitFragment extends Fragment else activity.executeCommand(command, h.getId()); ReminderHelper.createReminderAlarms(activity); + HabitBroadcastReceiver.sendRefreshBroadcast(getActivity()); + activity.recreate(); } @@ -349,15 +344,15 @@ public class ShowHabitFragment extends Fragment { if(scoreView == null) return; - int sizes[] = { 1, 7, 31, 92, 365 }; - int size = sizes[position]; + scoreView.setBucketSize(HabitScoreView.DEFAULT_BUCKET_SIZES[position]); - scoreView.setBucketSize(size); - if(position != previousScoreInterval) refreshData(); - - if(prefs != null) - prefs.edit().putInt("pref_score_view_interval", position).apply(); + if(position != previousScoreInterval) + { + refreshData(); + HabitBroadcastReceiver.sendRefreshBroadcast(getActivity()); + } + UIHelper.setDefaultScoreInterval(getContext(), position); previousScoreInterval = position; } diff --git a/app/src/main/java/org/isoron/uhabits/helpers/UIHelper.java b/app/src/main/java/org/isoron/uhabits/helpers/UIHelper.java index 2aee987a8..3f4ebf0a2 100644 --- a/app/src/main/java/org/isoron/uhabits/helpers/UIHelper.java +++ b/app/src/main/java/org/isoron/uhabits/helpers/UIHelper.java @@ -302,4 +302,20 @@ public abstract class UIHelper { return getCurrentTheme() == THEME_DARK; } + + + public static void setDefaultScoreInterval(Context context, int position) + { + SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); + prefs.edit().putInt("pref_score_view_interval", position).apply(); + } + + public static int getDefaultScoreInterval(Context context) + { + SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); + int defaultScoreInterval = prefs.getInt("pref_score_view_interval", 1); + if(defaultScoreInterval > 5 || defaultScoreInterval < 0) defaultScoreInterval = 1; + + return defaultScoreInterval; + } } diff --git a/app/src/main/java/org/isoron/uhabits/views/HabitScoreView.java b/app/src/main/java/org/isoron/uhabits/views/HabitScoreView.java index fc841cb50..35c58d5eb 100644 --- a/app/src/main/java/org/isoron/uhabits/views/HabitScoreView.java +++ b/app/src/main/java/org/isoron/uhabits/views/HabitScoreView.java @@ -49,6 +49,8 @@ public class HabitScoreView extends ScrollableDataView implements HabitDataView public static final PorterDuffXfermode XFERMODE_SRC = new PorterDuffXfermode(PorterDuff.Mode.SRC); + public static int DEFAULT_BUCKET_SIZES[] = { 1, 7, 31, 92, 365 }; + private Paint pGrid; private float em; private Habit habit; diff --git a/app/src/main/java/org/isoron/uhabits/widgets/ScoreWidgetProvider.java b/app/src/main/java/org/isoron/uhabits/widgets/ScoreWidgetProvider.java index 8269bf354..2608887b4 100644 --- a/app/src/main/java/org/isoron/uhabits/widgets/ScoreWidgetProvider.java +++ b/app/src/main/java/org/isoron/uhabits/widgets/ScoreWidgetProvider.java @@ -24,6 +24,7 @@ import android.view.View; import org.isoron.uhabits.HabitBroadcastReceiver; import org.isoron.uhabits.R; +import org.isoron.uhabits.helpers.UIHelper; import org.isoron.uhabits.models.Habit; import org.isoron.uhabits.views.GraphWidgetView; import org.isoron.uhabits.views.HabitDataView; @@ -34,8 +35,13 @@ public class ScoreWidgetProvider extends BaseWidgetProvider @Override protected View buildCustomView(Context context, Habit habit) { + int defaultScoreInterval = UIHelper.getDefaultScoreInterval(context); + int size = HabitScoreView.DEFAULT_BUCKET_SIZES[defaultScoreInterval]; + HabitScoreView dataView = new HabitScoreView(context); dataView.setIsTransparencyEnabled(true); + dataView.setBucketSize(size); + GraphWidgetView view = new GraphWidgetView(context, dataView); view.setHabit(habit); return view;