mirror of
https://github.com/sudoxnym/habitica-android.git
synced 2026-05-24 06:35:46 +00:00
Fixes #1557
This commit is contained in:
parent
077d23b380
commit
f0c98743f4
4 changed files with 62 additions and 4 deletions
|
|
@ -21,7 +21,37 @@
|
|||
android:minHeight="?attr/actionBarSize"
|
||||
android:background="?attr/colorContentBackground"
|
||||
app:layout_scrollFlags="scroll|enterAlways"
|
||||
app:popupTheme="@style/ThemeOverlay.AppCompat.Dark"/>
|
||||
style="@style/Toolbar.Modern"
|
||||
app:popupTheme="@style/Theme.AppCompat.DayNight">
|
||||
<RelativeLayout
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_marginEnd="16dp">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/toolbar_title"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_centerVertical="true"
|
||||
android:ellipsize="end"
|
||||
android:maxLines="1"
|
||||
android:singleLine="true"
|
||||
android:layout_toStartOf="@id/toolbar_accessory_container"
|
||||
android:layout_alignParentStart="true"
|
||||
style="@style/TextAppearance.AppCompat.Widget.ActionBar.Title"
|
||||
tools:text="Habitica"/>
|
||||
|
||||
<FrameLayout
|
||||
android:id="@+id/toolbar_accessory_container"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:scaleType="centerCrop"
|
||||
android:adjustViewBounds="true"
|
||||
android:layout_centerVertical="true"
|
||||
android:layout_alignParentEnd="true"/>
|
||||
|
||||
</RelativeLayout>
|
||||
</androidx.appcompat.widget.Toolbar>
|
||||
|
||||
</com.google.android.material.appbar.AppBarLayout>
|
||||
|
||||
|
|
|
|||
|
|
@ -79,7 +79,7 @@
|
|||
<FrameLayout
|
||||
android:id="@+id/toolbar_accessory_container"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:scaleType="centerCrop"
|
||||
android:adjustViewBounds="true"
|
||||
android:layout_centerVertical="true"
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@ import androidx.navigation.navArgs
|
|||
import com.habitrpg.android.habitica.R
|
||||
import com.habitrpg.android.habitica.components.UserComponent
|
||||
import com.habitrpg.android.habitica.data.SocialRepository
|
||||
import com.habitrpg.android.habitica.data.UserRepository
|
||||
import com.habitrpg.android.habitica.databinding.ActivityGiftGemsBinding
|
||||
import com.habitrpg.android.habitica.events.ConsumablePurchasedEvent
|
||||
import com.habitrpg.android.habitica.extensions.addOkButton
|
||||
|
|
@ -19,6 +20,8 @@ import com.habitrpg.android.habitica.helpers.RxErrorHandler
|
|||
import com.habitrpg.android.habitica.proxy.AnalyticsManager
|
||||
import com.habitrpg.android.habitica.ui.fragments.purchases.GiftBalanceGemsFragment
|
||||
import com.habitrpg.android.habitica.ui.fragments.purchases.GiftPurchaseGemsFragment
|
||||
import com.habitrpg.android.habitica.ui.views.CurrencyView
|
||||
import com.habitrpg.android.habitica.ui.views.CurrencyViews
|
||||
import com.habitrpg.android.habitica.ui.views.dialogs.HabiticaAlertDialog
|
||||
import org.greenrobot.eventbus.Subscribe
|
||||
import javax.inject.Inject
|
||||
|
|
@ -27,11 +30,18 @@ class GiftGemsActivity : BaseActivity() {
|
|||
|
||||
private lateinit var binding: ActivityGiftGemsBinding
|
||||
|
||||
internal val currencyView: CurrencyView by lazy {
|
||||
val view = CurrencyView(this, "gems", true)
|
||||
view
|
||||
}
|
||||
|
||||
@Inject
|
||||
lateinit var analyticsManager: AnalyticsManager
|
||||
@Inject
|
||||
lateinit var socialRepository: SocialRepository
|
||||
@Inject
|
||||
lateinit var userRepository: UserRepository
|
||||
@Inject
|
||||
lateinit var appConfigManager: AppConfigManager
|
||||
|
||||
private var purchaseHandler: PurchaseHandler? = null
|
||||
|
|
@ -61,6 +71,8 @@ class GiftGemsActivity : BaseActivity() {
|
|||
|
||||
setTitle(R.string.gift_gems)
|
||||
setSupportActionBar(binding.toolbar)
|
||||
binding.toolbarAccessoryContainer.addView(currencyView)
|
||||
|
||||
|
||||
purchaseHandler = PurchaseHandler(this, analyticsManager)
|
||||
|
||||
|
|
@ -82,6 +94,10 @@ class GiftGemsActivity : BaseActivity() {
|
|||
purchaseFragment?.giftedMember = it
|
||||
balanceFragment?.giftedMember = it
|
||||
}, RxErrorHandler.handleEmptyError()))
|
||||
|
||||
compositeSubscription.add(userRepository.getUser().subscribe({
|
||||
currencyView.value = it.gemCount.toDouble()
|
||||
}, RxErrorHandler.handleEmptyError()))
|
||||
}
|
||||
|
||||
override fun onStart() {
|
||||
|
|
@ -133,7 +149,7 @@ class GiftGemsActivity : BaseActivity() {
|
|||
return 2
|
||||
}
|
||||
|
||||
override fun getPageTitle(position: Int): CharSequence? {
|
||||
override fun getPageTitle(position: Int): CharSequence {
|
||||
return when (position) {
|
||||
0 -> getString(R.string.purchase)
|
||||
1 -> getString(R.string.from_balance)
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@ import android.view.View
|
|||
import android.view.ViewGroup
|
||||
import com.habitrpg.android.habitica.components.UserComponent
|
||||
import com.habitrpg.android.habitica.data.SocialRepository
|
||||
import com.habitrpg.android.habitica.data.UserRepository
|
||||
import com.habitrpg.android.habitica.databinding.FragmentGiftGemBalanceBinding
|
||||
import com.habitrpg.android.habitica.helpers.RxErrorHandler
|
||||
import com.habitrpg.android.habitica.models.members.Member
|
||||
|
|
@ -17,9 +18,13 @@ class GiftBalanceGemsFragment : BaseFragment<FragmentGiftGemBalanceBinding>() {
|
|||
|
||||
@Inject
|
||||
lateinit var socialRepository: SocialRepository
|
||||
@Inject
|
||||
lateinit var userRepository: UserRepository
|
||||
|
||||
override var binding: FragmentGiftGemBalanceBinding? = null
|
||||
|
||||
private var isGifting = false
|
||||
|
||||
override fun createBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentGiftGemBalanceBinding {
|
||||
return FragmentGiftGemBalanceBinding.inflate(inflater, container, false)
|
||||
}
|
||||
|
|
@ -48,10 +53,17 @@ class GiftBalanceGemsFragment : BaseFragment<FragmentGiftGemBalanceBinding>() {
|
|||
}
|
||||
|
||||
private fun sendGift() {
|
||||
if (isGifting) return
|
||||
isGifting = true
|
||||
try {
|
||||
val amount = binding?.giftEditText?.text.toString().toInt()
|
||||
giftedMember?.id?.let {
|
||||
compositeSubscription.add(socialRepository.transferGems(it, amount).subscribe({
|
||||
compositeSubscription.add(socialRepository.transferGems(it, amount)
|
||||
.flatMap { userRepository.retrieveUser(false, true) }
|
||||
.doOnError {
|
||||
isGifting = false
|
||||
}
|
||||
.subscribe({
|
||||
onCompleted?.invoke()
|
||||
}, RxErrorHandler.handleEmptyError()))
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue