summaryrefslogtreecommitdiffstats
path: root/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/viewholder/PremiumViewHolder.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/viewholder/PremiumViewHolder.java')
-rw-r--r--src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/viewholder/PremiumViewHolder.java57
1 files changed, 57 insertions, 0 deletions
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/viewholder/PremiumViewHolder.java b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/viewholder/PremiumViewHolder.java
new file mode 100644
index 000000000..1f862b281
--- /dev/null
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/viewholder/PremiumViewHolder.java
@@ -0,0 +1,57 @@
+package org.yuzu.yuzu_emu.features.settings.ui.viewholder;
+
+import android.view.View;
+import android.widget.TextView;
+
+import org.yuzu.yuzu_emu.R;
+import org.yuzu.yuzu_emu.features.settings.model.view.SettingsItem;
+import org.yuzu.yuzu_emu.features.settings.ui.SettingsAdapter;
+import org.yuzu.yuzu_emu.features.settings.ui.SettingsFragmentView;
+import org.yuzu.yuzu_emu.ui.main.MainActivity;
+
+public final class PremiumViewHolder extends SettingViewHolder {
+ private TextView mHeaderName;
+ private TextView mTextDescription;
+ private SettingsFragmentView mView;
+
+ public PremiumViewHolder(View itemView, SettingsAdapter adapter, SettingsFragmentView view) {
+ super(itemView, adapter);
+ mView = view;
+ itemView.setOnClickListener(this);
+ }
+
+ @Override
+ protected void findViews(View root) {
+ mHeaderName = root.findViewById(R.id.text_setting_name);
+ mTextDescription = root.findViewById(R.id.text_setting_description);
+ }
+
+ @Override
+ public void bind(SettingsItem item) {
+ updateText();
+ }
+
+ @Override
+ public void onClick(View clicked) {
+ if (MainActivity.isPremiumActive()) {
+ return;
+ }
+
+ // Invoke billing flow if Premium is not already active, then refresh the UI to indicate
+ // the purchase has completed.
+ MainActivity.invokePremiumBilling(() -> updateText());
+ }
+
+ /**
+ * Update the text shown to the user, based on whether Premium is active
+ */
+ private void updateText() {
+ if (MainActivity.isPremiumActive()) {
+ mHeaderName.setText(R.string.premium_settings_welcome);
+ mTextDescription.setText(R.string.premium_settings_welcome_description);
+ } else {
+ mHeaderName.setText(R.string.premium_settings_upsell);
+ mTextDescription.setText(R.string.premium_settings_upsell_description);
+ }
+ }
+}