mirror of
https://github.com/sudoxnym/habitica-android.git
synced 2026-05-19 20:29:02 +00:00
Remove old form and fix challenge task form
This commit is contained in:
parent
e2c17fef90
commit
f2e0352664
12 changed files with 78 additions and 1483 deletions
|
|
@ -113,15 +113,6 @@
|
|||
android:name="android.support.PARENT_ACTIVITY"
|
||||
android:value=".ui.activities.MainActivity" />
|
||||
</activity>
|
||||
<activity
|
||||
android:name=".ui.activities.OldTaskFormActivity"
|
||||
android:theme="@style/AppThemeWithActionBarBlackText"
|
||||
android:parentActivityName=".ui.activities.MainActivity"
|
||||
tools:ignore="UnusedAttribute">
|
||||
<meta-data
|
||||
android:name="android.support.PARENT_ACTIVITY"
|
||||
android:value=".ui.activities.MainActivity" />
|
||||
</activity>
|
||||
<activity
|
||||
android:name=".ui.activities.GroupFormActivity"
|
||||
android:theme="@style/AppTheme.NoActionBar.Transparent"
|
||||
|
|
|
|||
|
|
@ -1,390 +0,0 @@
|
|||
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:id="@+id/scrollView"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/task_main_wrapper"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
android:padding="@dimen/abc_action_bar_content_inset_material">
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/task_task_wrapper"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="@dimen/abc_action_bar_content_inset_material"
|
||||
android:orientation="vertical">
|
||||
|
||||
<com.google.android.material.textfield.TextInputLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
app:hintTextAppearance="@style/TextAppearance.AppCompat">
|
||||
|
||||
<com.habitrpg.android.habitica.ui.views.HabiticaAutocompleteTextView
|
||||
android:id="@+id/task_text_edittext"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_horizontal"
|
||||
android:hint="@string/text"
|
||||
android:textColor="@android:color/black"
|
||||
android:inputType="textCapSentences|textMultiLine"
|
||||
android:maxLines="3"/>
|
||||
</com.google.android.material.textfield.TextInputLayout>
|
||||
|
||||
<com.google.android.material.textfield.TextInputLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
app:hintTextAppearance="@style/TextAppearance.AppCompat">
|
||||
|
||||
<com.habitrpg.android.habitica.ui.views.HabiticaAutocompleteTextView
|
||||
android:id="@+id/task_notes_edittext"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_horizontal"
|
||||
android:hint="@string/notes"
|
||||
android:textColor="@android:color/black"
|
||||
android:inputType="textCapSentences|textMultiLine" />
|
||||
</com.google.android.material.textfield.TextInputLayout>
|
||||
|
||||
<com.google.android.material.textfield.TextInputLayout
|
||||
android:id="@+id/task_value_layout"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="72dp"
|
||||
app:hintTextAppearance="@style/TextAppearance.AppCompat">
|
||||
|
||||
<EditText
|
||||
android:id="@+id/task_value_edittext"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_horizontal"
|
||||
android:hint="@string/task_value"
|
||||
android:textColor="@android:color/black"
|
||||
android:inputType="numberDecimal" />
|
||||
</com.google.android.material.textfield.TextInputLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
android:id="@+id/task_difficulty_wrapper">
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:text="@string/difficulty"
|
||||
android:textAppearance="?android:attr/textAppearanceLarge" />
|
||||
|
||||
<Spinner
|
||||
android:id="@+id/task_difficulty_spinner"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
android:layout_marginTop="20dp"
|
||||
android:id="@+id/task_attribute_wrapper">
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:text="@string/attributes"
|
||||
android:textAppearance="?android:attr/textAppearanceLarge" />
|
||||
|
||||
<Spinner
|
||||
android:id="@+id/task_attribute_spinner"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
android:id="@+id/task_reset_frequency_wrapper"
|
||||
android:layout_marginTop="20dp">
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:text="@string/reset_streak"
|
||||
android:textAppearance="?android:attr/textAppearanceLarge" />
|
||||
|
||||
<Spinner
|
||||
android:id="@+id/task_reset_frequency_spinner"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/task_actions_wrapper"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_horizontal"
|
||||
android:layout_marginTop="20dp"
|
||||
android:orientation="vertical">
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/actions"
|
||||
android:textAppearance="?android:attr/textAppearanceLarge" />
|
||||
|
||||
|
||||
<CheckBox
|
||||
android:id="@+id/task_positive_checkbox"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginBottom="11dp"
|
||||
android:text="@string/positive_habit_form"
|
||||
android:textAppearance="?android:attr/textAppearanceMedium" />
|
||||
|
||||
<CheckBox
|
||||
android:id="@+id/task_negative_checkbox"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginBottom="11dp"
|
||||
android:text="@string/negative_habit_form"
|
||||
android:textAppearance="?android:attr/textAppearanceMedium" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/task_checklist_wrapper"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_horizontal"
|
||||
android:layout_marginTop="30dp"
|
||||
android:orientation="vertical">
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginBottom="8dp"
|
||||
android:text="@string/checklist"
|
||||
android:textAppearance="?android:attr/textAppearanceLarge" />
|
||||
|
||||
<androidx.recyclerview.widget.RecyclerView
|
||||
android:id="@+id/checklist_recycler_view"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content" />
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<ImageButton
|
||||
android:id="@+id/emoji.toggle.btn2"
|
||||
android:layout_width="48dp"
|
||||
android:layout_height="48dp"
|
||||
android:src="@drawable/ic_emoticon_grey600_24dp"
|
||||
android:background="@drawable/md_transparent"
|
||||
android:contentDescription="Toogle Emoji" />
|
||||
|
||||
<com.habitrpg.android.habitica.ui.views.HabiticaAutocompleteTextView
|
||||
android:id="@+id/new_checklist"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:hint="@string/new_checklist_item"
|
||||
android:inputType="textCapSentences" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/add_checklist_button"
|
||||
style="?android:attr/buttonStyleSmall"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/add_checklist_item" />
|
||||
</LinearLayout>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/task_duedate_layout"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_horizontal"
|
||||
android:layout_marginTop="20dp"
|
||||
android:orientation="vertical">
|
||||
|
||||
<include layout="@layout/tasks_duedate" />
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/repeatables"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_horizontal"
|
||||
android:layout_marginTop="20dp"
|
||||
android:orientation="vertical">
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/frequency"
|
||||
android:textAppearance="?android:attr/textAppearanceLarge" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:text="@string/start_date"
|
||||
android:textAppearance="?android:attr/textAppearanceMedium" />
|
||||
|
||||
<EditText
|
||||
android:id="@+id/repeatables_startdate_text_edittext"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_horizontal"
|
||||
android:hint="@string/start_date"
|
||||
android:textColor="@android:color/black"
|
||||
android:focusable="false" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:text="@string/repeatables_title"
|
||||
android:textAppearance="?android:attr/textAppearanceMedium" />
|
||||
|
||||
<Spinner
|
||||
android:id="@+id/task_repeatables_frequency_spinner"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="72dp" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:text="@string/repeatables_on_title"
|
||||
android:id="@+id/repeatables_on_title"
|
||||
android:textAppearance="?android:attr/textAppearanceMedium" />
|
||||
|
||||
<Spinner
|
||||
android:id="@+id/task_repeatables_on_spinner"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="72dp" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:text="@string/repeatEvery"
|
||||
android:textAppearance="?android:attr/textAppearanceMedium" />
|
||||
|
||||
<NumberPicker
|
||||
android:id="@+id/task_repeatables_every_x_spinner"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="72dp" />
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/task_repeatables_frequency_container"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical">
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:id="@+id/summaryTitle"
|
||||
android:text="@string/repeatables_summary_title"
|
||||
android:textAppearance="?android:attr/textAppearanceMedium" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:id="@+id/summary"
|
||||
android:textAppearance="?android:attr/textAppearanceSmall" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/task_reminders_wrapper"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_horizontal"
|
||||
android:layout_marginTop="20dp"
|
||||
android:orientation="vertical">
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginBottom="8dp"
|
||||
android:text="@string/reminders"
|
||||
android:textAppearance="?android:attr/textAppearanceLarge" />
|
||||
|
||||
<androidx.recyclerview.widget.RecyclerView
|
||||
android:id="@+id/reminders_recycler_view"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content" />
|
||||
|
||||
<EditText
|
||||
android:id="@+id/new_reminder_edittext"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_gravity="center_horizontal"
|
||||
android:hint="@string/add_reminder"
|
||||
android:textColor="@android:color/black"
|
||||
android:focusable="false" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
android:layout_marginTop="20dp"
|
||||
android:id="@+id/task_tags_wrapper">
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/tags"
|
||||
android:textAppearance="?android:attr/textAppearanceLarge" />
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
android:id="@+id/task_tags_checklist">
|
||||
</LinearLayout>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/task_delete_wrapper"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_horizontal"
|
||||
android:layout_marginTop="@dimen/abc_action_bar_content_inset_material"
|
||||
android:orientation="vertical">
|
||||
|
||||
<Button
|
||||
android:id="@+id/btn.delete.task"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:drawableRight="@drawable/ic_action_delete_white_24"
|
||||
android:drawableEnd="@drawable/ic_action_delete_white_24"
|
||||
android:text="@string/action_delete"
|
||||
android:textColor="@color/white" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
</LinearLayout>
|
||||
</ScrollView>
|
||||
|
|
@ -22,7 +22,7 @@
|
|||
android:src="@drawable/plus_taskform"
|
||||
android:scaleType="center"
|
||||
android:layout_marginEnd="@dimen/spacing_large"/>
|
||||
<EditText
|
||||
<androidx.appcompat.widget.AppCompatEditText
|
||||
android:id="@+id/edit_text"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
|
|
|
|||
|
|
@ -1,7 +1,6 @@
|
|||
<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=".ui.activities.OldTaskFormActivity">
|
||||
xmlns:tools="http://schemas.android.com/tools">
|
||||
<item android:id="@+id/action_save_changes" android:title="@string/save_changes"
|
||||
android:orderInCategory="100" app:showAsAction="always" />
|
||||
</menu>
|
||||
|
|
|
|||
|
|
@ -245,10 +245,6 @@
|
|||
android:name="challengeID"
|
||||
app:argType="string" />
|
||||
</fragment>
|
||||
<activity
|
||||
android:id="@+id/taskFormActivity"
|
||||
android:name="com.habitrpg.android.habitica.ui.activities.OldTaskFormActivity"
|
||||
android:label="TaskFormActivity" />
|
||||
<activity
|
||||
android:id="@+id/fullProfileActivity"
|
||||
android:name="com.habitrpg.android.habitica.ui.activities.FullProfileActivity"
|
||||
|
|
|
|||
|
|
@ -34,7 +34,6 @@ import com.habitrpg.android.habitica.ui.activities.ReportMessageActivity;
|
|||
import com.habitrpg.android.habitica.ui.activities.SetupActivity;
|
||||
import com.habitrpg.android.habitica.ui.activities.SkillMemberActivity;
|
||||
import com.habitrpg.android.habitica.ui.activities.SkillTasksActivity;
|
||||
import com.habitrpg.android.habitica.ui.activities.OldTaskFormActivity;
|
||||
import com.habitrpg.android.habitica.ui.activities.TaskFormActivity;
|
||||
import com.habitrpg.android.habitica.ui.activities.VerifyUsernameActivity;
|
||||
import com.habitrpg.android.habitica.ui.adapter.social.challenges.ChallengeTasksRecyclerViewAdapter;
|
||||
|
|
@ -140,8 +139,6 @@ public interface AppComponent {
|
|||
|
||||
void inject(SkillMemberActivity skillMembersActivity);
|
||||
|
||||
void inject(OldTaskFormActivity taskFormActivity);
|
||||
|
||||
void inject(TasksFragment tasksFragment);
|
||||
|
||||
void inject(FAQDetailFragment faqDetailFragment);
|
||||
|
|
|
|||
|
|
@ -156,7 +156,7 @@ class ChallengeFormActivity : BaseActivity() {
|
|||
|
||||
if (requestCode == 1000) {
|
||||
if (resultCode == Activity.RESULT_OK) {
|
||||
val task = data?.getParcelableExtra<Task>(OldTaskFormActivity.PARCELABLE_TASK)
|
||||
val task = data?.getParcelableExtra<Task>(TaskFormActivity.PARCELABLE_TASK)
|
||||
if (task != null) {
|
||||
addOrUpdateTaskInList(task)
|
||||
}
|
||||
|
|
@ -186,7 +186,7 @@ class ChallengeFormActivity : BaseActivity() {
|
|||
|
||||
val prizeError = checkPrizeAndMinimumForTavern()
|
||||
|
||||
if (!prizeError.isEmpty()) {
|
||||
if (prizeError.isNotEmpty()) {
|
||||
errorMessages.add(prizeError)
|
||||
}
|
||||
|
||||
|
|
@ -413,22 +413,16 @@ class ChallengeFormActivity : BaseActivity() {
|
|||
private fun openNewTaskActivity(type: String?, task: Task?) {
|
||||
val bundle = Bundle()
|
||||
|
||||
bundle.putString(OldTaskFormActivity.TASK_TYPE_KEY, type)
|
||||
bundle.putString(TaskFormActivity.TASK_TYPE_KEY, type)
|
||||
if (task != null) {
|
||||
bundle.putParcelable(OldTaskFormActivity.PARCELABLE_TASK, task)
|
||||
bundle.putParcelable(TaskFormActivity.PARCELABLE_TASK, task)
|
||||
}
|
||||
|
||||
bundle.putBoolean(OldTaskFormActivity.SAVE_TO_DB, false)
|
||||
bundle.putBoolean(OldTaskFormActivity.SET_IGNORE_FLAG, true)
|
||||
bundle.putBoolean(OldTaskFormActivity.SHOW_TAG_SELECTION, false)
|
||||
bundle.putBoolean(OldTaskFormActivity.SHOW_CHECKLIST, false)
|
||||
bundle.putBoolean(TaskFormActivity.SET_IGNORE_FLAG, true)
|
||||
bundle.putBoolean(TaskFormActivity.IS_CHALLENGE_TASK, true)
|
||||
bundle.putString(TaskFormActivity.USER_ID_KEY, user?.id)
|
||||
|
||||
val allocationMode = user?.preferences?.hasTaskBasedAllocation()
|
||||
|
||||
bundle.putString(OldTaskFormActivity.USER_ID_KEY, user?.id)
|
||||
bundle.putBoolean(OldTaskFormActivity.ALLOCATION_MODE_KEY, allocationMode ?: false)
|
||||
|
||||
val intent = Intent(this, OldTaskFormActivity::class.java)
|
||||
val intent = Intent(this, TaskFormActivity::class.java)
|
||||
intent.putExtras(bundle)
|
||||
|
||||
startActivityForResult(intent, 1000)
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -1,6 +1,8 @@
|
|||
package com.habitrpg.android.habitica.ui.activities
|
||||
|
||||
import android.app.Activity
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import android.os.Bundle
|
||||
import android.view.Menu
|
||||
import android.view.View
|
||||
|
|
@ -27,6 +29,7 @@ import io.reactivex.functions.Consumer
|
|||
import javax.inject.Inject
|
||||
import android.content.res.ColorStateList
|
||||
import android.graphics.drawable.ColorDrawable
|
||||
import android.os.Handler
|
||||
import android.view.MenuItem
|
||||
import android.view.inputmethod.InputMethodManager
|
||||
import androidx.appcompat.widget.AppCompatCheckBox
|
||||
|
|
@ -81,6 +84,7 @@ class TaskFormActivity : BaseActivity() {
|
|||
private val tagsWrapper: LinearLayout by bindView(R.id.tags_wrapper)
|
||||
|
||||
private var isCreating = true
|
||||
private var isChallengeTask = false
|
||||
private var usesTaskAttributeStats = false
|
||||
private var task: Task? = null
|
||||
private var taskType: String = ""
|
||||
|
|
@ -120,16 +124,10 @@ class TaskFormActivity : BaseActivity() {
|
|||
|
||||
val bundle = intent.extras ?: return
|
||||
|
||||
taskType = bundle.getString(OldTaskFormActivity.TASK_TYPE_KEY) ?: Task.TYPE_HABIT
|
||||
val taskId = bundle.getString(OldTaskFormActivity.TASK_ID_KEY)
|
||||
if (taskId != null) {
|
||||
isCreating = false
|
||||
compositeSubscription.add(taskRepository.getUnmanagedTask(taskId).firstElement().subscribe(Consumer {
|
||||
task = it
|
||||
//tintColor = ContextCompat.getColor(this, it.mediumTaskColor)
|
||||
fillForm(it)
|
||||
}, RxErrorHandler.handleEmptyError()))
|
||||
}
|
||||
isChallengeTask = bundle.getBoolean(IS_CHALLENGE_TASK, false)
|
||||
|
||||
taskType = bundle.getString(TASK_TYPE_KEY) ?: Task.TYPE_HABIT
|
||||
val taskId = bundle.getString(TASK_ID_KEY)
|
||||
|
||||
compositeSubscription.add(tagRepository.getTags()
|
||||
.map { tagRepository.getUnmanagedCopy(it) }
|
||||
|
|
@ -148,6 +146,18 @@ class TaskFormActivity : BaseActivity() {
|
|||
statPerceptionButton.setOnClickListener { selectedStat = Stats.PERCEPTION }
|
||||
|
||||
configureForm()
|
||||
|
||||
if (taskId != null) {
|
||||
isCreating = false
|
||||
compositeSubscription.add(taskRepository.getUnmanagedTask(taskId).firstElement().subscribe(Consumer {
|
||||
task = it
|
||||
//tintColor = ContextCompat.getColor(this, it.mediumTaskColor)
|
||||
fillForm(it)
|
||||
}, RxErrorHandler.handleEmptyError()))
|
||||
} else if (bundle.containsKey(PARCELABLE_TASK)) {
|
||||
task = bundle.getParcelable(PARCELABLE_TASK)
|
||||
task?.let { fillForm(it) }
|
||||
}
|
||||
}
|
||||
|
||||
override fun onCreateOptionsMenu(menu: Menu): Boolean {
|
||||
|
|
@ -186,11 +196,11 @@ class TaskFormActivity : BaseActivity() {
|
|||
|
||||
val todoDailyViewsVisibility = if (taskType == Task.TYPE_DAILY || taskType == Task.TYPE_TODO) View.VISIBLE else View.GONE
|
||||
|
||||
checklistTitleView.visibility = todoDailyViewsVisibility
|
||||
checklistContainer.visibility = todoDailyViewsVisibility
|
||||
checklistTitleView.visibility = if (isChallengeTask) View.GONE else todoDailyViewsVisibility
|
||||
checklistContainer.visibility = if (isChallengeTask) View.GONE else todoDailyViewsVisibility
|
||||
|
||||
remindersTitleView.visibility = todoDailyViewsVisibility
|
||||
remindersContainer.visibility = todoDailyViewsVisibility
|
||||
remindersTitleView.visibility = if (isChallengeTask) View.GONE else todoDailyViewsVisibility
|
||||
remindersContainer.visibility = if (isChallengeTask) View.GONE else todoDailyViewsVisibility
|
||||
|
||||
taskSchedulingTitleView.visibility = todoDailyViewsVisibility
|
||||
taskSchedulingControls.visibility = todoDailyViewsVisibility
|
||||
|
|
@ -204,6 +214,8 @@ class TaskFormActivity : BaseActivity() {
|
|||
rewardValueTitleView.visibility = rewardViewsVisibility
|
||||
rewardValueFormView.visibility = rewardViewsVisibility
|
||||
|
||||
tagsWrapper.visibility = if (isChallengeTask) View.GONE else View.VISIBLE
|
||||
|
||||
statWrapper.visibility = if (usesTaskAttributeStats) View.VISIBLE else View.GONE
|
||||
if (isCreating) {
|
||||
adjustStreakTitleView.visibility = View.GONE
|
||||
|
|
@ -319,25 +331,36 @@ class TaskFormActivity : BaseActivity() {
|
|||
thisTask.value = rewardValueFormView.value
|
||||
}
|
||||
|
||||
if (taskType == Task.TYPE_DAILY || taskType == Task.TYPE_TODO) {
|
||||
thisTask.checklist = checklistContainer.checklistItems
|
||||
thisTask.reminders = remindersContainer.reminders
|
||||
}
|
||||
thisTask.tags = RealmList()
|
||||
tagsWrapper.forEachIndexed { index, view ->
|
||||
val tagView = view as? CheckBox
|
||||
if (tagView?.isChecked == true) {
|
||||
thisTask.tags?.add(tags[index])
|
||||
val resultIntent = Intent()
|
||||
resultIntent.putExtra(TASK_TYPE_KEY, taskType)
|
||||
if (!isChallengeTask) {
|
||||
if (taskType == Task.TYPE_DAILY || taskType == Task.TYPE_TODO) {
|
||||
thisTask.checklist = checklistContainer.checklistItems
|
||||
thisTask.reminders = remindersContainer.reminders
|
||||
}
|
||||
thisTask.tags = RealmList()
|
||||
tagsWrapper.forEachIndexed { index, view ->
|
||||
val tagView = view as? CheckBox
|
||||
if (tagView?.isChecked == true) {
|
||||
thisTask.tags?.add(tags[index])
|
||||
}
|
||||
}
|
||||
|
||||
if (isCreating) {
|
||||
taskRepository.createTaskInBackground(thisTask)
|
||||
} else {
|
||||
taskRepository.updateTaskInBackground(thisTask)
|
||||
}
|
||||
} else {
|
||||
resultIntent.putExtra(PARCELABLE_TASK, thisTask)
|
||||
}
|
||||
|
||||
if (isCreating) {
|
||||
taskRepository.createTaskInBackground(thisTask)
|
||||
} else {
|
||||
taskRepository.updateTaskInBackground(thisTask)
|
||||
}
|
||||
dismissKeyboard()
|
||||
finish()
|
||||
val mainHandler = Handler(this.mainLooper)
|
||||
mainHandler.postDelayed({
|
||||
setResult(Activity.RESULT_OK, resultIntent)
|
||||
dismissKeyboard()
|
||||
finish()
|
||||
}, 500)
|
||||
}
|
||||
|
||||
private fun deleteTask() {
|
||||
|
|
@ -356,8 +379,11 @@ class TaskFormActivity : BaseActivity() {
|
|||
|
||||
companion object {
|
||||
const val TASK_ID_KEY = "taskId"
|
||||
const val USER_ID_KEY = "userId"
|
||||
const val TASK_TYPE_KEY = "type"
|
||||
const val SHOW_TAG_SELECTION = "show_tag_selection"
|
||||
const val IS_CHALLENGE_TASK = "isChallengeTask"
|
||||
|
||||
const val PARCELABLE_TASK = "parcelable_task"
|
||||
|
||||
// in order to disable the event handler in MainActivity
|
||||
const val SET_IGNORE_FLAG = "ignoreFlag"
|
||||
|
|
|
|||
|
|
@ -16,7 +16,6 @@ import com.habitrpg.android.habitica.extensions.notNull
|
|||
import com.habitrpg.android.habitica.helpers.RxErrorHandler
|
||||
import com.habitrpg.android.habitica.helpers.TaskFilterHelper
|
||||
import com.habitrpg.android.habitica.models.tasks.Task
|
||||
import com.habitrpg.android.habitica.ui.activities.OldTaskFormActivity
|
||||
import com.habitrpg.android.habitica.ui.activities.TaskFormActivity
|
||||
import com.habitrpg.android.habitica.ui.fragments.BaseMainFragment
|
||||
import com.habitrpg.android.habitica.ui.views.tasks.TaskFilterDialog
|
||||
|
|
@ -287,8 +286,7 @@ class TasksFragment : BaseMainFragment() {
|
|||
}
|
||||
|
||||
val bundle = Bundle()
|
||||
bundle.putString(OldTaskFormActivity.TASK_TYPE_KEY, type)
|
||||
bundle.putBoolean(OldTaskFormActivity.SAVE_TO_DB, true)
|
||||
bundle.putString(TaskFormActivity.TASK_TYPE_KEY, type)
|
||||
|
||||
val intent = Intent(activity, TaskFormActivity::class.java)
|
||||
intent.putExtras(bundle)
|
||||
|
|
@ -306,8 +304,8 @@ class TasksFragment : BaseMainFragment() {
|
|||
}
|
||||
|
||||
val bundle = Bundle()
|
||||
bundle.putString(OldTaskFormActivity.TASK_TYPE_KEY, event.Task.type)
|
||||
bundle.putString(OldTaskFormActivity.TASK_ID_KEY, event.Task.id)
|
||||
bundle.putString(TaskFormActivity.TASK_TYPE_KEY, event.Task.type)
|
||||
bundle.putString(TaskFormActivity.TASK_ID_KEY, event.Task.id)
|
||||
|
||||
val intent = Intent(activity, TaskFormActivity::class.java)
|
||||
intent.putExtras(bundle)
|
||||
|
|
@ -334,7 +332,7 @@ class TasksFragment : BaseMainFragment() {
|
|||
|
||||
private fun onTaskCreatedResult(resultCode: Int, data: Intent?) {
|
||||
if (resultCode == Activity.RESULT_OK) {
|
||||
val taskType = data?.getStringExtra(OldTaskFormActivity.TASK_TYPE_KEY)
|
||||
val taskType = data?.getStringExtra(TaskFormActivity.TASK_TYPE_KEY)
|
||||
if (taskType != null) {
|
||||
switchToTaskTab(taskType)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -44,7 +44,7 @@ class ChecklistContainer @JvmOverloads constructor(
|
|||
}
|
||||
|
||||
init {
|
||||
orientation = LinearLayout.VERTICAL
|
||||
orientation = VERTICAL
|
||||
|
||||
addChecklistViewAt(0)
|
||||
}
|
||||
|
|
@ -77,7 +77,7 @@ class ChecklistContainer @JvmOverloads constructor(
|
|||
} else {
|
||||
addView(view, indexToUse)
|
||||
}
|
||||
val layoutParams = view.layoutParams as? LinearLayout.LayoutParams
|
||||
val layoutParams = view.layoutParams as? LayoutParams
|
||||
layoutParams?.updateMargins(bottom = 8.dpToPx(context))
|
||||
view.layoutParams = layoutParams
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,26 +1,24 @@
|
|||
package com.habitrpg.android.habitica.ui.views.tasks.form
|
||||
|
||||
import android.animation.ObjectAnimator
|
||||
import android.content.Context
|
||||
import android.text.Editable
|
||||
import android.text.TextWatcher
|
||||
import android.util.AttributeSet
|
||||
import android.view.Gravity
|
||||
import android.view.ViewGroup
|
||||
import android.view.animation.Animation
|
||||
import android.view.animation.LinearInterpolator
|
||||
import android.view.animation.RotateAnimation
|
||||
import android.widget.EditText
|
||||
import android.widget.ImageButton
|
||||
import android.widget.LinearLayout
|
||||
import androidx.appcompat.widget.AppCompatEditText
|
||||
import androidx.core.content.ContextCompat
|
||||
import com.habitrpg.android.habitica.R
|
||||
import com.habitrpg.android.habitica.extensions.dpToPx
|
||||
import com.habitrpg.android.habitica.extensions.inflate
|
||||
import com.habitrpg.android.habitica.models.tasks.ChecklistItem
|
||||
import com.habitrpg.android.habitica.ui.helpers.bindView
|
||||
import android.view.animation.LinearInterpolator
|
||||
import android.view.animation.Animation
|
||||
import android.view.animation.RotateAnimation
|
||||
|
||||
|
||||
|
||||
|
||||
class ChecklistItemFormView @JvmOverloads constructor(
|
||||
|
|
@ -29,7 +27,7 @@ class ChecklistItemFormView @JvmOverloads constructor(
|
|||
|
||||
|
||||
private val button: ImageButton by bindView(R.id.button)
|
||||
private val editText: EditText by bindView(R.id.edit_text)
|
||||
private val editText: AppCompatEditText by bindView(R.id.edit_text)
|
||||
|
||||
var item: ChecklistItem = ChecklistItem()
|
||||
set(value) {
|
||||
|
|
|
|||
Loading…
Reference in a new issue