mirror of
https://github.com/sudoxnym/habitica-android.git
synced 2026-05-21 13:19:02 +00:00
Start building new form for tasks
This commit is contained in:
parent
c36339249c
commit
73f8c596d3
9 changed files with 388 additions and 28 deletions
|
|
@ -2,7 +2,7 @@
|
|||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
package="com.habitrpg.android.habitica"
|
||||
android:versionCode="1"
|
||||
android:versionName="0.0.1">
|
||||
android:versionName="0.0.1" >
|
||||
|
||||
<uses-sdk
|
||||
android:minSdkVersion="13"
|
||||
|
|
@ -23,11 +23,11 @@
|
|||
android:allowBackup="true"
|
||||
android:icon="@mipmap/ic_launcher"
|
||||
android:label="@string/app_name"
|
||||
android:theme="@style/AppTheme">
|
||||
android:theme="@style/AppTheme" >
|
||||
<activity
|
||||
android:name=".MainActivity"
|
||||
android:label="@string/app_name"
|
||||
android:windowSoftInputMode="stateHidden|adjustResize">
|
||||
android:windowSoftInputMode="stateHidden|adjustResize" >
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MAIN" />
|
||||
|
||||
|
|
@ -37,7 +37,7 @@
|
|||
<activity
|
||||
android:name=".prefs.PrefsActivity"
|
||||
android:label="@string/PS_param_title"
|
||||
android:theme="@style/AppThemeWithActionBar">
|
||||
android:theme="@style/AppThemeWithActionBar" >
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MAIN" />
|
||||
</intent-filter>
|
||||
|
|
@ -45,8 +45,8 @@
|
|||
<activity
|
||||
android:name=".LoginActivity"
|
||||
android:label="@string/LoginActivityName"
|
||||
android:windowSoftInputMode="adjustResize"
|
||||
android:theme="@style/AppThemeWithActionBar">
|
||||
android:theme="@style/AppThemeWithActionBar"
|
||||
android:windowSoftInputMode="adjustResize" >
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MAIN" />
|
||||
</intent-filter>
|
||||
|
|
@ -55,7 +55,7 @@
|
|||
<receiver
|
||||
android:name=".widget.SimpleWidget"
|
||||
android:icon="@mipmap/ic_launcher"
|
||||
android:label="Habitica Simple Widget">
|
||||
android:label="Habitica Simple Widget" >
|
||||
<intent-filter>
|
||||
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
|
||||
</intent-filter>
|
||||
|
|
@ -71,8 +71,18 @@
|
|||
android:name="io.fabric.ApiKey"
|
||||
android:value="2eb3b3edb3b0f4722d37d649a5af366656e46ddd" />
|
||||
|
||||
<activity android:name=".AboutActivity"
|
||||
android:theme="@style/AppThemeWithActionBar"/>
|
||||
<activity
|
||||
android:name=".AboutActivity"
|
||||
android:theme="@style/AppThemeWithActionBar" />
|
||||
<activity
|
||||
android:name=".TaskFormActivity"
|
||||
android:label="@string/title_activity_task_form"
|
||||
android:theme="@style/AppThemeWithActionBar"
|
||||
android:parentActivityName=".MainActivity" >
|
||||
<meta-data
|
||||
android:name="android.support.PARENT_ACTIVITY"
|
||||
android:value="com.habitrpg.android.habitica.MainActivity" />
|
||||
</activity>
|
||||
</application>
|
||||
|
||||
</manifest>
|
||||
|
|
|
|||
186
Habitica/res/layout/activity_task_form.xml
Normal file
186
Habitica/res/layout/activity_task_form.xml
Normal file
|
|
@ -0,0 +1,186 @@
|
|||
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:id="@+id/scrollView">
|
||||
<LinearLayout
|
||||
android:orientation="vertical"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:id="@+id/task_main_wrapper"
|
||||
android:padding="@dimen/abc_action_bar_content_inset_material">
|
||||
|
||||
|
||||
<LinearLayout
|
||||
android:orientation="vertical"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:id="@+id/task_task_wrapper"
|
||||
android:layout_marginTop="@dimen/abc_action_bar_content_inset_material"
|
||||
android:layout_marginBottom="@dimen/abc_action_bar_content_inset_material">
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textAppearance="?android:attr/textAppearanceLarge"
|
||||
android:text="@string/task"
|
||||
android:id="@+id/task_text_textview" />
|
||||
|
||||
<android.support.design.widget.TextInputLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="72dp"
|
||||
app:hintTextAppearance="@style/TextAppearance.AppCompat">
|
||||
<EditText
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:id="@+id/task_text_edittext"
|
||||
android:layout_gravity="center_horizontal"
|
||||
android:hint="@string/text"
|
||||
android:textColor="@color/text_light" />
|
||||
</android.support.design.widget.TextInputLayout>
|
||||
|
||||
<android.support.design.widget.TextInputLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="72dp"
|
||||
app:hintTextAppearance="@style/TextAppearance.AppCompat">
|
||||
<EditText
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:id="@+id/task_notes_edittext"
|
||||
android:layout_gravity="center_horizontal"
|
||||
android:hint="@string/notes"
|
||||
android:textColor="@color/text_light" />
|
||||
</android.support.design.widget.TextInputLayout>
|
||||
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:orientation="horizontal"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="72dp">
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textAppearance="?android:attr/textAppearanceMedium"
|
||||
android:text="@string/difficulty"
|
||||
android:id="@+id/textView2"
|
||||
android:layout_gravity="center_vertical" />
|
||||
|
||||
<Spinner
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="fill_parent"
|
||||
android:id="@+id/task_difficulty_spinner"
|
||||
android:layout_gravity="center_horizontal|right" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:orientation="horizontal"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="72dp"
|
||||
android:layout_gravity="center_horizontal"
|
||||
android:id="@+id/task_startdate_layout">
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textAppearance="?android:attr/textAppearanceMedium"
|
||||
android:text="@string/start_date"
|
||||
android:id="@+id/textView"
|
||||
android:layout_gravity="center_vertical" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:id="@+id/task_startdate_textview"
|
||||
android:textAlignment="gravity"
|
||||
android:layout_gravity="center_vertical|right" />
|
||||
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:orientation="vertical"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_horizontal"
|
||||
android:id="@+id/task_actions_wrapper"
|
||||
android:layout_marginTop="@dimen/abc_action_bar_content_inset_material">
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textAppearance="?android:attr/textAppearanceLarge"
|
||||
android:text="@string/actions"
|
||||
android:id="@+id/textView5" />
|
||||
|
||||
<RelativeLayout
|
||||
android:orientation="horizontal"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="72dp">
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textAppearance="?android:attr/textAppearanceMedium"
|
||||
android:text="@string/positive_habit_form"
|
||||
android:id="@+id/textView7"
|
||||
android:layout_alignParentLeft="true"
|
||||
android:layout_centerVertical="true"
|
||||
android:layout_marginTop="11dp" />
|
||||
|
||||
<CheckBox
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:id="@+id/task_positive_checkbox"
|
||||
android:layout_alignParentRight="true"
|
||||
android:layout_centerVertical="true"
|
||||
android:layout_marginTop="0dp" />
|
||||
</RelativeLayout>
|
||||
|
||||
<RelativeLayout
|
||||
android:orientation="horizontal"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="72dp">
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textAppearance="?android:attr/textAppearanceMedium"
|
||||
android:text="@string/negative_habit_form"
|
||||
android:id="@+id/textView8"
|
||||
android:layout_alignParentLeft="true"
|
||||
android:layout_centerVertical="true"
|
||||
android:layout_marginTop="11dp" />
|
||||
|
||||
<CheckBox
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:id="@+id/task_negative_checkbox"
|
||||
android:layout_alignParentRight="true"
|
||||
android:layout_centerVertical="true"
|
||||
android:layout_marginTop="0dp" />
|
||||
|
||||
|
||||
</RelativeLayout>
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:orientation="vertical"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_horizontal"
|
||||
android:id="@+id/task_checklist_wrapper"
|
||||
android:layout_marginTop="@dimen/abc_action_bar_content_inset_material" >
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textAppearance="?android:attr/textAppearanceLarge"
|
||||
android:text="@string/checklist"
|
||||
android:id="@+id/textView9" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
</LinearLayout>
|
||||
</ScrollView>
|
||||
7
Habitica/res/menu/menu_task_form.xml
Normal file
7
Habitica/res/menu/menu_task_form.xml
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
<menu xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
tools:context="com.habitrpg.android.habitica.TaskFormActivity">
|
||||
<item android:id="@+id/action_settings" android:title="@string/action_settings"
|
||||
android:orderInCategory="100" app:showAsAction="never" />
|
||||
</menu>
|
||||
|
|
@ -118,4 +118,17 @@
|
|||
<string name="checklist.title.add">Add checklist</string>
|
||||
<string name="checklist.title.edit">Edit checklist</string>
|
||||
<string name="checklist.item.hint">Add item…</string>
|
||||
<string name="title_activity_task_form">Add Task</string>
|
||||
|
||||
<string name="discard_changed">Discard Changes</string>
|
||||
<string name="notes">Notes</string>
|
||||
<string name="text">Text</string>
|
||||
<string name="difficulty">Difficulty</string>
|
||||
<string name="start_date">Start Date</string>
|
||||
<string name="positive_habit_form">Positive ( + )</string>
|
||||
<string name="negative_habit_form">Negative ( - )</string>
|
||||
<string name="checklist">Checklist</string>
|
||||
<string name="actions">Actions</string>
|
||||
<string name="task">Task</string>
|
||||
|
||||
</resources>
|
||||
|
|
@ -5,7 +5,7 @@
|
|||
<!-- Application theme. -->
|
||||
<style name="AppTheme" parent="@style/MaterialDrawerTheme.Light.DarkToolbar.TranslucentStatus">
|
||||
<item name="android:listSeparatorTextViewStyle">@style/MyOwnListSeperatorTextViewStyle</item>
|
||||
<item name="android:textColorPrimary">@android:color/white</item>
|
||||
<item name="android:textColorPrimary">@android:color/black</item>
|
||||
|
||||
<item name="android:windowContentOverlay">@null</item>
|
||||
|
||||
|
|
@ -18,7 +18,7 @@
|
|||
<!-- ...and here we setting appcompat’s color theming attrs -->
|
||||
<item name="colorPrimary">@color/brand</item>
|
||||
<item name="colorPrimaryDark">@color/brand</item>
|
||||
<item name="colorAccent">@color/md_teal_300</item>
|
||||
<item name="colorAccent">@color/brand</item>
|
||||
|
||||
<!-- MaterialDrawer specific values -->
|
||||
<item name="material_drawer_background">@color/material_drawer_background</item>
|
||||
|
|
@ -42,8 +42,6 @@
|
|||
|
||||
<item name="android:windowDrawsSystemBarBackgrounds" tools:targetApi="21">false</item>
|
||||
<item name="android:windowTranslucentStatus" tools:targetApi="21">false</item>
|
||||
|
||||
<item name="android:textColorPrimary">@android:color/black</item>
|
||||
</style>
|
||||
|
||||
<style name="PopupTheme" parent="Widget.AppCompat.PopupMenu.Overflow">
|
||||
|
|
@ -98,4 +96,5 @@
|
|||
<item name="spinBars">true</item>
|
||||
<item name="color">@color/drawerArrowColor</item>
|
||||
</style>
|
||||
|
||||
</resources>
|
||||
9
Habitica/res/values/task_difficulties.xml
Normal file
9
Habitica/res/values/task_difficulties.xml
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string-array name="task_difficulties">
|
||||
<item>Trivial</item>
|
||||
<item>Easy</item>
|
||||
<item>Medium</item>
|
||||
<item>Hard</item>
|
||||
</string-array>
|
||||
</resources>
|
||||
|
|
@ -2,13 +2,9 @@
|
|||
<resources>
|
||||
<string-array name="prefs_items_array">
|
||||
<item>HabitRPG</item>
|
||||
<item>HabitRPG Beta</item>
|
||||
<item>Custom</item>
|
||||
</string-array>
|
||||
|
||||
<string-array name="prefs_items_values">
|
||||
<item>https://habitrpg.com/</item>
|
||||
<item>https://beta.habitrpg.com/</item>
|
||||
<item>OMGOMGOMGOMGOMG</item>
|
||||
</string-array>
|
||||
</resources>
|
||||
|
|
|
|||
|
|
@ -283,13 +283,13 @@ public class MainActivity extends InstabugAppCompatActivity implements HabitRPGU
|
|||
if(event.Task instanceof RewardItem)
|
||||
return;
|
||||
|
||||
Bundle b = new Bundle();
|
||||
b.putString("type", event.Task.getType().toString());
|
||||
b.putString("taskId", event.Task.getId());
|
||||
Bundle bundle = new Bundle();
|
||||
bundle.putString("type", event.Task.getType().toString());
|
||||
bundle.putString("taskId", event.Task.getId());
|
||||
|
||||
AddTaskDialog dialog = new AddTaskDialog();
|
||||
dialog.setArguments(b);
|
||||
dialog.show(getSupportFragmentManager(), "AddTaskDialog");
|
||||
Intent intent = new Intent(this, TaskFormActivity.class);
|
||||
intent.putExtras(bundle);
|
||||
startActivity(intent);
|
||||
}
|
||||
|
||||
public void onEvent(TaskLongPressedEvent event) {
|
||||
|
|
@ -305,12 +305,12 @@ public class MainActivity extends InstabugAppCompatActivity implements HabitRPGU
|
|||
}
|
||||
|
||||
public void onEvent(AddTaskTappedEvent event) {
|
||||
Bundle b = new Bundle();
|
||||
b.putString("type", event.ClassType.getSimpleName().toLowerCase());
|
||||
Bundle bundle = new Bundle();
|
||||
bundle.putString("type", event.ClassType.getSimpleName().toLowerCase());
|
||||
|
||||
AddTaskDialog dialog = new AddTaskDialog();
|
||||
dialog.setArguments(b);
|
||||
dialog.show(getSupportFragmentManager(), "AddTaskDialog");
|
||||
Intent intent = new Intent(this, TaskFormActivity.class);
|
||||
intent.putExtras(bundle);
|
||||
startActivity(intent);
|
||||
}
|
||||
|
||||
public void onEvent(final BuyRewardTappedEvent event) {
|
||||
|
|
|
|||
140
Habitica/src/com/habitrpg/android/habitica/TaskFormActivity.java
Normal file
140
Habitica/src/com/habitrpg/android/habitica/TaskFormActivity.java
Normal file
|
|
@ -0,0 +1,140 @@
|
|||
package com.habitrpg.android.habitica;
|
||||
|
||||
import android.content.Intent;
|
||||
import android.support.v7.app.AppCompatActivity;
|
||||
import android.os.Bundle;
|
||||
import android.view.Menu;
|
||||
import android.view.MenuItem;
|
||||
import android.widget.ArrayAdapter;
|
||||
import android.widget.CheckBox;
|
||||
import android.widget.EditText;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.Spinner;
|
||||
|
||||
import com.habitrpg.android.habitica.R;
|
||||
import com.magicmicky.habitrpgwrapper.lib.models.tasks.Daily;
|
||||
import com.magicmicky.habitrpgwrapper.lib.models.tasks.Habit;
|
||||
import com.magicmicky.habitrpgwrapper.lib.models.tasks.HabitItem;
|
||||
import com.magicmicky.habitrpgwrapper.lib.models.tasks.HabitType;
|
||||
import com.magicmicky.habitrpgwrapper.lib.models.tasks.Reward;
|
||||
import com.magicmicky.habitrpgwrapper.lib.models.tasks.ToDo;
|
||||
import com.raizlabs.android.dbflow.sql.language.Select;
|
||||
|
||||
import static com.magicmicky.habitrpgwrapper.lib.models.tasks.HabitType.daily;
|
||||
import static com.magicmicky.habitrpgwrapper.lib.models.tasks.HabitType.habit;
|
||||
import static com.magicmicky.habitrpgwrapper.lib.models.tasks.HabitType.reward;
|
||||
import static com.magicmicky.habitrpgwrapper.lib.models.tasks.HabitType.todo;
|
||||
|
||||
public class TaskFormActivity extends AppCompatActivity {
|
||||
|
||||
private HabitType taskType;
|
||||
private String taskId;
|
||||
|
||||
private EditText taskText, taskNotes;
|
||||
private Spinner taskDifficulty;
|
||||
private CheckBox positiveCheckBox, negativeCheckBox;
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.activity_task_form);
|
||||
|
||||
Intent intent = getIntent();
|
||||
Bundle bundle = intent.getExtras();
|
||||
String type = bundle.getString("type");
|
||||
taskId = bundle.getString("taskId");
|
||||
if (type == null) {
|
||||
return;
|
||||
}
|
||||
taskType = type.equals(daily.toString()) ? daily
|
||||
: type.equals(reward.toString()) ? reward
|
||||
: type.equals(todo.toString()) ? todo
|
||||
: habit;
|
||||
|
||||
LinearLayout mainWrapper = (LinearLayout) findViewById(R.id.task_main_wrapper);
|
||||
taskText = (EditText) findViewById(R.id.task_text_edittext);
|
||||
taskNotes = (EditText) findViewById(R.id.task_notes_edittext);
|
||||
taskDifficulty = (Spinner) findViewById(R.id.task_difficulty_spinner);
|
||||
|
||||
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this,
|
||||
R.array.task_difficulties, android.R.layout.simple_spinner_item);
|
||||
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
|
||||
taskDifficulty.setAdapter(adapter);
|
||||
|
||||
if (taskType == habit) {
|
||||
LinearLayout startDateLayout = (LinearLayout) findViewById(R.id.task_startdate_layout);
|
||||
LinearLayout taskWrapper = (LinearLayout) findViewById(R.id.task_task_wrapper);
|
||||
taskWrapper.removeView(startDateLayout);
|
||||
|
||||
LinearLayout checklistLayout = (LinearLayout) findViewById(R.id.task_checklist_wrapper);
|
||||
mainWrapper.removeView(checklistLayout);
|
||||
|
||||
positiveCheckBox = (CheckBox) findViewById(R.id.task_positive_checkbox);
|
||||
negativeCheckBox = (CheckBox) findViewById(R.id.task_negative_checkbox);
|
||||
}
|
||||
|
||||
if (taskType != habit) {
|
||||
LinearLayout actionsLayout = (LinearLayout) findViewById(R.id.task_actions_wrapper);
|
||||
mainWrapper.removeView(actionsLayout);
|
||||
}
|
||||
|
||||
if (taskId != null) {
|
||||
switch (taskType) {
|
||||
case todo:
|
||||
ToDo todo = new Select().from(ToDo.class).byIds(taskId).querySingle();
|
||||
this.populate(todo);
|
||||
break;
|
||||
case daily:
|
||||
Daily daily = new Select().from(Daily.class).byIds(taskId).querySingle();
|
||||
this.populate(daily);
|
||||
break;
|
||||
case habit:
|
||||
Habit habit = new Select().from(Habit.class).byIds(taskId).querySingle();
|
||||
this.populate(habit);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCreateOptionsMenu(Menu menu) {
|
||||
// Inflate the menu; this adds items to the action bar if it is present.
|
||||
getMenuInflater().inflate(R.menu.menu_task_form, menu);
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onOptionsItemSelected(MenuItem item) {
|
||||
// Handle action bar item clicks here. The action bar will
|
||||
// automatically handle clicks on the Home/Up button, so long
|
||||
// as you specify a parent activity in AndroidManifest.xml.
|
||||
int id = item.getItemId();
|
||||
|
||||
//noinspection SimplifiableIfStatement
|
||||
if (id == R.id.action_settings) {
|
||||
return true;
|
||||
}
|
||||
|
||||
return super.onOptionsItemSelected(item);
|
||||
}
|
||||
|
||||
|
||||
private void populate(HabitItem task) {
|
||||
taskText.setText(task.text);
|
||||
taskNotes.setText(task.notes);
|
||||
}
|
||||
|
||||
private void populate(Habit task) {
|
||||
populate((HabitItem) task);
|
||||
positiveCheckBox.setChecked(task.getUp());
|
||||
negativeCheckBox.setChecked(task.getDown());
|
||||
}
|
||||
|
||||
private void populate(Daily task) {
|
||||
populate((HabitItem) task);
|
||||
}
|
||||
|
||||
private void populate(ToDo task) {
|
||||
populate((HabitItem) task);
|
||||
}
|
||||
}
|
||||
Loading…
Reference in a new issue