From 3cfdf48fe4a5e56fbc96d24601a8261a24d474b2 Mon Sep 17 00:00:00 2001 From: Phillip Thelen Date: Wed, 21 Dec 2022 14:52:36 +0100 Subject: [PATCH] Fix many small issues --- Habitica/res/layout/activity_main_content.xml | 2 +- Habitica/res/layout/activity_task_form.xml | 1 + Habitica/res/layout/subscription_details.xml | 20 +- Habitica/res/navigation/navigation.xml | 11 + Habitica/res/values-night/colors.xml | 1 + Habitica/res/values/strings.xml | 6 + Habitica/res/values/styles.xml | 2048 +++++++++-------- .../helpers/MainNavigationController.kt | 4 + .../habitica/ui/activities/BaseActivity.kt | 1 - .../ui/activities/FullProfileActivity.kt | 2 +- .../ui/fragments/NavigationDrawerFragment.kt | 9 +- .../customization/AvatarOverviewFragment.kt | 141 +- .../EquipmentOverviewFragment.kt | 10 + .../ui/fragments/tasks/TasksFragment.kt | 2 + .../ui/viewHolders/ChatRecyclerViewHolder.kt | 6 +- .../habitica/ui/views/AppHeaderView.kt | 37 +- .../android/habitica/ui/views/CurrencyText.kt | 2 +- .../views/equipment/EquipmentOverviewView.kt | 10 +- .../HabiticaBottomNavigationView.kt | 1 + .../subscriptions/SubscriptionDetailsView.kt | 25 +- .../tasks/form/HabitScoringButtonsView.kt | 2 +- .../views/tasks/form/TaskDifficultyButtons.kt | 2 +- .../habitica/helpers/NumberAbbreviator.kt | 2 +- common/src/main/res/values/colors.xml | 3 + common/src/main/res/values/strings.xml | 4 + version.properties | 2 +- 26 files changed, 1241 insertions(+), 1113 deletions(-) create mode 100644 Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/customization/EquipmentOverviewFragment.kt diff --git a/Habitica/res/layout/activity_main_content.xml b/Habitica/res/layout/activity_main_content.xml index a575dd7e5..803ea4575 100644 --- a/Habitica/res/layout/activity_main_content.xml +++ b/Habitica/res/layout/activity_main_content.xml @@ -63,7 +63,7 @@ android:maxLines="1" android:singleLine="true" android:layout_alignParentStart="true" - style="@style/TextAppearance.AppCompat.Widget.ActionBar.Title" + style="@style/ToolbarTitle" tools:text="Habitica" android:background="@drawable/teams_title_bg" android:paddingHorizontal="@dimen/spacing_large" diff --git a/Habitica/res/layout/activity_task_form.xml b/Habitica/res/layout/activity_task_form.xml index c0d324029..102ab012e 100644 --- a/Habitica/res/layout/activity_task_form.xml +++ b/Habitica/res/layout/activity_task_form.xml @@ -17,6 +17,7 @@ android:layout_height="wrap_content" android:minHeight="?attr/actionBarSize" android:theme="@style/Toolbar" + style="@style/ToolbarTitleStyle" app:layout_scrollFlags="scroll|enterAlways" app:popupTheme="@style/ThemeOverlay.AppCompat.Dark"/> diff --git a/Habitica/res/layout/subscription_details.xml b/Habitica/res/layout/subscription_details.xml index 2e1674e8f..228baf133 100644 --- a/Habitica/res/layout/subscription_details.xml +++ b/Habitica/res/layout/subscription_details.xml @@ -171,8 +171,9 @@ android:layout_height="wrap_content" android:text="@string/months_subscribed" android:gravity="center" - android:fontFamily="sans-serif-medium" - android:textColor="@color/text_secondary"/> + android:fontFamily="sans-serif" + android:textStyle="bold" + android:textSize="12sp"/> + android:fontFamily="sans-serif" + android:textStyle="bold" + android:textSize="12sp"/> @@ -210,18 +212,20 @@ android:layout_height="wrap_content"> diff --git a/Habitica/res/navigation/navigation.xml b/Habitica/res/navigation/navigation.xml index 1379c226f..3e7cadb5b 100644 --- a/Habitica/res/navigation/navigation.xml +++ b/Habitica/res/navigation/navigation.xml @@ -124,6 +124,17 @@ android:id="@+id/openEquipmentDetail" app:destination="@id/equipmentDetailFragment" /> + + + + @color/brand_400 @color/brand_400 + @color/white @color/gray_600 @color/gray_500 @color/gray_400 diff --git a/Habitica/res/values/strings.xml b/Habitica/res/values/strings.xml index e4e655bf1..5ba2d3c47 100644 --- a/Habitica/res/values/strings.xml +++ b/Habitica/res/values/strings.xml @@ -1287,6 +1287,12 @@ Status Regular Access Message flagged %d times. + Amazon + Apple Pay + Google Pay + PayPal + Stripe + Shadow muted, hidden You You, %d other diff --git a/Habitica/res/values/styles.xml b/Habitica/res/values/styles.xml index 2c7df74cd..044d6aea9 100644 --- a/Habitica/res/values/styles.xml +++ b/Habitica/res/values/styles.xml @@ -1,1019 +1,1031 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/MainNavigationController.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/MainNavigationController.kt index a5d4089c1..34debe48a 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/MainNavigationController.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/MainNavigationController.kt @@ -26,6 +26,10 @@ object MainNavigationController { this.controllerReference = WeakReference(navController) } + fun updateLabel(destinationID: Int, label: String) { + navController?.findDestination(destinationID)?.label = label + } + fun navigate(transactionId: Int, args: Bundle? = null) { if (abs((lastNavigation?.time ?: 0) - Date().time) > 500) { lastNavigation = Date() diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/BaseActivity.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/BaseActivity.kt index 8f112448c..9c937752e 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/BaseActivity.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/BaseActivity.kt @@ -158,7 +158,6 @@ abstract class BaseActivity : AppCompatActivity() { "green" -> R.style.MainAppTheme_Green "teal" -> R.style.MainAppTheme_Teal "blue" -> R.style.MainAppTheme_Blue - "taskform" -> R.style.MainAppTheme_TaskForm else -> R.style.MainAppTheme } ) diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/FullProfileActivity.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/FullProfileActivity.kt index ad1ea0e88..a81db69e3 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/FullProfileActivity.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/FullProfileActivity.kt @@ -127,7 +127,7 @@ class FullProfileActivity : BaseActivity() { binding.blockedDisclaimerView.visibility = if (isUserBlocked()) View.VISIBLE else View.GONE - isModerator = it?.hasPermission(Permission.USER_SUPPORT) == true + isModerator = it?.hasPermission(Permission.MODERATOR) == true binding.adminStatusView.isVisible = isModerator if (isModerator) { val member = socialRepository.retrieveMember(userID, true) diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/NavigationDrawerFragment.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/NavigationDrawerFragment.kt index 9a4415b15..2e8ff7f6f 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/NavigationDrawerFragment.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/NavigationDrawerFragment.kt @@ -428,7 +428,14 @@ class NavigationDrawerFragment : DialogFragment() { HabiticaDrawerItem( R.id.avatarOverviewFragment, SIDEBAR_AVATAR, - context.getString(R.string.sidebar_avatar_equipment) + context.getString(R.string.sidebar_avatar) + ) + ) + items.add( + HabiticaDrawerItem( + R.id.equipmentOverviewFragment, + SIDEBAR_EQUIPMENT, + context.getString(R.string.sidebar_equipment) ) ) items.add( diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/customization/AvatarOverviewFragment.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/customization/AvatarOverviewFragment.kt index a2befc053..0b6ea96b1 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/customization/AvatarOverviewFragment.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/customization/AvatarOverviewFragment.kt @@ -34,7 +34,7 @@ import com.habitrpg.android.habitica.ui.views.EquipmentOverviewView import com.habitrpg.android.habitica.ui.views.SegmentedControl import javax.inject.Inject -class AvatarOverviewFragment : BaseMainFragment(), +open class AvatarOverviewFragment : BaseMainFragment(), AdapterView.OnItemSelectedListener { @Inject @@ -42,6 +42,8 @@ class AvatarOverviewFragment : BaseMainFragment override var binding: FragmentComposeScrollingBinding? = null + protected var showCustomization = true + override fun createBinding( inflater: LayoutInflater, container: ViewGroup? @@ -59,7 +61,9 @@ class AvatarOverviewFragment : BaseMainFragment setViewCompositionStrategy(ViewCompositionStrategy.DisposeOnViewTreeLifecycleDestroyed) setContent { HabiticaTheme { - AvatarOverviewView(userViewModel, { type, category -> + AvatarOverviewView(userViewModel, + showCustomization, !showCustomization, + { type, category -> displayCustomizationFragment(type, category) }, { type, equipped, isCostume -> displayEquipmentFragment(type, equipped, isCostume) @@ -101,6 +105,8 @@ class AvatarOverviewFragment : BaseMainFragment @Composable fun AvatarOverviewView(userViewModel: MainUserViewModel, + showCustomization: Boolean = true, + showEquipment: Boolean = true, onCustomizationTap: (String, String?) -> Unit, onEquipmentTap: (String, String?, Boolean) -> Unit ) { @@ -109,65 +115,82 @@ fun AvatarOverviewView(userViewModel: MainUserViewModel, Modifier .padding(horizontal = 8.dp) .padding(bottom = 16.dp)) { - Row(Modifier.padding(horizontal = 12.dp, vertical = 15.dp), - verticalAlignment = Alignment.CenterVertically) { - Text( - stringResource(R.string.avatar_size), - style = HabiticaTheme.typography.subtitle2, - color = HabiticaTheme.colors.textSecondary - ) - Spacer(modifier = Modifier.weight(1f)) - SegmentedControl(items = listOf(stringResource(R.string.avatar_size_slim), stringResource(R.string.avatar_size_broad - )), defaultSelectedItemIndex = if (user?.preferences?.size == "slim") 0 else 1, onItemSelection = { - userViewModel.updateUser("preferences.size", if (it == 0) "slim" else "broad") - }) + if (showCustomization) { + Row( + Modifier.padding(horizontal = 12.dp, vertical = 15.dp), + verticalAlignment = Alignment.CenterVertically + ) { + Text( + stringResource(R.string.avatar_size), + style = HabiticaTheme.typography.subtitle2, + color = HabiticaTheme.colors.textSecondary + ) + Spacer(modifier = Modifier.weight(1f)) + SegmentedControl(items = listOf( + stringResource(R.string.avatar_size_slim), stringResource( + R.string.avatar_size_broad + ) + ), + defaultSelectedItemIndex = if (user?.preferences?.size == "slim") 0 else 1, + onItemSelection = { + userViewModel.updateUser( + "preferences.size", + if (it == 0) "slim" else "broad" + ) + }) + } + AvatarCustomizationOverviewView(user?.preferences, onCustomizationTap) } - AvatarCustomizationOverviewView(user?.preferences, onCustomizationTap) - Row( - Modifier - .padding(horizontal = 12.dp) - .padding(top = 15.dp), - verticalAlignment = Alignment.CenterVertically) { - Text(stringResource(R.string.equipped), style = HabiticaTheme.typography.subtitle2, - color = HabiticaTheme.colors.textSecondary) - Spacer(modifier = Modifier.weight(1f)) - Text( - stringResource(R.string.equip_automatically), - style = HabiticaTheme.typography.body2, - color = HabiticaTheme.colors.textPrimary - ) - Switch(checked = user?.preferences?.autoEquip == true, onCheckedChange = { - userViewModel.updateUser("preferences.autoEquip", it) - }) - } - EquipmentOverviewView(user?.items?.gear?.equipped, { type, equipped -> - onEquipmentTap(type, equipped, false) - }) - Row( - Modifier - .padding(horizontal = 12.dp) - .padding(top = 15.dp), - verticalAlignment = Alignment.CenterVertically - ) { - Text( - stringResource(R.string.costume), - style = HabiticaTheme.typography.subtitle2, - color = HabiticaTheme.colors.textSecondary - ) - Spacer(modifier = Modifier.weight(1f)) - Text( - stringResource(R.string.wear_costume), - style = HabiticaTheme.typography.body2, - color = HabiticaTheme.colors.textPrimary - ) - Switch(checked = user?.preferences?.costume == true, onCheckedChange = { - userViewModel.updateUser("preferences.costume", it) - }) - } - AnimatedVisibility(visible = user?.preferences?.costume == true) { - EquipmentOverviewView(user?.items?.gear?.costume, { type, equipped -> - onEquipmentTap(type, equipped, true) + if (showEquipment) { + Row( + Modifier + .padding(horizontal = 12.dp) + .padding(top = 15.dp), + verticalAlignment = Alignment.CenterVertically + ) { + Text( + stringResource(R.string.equipped), style = HabiticaTheme.typography.subtitle2, + color = HabiticaTheme.colors.textSecondary + ) + Spacer(modifier = Modifier.weight(1f)) + Text( + stringResource(R.string.equip_automatically), + style = HabiticaTheme.typography.body2, + color = HabiticaTheme.colors.textPrimary + ) + Switch(checked = user?.preferences?.autoEquip == true, onCheckedChange = { + userViewModel.updateUser("preferences.autoEquip", it) + }) + } + EquipmentOverviewView(user?.items?.gear?.equipped, { type, equipped -> + onEquipmentTap(type, equipped, false) }) + Row( + Modifier + .padding(horizontal = 12.dp) + .padding(top = 15.dp), + verticalAlignment = Alignment.CenterVertically + ) { + Text( + stringResource(R.string.costume), + style = HabiticaTheme.typography.subtitle2, + color = HabiticaTheme.colors.textSecondary + ) + Spacer(modifier = Modifier.weight(1f)) + Text( + stringResource(R.string.wear_costume), + style = HabiticaTheme.typography.body2, + color = HabiticaTheme.colors.textPrimary + ) + Switch(checked = user?.preferences?.costume == true, onCheckedChange = { + userViewModel.updateUser("preferences.costume", it) + }) + } + AnimatedVisibility(visible = user?.preferences?.costume == true) { + EquipmentOverviewView(user?.items?.gear?.costume, { type, equipped -> + onEquipmentTap(type, equipped, true) + }) + } } } } \ No newline at end of file diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/customization/EquipmentOverviewFragment.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/customization/EquipmentOverviewFragment.kt new file mode 100644 index 000000000..6c2b7b01e --- /dev/null +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/customization/EquipmentOverviewFragment.kt @@ -0,0 +1,10 @@ +package com.habitrpg.android.habitica.ui.fragments.inventory.customization + +import android.os.Bundle + +class EquipmentOverviewFragment : AvatarOverviewFragment() { + override fun onCreate(savedInstanceState: Bundle?) { + showCustomization = false + super.onCreate(savedInstanceState) + } +} \ No newline at end of file diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/tasks/TasksFragment.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/tasks/TasksFragment.kt index 7957e3f65..cfa976006 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/tasks/TasksFragment.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/tasks/TasksFragment.kt @@ -26,6 +26,7 @@ import com.habitrpg.android.habitica.components.UserComponent import com.habitrpg.android.habitica.databinding.FragmentViewpagerBinding import com.habitrpg.android.habitica.extensions.setTintWith import com.habitrpg.android.habitica.helpers.AmplitudeManager +import com.habitrpg.android.habitica.helpers.MainNavigationController import com.habitrpg.android.habitica.helpers.launchCatching import com.habitrpg.android.habitica.ui.activities.TaskFormActivity import com.habitrpg.android.habitica.ui.fragments.BaseMainFragment @@ -420,6 +421,7 @@ class TasksFragment : BaseMainFragment(), SearchView.O private fun updateBoardDisplay() { if (viewModel.ownerTitle.isNotBlank()) { activity?.title = viewModel.ownerTitle + MainNavigationController.updateLabel(R.id.tasksFragment, viewModel.ownerTitle.toString()) } viewModel.userViewModel.currentTeamPlan.value = viewModel.teamPlans[viewModel.ownerID.value] lifecycleScope.launchCatching { diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewHolders/ChatRecyclerViewHolder.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewHolders/ChatRecyclerViewHolder.kt index da19135d9..3043d3b6a 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewHolders/ChatRecyclerViewHolder.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewHolders/ChatRecyclerViewHolder.kt @@ -212,7 +212,11 @@ class ChatRecyclerMessageViewHolder( } if ((chatMessage?.flagCount ?: 0) > 0) { - binding.flagCountTextview.text = context.getString(R.string.message_flagged, (chatMessage?.flagCount ?: 0)) + binding.flagCountTextview.text = if (chatMessage?.flagCount == 10) { + context.getString(R.string.shadow_muted_hidden) + } else { + context.resources.getQuantityString(R.plurals.flagged_count, (chatMessage?.flagCount ?: 0)) + } binding.flagCountTextview.isVisible = true if (chatMessage?.flagCount == 1) { binding.flagCountTextview.setTextColor(ContextCompat.getColor(context, R.color.text_orange)) diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/AppHeaderView.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/AppHeaderView.kt index 89c0c9bd1..b15384319 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/AppHeaderView.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/AppHeaderView.kt @@ -228,20 +228,33 @@ fun AppHeaderView( ClassIcon(className = user?.stats?.habitClass, hasClass = user?.hasClass ?: false, modifier = Modifier.padding(4.dp)) user?.let { UserLevelText(it) } Spacer(Modifier.weight(1f)) - if (user is User && user.isSubscribed) { + if (user is User) { + if (user.isSubscribed) { + CurrencyText( + "hourglasses", + user.hourglassCount.toDouble(), + modifier = Modifier + .padding(end = 12.dp) + .clickable { + MainNavigationController.navigate(R.id.subscriptionPurchaseActivity) + }, decimals = 0 + ) + } CurrencyText( - "hourglasses", - user.hourglassCount.toDouble(), - modifier = Modifier - .padding(end = 12.dp) - .clickable { - MainNavigationController.navigate(R.id.subscriptionPurchaseActivity) - }, decimals = 0) + "gold", + user?.stats?.gp ?: 0.0, + modifier = Modifier.padding(end = 12.dp), + decimals = 0 + ) + CurrencyText( + "gems", + user?.gemCount?.toDouble() ?: 0.0, + modifier = Modifier.clickable { + MainNavigationController.navigate(R.id.gemPurchaseActivity) + }, + decimals = 0 + ) } - CurrencyText("gold", user?.stats?.gp ?: 0.0, modifier = Modifier.padding(end = 12.dp), decimals = 0) - CurrencyText("gems", user?.gemCount?.toDouble() ?: 0.0, modifier = Modifier.clickable { - MainNavigationController.navigate(R.id.gemPurchaseActivity) - }, decimals = 0) } } } diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/CurrencyText.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/CurrencyText.kt index 2c4a4e32b..bbf37d22c 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/CurrencyText.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/CurrencyText.kt @@ -22,7 +22,7 @@ fun CurrencyText( currency: String, value: Double, modifier: Modifier = Modifier, - decimals: Int = 2, + decimals: Int = 0, minForAbbrevation: Int = 0, animated: Boolean = true ) { diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/equipment/EquipmentOverviewView.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/equipment/EquipmentOverviewView.kt index 2928f2560..2efa75606 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/equipment/EquipmentOverviewView.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/equipment/EquipmentOverviewView.kt @@ -192,10 +192,16 @@ fun AvatarCustomizationOverviewView( Row(horizontalArrangement = Arrangement.SpaceBetween, modifier = Modifier.fillMaxWidth()) { OverviewItem( stringResource(R.string.avatar_wheelchair), - preferences?.chair?.let { if (it.startsWith("handleless")) "chair_$it" else it }) + preferences?.chair?.let { if (it.startsWith("handleless")) "chair_$it" else it }, + Modifier.clickable { + onCustomizationTap("chair", null) + }) OverviewItem( stringResource(R.string.avatar_background), - preferences?.background.let { "background_$it" }) + preferences?.background.let { "background_$it" }, + Modifier.clickable { + onCustomizationTap("background", null) + }) Box(Modifier.size(70.dp)) Box(Modifier.size(70.dp)) } diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/navigation/HabiticaBottomNavigationView.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/navigation/HabiticaBottomNavigationView.kt index 03e3d67fd..a41101502 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/navigation/HabiticaBottomNavigationView.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/navigation/HabiticaBottomNavigationView.kt @@ -65,6 +65,7 @@ class HabiticaBottomNavigationView @JvmOverloads constructor( set(value) { if (field == value) return field = value + binding.addButton.isEnabled = value val animator = ObjectAnimator.ofFloat(0f, 1.0f) if (field) { binding.addButtonBackground.animate() diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/subscriptions/SubscriptionDetailsView.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/subscriptions/SubscriptionDetailsView.kt index 561c335ab..aa5542b0a 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/subscriptions/SubscriptionDetailsView.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/subscriptions/SubscriptionDetailsView.kt @@ -79,11 +79,26 @@ class SubscriptionDetailsView : LinearLayout { } when (plan.paymentMethod) { - "Amazon Payments" -> binding.paymentProcessorImageView.setImageResource(R.drawable.payment_amazon) - "Apple" -> binding.paymentProcessorImageView.setImageResource(R.drawable.payment_apple) - "Google" -> binding.paymentProcessorImageView.setImageResource(R.drawable.payment_google) - "PayPal" -> binding.paymentProcessorImageView.setImageResource(R.drawable.payment_paypal) - "Stripe" -> binding.paymentProcessorImageView.setImageResource(R.drawable.payment_stripe) + "Amazon Payments" -> { + binding.paymentProcessorImageView.setImageResource(R.drawable.payment_amazon) + binding.subscriptionPaymentMethodTextview.text = context.getString(R.string.amazon) + } + "Apple" -> { + binding.paymentProcessorImageView.setImageResource(R.drawable.payment_apple) + binding.subscriptionPaymentMethodTextview.text = context.getString(R.string.apple_pay) + } + "Google" -> { + binding.paymentProcessorImageView.setImageResource(R.drawable.payment_google) + binding.subscriptionPaymentMethodTextview.text = context.getString(R.string.google_pay) + } + "PayPal" -> { + binding.paymentProcessorImageView.setImageResource(R.drawable.payment_paypal) + binding.subscriptionPaymentMethodTextview.text = context.getString(R.string.paypal) + } + "Stripe" -> { + binding.paymentProcessorImageView.setImageResource(R.drawable.payment_stripe) + binding.subscriptionPaymentMethodTextview.text = context.getString(R.string.stripe_payment) + } else -> { if (plan.isGiftedSub) { binding.paymentProcessorImageView.setImageResource(R.drawable.payment_gift) diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/tasks/form/HabitScoringButtonsView.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/tasks/form/HabitScoringButtonsView.kt index 1ba7edea0..f957feb1b 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/tasks/form/HabitScoringButtonsView.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/tasks/form/HabitScoringButtonsView.kt @@ -84,7 +84,7 @@ private fun HabitScoringSelection( if (it) Color(context.getThemeColor(R.attr.colorTintedBackground)) else colorResource(R.color.text_dimmed) } val textColor = selectedState.animateColor { - if (it) MaterialTheme.colors.primary else colorResource(R.color.text_secondary) + if (it) MaterialTheme.colors.primary else colorResource(R.color.text_ternary) } val borderColor = selectedState.animateColor { if (it) MaterialTheme.colors.primary else colorResource(R.color.text_dimmed) diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/tasks/form/TaskDifficultyButtons.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/tasks/form/TaskDifficultyButtons.kt index ea38382e3..bfdb4dbea 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/tasks/form/TaskDifficultyButtons.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/tasks/form/TaskDifficultyButtons.kt @@ -82,7 +82,7 @@ private fun TaskDifficultySelection( if (it) Color(context.getThemeColor(R.attr.colorTintedBackground)) else MaterialTheme.colors.primary } val textColor = selectedState.animateColor { - if (it) MaterialTheme.colors.primary else colorResource(R.color.text_secondary) + if (it) MaterialTheme.colors.primary else colorResource(R.color.text_ternary) } Column(horizontalAlignment = Alignment.CenterHorizontally, verticalArrangement = Arrangement.spacedBy(6.dp), modifier = modifier) { Box( diff --git a/common/src/main/java/com/habitrpg/common/habitica/helpers/NumberAbbreviator.kt b/common/src/main/java/com/habitrpg/common/habitica/helpers/NumberAbbreviator.kt index 317babbbd..050acfaf4 100644 --- a/common/src/main/java/com/habitrpg/common/habitica/helpers/NumberAbbreviator.kt +++ b/common/src/main/java/com/habitrpg/common/habitica/helpers/NumberAbbreviator.kt @@ -12,7 +12,7 @@ object NumberAbbreviator { } fun abbreviate(context: Context?, number: Double, numberOfDecimals: Int = 2, minForAbbrevation: Int = 0): String { - val decimalCount = if (number > -1 && number < 1 && numberOfDecimals == 0) 1 else numberOfDecimals + val decimalCount = if (number != 0.0 && number > -1 && number < 1 && numberOfDecimals == 0) 1 else numberOfDecimals var usedNumber = number var counter = 0 while (usedNumber >= 1000 && number >= minForAbbrevation) { diff --git a/common/src/main/res/values/colors.xml b/common/src/main/res/values/colors.xml index a6bc60c39..bd871cd19 100644 --- a/common/src/main/res/values/colors.xml +++ b/common/src/main/res/values/colors.xml @@ -95,6 +95,7 @@ #794b00 #7f3300 + #30283D #3D2828 #3D2828 #28373D @@ -103,6 +104,7 @@ #3D3528 #3D3028 + #201C26 #261C1C #261C1C #191D21 @@ -115,6 +117,7 @@ @color/yellow_100 @color/blue_100 + @color/gray_50 @color/gray_50 @color/gray_100 @color/gray_200 diff --git a/common/src/main/res/values/strings.xml b/common/src/main/res/values/strings.xml index f41d9112f..85de45c26 100644 --- a/common/src/main/res/values/strings.xml +++ b/common/src/main/res/values/strings.xml @@ -65,6 +65,10 @@ %d Reward %d Rewards + + Flagged %d tim2 + Flagged %d times, hidden + Create a Task Complete a Task Create %s diff --git a/version.properties b/version.properties index 50e2eef34..70bad34fa 100644 --- a/version.properties +++ b/version.properties @@ -1,2 +1,2 @@ NAME=4.1 -CODE=4891 \ No newline at end of file +CODE=4901 \ No newline at end of file