mirror of
https://github.com/iSoron/uhabits.git
synced 2025-12-06 09:08:52 -06:00
Rename Checkmark to Entry
This commit is contained in:
@@ -22,15 +22,15 @@ package org.isoron.uhabits;
|
||||
import org.isoron.uhabits.core.models.*;
|
||||
import org.isoron.uhabits.core.utils.DateUtils;
|
||||
|
||||
import static org.isoron.uhabits.core.models.Checkmark.*;
|
||||
import static org.isoron.uhabits.core.models.Entry.*;
|
||||
|
||||
public class HabitFixtures
|
||||
{
|
||||
public boolean LONG_HABIT_CHECKS[] = {
|
||||
public boolean LONG_HABIT_ENTRIES[] = {
|
||||
true, false, false, true, true, true, false, false, true, true
|
||||
};
|
||||
|
||||
public int LONG_NUMERICAL_HABIT_CHECKS[] = {
|
||||
public int LONG_NUMERICAL_HABIT_ENTRIES[] = {
|
||||
200000, 0, 150000, 137000, 0, 0, 500000, 30000, 100000, 0, 300000,
|
||||
100000, 0, 100000
|
||||
};
|
||||
@@ -75,7 +75,7 @@ public class HabitFixtures
|
||||
81, 83, 89, 90, 91, 95, 102, 103, 108, 109, 120};
|
||||
|
||||
for (int mark : marks)
|
||||
habit.getOriginalCheckmarks().setValue(today.minus(mark), YES_MANUAL);
|
||||
habit.getOriginalEntries().setValue(today.minus(mark), YES_MANUAL);
|
||||
|
||||
return habit;
|
||||
}
|
||||
@@ -109,7 +109,7 @@ public class HabitFixtures
|
||||
582, 583, 584, 586, 589};
|
||||
|
||||
for (int mark : marks)
|
||||
habit.getOriginalCheckmarks().setValue(today.minus(mark), YES_MANUAL);
|
||||
habit.getOriginalEntries().setValue(today.minus(mark), YES_MANUAL);
|
||||
|
||||
return habit;
|
||||
}
|
||||
@@ -126,9 +126,9 @@ public class HabitFixtures
|
||||
habitList.add(habit);
|
||||
|
||||
Timestamp timestamp = DateUtils.getToday();
|
||||
for (int value : LONG_NUMERICAL_HABIT_CHECKS)
|
||||
for (int value : LONG_NUMERICAL_HABIT_ENTRIES)
|
||||
{
|
||||
habit.getOriginalCheckmarks().setValue(timestamp, value);
|
||||
habit.getOriginalEntries().setValue(timestamp, value);
|
||||
timestamp = timestamp.minus(1);
|
||||
}
|
||||
|
||||
@@ -144,9 +144,9 @@ public class HabitFixtures
|
||||
habitList.add(habit);
|
||||
|
||||
Timestamp timestamp = DateUtils.getToday();
|
||||
for (boolean c : LONG_HABIT_CHECKS)
|
||||
for (boolean c : LONG_HABIT_ENTRIES)
|
||||
{
|
||||
if (c) habit.getOriginalCheckmarks().setValue(timestamp, YES_MANUAL);
|
||||
if (c) habit.getOriginalEntries().setValue(timestamp, YES_MANUAL);
|
||||
timestamp = timestamp.minus(1);
|
||||
}
|
||||
|
||||
|
||||
@@ -42,7 +42,7 @@ class TestModule {
|
||||
interface HabitsActivityTestComponent {
|
||||
fun getCheckmarkPanelViewFactory(): CheckmarkPanelViewFactory
|
||||
fun getHabitCardViewFactory(): HabitCardViewFactory
|
||||
fun getCheckmarkButtonViewFactory(): CheckmarkButtonViewFactory
|
||||
fun getEntryButtonViewFactory(): CheckmarkButtonViewFactory
|
||||
fun getNumberButtonViewFactory(): NumberButtonViewFactory
|
||||
fun getNumberPanelViewFactory(): NumberPanelViewFactory
|
||||
}
|
||||
@@ -46,8 +46,8 @@ public class BarChartTest extends BaseViewTest
|
||||
Habit habit = fixtures.createLongNumericalHabit();
|
||||
view = new BarChart(targetContext);
|
||||
Timestamp today = DateUtils.getToday();
|
||||
CheckmarkList checkmarks = habit.getComputedCheckmarks();
|
||||
view.setCheckmarks(checkmarks.getByInterval(today.minus(20), today));
|
||||
CheckmarkList entries = habit.getComputedEntries();
|
||||
view.setEntries(entries.getByInterval(today.minus(20), today));
|
||||
view.setColor(PaletteUtilsKt.toThemedAndroidColor(habit.getColor(), targetContext));
|
||||
view.setTarget(200.0);
|
||||
measureView(view, dpToPixels(300), dpToPixels(200));
|
||||
|
||||
@@ -46,7 +46,7 @@ public class FrequencyChartTest extends BaseViewTest
|
||||
Habit habit = fixtures.createLongHabit();
|
||||
|
||||
view = new FrequencyChart(targetContext);
|
||||
view.setFrequency(habit.getOriginalCheckmarks().getWeekdayFrequency());
|
||||
view.setFrequency(habit.getOriginalEntries().getWeekdayFrequency());
|
||||
view.setColor(PaletteUtilsKt.toFixedAndroidColor(habit.getColor()));
|
||||
measureView(view, dpToPixels(300), dpToPixels(100));
|
||||
}
|
||||
|
||||
@@ -44,7 +44,7 @@ public class HistoryChartTest extends BaseViewTest
|
||||
|
||||
Timestamp today;
|
||||
|
||||
private OnToggleCheckmarkListener onToggleCheckmarkListener;
|
||||
private OnToggleCheckmarkListener onToggleEntryListener;
|
||||
|
||||
@Override
|
||||
@Before
|
||||
@@ -58,12 +58,12 @@ public class HistoryChartTest extends BaseViewTest
|
||||
|
||||
chart = new HistoryChart(targetContext);
|
||||
chart.setSkipEnabled(true);
|
||||
chart.setCheckmarks(habit.getComputedCheckmarks().getAllValues());
|
||||
chart.setEntries(habit.getComputedEntries().getAllValues());
|
||||
chart.setColor(PaletteUtilsKt.toFixedAndroidColor(habit.getColor()));
|
||||
measureView(chart, dpToPixels(400), dpToPixels(200));
|
||||
|
||||
onToggleCheckmarkListener = mock(OnToggleCheckmarkListener.class);
|
||||
chart.setOnToggleCheckmarkListener(onToggleCheckmarkListener);
|
||||
onToggleEntryListener = mock(OnToggleCheckmarkListener.class);
|
||||
chart.setOnToggleCheckmarkListener(onToggleEntryListener);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -73,7 +73,7 @@ public class HistoryChartTest extends BaseViewTest
|
||||
chart.tap(dpToPixels(118), dpToPixels(13)); // header
|
||||
chart.tap(dpToPixels(336), dpToPixels(60)); // tomorrow's square
|
||||
chart.tap(dpToPixels(370), dpToPixels(60)); // right axis
|
||||
verifyNoMoreInteractions(onToggleCheckmarkListener);
|
||||
verifyNoMoreInteractions(onToggleEntryListener);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -81,18 +81,18 @@ public class HistoryChartTest extends BaseViewTest
|
||||
{
|
||||
chart.setIsEditable(true);
|
||||
chart.tap(dpToPixels(340), dpToPixels(40));
|
||||
verify(onToggleCheckmarkListener).onToggleCheckmark(today, Checkmark.SKIP);
|
||||
verifyNoMoreInteractions(onToggleCheckmarkListener);
|
||||
verify(onToggleEntryListener).onToggleEntry(today, Entry.SKIP);
|
||||
verifyNoMoreInteractions(onToggleEntryListener);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void tapDate_withEmptyHabit()
|
||||
{
|
||||
chart.setIsEditable(true);
|
||||
chart.setCheckmarks(new int[]{});
|
||||
chart.setEntries(new int[]{});
|
||||
chart.tap(dpToPixels(340), dpToPixels(40));
|
||||
verify(onToggleCheckmarkListener).onToggleCheckmark(today, Checkmark.YES_MANUAL);
|
||||
verifyNoMoreInteractions(onToggleCheckmarkListener);
|
||||
verify(onToggleEntryListener).onToggleEntry(today, Entry.YES_MANUAL);
|
||||
verifyNoMoreInteractions(onToggleEntryListener);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -100,7 +100,7 @@ public class HistoryChartTest extends BaseViewTest
|
||||
{
|
||||
chart.setIsEditable(false);
|
||||
chart.tap(dpToPixels(340), dpToPixels(40));
|
||||
verifyNoMoreInteractions(onToggleCheckmarkListener);
|
||||
verifyNoMoreInteractions(onToggleEntryListener);
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
@@ -29,7 +29,7 @@ import org.junit.runner.*
|
||||
|
||||
@RunWith(AndroidJUnit4::class)
|
||||
@MediumTest
|
||||
class CheckmarkButtonViewTest : BaseViewTest() {
|
||||
class EntryButtonViewTest : BaseViewTest() {
|
||||
|
||||
private val PATH = "habits/list/CheckmarkButtonView"
|
||||
lateinit var view: CheckmarkButtonView
|
||||
@@ -39,8 +39,8 @@ class CheckmarkButtonViewTest : BaseViewTest() {
|
||||
@Before
|
||||
override fun setUp() {
|
||||
super.setUp()
|
||||
view = component.getCheckmarkButtonViewFactory().create().apply {
|
||||
value = Checkmark.NO
|
||||
view = component.getEntryButtonViewFactory().create().apply {
|
||||
value = Entry.NO
|
||||
color = PaletteUtils.getAndroidTestColor(5)
|
||||
onToggle = { toggled = true }
|
||||
}
|
||||
@@ -49,19 +49,19 @@ class CheckmarkButtonViewTest : BaseViewTest() {
|
||||
|
||||
@Test
|
||||
fun testRender_explicitCheck() {
|
||||
view.value = Checkmark.YES_MANUAL
|
||||
view.value = Entry.YES_MANUAL
|
||||
assertRendersCheckedExplicitly()
|
||||
}
|
||||
|
||||
@Test
|
||||
fun testRender_implicitCheck() {
|
||||
view.value = Checkmark.YES_AUTO
|
||||
view.value = Entry.YES_AUTO
|
||||
assertRendersCheckedImplicitly()
|
||||
}
|
||||
|
||||
@Test
|
||||
fun testRender_unchecked() {
|
||||
view.value = Checkmark.NO
|
||||
view.value = Entry.NO
|
||||
assertRendersUnchecked()
|
||||
}
|
||||
|
||||
@@ -25,16 +25,16 @@ import org.hamcrest.CoreMatchers.*
|
||||
import org.hamcrest.MatcherAssert.*
|
||||
import org.isoron.uhabits.*
|
||||
import org.isoron.uhabits.core.models.*
|
||||
import org.isoron.uhabits.core.models.Checkmark.Companion.NO
|
||||
import org.isoron.uhabits.core.models.Checkmark.Companion.YES_AUTO
|
||||
import org.isoron.uhabits.core.models.Checkmark.Companion.YES_MANUAL
|
||||
import org.isoron.uhabits.core.models.Entry.Companion.NO
|
||||
import org.isoron.uhabits.core.models.Entry.Companion.YES_AUTO
|
||||
import org.isoron.uhabits.core.models.Entry.Companion.YES_MANUAL
|
||||
import org.isoron.uhabits.utils.*
|
||||
import org.junit.*
|
||||
import org.junit.runner.*
|
||||
|
||||
@RunWith(AndroidJUnit4::class)
|
||||
@MediumTest
|
||||
class CheckmarkPanelViewTest : BaseViewTest() {
|
||||
class EntryPanelViewTest : BaseViewTest() {
|
||||
|
||||
private val PATH = "habits/list/CheckmarkPanelView"
|
||||
private lateinit var view: CheckmarkPanelView
|
||||
@@ -43,7 +43,7 @@ class HabitCardViewTest : BaseViewTest() {
|
||||
habit2 = fixtures.createLongNumericalHabit()
|
||||
view = component.getHabitCardViewFactory().create().apply {
|
||||
habit = habit1
|
||||
values = habit1.computedCheckmarks.allValues
|
||||
values = habit1.computedEntries.allValues
|
||||
score = habit1.scores.todayValue
|
||||
isSelected = false
|
||||
buttonCount = 5
|
||||
@@ -70,7 +70,7 @@ class HabitCardViewTest : BaseViewTest() {
|
||||
fun testRender_numerical() {
|
||||
view.apply {
|
||||
habit = habit2
|
||||
values = habit2.computedCheckmarks.allValues
|
||||
values = habit2.computedEntries.allValues
|
||||
}
|
||||
assertRenders(view, "$PATH/render_numerical.png")
|
||||
}
|
||||
|
||||
@@ -52,7 +52,7 @@ public class PerformanceTest extends BaseAndroidTest
|
||||
for (int i = 0; i < 100000; i++)
|
||||
{
|
||||
habit.getScores().getTodayValue();
|
||||
habit.getComputedCheckmarks().getTodayValue();
|
||||
habit.getComputedEntries().getTodayValue();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -31,7 +31,7 @@ import org.junit.runner.*;
|
||||
|
||||
import static org.hamcrest.CoreMatchers.*;
|
||||
import static org.hamcrest.MatcherAssert.*;
|
||||
import static org.isoron.uhabits.core.models.Checkmark.*;
|
||||
import static org.isoron.uhabits.core.models.Entry.*;
|
||||
|
||||
@RunWith(AndroidJUnit4.class)
|
||||
@MediumTest
|
||||
@@ -41,7 +41,7 @@ public class CheckmarkWidgetTest extends BaseViewTest
|
||||
|
||||
private Habit habit;
|
||||
|
||||
private CheckmarkList checkmarks;
|
||||
private CheckmarkList entries;
|
||||
|
||||
private FrameLayout view;
|
||||
|
||||
@@ -54,11 +54,11 @@ public class CheckmarkWidgetTest extends BaseViewTest
|
||||
prefs.setSkipEnabled(true);
|
||||
|
||||
habit = fixtures.createVeryLongHabit();
|
||||
checkmarks = habit.getComputedCheckmarks();
|
||||
entries = habit.getComputedEntries();
|
||||
CheckmarkWidget widget = new CheckmarkWidget(targetContext, 0, habit);
|
||||
view = convertToView(widget, 150, 200);
|
||||
|
||||
assertThat(checkmarks.getTodayValue(), equalTo(YES_MANUAL));
|
||||
assertThat(entries.getTodayValue(), equalTo(YES_MANUAL));
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -71,11 +71,11 @@ public class CheckmarkWidgetTest extends BaseViewTest
|
||||
// possible to capture intents sent to BroadcastReceivers.
|
||||
button.performClick();
|
||||
sleep(1000);
|
||||
assertThat(checkmarks.getTodayValue(), equalTo(SKIP));
|
||||
assertThat(entries.getTodayValue(), equalTo(SKIP));
|
||||
|
||||
button.performClick();
|
||||
sleep(1000);
|
||||
assertThat(checkmarks.getTodayValue(), equalTo(NO));
|
||||
assertThat(entries.getTodayValue(), equalTo(NO));
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
@@ -51,8 +51,8 @@ public class CheckmarkWidgetViewTest extends BaseViewTest
|
||||
float percentage = (float) score;
|
||||
|
||||
view.setActiveColor(PaletteUtils.getAndroidTestColor(0));
|
||||
view.setCheckmarkState(habit.getComputedCheckmarks().getTodayValue());
|
||||
view.setCheckmarkValue(habit.getComputedCheckmarks().getTodayValue());
|
||||
view.setEntryState(habit.getComputedEntries().getTodayValue());
|
||||
view.setEntryValue(habit.getComputedEntries().getTodayValue());
|
||||
view.setPercentage(percentage);
|
||||
view.setName(habit.getName());
|
||||
view.refresh();
|
||||
|
||||
@@ -63,7 +63,7 @@ public class HistoryEditorDialog extends AppCompatDialogFragment
|
||||
this.onToggleCheckmarkListener = new OnToggleCheckmarkListener()
|
||||
{
|
||||
@Override
|
||||
public void onToggleCheckmark(@NotNull Timestamp timestamp, int value)
|
||||
public void onToggleEntry(@NotNull Timestamp timestamp, int value)
|
||||
{
|
||||
}
|
||||
};
|
||||
@@ -124,7 +124,7 @@ public class HistoryEditorDialog extends AppCompatDialogFragment
|
||||
@Override
|
||||
public void onPause()
|
||||
{
|
||||
habit.getComputedCheckmarks().observable.removeListener(this);
|
||||
habit.getComputedEntries().observable.removeListener(this);
|
||||
super.onPause();
|
||||
}
|
||||
|
||||
@@ -142,7 +142,7 @@ public class HistoryEditorDialog extends AppCompatDialogFragment
|
||||
getDialog().getWindow().setLayout(width, height);
|
||||
|
||||
refreshData();
|
||||
habit.getComputedCheckmarks().observable.addListener(this);
|
||||
habit.getComputedEntries().observable.addListener(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -175,7 +175,7 @@ public class HistoryEditorDialog extends AppCompatDialogFragment
|
||||
@Override
|
||||
public void doInBackground()
|
||||
{
|
||||
checkmarks = habit.getComputedCheckmarks().getAllValues();
|
||||
checkmarks = habit.getComputedEntries().getAllValues();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -186,7 +186,7 @@ public class HistoryEditorDialog extends AppCompatDialogFragment
|
||||
|
||||
int color = PaletteUtilsKt.toThemedAndroidColor(habit.getColor(), getContext());
|
||||
historyChart.setColor(color);
|
||||
historyChart.setCheckmarks(checkmarks);
|
||||
historyChart.setEntries(checkmarks);
|
||||
historyChart.setNumerical(habit.isNumerical());
|
||||
historyChart.setTarget(habit.getTargetValue() / habit.getFrequency().getDenominator());
|
||||
}
|
||||
|
||||
@@ -74,7 +74,7 @@ public class BarChart extends ScrollableChart
|
||||
private int gridColor;
|
||||
|
||||
@Nullable
|
||||
private List<Checkmark> checkmarks;
|
||||
private List<Entry> entries;
|
||||
|
||||
private int bucketSize = 7;
|
||||
|
||||
@@ -115,17 +115,17 @@ public class BarChart extends ScrollableChart
|
||||
public void populateWithRandomData()
|
||||
{
|
||||
Random random = new Random();
|
||||
List<Checkmark> checkmarks = new LinkedList<>();
|
||||
List<Entry> entries = new LinkedList<>();
|
||||
|
||||
Timestamp today = DateUtils.getToday();
|
||||
|
||||
for (int i = 1; i < 100; i++)
|
||||
{
|
||||
int value = random.nextInt(1000);
|
||||
checkmarks.add(new Checkmark(today.minus(i), value));
|
||||
entries.add(new Entry(today.minus(i), value));
|
||||
}
|
||||
|
||||
setCheckmarks(checkmarks);
|
||||
setEntries(entries);
|
||||
setTarget(0.5);
|
||||
}
|
||||
|
||||
@@ -135,13 +135,13 @@ public class BarChart extends ScrollableChart
|
||||
postInvalidate();
|
||||
}
|
||||
|
||||
public void setCheckmarks(@NonNull List<Checkmark> checkmarks)
|
||||
public void setEntries(@NonNull List<Entry> entries)
|
||||
{
|
||||
this.checkmarks = checkmarks;
|
||||
this.entries = entries;
|
||||
|
||||
maxValue = 1.0;
|
||||
for (Checkmark c : checkmarks)
|
||||
maxValue = Math.max(maxValue, c.getValue());
|
||||
for (Entry e : entries)
|
||||
maxValue = Math.max(maxValue, e.getValue());
|
||||
maxValue = Math.ceil(maxValue / 1000 * 1.05) * 1000;
|
||||
|
||||
postInvalidate();
|
||||
@@ -186,7 +186,7 @@ public class BarChart extends ScrollableChart
|
||||
activeCanvas = canvas;
|
||||
}
|
||||
|
||||
if (checkmarks == null) return;
|
||||
if (entries == null) return;
|
||||
|
||||
rect.set(0, 0, nColumns * columnWidth, columnHeight);
|
||||
rect.offset(0, paddingTop);
|
||||
@@ -204,10 +204,10 @@ public class BarChart extends ScrollableChart
|
||||
for (int k = 0; k < nColumns; k++)
|
||||
{
|
||||
int offset = nColumns - k - 1 + getDataOffset();
|
||||
if (offset >= checkmarks.size()) continue;
|
||||
if (offset >= entries.size()) continue;
|
||||
|
||||
double value = checkmarks.get(offset).getValue();
|
||||
Timestamp timestamp = checkmarks.get(offset).getTimestamp();
|
||||
double value = entries.get(offset).getValue();
|
||||
Timestamp timestamp = entries.get(offset).getTimestamp();
|
||||
int height = (int) (columnHeight * value / maxValue);
|
||||
|
||||
rect.set(0, 0, baseSize, height);
|
||||
|
||||
@@ -40,7 +40,7 @@ import java.text.*;
|
||||
import java.util.*;
|
||||
|
||||
import static org.isoron.uhabits.utils.InterfaceUtils.*;
|
||||
import static org.isoron.uhabits.core.models.Checkmark.*;
|
||||
import static org.isoron.uhabits.core.models.Entry.*;
|
||||
|
||||
public class HistoryChart extends ScrollableChart
|
||||
{
|
||||
@@ -158,12 +158,12 @@ public class HistoryChart extends ScrollableChart
|
||||
if (offset < checkmarks.length)
|
||||
{
|
||||
if(skipsEnabled)
|
||||
newValue = Checkmark.Companion.nextToggleValueWithSkip(checkmarks[offset]);
|
||||
newValue = Entry.Companion.nextToggleValueWithSkip(checkmarks[offset]);
|
||||
else
|
||||
newValue = Checkmark.Companion.nextToggleValueWithoutSkip(checkmarks[offset]);
|
||||
newValue = Entry.Companion.nextToggleValueWithoutSkip(checkmarks[offset]);
|
||||
}
|
||||
|
||||
onToggleCheckmarkListener.onToggleCheckmark(timestamp, newValue);
|
||||
onToggleCheckmarkListener.onToggleEntry(timestamp, newValue);
|
||||
postInvalidate();
|
||||
return true;
|
||||
|
||||
@@ -187,7 +187,7 @@ public class HistoryChart extends ScrollableChart
|
||||
}
|
||||
}
|
||||
|
||||
public void setCheckmarks(int[] checkmarks)
|
||||
public void setEntries(int[] checkmarks)
|
||||
{
|
||||
this.checkmarks = checkmarks;
|
||||
postInvalidate();
|
||||
@@ -454,7 +454,7 @@ public class HistoryChart extends ScrollableChart
|
||||
onToggleCheckmarkListener = new OnToggleCheckmarkListener()
|
||||
{
|
||||
@Override
|
||||
public void onToggleCheckmark(@NotNull Timestamp timestamp, int value)
|
||||
public void onToggleEntry(@NotNull Timestamp timestamp, int value)
|
||||
{
|
||||
}
|
||||
};
|
||||
|
||||
@@ -27,10 +27,10 @@ import android.view.View.MeasureSpec.*
|
||||
import com.google.auto.factory.*
|
||||
import org.isoron.uhabits.*
|
||||
import org.isoron.uhabits.core.models.*
|
||||
import org.isoron.uhabits.core.models.Checkmark.Companion.NO
|
||||
import org.isoron.uhabits.core.models.Checkmark.Companion.SKIP
|
||||
import org.isoron.uhabits.core.models.Checkmark.Companion.UNKNOWN
|
||||
import org.isoron.uhabits.core.models.Checkmark.Companion.YES_MANUAL
|
||||
import org.isoron.uhabits.core.models.Entry.Companion.NO
|
||||
import org.isoron.uhabits.core.models.Entry.Companion.SKIP
|
||||
import org.isoron.uhabits.core.models.Entry.Companion.UNKNOWN
|
||||
import org.isoron.uhabits.core.models.Entry.Companion.YES_MANUAL
|
||||
import org.isoron.uhabits.core.preferences.*
|
||||
import org.isoron.uhabits.inject.*
|
||||
import org.isoron.uhabits.utils.*
|
||||
@@ -66,9 +66,9 @@ class CheckmarkButtonView(
|
||||
|
||||
fun performToggle() {
|
||||
value = if(preferences.isSkipEnabled) {
|
||||
Checkmark.nextToggleValueWithSkip(value)
|
||||
Entry.nextToggleValueWithSkip(value)
|
||||
} else {
|
||||
Checkmark.nextToggleValueWithoutSkip(value)
|
||||
Entry.nextToggleValueWithoutSkip(value)
|
||||
}
|
||||
onToggle(value)
|
||||
performHapticFeedback(HapticFeedbackConstants.LONG_PRESS)
|
||||
|
||||
@@ -22,7 +22,7 @@ package org.isoron.uhabits.activities.habits.list.views
|
||||
import android.content.*
|
||||
import com.google.auto.factory.*
|
||||
import org.isoron.uhabits.core.models.*
|
||||
import org.isoron.uhabits.core.models.Checkmark.Companion.UNKNOWN
|
||||
import org.isoron.uhabits.core.models.Entry.Companion.UNKNOWN
|
||||
import org.isoron.uhabits.core.preferences.*
|
||||
import org.isoron.uhabits.core.utils.*
|
||||
import org.isoron.uhabits.inject.*
|
||||
|
||||
@@ -28,7 +28,7 @@ import org.isoron.uhabits.databinding.*
|
||||
import org.isoron.uhabits.utils.*
|
||||
|
||||
data class BarCardViewModel(
|
||||
val checkmarks: List<Checkmark>,
|
||||
val entries: List<Entry>,
|
||||
val bucketSize: Int,
|
||||
val color: PaletteColor,
|
||||
val isNumerical: Boolean,
|
||||
@@ -44,7 +44,7 @@ class BarCard(context: Context, attrs: AttributeSet) : LinearLayout(context, att
|
||||
var onBoolSpinnerPosition: (position: Int) -> Unit = {}
|
||||
|
||||
fun update(data: BarCardViewModel) {
|
||||
binding.barChart.setCheckmarks(data.checkmarks)
|
||||
binding.barChart.setEntries(data.entries)
|
||||
binding.barChart.setBucketSize(data.bucketSize)
|
||||
val androidColor = data.color.toThemedAndroidColor(context)
|
||||
binding.title.setTextColor(androidColor)
|
||||
@@ -95,13 +95,13 @@ class BarCardPresenter(
|
||||
} else {
|
||||
boolBucketSizes[boolSpinnerPosition]
|
||||
}
|
||||
val checkmarks = if (bucketSize == 1) {
|
||||
habit.computedCheckmarks.all
|
||||
val entries = if (bucketSize == 1) {
|
||||
habit.computedEntries.all
|
||||
} else {
|
||||
habit.computedCheckmarks.groupBy(getTruncateField(bucketSize), firstWeekday)
|
||||
habit.computedEntries.groupBy(getTruncateField(bucketSize), firstWeekday)
|
||||
}
|
||||
return BarCardViewModel(
|
||||
checkmarks = checkmarks,
|
||||
entries = entries,
|
||||
bucketSize = bucketSize,
|
||||
color = habit.color,
|
||||
isNumerical = habit.isNumerical,
|
||||
|
||||
@@ -52,7 +52,7 @@ class FrequencyCardPresenter(
|
||||
) {
|
||||
fun present() = FrequencyCardViewModel(
|
||||
color = habit.color,
|
||||
frequency = habit.originalCheckmarks.weekdayFrequency,
|
||||
frequency = habit.originalEntries.weekdayFrequency,
|
||||
firstWeekday = firstWeekday,
|
||||
)
|
||||
}
|
||||
@@ -27,7 +27,7 @@ import org.isoron.uhabits.databinding.*
|
||||
import org.isoron.uhabits.utils.*
|
||||
|
||||
data class HistoryCardViewModel(
|
||||
val checkmarks: IntArray,
|
||||
val entries: IntArray,
|
||||
val color: PaletteColor,
|
||||
val firstWeekday: Int,
|
||||
val isNumerical: Boolean,
|
||||
@@ -48,7 +48,7 @@ class HistoryCard(context: Context, attrs: AttributeSet) : LinearLayout(context,
|
||||
fun update(data: HistoryCardViewModel) {
|
||||
binding.historyChart.setFirstWeekday(data.firstWeekday)
|
||||
binding.historyChart.setSkipEnabled(data.isSkipEnabled)
|
||||
binding.historyChart.setCheckmarks(data.checkmarks)
|
||||
binding.historyChart.setEntries(data.entries)
|
||||
val androidColor = data.color.toThemedAndroidColor(context)
|
||||
binding.title.setTextColor(androidColor)
|
||||
binding.historyChart.setColor(androidColor)
|
||||
@@ -66,7 +66,7 @@ class HistoryCardPresenter(
|
||||
val isSkipEnabled: Boolean,
|
||||
) {
|
||||
fun present() = HistoryCardViewModel(
|
||||
checkmarks = habit.computedCheckmarks.allValues,
|
||||
entries = habit.computedEntries.allValues,
|
||||
color = habit.color,
|
||||
firstWeekday = firstWeekday,
|
||||
isNumerical = habit.isNumerical,
|
||||
|
||||
@@ -79,7 +79,7 @@ class OverviewCardPresenter(val habit: Habit) {
|
||||
scoreToday = scoreToday,
|
||||
scoreMonthDiff = scoreToday - scoreLastMonth,
|
||||
scoreYearDiff = scoreToday - scoreLastYear,
|
||||
totalCount = habit.originalCheckmarks.totalCount,
|
||||
totalCount = habit.originalEntries.totalCount,
|
||||
)
|
||||
}
|
||||
}
|
||||
@@ -57,12 +57,12 @@ class TargetCardPresenter(
|
||||
val resources: Resources,
|
||||
) {
|
||||
suspend fun present(): TargetCardViewModel = Dispatchers.IO {
|
||||
val checkmarks = habit.computedCheckmarks
|
||||
val valueToday = checkmarks.todayValue / 1e3
|
||||
val valueThisWeek = checkmarks.getThisWeekValue(firstWeekday) / 1e3
|
||||
val valueThisMonth = checkmarks.thisMonthValue / 1e3
|
||||
val valueThisQuarter = checkmarks.thisQuarterValue / 1e3
|
||||
val valueThisYear = checkmarks.thisYearValue / 1e3
|
||||
val entries = habit.computedEntries
|
||||
val valueToday = entries.todayValue / 1e3
|
||||
val valueThisWeek = entries.getThisWeekValue(firstWeekday) / 1e3
|
||||
val valueThisMonth = entries.thisMonthValue / 1e3
|
||||
val valueThisQuarter = entries.thisQuarterValue / 1e3
|
||||
val valueThisYear = entries.thisYearValue / 1e3
|
||||
|
||||
val cal = DateUtils.getStartOfTodayCalendarWithOffset()
|
||||
val daysInMonth = cal.getActualMaximum(Calendar.DAY_OF_MONTH)
|
||||
|
||||
@@ -46,12 +46,12 @@ open class CheckmarkWidget(
|
||||
|
||||
setActiveColor(habit.color.toThemedAndroidColor(context))
|
||||
setName(habit.name)
|
||||
setCheckmarkValue(habit.computedCheckmarks.todayValue)
|
||||
setEntryValue(habit.computedEntries.todayValue)
|
||||
if (habit.isNumerical) {
|
||||
setNumerical(true)
|
||||
setCheckmarkState(getNumericalCheckmarkState())
|
||||
setEntryState(getNumericalEntryState())
|
||||
} else {
|
||||
setCheckmarkState(habit.computedCheckmarks.todayValue)
|
||||
setEntryState(habit.computedEntries.todayValue)
|
||||
}
|
||||
setPercentage(habit.scores.todayValue.toFloat())
|
||||
refresh()
|
||||
@@ -65,11 +65,11 @@ open class CheckmarkWidget(
|
||||
override fun getDefaultHeight() = 125
|
||||
override fun getDefaultWidth() = 125
|
||||
|
||||
private fun getNumericalCheckmarkState(): Int {
|
||||
private fun getNumericalEntryState(): Int {
|
||||
return if (habit.isCompletedToday) {
|
||||
Checkmark.YES_MANUAL
|
||||
Entry.YES_MANUAL
|
||||
} else {
|
||||
Checkmark.NO
|
||||
Entry.NO
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -44,7 +44,7 @@ class FrequencyWidget(
|
||||
(widgetView.dataView as FrequencyChart).apply {
|
||||
setFirstWeekday(firstWeekday)
|
||||
setColor(habit.color.toThemedAndroidColor(context))
|
||||
setFrequency(habit.originalCheckmarks.weekdayFrequency)
|
||||
setFrequency(habit.originalEntries.weekdayFrequency)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -46,7 +46,7 @@ class HistoryWidget(
|
||||
setFirstWeekday(firstWeekday)
|
||||
setSkipEnabled(prefs.isSkipEnabled)
|
||||
setColor(habit.color.toThemedAndroidColor(context))
|
||||
setCheckmarks(habit.computedCheckmarks.allValues)
|
||||
setEntries(habit.computedEntries.allValues)
|
||||
setNumerical(habit.isNumerical)
|
||||
setTarget(habit.targetValue / habit.frequency.denominator)
|
||||
}
|
||||
|
||||
@@ -71,7 +71,7 @@ class NumericalCheckmarkWidgetActivity : Activity(), ListHabitsBehavior.NumberPi
|
||||
val app = this.applicationContext as HabitsApplication
|
||||
AndroidThemeSwitcher(this, app.component.preferences).apply()
|
||||
val numberPickerFactory = NumberPickerFactory(context)
|
||||
numberPickerFactory.create(data.habit.computedCheckmarks.today!!.value.toDouble() / 1000,
|
||||
numberPickerFactory.create(data.habit.computedEntries.today!!.value.toDouble() / 1000,
|
||||
data.habit.unit,
|
||||
this).show()
|
||||
}
|
||||
|
||||
@@ -48,9 +48,9 @@ public class CheckmarkWidgetView extends HabitWidgetView {
|
||||
|
||||
protected TextView label;
|
||||
|
||||
protected int checkmarkValue;
|
||||
protected int entryValue;
|
||||
|
||||
protected int checkmarkState;
|
||||
protected int entryState;
|
||||
|
||||
protected boolean isNumerical;
|
||||
|
||||
@@ -77,9 +77,9 @@ public class CheckmarkWidgetView extends HabitWidgetView {
|
||||
int bgColor;
|
||||
int fgColor;
|
||||
|
||||
switch (checkmarkState) {
|
||||
case Checkmark.YES_MANUAL:
|
||||
case Checkmark.SKIP:
|
||||
switch (entryState) {
|
||||
case Entry.YES_MANUAL:
|
||||
case Entry.SKIP:
|
||||
bgColor = activeColor;
|
||||
fgColor = res.getColor(R.attr.highContrastReverseTextColor);
|
||||
setShadowAlpha(0x4f);
|
||||
@@ -87,9 +87,9 @@ public class CheckmarkWidgetView extends HabitWidgetView {
|
||||
frame.setBackgroundDrawable(background);
|
||||
break;
|
||||
|
||||
case Checkmark.YES_AUTO:
|
||||
case Checkmark.NO:
|
||||
case Checkmark.UNKNOWN:
|
||||
case Entry.YES_AUTO:
|
||||
case Entry.NO:
|
||||
case Entry.UNKNOWN:
|
||||
default:
|
||||
bgColor = res.getColor(R.attr.cardBgColor);
|
||||
fgColor = res.getColor(R.attr.mediumContrastTextColor);
|
||||
@@ -109,28 +109,28 @@ public class CheckmarkWidgetView extends HabitWidgetView {
|
||||
postInvalidate();
|
||||
}
|
||||
|
||||
public void setCheckmarkState(int checkmarkState)
|
||||
public void setEntryState(int entryState)
|
||||
{
|
||||
this.checkmarkState = checkmarkState;
|
||||
this.entryState = entryState;
|
||||
}
|
||||
|
||||
protected String getText()
|
||||
{
|
||||
if (isNumerical) return NumberButtonViewKt.toShortString(checkmarkValue / 1000.0);
|
||||
switch (checkmarkState) {
|
||||
case Checkmark.YES_MANUAL:
|
||||
case Checkmark.YES_AUTO:
|
||||
if (isNumerical) return NumberButtonViewKt.toShortString(entryValue / 1000.0);
|
||||
switch (entryState) {
|
||||
case Entry.YES_MANUAL:
|
||||
case Entry.YES_AUTO:
|
||||
return getResources().getString(R.string.fa_check);
|
||||
case Checkmark.SKIP:
|
||||
case Entry.SKIP:
|
||||
return getResources().getString(R.string.fa_skipped);
|
||||
case Checkmark.UNKNOWN:
|
||||
case Entry.UNKNOWN:
|
||||
{
|
||||
if (preferences.areQuestionMarksEnabled())
|
||||
return getResources().getString(R.string.fa_question);
|
||||
else
|
||||
getResources().getString(R.string.fa_times);
|
||||
}
|
||||
case Checkmark.NO:
|
||||
case Entry.NO:
|
||||
default:
|
||||
return getResources().getString(R.string.fa_times);
|
||||
}
|
||||
@@ -141,9 +141,9 @@ public class CheckmarkWidgetView extends HabitWidgetView {
|
||||
this.activeColor = activeColor;
|
||||
}
|
||||
|
||||
public void setCheckmarkValue(int checkmarkValue)
|
||||
public void setEntryValue(int entryValue)
|
||||
{
|
||||
this.checkmarkValue = checkmarkValue;
|
||||
this.entryValue = entryValue;
|
||||
}
|
||||
|
||||
public void setName(@NonNull String name)
|
||||
@@ -218,7 +218,7 @@ public class CheckmarkWidgetView extends HabitWidgetView {
|
||||
percentage = 0.75f;
|
||||
name = "Wake up early";
|
||||
activeColor = PaletteUtils.getAndroidTestColor(6);
|
||||
checkmarkValue = Checkmark.YES_MANUAL;
|
||||
entryValue = Entry.YES_MANUAL;
|
||||
refresh();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user