diff --git a/app/src/foss/java/net/vonforst/evmap/fragment/DonateFragment.kt b/app/src/foss/java/net/vonforst/evmap/fragment/DonateFragment.kt index 6499cd3c..78f69d02 100644 --- a/app/src/foss/java/net/vonforst/evmap/fragment/DonateFragment.kt +++ b/app/src/foss/java/net/vonforst/evmap/fragment/DonateFragment.kt @@ -12,9 +12,11 @@ import com.google.android.material.transition.MaterialSharedAxis import net.vonforst.evmap.MapsActivity import net.vonforst.evmap.R import net.vonforst.evmap.databinding.FragmentDonateBinding +import net.vonforst.evmap.databinding.FragmentDonateReferralBinding -class DonateFragment : Fragment() { +class DonateFragment : DonateFragmentBase() { private lateinit var binding: FragmentDonateBinding + private lateinit var referrals: FragmentDonateReferralBinding override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) @@ -28,6 +30,7 @@ class DonateFragment : Fragment() { savedInstanceState: Bundle? ): View { binding = FragmentDonateBinding.inflate(inflater, container, false) + referrals = binding.referrals return binding.root } @@ -43,8 +46,6 @@ class DonateFragment : Fragment() { (activity as? MapsActivity)?.openUrl(getString(R.string.paypal_link)) } - binding.referrals.referralTesla.setOnClickListener { - (requireActivity() as MapsActivity).openUrl(getString(R.string.tesla_referral_link)) - } + setupReferrals(referrals) } } \ No newline at end of file diff --git a/app/src/google/java/net/vonforst/evmap/fragment/DonateFragment.kt b/app/src/google/java/net/vonforst/evmap/fragment/DonateFragment.kt index 04b7286f..51eea2d2 100644 --- a/app/src/google/java/net/vonforst/evmap/fragment/DonateFragment.kt +++ b/app/src/google/java/net/vonforst/evmap/fragment/DonateFragment.kt @@ -6,9 +6,7 @@ import android.view.View import android.view.ViewGroup import androidx.appcompat.app.AppCompatActivity import androidx.databinding.DataBindingUtil -import androidx.fragment.app.Fragment import androidx.fragment.app.viewModels -import androidx.lifecycle.Observer import androidx.navigation.fragment.findNavController import androidx.navigation.ui.setupWithNavController import androidx.recyclerview.widget.ConcatAdapter @@ -25,7 +23,7 @@ import net.vonforst.evmap.databinding.FragmentDonateHeaderBinding import net.vonforst.evmap.databinding.FragmentDonateReferralBinding import net.vonforst.evmap.viewmodel.DonateViewModel -class DonateFragment : Fragment() { +class DonateFragment : DonateFragmentBase() { private lateinit var binding: FragmentDonateBinding private val vm: DonateViewModel by viewModels() private lateinit var header: FragmentDonateHeaderBinding @@ -86,12 +84,7 @@ class DonateFragment : Fragment() { Snackbar.make(view, R.string.donation_failed, Snackbar.LENGTH_LONG).show() } - referrals.referralTesla.setOnClickListener { - (requireActivity() as MapsActivity).openUrl(getString(R.string.tesla_referral_link)) - } - referrals.referralJuicify.setOnClickListener { - (requireActivity() as MapsActivity).openUrl(getString(R.string.juicify_referral_link)) - } + setupReferrals(referrals) // Workaround for AndroidX bug: https://github.com/material-components/material-components-android/issues/1984 view.setBackgroundColor(MaterialColors.getColor(view, android.R.attr.windowBackground)) diff --git a/app/src/main/java/net/vonforst/evmap/Utils.kt b/app/src/main/java/net/vonforst/evmap/Utils.kt index a2be7432..0eedd096 100644 --- a/app/src/main/java/net/vonforst/evmap/Utils.kt +++ b/app/src/main/java/net/vonforst/evmap/Utils.kt @@ -9,10 +9,14 @@ import android.icu.util.LocaleData import android.icu.util.ULocale import android.os.Build import android.os.Bundle -import android.text.* +import android.text.Spannable +import android.text.SpannableString +import android.text.SpannableStringBuilder +import android.text.SpannedString +import android.text.TextUtils import android.text.style.StyleSpan import net.vonforst.evmap.storage.PreferenceDataSource -import java.util.* +import java.util.Locale fun Bundle.optDouble(name: String): Double? { if (!this.containsKey(name)) return null diff --git a/app/src/main/java/net/vonforst/evmap/fragment/DonateFragmentBase.kt b/app/src/main/java/net/vonforst/evmap/fragment/DonateFragmentBase.kt new file mode 100644 index 00000000..14914ede --- /dev/null +++ b/app/src/main/java/net/vonforst/evmap/fragment/DonateFragmentBase.kt @@ -0,0 +1,26 @@ +package net.vonforst.evmap.fragment + +import androidx.fragment.app.Fragment +import net.vonforst.evmap.MapsActivity +import net.vonforst.evmap.R +import net.vonforst.evmap.databinding.FragmentDonateReferralBinding + +abstract class DonateFragmentBase : Fragment() { + fun setupReferrals(referrals: FragmentDonateReferralBinding) { + referrals.referralTesla.setOnClickListener { + (requireActivity() as MapsActivity).openUrl(getString(R.string.tesla_referral_link)) + } + referrals.referralJuicify.setOnClickListener { + (requireActivity() as MapsActivity).openUrl(getString(R.string.juicify_referral_link)) + } + referrals.referralGeldfuereauto.setOnClickListener { + (requireActivity() as MapsActivity).openUrl(getString(R.string.geldfuereauto_referral_link)) + } + referrals.referralMaingau.setOnClickListener { + (requireActivity() as MapsActivity).openUrl(getString(R.string.maingau_referral_link)) + } + referrals.referralEwieeinfach.setOnClickListener { + (requireActivity() as MapsActivity).openUrl(getString(R.string.ewieeinfach_referral_link)) + } + } +} \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_donate_referral.xml b/app/src/main/res/layout/fragment_donate_referral.xml index e3d7c229..04865b21 100644 --- a/app/src/main/res/layout/fragment_donate_referral.xml +++ b/app/src/main/res/layout/fragment_donate_referral.xml @@ -38,7 +38,7 @@ android:layout_width="0dp" android:layout_height="wrap_content" android:orientation="horizontal" - app:constraint_referenced_ids="referral_tesla,referral_juicify" + app:constraint_referenced_ids="referral_tesla,referral_juicify,referral_geldfuereauto,referral_maingau,referral_ewieeinfach" app:flow_horizontalGap="16dp" app:flow_horizontalStyle="packed" app:flow_verticalAlign="baseline" @@ -61,4 +61,25 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/referral_juicify" /> + +