Deprecated api removed and improved UI

split
Laurent 5 years ago
parent 306b9d80dc
commit 4568acc784
  1. 28
      app/src/main/java/net/pokeranalytics/android/ui/fragment/SubscriptionFragment.kt
  2. 12
      app/src/main/java/net/pokeranalytics/android/ui/fragment/components/BaseFragment.kt

@ -1,10 +1,6 @@
package net.pokeranalytics.android.ui.fragment package net.pokeranalytics.android.ui.fragment
import android.content.Context
import android.graphics.drawable.GradientDrawable import android.graphics.drawable.GradientDrawable
import android.net.ConnectivityManager
import android.net.NetworkCapabilities
import android.net.NetworkInfo
import android.os.Build import android.os.Build
import android.os.Bundle import android.os.Bundle
import android.text.SpannableStringBuilder import android.text.SpannableStringBuilder
@ -34,6 +30,7 @@ import net.pokeranalytics.android.util.Preferences
import net.pokeranalytics.android.util.billing.AppGuard import net.pokeranalytics.android.util.billing.AppGuard
import net.pokeranalytics.android.util.billing.IAPProducts import net.pokeranalytics.android.util.billing.IAPProducts
import net.pokeranalytics.android.util.billing.PurchaseListener import net.pokeranalytics.android.util.billing.PurchaseListener
import timber.log.Timber
import java.lang.ref.WeakReference import java.lang.ref.WeakReference
import java.time.Period import java.time.Period
import java.time.format.DateTimeParseException import java.time.format.DateTimeParseException
@ -72,23 +69,17 @@ class SubscriptionFragment : BaseFragment(), SkuDetailsResponseListener, Purchas
} }
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
val cm = requireContext().getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager AppGuard.registerListener(this)
// val activeNetwork = cm.activeNetworkInfo
// val isConnected = activeNetwork?.isConnected == true
val capability = cm.getNetworkCapabilities(cm.activeNetwork)
val isConnected = capability?.hasCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET) ?: false
if (!isConnected) { if (!isNetworkAvailable()) {
Toast.makeText(requireContext(), R.string.connection_unavailable, Toast.LENGTH_LONG).show() Toast.makeText(requireContext(), R.string.connection_unavailable, Toast.LENGTH_LONG).show()
return return
} }
AppGuard.registerListener(this)
this.showLoader(R.string.loading_please_wait) this.showLoader(R.string.loading_please_wait)
if (!AppGuard.requestProducts(this)) { if (!AppGuard.requestProducts(this)) {
this.hideLoader() this.hideLoader()
@ -157,9 +148,17 @@ class SubscriptionFragment : BaseFragment(), SkuDetailsResponseListener, Purchas
pager.adapter = pagerAdapter pager.adapter = pagerAdapter
pager.addOnPageChangeListener(this) pager.addOnPageChangeListener(this)
purchase.isEnabled = false purchase.isEnabled = true
purchase.setOnClickListener { purchase.setOnClickListener {
val network = isNetworkAvailable()
Timber.d("isNetworkAvailable = $network ")
if (!isNetworkAvailable()) {
Toast.makeText(requireContext(), R.string.connection_unavailable, Toast.LENGTH_LONG).show()
return@setOnClickListener
}
this.selectedProduct?.let { this.selectedProduct?.let {
AppGuard.initiatePurchase(this.requireActivity(), it) AppGuard.initiatePurchase(this.requireActivity(), it)
} ?: run { } ?: run {
@ -231,7 +230,6 @@ class SubscriptionFragment : BaseFragment(), SkuDetailsResponseListener, Purchas
private fun updateUI() { private fun updateUI() {
this.selectedProduct?.let { this.selectedProduct?.let {
binding.purchase.isEnabled = true
val perYearString = requireContext().getString(R.string.year_subscription) val perYearString = requireContext().getString(R.string.year_subscription)
val formattedPrice = it.price + " / " + perYearString val formattedPrice = it.price + " / " + perYearString
binding.price.text = formattedPrice binding.price.text = formattedPrice

@ -1,5 +1,8 @@
package net.pokeranalytics.android.ui.fragment.components package net.pokeranalytics.android.ui.fragment.components
import android.content.Context
import android.net.ConnectivityManager
import android.net.NetworkCapabilities
import android.os.Bundle import android.os.Bundle
import android.view.View import android.view.View
import androidx.appcompat.widget.Toolbar import androidx.appcompat.widget.Toolbar
@ -158,4 +161,13 @@ abstract class BaseFragment : Fragment() {
alternativeLabels) alternativeLabels)
} }
/***
* Returns whether the network is available or not
*/
fun isNetworkAvailable(): Boolean {
val cm = requireContext().getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager
val capability = cm.getNetworkCapabilities(cm.activeNetwork)
return capability?.hasCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET) ?: false
}
} }
Loading…
Cancel
Save