package be.mygod.vpnhotspot import android.content.DialogInterface import android.os.Bundle import android.os.Parcelable import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import android.view.ViewStub import android.widget.ArrayAdapter import android.widget.Button import android.widget.Spinner import androidx.annotation.StringRes import androidx.appcompat.app.AlertDialog import androidx.appcompat.app.AppCompatDialogFragment import be.mygod.vpnhotspot.util.launchUrl import be.mygod.vpnhotspot.widget.SmartSnackbar import com.android.billingclient.api.* import kotlinx.android.parcel.Parcelize import timber.log.Timber /** * Based on: https://github.com/PrivacyApps/donations/blob/747d36a18433c7e9329691054122a8ad337a62d2/Donations/src/main/java/org/sufficientlysecure/donations/DonationsFragment.java */ class EBegFragment : AppCompatDialogFragment(), PurchasesUpdatedListener, BillingClientStateListener, SkuDetailsResponseListener, ConsumeResponseListener { @Parcelize data class MessageArg(@StringRes val title: Int, @StringRes val message: Int) : Parcelable class MessageDialogFragment : AlertDialogFragment() { override fun AlertDialog.Builder.prepare(listener: DialogInterface.OnClickListener) { setTitle(arg.title) setMessage(arg.message) setNeutralButton(R.string.donations__button_close, null) } } private lateinit var billingClient: BillingClient private lateinit var googleSpinner: Spinner private var skus: MutableList? = null set(value) { field = value googleSpinner.apply { val adapter = ArrayAdapter(context ?: return, android.R.layout.simple_spinner_item, value?.map { it.price } ?: listOf("…")) adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item) setAdapter(adapter) } } override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View = inflater.inflate(R.layout.fragment_ebeg, container, false) override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) dialog!!.setTitle(R.string.settings_misc_donate) googleSpinner = view.findViewById(R.id.donations__google_android_market_spinner) onBillingServiceDisconnected() view.findViewById