From d1c1617bcfaea70735ea51e8c2e59355fc9ad32a Mon Sep 17 00:00:00 2001 From: Phillip Thelen Date: Mon, 25 Jul 2022 16:21:03 +0200 Subject: [PATCH] fiiixxesssss --- .../res/layout/customization_section_footer.xml | 3 ++- Habitica/res/layout/dialog_hatch_pet_button.xml | 4 +++- .../habitica/ui/activities/DeathActivity.kt | 6 +++--- .../ui/adapter/CustomizationRecyclerViewAdapter.kt | 14 +++++++++++++- .../customization/AvatarCustomizationFragment.kt | 8 +++++++- .../habitica/ui/viewHolders/SectionViewHolder.kt | 2 ++ .../ui/views/tasks/form/ReminderItemFormView.kt | 9 +++++---- 7 files changed, 35 insertions(+), 11 deletions(-) diff --git a/Habitica/res/layout/customization_section_footer.xml b/Habitica/res/layout/customization_section_footer.xml index fb5c3987c..3a01e8159 100644 --- a/Habitica/res/layout/customization_section_footer.xml +++ b/Habitica/res/layout/customization_section_footer.xml @@ -4,7 +4,7 @@ android:layout_height="wrap_content" xmlns:tools="http://schemas.android.com/tools"> \ No newline at end of file diff --git a/Habitica/res/layout/dialog_hatch_pet_button.xml b/Habitica/res/layout/dialog_hatch_pet_button.xml index 1fa18d8aa..534f6d62b 100644 --- a/Habitica/res/layout/dialog_hatch_pet_button.xml +++ b/Habitica/res/layout/dialog_hatch_pet_button.xml @@ -3,10 +3,11 @@ xmlns:app="http://schemas.android.com/apk/res-auto" android:orientation="horizontal" android:layout_width="wrap_content" + android:minWidth="220dp" android:layout_height="60dp" android:background="@drawable/button_background_primary" android:gravity="center" - android:padding="6dp"> + android:paddingHorizontal="6dp"> \ No newline at end of file diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/DeathActivity.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/DeathActivity.kt index 358ab7c21..0d88b5123 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/DeathActivity.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/DeathActivity.kt @@ -14,12 +14,12 @@ import com.habitrpg.android.habitica.extensions.fromHtml import com.habitrpg.android.habitica.extensions.observeOnce import com.habitrpg.android.habitica.helpers.AdHandler import com.habitrpg.android.habitica.helpers.AdType -import com.habitrpg.common.habitica.helpers.Animations import com.habitrpg.android.habitica.helpers.AppConfigManager import com.habitrpg.android.habitica.helpers.RxErrorHandler import com.habitrpg.android.habitica.ui.viewmodels.MainUserViewModel -import com.habitrpg.android.habitica.ui.views.ads.AdButton import com.habitrpg.android.habitica.ui.views.HabiticaIconsHelper +import com.habitrpg.android.habitica.ui.views.ads.AdButton +import com.habitrpg.common.habitica.helpers.Animations import com.plattysoft.leonids.ParticleSystem import javax.inject.Inject @@ -105,7 +105,7 @@ class DeathActivity: BaseActivity() { .setSpeedRange(0.01f, 0.03f) .setFadeOut(4000, AccelerateInterpolator()) .setSpeedModuleAndAngleRange(0.01f, 0.03f, startAngle, startAngle+80) - .emit(550, 690, 3, 6000) + .emit(550, 670, 3, 6000) } diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/CustomizationRecyclerViewAdapter.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/CustomizationRecyclerViewAdapter.kt index 9e06994b9..28a2506d6 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/CustomizationRecyclerViewAdapter.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/CustomizationRecyclerViewAdapter.kt @@ -16,6 +16,7 @@ import com.habitrpg.android.habitica.models.inventory.CustomizationSet import com.habitrpg.android.habitica.models.shops.ShopItem import com.habitrpg.android.habitica.ui.views.dialogs.HabiticaAlertDialog import com.habitrpg.android.habitica.ui.views.shops.PurchaseDialog +import com.habitrpg.common.habitica.extensions.dpToPx import com.habitrpg.common.habitica.extensions.loadImage import com.habitrpg.common.habitica.models.Avatar import com.habitrpg.common.habitica.views.AvatarView @@ -24,6 +25,7 @@ import io.reactivex.rxjava3.core.Flowable import io.reactivex.rxjava3.subjects.PublishSubject import java.util.Date import java.util.EnumMap +import kotlin.math.min class CustomizationRecyclerViewAdapter() : androidx.recyclerview.widget.RecyclerView.Adapter() { @@ -31,7 +33,8 @@ class CustomizationRecyclerViewAdapter() : androidx.recyclerview.widget.Recycler var hairColor: String? = null var avatar: Avatar? = null var customizationType: String? = null - var gemBalance: Int = 0 + var gemBalance = 0 + var columnCount = 1 var unsortedCustomizations: List = ArrayList() private var customizationList: MutableList = ArrayList() var additionalSetItems: List = ArrayList() @@ -79,6 +82,7 @@ class CustomizationRecyclerViewAdapter() : androidx.recyclerview.widget.Recycler (holder as SectionViewHolder).bind(obj as CustomizationSet) } else if (getItemViewType(position) == 1) { (holder as SectionFooterViewHolder).bind(obj as CustomizationSet) + holder.buttonWidth = (min(columnCount, obj.customizations.size) * 76.dpToPx(holder.itemView.context)) } else { (holder as CustomizationViewHolder).bind(customizationList[position] as Customization) } @@ -255,6 +259,14 @@ class CustomizationRecyclerViewAdapter() : androidx.recyclerview.widget.Recycler var context: Context = itemView.context private var set: CustomizationSet? = null + var buttonWidth: Int + get() = binding.purchaseSetButton.width + set(value) { + val params = binding.purchaseSetButton.layoutParams + params.width = value + binding.purchaseSetButton.layoutParams = params + } + init { binding.purchaseSetButton.setOnClickListener(this) } diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/customization/AvatarCustomizationFragment.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/customization/AvatarCustomizationFragment.kt index 56088fbf2..e6c2e795f 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/customization/AvatarCustomizationFragment.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/customization/AvatarCustomizationFragment.kt @@ -11,6 +11,7 @@ import android.view.View import android.view.ViewGroup import android.widget.CheckBox import androidx.core.content.ContextCompat +import androidx.core.view.doOnLayout import androidx.swiperefreshlayout.widget.SwipeRefreshLayout import com.google.android.flexbox.AlignItems import com.google.android.flexbox.FlexDirection.ROW @@ -22,7 +23,6 @@ import com.habitrpg.android.habitica.data.CustomizationRepository import com.habitrpg.android.habitica.data.InventoryRepository import com.habitrpg.android.habitica.databinding.BottomSheetBackgroundsFilterBinding import com.habitrpg.android.habitica.databinding.FragmentRefreshRecyclerviewBinding -import com.habitrpg.common.habitica.extensions.getThemeColor import com.habitrpg.android.habitica.extensions.setTintWith import com.habitrpg.android.habitica.helpers.RxErrorHandler import com.habitrpg.android.habitica.models.CustomizationFilter @@ -35,6 +35,8 @@ import com.habitrpg.android.habitica.ui.helpers.MarginDecoration import com.habitrpg.android.habitica.ui.helpers.SafeDefaultItemAnimator import com.habitrpg.android.habitica.ui.viewmodels.MainUserViewModel import com.habitrpg.android.habitica.ui.views.dialogs.HabiticaBottomSheetDialog +import com.habitrpg.common.habitica.extensions.dpToPx +import com.habitrpg.common.habitica.extensions.getThemeColor import io.reactivex.rxjava3.core.BackpressureStrategy import io.reactivex.rxjava3.kotlin.combineLatest import io.reactivex.rxjava3.subjects.BehaviorSubject @@ -120,6 +122,10 @@ class AvatarCustomizationFragment : userViewModel.user.observe(viewLifecycleOwner) { updateUser(it) } currentFilter.onNext(CustomizationFilter()) + + binding?.recyclerView?.doOnLayout { + adapter.columnCount = it.width / (80.dpToPx(context)) + } } override fun onDestroy() { diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewHolders/SectionViewHolder.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewHolders/SectionViewHolder.kt index 2df51c4c4..d1e4c021e 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewHolders/SectionViewHolder.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewHolders/SectionViewHolder.kt @@ -1,6 +1,7 @@ package com.habitrpg.android.habitica.ui.viewHolders import android.content.Context +import android.view.Gravity import android.view.View import android.view.ViewGroup import android.widget.AdapterView @@ -61,6 +62,7 @@ class SectionViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { } else { countPill?.visibility = View.VISIBLE } + label.gravity = Gravity.START countPill?.text = itemView.context.getString(R.string.pet_ownership_fraction, section.ownedCount, section.totalCount) } diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/tasks/form/ReminderItemFormView.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/tasks/form/ReminderItemFormView.kt index 2a3a179b4..b6a40935a 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/tasks/form/ReminderItemFormView.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/tasks/form/ReminderItemFormView.kt @@ -16,10 +16,10 @@ import android.widget.TimePicker import androidx.core.content.ContextCompat import com.habitrpg.android.habitica.R import com.habitrpg.android.habitica.databinding.TaskFormReminderItemBinding +import com.habitrpg.android.habitica.models.tasks.RemindersItem import com.habitrpg.common.habitica.extensions.dpToPx import com.habitrpg.common.habitica.extensions.getThemeColor import com.habitrpg.common.habitica.extensions.layoutInflater -import com.habitrpg.android.habitica.models.tasks.RemindersItem import com.habitrpg.common.habitica.models.tasks.TaskType import java.text.DateFormat import java.time.ZonedDateTime @@ -114,11 +114,12 @@ class ReminderItemFormView @JvmOverloads constructor( ) timePickerDialog.show() } else { + val zonedDateTime = (item.getZonedDateTime() ?: ZonedDateTime.now()) val timePickerDialog = DatePickerDialog( context, this, - ZonedDateTime.now().year, - ZonedDateTime.now().monthValue, - ZonedDateTime.now().dayOfMonth + zonedDateTime.year, + zonedDateTime.monthValue - 1, + zonedDateTime.dayOfMonth ) if ((firstDayOfWeek ?: -1) >= 0) { timePickerDialog.datePicker.firstDayOfWeek = firstDayOfWeek ?: 0