mirror of
https://github.com/sudoxnym/habitica-android.git
synced 2026-05-23 22:27:15 +00:00
Make task form show correct colors when editing
This commit is contained in:
parent
59bf5b10d6
commit
d58992a0f3
8 changed files with 107 additions and 55 deletions
|
|
@ -9,6 +9,7 @@
|
|||
<attr name="textColorSecondary" format="color" />
|
||||
<attr name="textColorPrimaryDark" format="color" />
|
||||
<attr name="barColor" format="color" />
|
||||
<attr name="taskFormTint" format="color" />
|
||||
<attr name="textColorSecondaryDark" format="color" />
|
||||
<attr name="statsColor" format="color" />
|
||||
<attr name="statsTitle" format="string" />
|
||||
|
|
|
|||
|
|
@ -25,6 +25,7 @@
|
|||
<item name="colorPrimaryOffset">@color/brand_200</item>
|
||||
<item name="colorPrimaryDistinct">@color/brand_500</item>
|
||||
<item name="colorBadgeBackground">@color/brand_400</item>
|
||||
<item name="taskFormTint">@color/brand_300</item>
|
||||
|
||||
<item name="textColorPrimary">@color/gray_50</item>
|
||||
<item name="textColorSecondary">@color/gray_200</item>
|
||||
|
|
@ -47,37 +48,6 @@
|
|||
<item name="android:navigationBarColor">@color/brand_50</item>
|
||||
</style>
|
||||
|
||||
<style name="MainAppTheme.Green">
|
||||
<item name="colorPrimary">@color/green_10</item>
|
||||
<item name="colorPrimaryDark">@color/green_5</item>
|
||||
<item name="colorAccent">@color/green_100</item>
|
||||
<item name="android:colorPrimary">@color/green_10</item>
|
||||
<item name="android:colorPrimaryDark">@color/green_5</item>
|
||||
<item name="android:colorAccent">@color/green_100</item>
|
||||
<item name="colorPrimaryOffset">@color/green_50</item>
|
||||
<item name="colorPrimaryDistinct">@color/green_500</item>
|
||||
<item name="colorBadgeBackground">@color/green_100</item>
|
||||
<item name="textColorSecondaryDark">@color/green_500</item>
|
||||
<item name="android:textColorLink">@color/green_100</item>
|
||||
<item name="textColorPrimaryDark">@color/green_500</item>
|
||||
<item name="barColor">@color/green_10</item>
|
||||
</style>
|
||||
|
||||
<style name="MainAppTheme.Blue">
|
||||
<item name="colorPrimary">@color/blue_10</item>
|
||||
<item name="colorPrimaryDark">@color/blue_5</item>
|
||||
<item name="colorAccent">@color/blue_100</item>
|
||||
<item name="android:colorPrimary">@color/blue_10</item>
|
||||
<item name="android:colorPrimaryDark">@color/blue_5</item>
|
||||
<item name="android:colorAccent">@color/blue_100</item>
|
||||
<item name="colorPrimaryOffset">@color/blue_50</item>
|
||||
<item name="colorPrimaryDistinct">@color/blue_500</item>
|
||||
<item name="colorBadgeBackground">@color/blue_100</item>
|
||||
<item name="textColorSecondaryDark">@color/blue_500</item>
|
||||
<item name="android:textColorLink">@color/blue_100</item>
|
||||
<item name="textColorPrimaryDark">@color/blue_500</item>
|
||||
<item name="barColor">@color/blue_10</item>
|
||||
</style>
|
||||
|
||||
<style name="MainAppTheme.Red">
|
||||
<item name="colorPrimary">@color/red_5</item>
|
||||
|
|
@ -93,6 +63,7 @@
|
|||
<item name="android:textColorLink">@color/red_100</item>
|
||||
<item name="textColorPrimaryDark">@color/red_500</item>
|
||||
<item name="barColor">@color/red_5</item>
|
||||
<item name="taskFormTint">@color/red_100</item>
|
||||
</style>
|
||||
|
||||
<style name="MainAppTheme.Maroon">
|
||||
|
|
@ -109,22 +80,7 @@
|
|||
<item name="android:textColorLink">@color/maroon_100</item>
|
||||
<item name="textColorPrimaryDark">@color/maroon_500</item>
|
||||
<item name="barColor">@color/maroon_10</item>
|
||||
</style>
|
||||
|
||||
<style name="MainAppTheme.Teal">
|
||||
<item name="colorPrimary">@color/teal_10</item>
|
||||
<item name="colorPrimaryDark">@color/teal_5</item>
|
||||
<item name="colorAccent">@color/teal_100</item>
|
||||
<item name="android:colorPrimary">@color/teal_10</item>
|
||||
<item name="android:colorPrimaryDark">@color/teal_5</item>
|
||||
<item name="android:colorAccent">@color/teal_100</item>
|
||||
<item name="colorPrimaryOffset">@color/teal_50</item>
|
||||
<item name="colorPrimaryDistinct">@color/teal_500</item>
|
||||
<item name="colorBadgeBackground">@color/teal_100</item>
|
||||
<item name="textColorSecondaryDark">@color/teal_500</item>
|
||||
<item name="android:textColorLink">@color/teal_100</item>
|
||||
<item name="textColorPrimaryDark">@color/teal_500</item>
|
||||
<item name="barColor">@color/teal_10</item>
|
||||
<item name="taskFormTint">@color/maroon_100</item>
|
||||
</style>
|
||||
|
||||
<style name="MainAppTheme.Orange">
|
||||
|
|
@ -141,6 +97,75 @@
|
|||
<item name="android:textColorLink">@color/orange_100</item>
|
||||
<item name="textColorPrimaryDark">@color/orange_500</item>
|
||||
<item name="barColor">@color/orange_10</item>
|
||||
<item name="taskFormTint">@color/orange_100</item>
|
||||
</style>
|
||||
|
||||
<style name="MainAppTheme.Yellow">
|
||||
<item name="colorPrimary">@color/yellow_10</item>
|
||||
<item name="colorPrimaryDark">@color/yellow_5</item>
|
||||
<item name="colorAccent">@color/yellow_100</item>
|
||||
<item name="android:colorPrimary">@color/yellow_10</item>
|
||||
<item name="android:colorPrimaryDark">@color/yellow_5</item>
|
||||
<item name="android:colorAccent">@color/yellow_100</item>
|
||||
<item name="colorPrimaryOffset">@color/yellow_50</item>
|
||||
<item name="colorPrimaryDistinct">@color/yellow_500</item>
|
||||
<item name="colorBadgeBackground">@color/yellow_100</item>
|
||||
<item name="textColorSecondaryDark">@color/yellow_500</item>
|
||||
<item name="android:textColorLink">@color/yellow_100</item>
|
||||
<item name="textColorPrimaryDark">@color/yellow_500</item>
|
||||
<item name="barColor">@color/yellow_10</item>
|
||||
<item name="taskFormTint">@color/yellow_100</item>
|
||||
</style>
|
||||
|
||||
<style name="MainAppTheme.Green">
|
||||
<item name="colorPrimary">@color/green_10</item>
|
||||
<item name="colorPrimaryDark">@color/green_5</item>
|
||||
<item name="colorAccent">@color/green_100</item>
|
||||
<item name="android:colorPrimary">@color/green_10</item>
|
||||
<item name="android:colorPrimaryDark">@color/green_5</item>
|
||||
<item name="android:colorAccent">@color/green_100</item>
|
||||
<item name="colorPrimaryOffset">@color/green_50</item>
|
||||
<item name="colorPrimaryDistinct">@color/green_500</item>
|
||||
<item name="colorBadgeBackground">@color/green_100</item>
|
||||
<item name="textColorSecondaryDark">@color/green_500</item>
|
||||
<item name="android:textColorLink">@color/green_100</item>
|
||||
<item name="textColorPrimaryDark">@color/green_500</item>
|
||||
<item name="barColor">@color/green_10</item>
|
||||
<item name="taskFormTint">@color/green_100</item>
|
||||
</style>
|
||||
|
||||
<style name="MainAppTheme.Teal">
|
||||
<item name="colorPrimary">@color/teal_10</item>
|
||||
<item name="colorPrimaryDark">@color/teal_5</item>
|
||||
<item name="colorAccent">@color/teal_100</item>
|
||||
<item name="android:colorPrimary">@color/teal_10</item>
|
||||
<item name="android:colorPrimaryDark">@color/teal_5</item>
|
||||
<item name="android:colorAccent">@color/teal_100</item>
|
||||
<item name="colorPrimaryOffset">@color/teal_50</item>
|
||||
<item name="colorPrimaryDistinct">@color/teal_500</item>
|
||||
<item name="colorBadgeBackground">@color/teal_100</item>
|
||||
<item name="textColorSecondaryDark">@color/teal_500</item>
|
||||
<item name="android:textColorLink">@color/teal_100</item>
|
||||
<item name="textColorPrimaryDark">@color/teal_500</item>
|
||||
<item name="barColor">@color/teal_10</item>
|
||||
<item name="taskFormTint">@color/teal_100</item>
|
||||
</style>
|
||||
|
||||
<style name="MainAppTheme.Blue">
|
||||
<item name="colorPrimary">@color/blue_10</item>
|
||||
<item name="colorPrimaryDark">@color/blue_5</item>
|
||||
<item name="colorAccent">@color/blue_100</item>
|
||||
<item name="android:colorPrimary">@color/blue_10</item>
|
||||
<item name="android:colorPrimaryDark">@color/blue_5</item>
|
||||
<item name="android:colorAccent">@color/blue_100</item>
|
||||
<item name="colorPrimaryOffset">@color/blue_50</item>
|
||||
<item name="colorPrimaryDistinct">@color/blue_500</item>
|
||||
<item name="colorBadgeBackground">@color/blue_100</item>
|
||||
<item name="textColorSecondaryDark">@color/blue_500</item>
|
||||
<item name="android:textColorLink">@color/blue_100</item>
|
||||
<item name="textColorPrimaryDark">@color/blue_500</item>
|
||||
<item name="barColor">@color/blue_10</item>
|
||||
<item name="taskFormTint">@color/blue_100</item>
|
||||
</style>
|
||||
|
||||
<style name="BottomSheetTheme" parent="Theme.AppCompat.NoActionBar">
|
||||
|
|
|
|||
|
|
@ -24,6 +24,7 @@ import java.util.*
|
|||
abstract class BaseActivity : AppCompatActivity() {
|
||||
|
||||
private var currentTheme: String? = null
|
||||
internal var forcedTheme: String? = null
|
||||
private var destroyed: Boolean = false
|
||||
|
||||
protected abstract fun getLayoutResId(): Int
|
||||
|
|
@ -80,12 +81,17 @@ abstract class BaseActivity : AppCompatActivity() {
|
|||
}
|
||||
|
||||
private fun loadTheme(sharedPreferences: SharedPreferences) {
|
||||
val theme = sharedPreferences.getString("theme_name", "purple")
|
||||
val theme = if (forcedTheme != null) {
|
||||
forcedTheme
|
||||
} else {
|
||||
sharedPreferences.getString("theme_name", "purple")
|
||||
}
|
||||
if (theme == currentTheme) return
|
||||
setTheme(when (theme) {
|
||||
"maroon" -> R.style.MainAppTheme_Maroon
|
||||
"red" -> R.style.MainAppTheme_Red
|
||||
"orange" -> R.style.MainAppTheme_Orange
|
||||
"yellow" -> R.style.MainAppTheme_Yellow
|
||||
"green" -> R.style.MainAppTheme_Green
|
||||
"teal" -> R.style.MainAppTheme_Teal
|
||||
"blue" -> R.style.MainAppTheme_Blue
|
||||
|
|
|
|||
|
|
@ -113,6 +113,7 @@ class TaskFormActivity : BaseActivity() {
|
|||
taskDifficultyButtons.tintColor = value
|
||||
habitScoringButtons.tintColor = value
|
||||
habitResetStreakButtons.tintColor = value
|
||||
taskSchedulingControls.tintColor = value
|
||||
supportActionBar?.setBackgroundDrawable(ColorDrawable(value))
|
||||
updateTagViewsColors()
|
||||
}
|
||||
|
|
@ -126,18 +127,33 @@ class TaskFormActivity : BaseActivity() {
|
|||
}
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
val bundle = intent.extras ?: return
|
||||
|
||||
val taskId = bundle.getString(TASK_ID_KEY)
|
||||
forcedTheme = if (taskId != null) {
|
||||
val taskValue = bundle.getDouble(TASK_VALUE_KEY)
|
||||
when {
|
||||
taskValue < -20 -> "maroon"
|
||||
taskValue < -10 -> "red"
|
||||
taskValue < -1 -> "orange"
|
||||
taskValue < 1 -> "yellow"
|
||||
taskValue < 5 -> "green"
|
||||
taskValue < 10 -> "teal"
|
||||
else -> "blue"
|
||||
}
|
||||
} else {
|
||||
"purple"
|
||||
}
|
||||
|
||||
super.onCreate(savedInstanceState)
|
||||
setSupportActionBar(toolbar)
|
||||
supportActionBar?.setDisplayHomeAsUpEnabled(true)
|
||||
supportActionBar?.setDisplayShowHomeEnabled(true)
|
||||
tintColor = getThemeColor(R.attr.colorAccent)
|
||||
|
||||
val bundle = intent.extras ?: return
|
||||
tintColor = getThemeColor(R.attr.taskFormTint)
|
||||
|
||||
isChallengeTask = bundle.getBoolean(IS_CHALLENGE_TASK, false)
|
||||
|
||||
taskType = bundle.getString(TASK_TYPE_KEY) ?: Task.TYPE_HABIT
|
||||
val taskId = bundle.getString(TASK_ID_KEY)
|
||||
preselectedTags = bundle.getStringArrayList(SELECTED_TAGS_KEY)
|
||||
|
||||
compositeSubscription.add(tagRepository.getTags()
|
||||
|
|
@ -465,6 +481,7 @@ class TaskFormActivity : BaseActivity() {
|
|||
companion object {
|
||||
val SELECTED_TAGS_KEY = "selectedTags"
|
||||
const val TASK_ID_KEY = "taskId"
|
||||
const val TASK_VALUE_KEY = "taskValue"
|
||||
const val USER_ID_KEY = "userId"
|
||||
const val TASK_TYPE_KEY = "type"
|
||||
const val IS_CHALLENGE_TASK = "isChallengeTask"
|
||||
|
|
|
|||
|
|
@ -72,7 +72,7 @@ class PreferencesFragment : BasePreferencesFragment(), SharedPreferences.OnShare
|
|||
serverUrlPreference?.summary = preferenceManager.sharedPreferences.getString("server_url", "")
|
||||
val themePreference = findPreference("theme_name") as? ListPreference
|
||||
themePreference?.isVisible = configManager.testingLevel() == AppTestingLevel.ALPHA || BuildConfig.DEBUG
|
||||
themePreference?.summary = preferenceManager.sharedPreferences.getString("theme_name", "")
|
||||
themePreference?.summary = themePreference?.entry
|
||||
}
|
||||
|
||||
override fun onResume() {
|
||||
|
|
|
|||
|
|
@ -324,6 +324,7 @@ open class TaskRecyclerViewFragment : BaseFragment(), androidx.swiperefreshlayou
|
|||
val bundle = Bundle()
|
||||
bundle.putString(TaskFormActivity.TASK_TYPE_KEY, task.type)
|
||||
bundle.putString(TaskFormActivity.TASK_ID_KEY, task.id)
|
||||
bundle.putDouble(TaskFormActivity.TASK_VALUE_KEY, task.value)
|
||||
|
||||
val intent = Intent(activity, TaskFormActivity::class.java)
|
||||
intent.putExtras(bundle)
|
||||
|
|
|
|||
|
|
@ -15,6 +15,7 @@ import androidx.core.content.ContextCompat
|
|||
import com.habitrpg.android.habitica.R
|
||||
import com.habitrpg.android.habitica.extensions.OnChangeTextWatcher
|
||||
import com.habitrpg.android.habitica.extensions.dpToPx
|
||||
import com.habitrpg.android.habitica.extensions.getThemeColor
|
||||
import com.habitrpg.android.habitica.extensions.inflate
|
||||
import com.habitrpg.android.habitica.models.tasks.ChecklistItem
|
||||
import com.habitrpg.android.habitica.ui.helpers.bindView
|
||||
|
|
@ -35,7 +36,7 @@ class ChecklistItemFormView @JvmOverloads constructor(
|
|||
editText.setText(item.text)
|
||||
}
|
||||
|
||||
var tintColor: Int = ContextCompat.getColor(context, R.color.brand_300)
|
||||
var tintColor: Int = context.getThemeColor(R.attr.taskFormTint)
|
||||
var textChangedListener: ((String) -> Unit)? = null
|
||||
var animDuration = 0L
|
||||
var isAddButton: Boolean = true
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@ import android.widget.*
|
|||
import androidx.core.content.ContextCompat
|
||||
import com.habitrpg.android.habitica.R
|
||||
import com.habitrpg.android.habitica.extensions.dpToPx
|
||||
import com.habitrpg.android.habitica.extensions.getThemeColor
|
||||
import com.habitrpg.android.habitica.extensions.inflate
|
||||
import com.habitrpg.android.habitica.models.tasks.RemindersItem
|
||||
import com.habitrpg.android.habitica.models.tasks.Task
|
||||
|
|
@ -45,7 +46,7 @@ class ReminderItemFormView @JvmOverloads constructor(
|
|||
textView.text = formatter.format(item.time)
|
||||
}
|
||||
|
||||
var tintColor: Int = ContextCompat.getColor(context, R.color.brand_300)
|
||||
var tintColor: Int = context.getThemeColor(R.attr.taskFormTint)
|
||||
var valueChangedListener: ((Date) -> Unit)? = null
|
||||
var animDuration = 0L
|
||||
var isAddButton: Boolean = true
|
||||
|
|
|
|||
Loading…
Reference in a new issue