From 10429aee13d5783da75fcefb82ac4c9bae61742b Mon Sep 17 00:00:00 2001 From: Phillip Thelen Date: Thu, 26 Sep 2019 14:35:02 +0200 Subject: [PATCH] Split up subscriptin and gems in menu --- Habitica/res/layout/activity_gem_purchase.xml | 22 +---- Habitica/res/navigation/navigation.xml | 16 +++- Habitica/res/values/strings.sidebar.xml | 3 +- .../ui/activities/GemPurchaseActivity.kt | 80 ++++++------------- .../ui/fragments/NavigationDrawerFragment.kt | 6 +- 5 files changed, 46 insertions(+), 81 deletions(-) diff --git a/Habitica/res/layout/activity_gem_purchase.xml b/Habitica/res/layout/activity_gem_purchase.xml index 08a891c88..5b3229913 100644 --- a/Habitica/res/layout/activity_gem_purchase.xml +++ b/Habitica/res/layout/activity_gem_purchase.xml @@ -17,8 +17,8 @@ android:elevation="0dp" tools:context=".ui.activities.MainActivity"> - - - diff --git a/Habitica/res/navigation/navigation.xml b/Habitica/res/navigation/navigation.xml index 099163fdf..ac984552e 100644 --- a/Habitica/res/navigation/navigation.xml +++ b/Habitica/res/navigation/navigation.xml @@ -131,10 +131,24 @@ android:id="@+id/openMountDetail" app:destination="@id/mountDetailRecyclerFragment" /> + + + + android:label="@string/gem_purchase_toolbartitle"> + + Messages Tavern Party - Gems & Subscription + Gems + Subscription Guilds Challenges Inventory diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/GemPurchaseActivity.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/GemPurchaseActivity.kt index 040b47c0b..909ac99fb 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/GemPurchaseActivity.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/GemPurchaseActivity.kt @@ -6,8 +6,7 @@ import android.os.Bundle import android.util.Log import android.view.MenuItem import androidx.appcompat.widget.Toolbar -import androidx.fragment.app.FragmentPagerAdapter -import com.google.android.material.tabs.TabLayout +import androidx.fragment.app.Fragment import com.habitrpg.android.habitica.HabiticaBaseApplication import com.habitrpg.android.habitica.R import com.habitrpg.android.habitica.components.UserComponent @@ -17,10 +16,8 @@ import com.habitrpg.android.habitica.helpers.PurchaseTypes import com.habitrpg.android.habitica.proxy.CrashlyticsProxy import com.habitrpg.android.habitica.ui.fragments.GemsPurchaseFragment import com.habitrpg.android.habitica.ui.fragments.SubscriptionFragment -import com.habitrpg.android.habitica.ui.helpers.bindView import org.greenrobot.eventbus.Subscribe import org.solovyev.android.checkout.* -import java.util.* import javax.inject.Inject class GemPurchaseActivity : BaseActivity() { @@ -30,10 +27,7 @@ class GemPurchaseActivity : BaseActivity() { @Inject lateinit var userRepository: UserRepository - internal val tabLayout: TabLayout by bindView(R.id.tab_layout) - internal val viewPager: androidx.viewpager.widget.ViewPager by bindView(R.id.viewPager) - - internal var fragments: MutableList = ArrayList() + internal var fragment: CheckoutFragment? = null var isActive = false var activityCheckout: ActivityCheckout? = null private set @@ -52,8 +46,6 @@ class GemPurchaseActivity : BaseActivity() { activityCheckout?.onActivityResult(requestCode, resultCode, data) } - private var showSubscriptionPageFirst = true - override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) @@ -63,16 +55,15 @@ class GemPurchaseActivity : BaseActivity() { supportActionBar?.setDisplayHomeAsUpEnabled(true) supportActionBar?.setDisplayShowHomeEnabled(true) supportActionBar?.setTitle(R.string.gem_purchase_toolbartitle) - - setViewPagerAdapter() - viewPager.currentItem = if (intent.extras?.containsKey("openSubscription") == true) { + + if (intent.extras?.containsKey("openSubscription") == true) { if (intent.extras?.getBoolean("openSubscription") == false) { - 1 + createFragment(false) } else { - 0 + createFragment(true) } } else { - 0 + createFragment(true) } } @@ -101,9 +92,7 @@ class GemPurchaseActivity : BaseActivity() { override fun onReady(billingRequests: BillingRequests) { this@GemPurchaseActivity.billingRequests = billingRequests - for (fragment in fragments) { - fragment.setBillingRequests(billingRequests) - } + fragment?.setBillingRequests(billingRequests) checkIfPendingPurchases() } @@ -143,45 +132,22 @@ class GemPurchaseActivity : BaseActivity() { } - private fun setViewPagerAdapter() { - val fragmentManager = supportFragmentManager - - viewPager.adapter = object : FragmentPagerAdapter(fragmentManager) { - - override fun getItem(position: Int): androidx.fragment.app.Fragment { - val gemPurchasePosition = if (showSubscriptionPageFirst) 1 else 0 - val fragment: CheckoutFragment = if (position == gemPurchasePosition) { - GemsPurchaseFragment() - } else { - SubscriptionFragment() - } - if (fragments.size > position) { - fragments[position] = fragment - } else { - fragments.add(fragment) - } - fragment.setListener(this@GemPurchaseActivity) - fragment.setupCheckout() - if (billingRequests != null) { - fragment.setBillingRequests(billingRequests) - } - return fragment as androidx.fragment.app.Fragment - } - - override fun getCount(): Int { - return 2 - } - - override fun getPageTitle(position: Int): CharSequence? { - val gemPurchasePosition = if (showSubscriptionPageFirst) 1 else 0 - return when (position) { - gemPurchasePosition -> getString(R.string.gems) - else -> getString(R.string.subscriptions) - } - } + private fun createFragment(showSubscription: Boolean) { + val fragment: CheckoutFragment = if (showSubscription) { + SubscriptionFragment() + } else { + GemsPurchaseFragment() } - - tabLayout.setupWithViewPager(viewPager) + fragment.setListener(this@GemPurchaseActivity) + fragment.setupCheckout() + if (billingRequests != null) { + fragment.setBillingRequests(billingRequests) + } + supportFragmentManager + .beginTransaction() + .replace(R.id.fragment_container, fragment as Fragment) + .commit() + this.fragment = fragment } private fun checkIfPendingPurchases() { 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 91b2687fe..e4adeb3aa 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 @@ -259,7 +259,8 @@ class NavigationDrawerFragment : DialogFragment() { items.add(HabiticaDrawerItem(R.id.equipmentOverviewFragment, SIDEBAR_EQUIPMENT, context.getString(R.string.sidebar_equipment))) items.add(HabiticaDrawerItem(R.id.itemsFragment, SIDEBAR_ITEMS, context.getString(R.string.sidebar_items))) items.add(HabiticaDrawerItem(R.id.stableFragment, SIDEBAR_STABLE, context.getString(R.string.sidebar_stable))) - items.add(HabiticaDrawerItem(R.id.gemPurchaseActivity, SIDEBAR_PURCHASE, context.getString(R.string.sidebar_purchaseGems))) + items.add(HabiticaDrawerItem(R.id.subscriptionPurchaseActivity, SIDEBAR_SUBSCRIPTION, context.getString(R.string.sidebar_subscription))) + items.add(HabiticaDrawerItem(R.id.gemPurchaseActivity, SIDEBAR_GEMS, context.getString(R.string.sidebar_gems))) items.add(HabiticaDrawerItem(0, SIDEBAR_ABOUT_HEADER, context.getString(R.string.sidebar_about), true)) items.add(HabiticaDrawerItem(R.id.newsFragment, SIDEBAR_NEWS, context.getString(R.string.sidebar_news))) items.add(HabiticaDrawerItem(R.id.FAQOverviewFragment, SIDEBAR_HELP, context.getString(R.string.sidebar_help))) @@ -424,7 +425,8 @@ class NavigationDrawerFragment : DialogFragment() { const val SIDEBAR_EQUIPMENT = "equipment" const val SIDEBAR_ITEMS = "items" const val SIDEBAR_STABLE = "stable" - const val SIDEBAR_PURCHASE = "purchase" + const val SIDEBAR_GEMS = "gems" + const val SIDEBAR_SUBSCRIPTION = "subscription" const val SIDEBAR_ABOUT_HEADER = "about_header" const val SIDEBAR_NEWS = "news" const val SIDEBAR_HELP = "help"