This commit is contained in:
Phillip Thelen 2021-06-08 16:54:30 +02:00
parent 077d23b380
commit f0c98743f4
4 changed files with 62 additions and 4 deletions

View file

@ -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>

View file

@ -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"

View file

@ -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)

View file

@ -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()))
}