diff --git a/Habitica/AndroidManifest.xml b/Habitica/AndroidManifest.xml
index 16f4b4aee..0db19cdb2 100644
--- a/Habitica/AndroidManifest.xml
+++ b/Habitica/AndroidManifest.xml
@@ -2,7 +2,7 @@
+ android:versionName="0.0.1" >
+ android:theme="@style/AppTheme" >
+ android:windowSoftInputMode="stateHidden|adjustResize" >
@@ -37,7 +37,7 @@
+ android:theme="@style/AppThemeWithActionBar" >
@@ -45,8 +45,8 @@
+ android:theme="@style/AppThemeWithActionBar"
+ android:windowSoftInputMode="adjustResize" >
@@ -55,7 +55,7 @@
+ android:label="Habitica Simple Widget" >
@@ -71,8 +71,18 @@
android:name="io.fabric.ApiKey"
android:value="2eb3b3edb3b0f4722d37d649a5af366656e46ddd" />
-
+
+
+
+
diff --git a/Habitica/res/layout/activity_task_form.xml b/Habitica/res/layout/activity_task_form.xml
new file mode 100644
index 000000000..849142d7b
--- /dev/null
+++ b/Habitica/res/layout/activity_task_form.xml
@@ -0,0 +1,186 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Habitica/res/menu/menu_task_form.xml b/Habitica/res/menu/menu_task_form.xml
new file mode 100644
index 000000000..84fd37938
--- /dev/null
+++ b/Habitica/res/menu/menu_task_form.xml
@@ -0,0 +1,7 @@
+
diff --git a/Habitica/res/values/strings.xml b/Habitica/res/values/strings.xml
index 769747f77..fd9a15488 100644
--- a/Habitica/res/values/strings.xml
+++ b/Habitica/res/values/strings.xml
@@ -118,4 +118,17 @@
Add checklist
Edit checklist
Add item…
+ Add Task
+
+ Discard Changes
+ Notes
+ Text
+ Difficulty
+ Start Date
+ Positive ( + )
+ Negative ( - )
+ Checklist
+ Actions
+ Task
+
\ No newline at end of file
diff --git a/Habitica/res/values/styles.xml b/Habitica/res/values/styles.xml
index 3da25a2aa..cbed59c86 100644
--- a/Habitica/res/values/styles.xml
+++ b/Habitica/res/values/styles.xml
@@ -5,7 +5,7 @@
+
\ No newline at end of file
diff --git a/Habitica/res/values/task_difficulties.xml b/Habitica/res/values/task_difficulties.xml
new file mode 100644
index 000000000..e7daf52a0
--- /dev/null
+++ b/Habitica/res/values/task_difficulties.xml
@@ -0,0 +1,9 @@
+
+
+
+ - Trivial
+ - Easy
+ - Medium
+ - Hard
+
+
\ No newline at end of file
diff --git a/Habitica/res/values/values.xml b/Habitica/res/values/values.xml
index d76aba2c4..477c417e3 100644
--- a/Habitica/res/values/values.xml
+++ b/Habitica/res/values/values.xml
@@ -2,13 +2,9 @@
- HabitRPG
- - HabitRPG Beta
- - Custom
- https://habitrpg.com/
- - https://beta.habitrpg.com/
- - OMGOMGOMGOMGOMG
diff --git a/Habitica/src/com/habitrpg/android/habitica/MainActivity.java b/Habitica/src/com/habitrpg/android/habitica/MainActivity.java
index 06b98a14c..81c2b014e 100644
--- a/Habitica/src/com/habitrpg/android/habitica/MainActivity.java
+++ b/Habitica/src/com/habitrpg/android/habitica/MainActivity.java
@@ -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) {
diff --git a/Habitica/src/com/habitrpg/android/habitica/TaskFormActivity.java b/Habitica/src/com/habitrpg/android/habitica/TaskFormActivity.java
new file mode 100644
index 000000000..5ba51eb24
--- /dev/null
+++ b/Habitica/src/com/habitrpg/android/habitica/TaskFormActivity.java
@@ -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 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);
+ }
+}