mirror of
https://gitlab.futo.org/videostreaming/grayjay.git
synced 2025-09-18 15:32:35 +00:00
Added view license in settings.
This commit is contained in:
parent
c959b973fc
commit
8208f92802
6 changed files with 42 additions and 19 deletions
|
@ -900,7 +900,23 @@ class Settings : FragmentedStorageFileJson() {
|
||||||
@FormField(R.string.payment_status, FieldForm.READONLYTEXT, -1, 1)
|
@FormField(R.string.payment_status, FieldForm.READONLYTEXT, -1, 1)
|
||||||
val paymentStatus: String get() = SettingsActivity.getActivity()?.let { if (StatePayment.instance.hasPaid) it.getString(R.string.paid) else it.getString(R.string.not_paid); } ?: "Unknown";
|
val paymentStatus: String get() = SettingsActivity.getActivity()?.let { if (StatePayment.instance.hasPaid) it.getString(R.string.paid) else it.getString(R.string.not_paid); } ?: "Unknown";
|
||||||
|
|
||||||
@FormField(R.string.clear_payment, FieldForm.BUTTON, R.string.deletes_license_keys_from_app, 2)
|
@FormField(R.string.license_status, FieldForm.BUTTON, R.string.view_license_status, 2)
|
||||||
|
fun viewLicenseStatus() {
|
||||||
|
SettingsActivity.getActivity()?.let {
|
||||||
|
try {
|
||||||
|
if (StatePayment.instance.hasPaid) {
|
||||||
|
val paymentKey = StatePayment.instance.getPaymentKey()
|
||||||
|
UIDialogs.showDialogOk(it, R.drawable.ic_paid, "License activated\n" + paymentKey.first)
|
||||||
|
} else {
|
||||||
|
UIDialogs.showDialogOk(it, R.drawable.ic_paid, "No license activated")
|
||||||
|
}
|
||||||
|
} catch (e: Throwable) {
|
||||||
|
Logger.e(TAG, "Failed to show license status dialog", e)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@FormField(R.string.clear_payment, FieldForm.BUTTON, R.string.deletes_license_keys_from_app, 3)
|
||||||
fun clearPayment() {
|
fun clearPayment() {
|
||||||
SettingsActivity.getActivity()?.let { context ->
|
SettingsActivity.getActivity()?.let { context ->
|
||||||
UIDialogs.showConfirmationDialog(context, "Are you sure you want to delete your license?", {
|
UIDialogs.showConfirmationDialog(context, "Are you sure you want to delete your license?", {
|
||||||
|
|
|
@ -184,7 +184,7 @@ class MainActivity : AppCompatActivity, IWithResultLauncher {
|
||||||
lateinit var _fragVideoDetail: VideoDetailFragment;
|
lateinit var _fragVideoDetail: VideoDetailFragment;
|
||||||
|
|
||||||
//State
|
//State
|
||||||
private val _queue: Queue<Pair<MainFragment, Any?>> = LinkedList();
|
private val _queue: LinkedList<Pair<MainFragment, Any?>> = LinkedList();
|
||||||
lateinit var fragCurrent: MainFragment private set;
|
lateinit var fragCurrent: MainFragment private set;
|
||||||
private var _parameterCurrent: Any? = null;
|
private var _parameterCurrent: Any? = null;
|
||||||
|
|
||||||
|
@ -1184,7 +1184,6 @@ class MainActivity : AppCompatActivity, IWithResultLauncher {
|
||||||
if (segment.isOverlay && !fragCurrent.isOverlay && withHistory)// && fragCurrent.isHistory)
|
if (segment.isOverlay && !fragCurrent.isOverlay && withHistory)// && fragCurrent.isHistory)
|
||||||
fragBeforeOverlay = fragCurrent;
|
fragBeforeOverlay = fragCurrent;
|
||||||
|
|
||||||
|
|
||||||
fragCurrent = segment;
|
fragCurrent = segment;
|
||||||
_parameterCurrent = parameter;
|
_parameterCurrent = parameter;
|
||||||
}
|
}
|
||||||
|
|
|
@ -23,7 +23,7 @@ open class MainActivityFragment : Fragment() {
|
||||||
fun navigate(frag: MainFragment, parameter: Any? = null, withHistory: Boolean = true) {
|
fun navigate(frag: MainFragment, parameter: Any? = null, withHistory: Boolean = true) {
|
||||||
val a = activity
|
val a = activity
|
||||||
if (a is MainActivity)
|
if (a is MainActivity)
|
||||||
(activity as MainActivity).navigate(frag, parameter, withHistory)
|
(activity as MainActivity).navigate(frag, parameter, withHistory, false)
|
||||||
else
|
else
|
||||||
Log.e(TAG, "Failed to navigate due to activity not being a main activity.")
|
Log.e(TAG, "Failed to navigate due to activity not being a main activity.")
|
||||||
}
|
}
|
||||||
|
|
|
@ -330,7 +330,7 @@ class MenuBottomBarFragment : MainActivityFragment() {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!StatePayment.instance.hasPaid) {
|
if (!StatePayment.instance.hasPaid) {
|
||||||
newCurrentButtonDefinitions.add(ButtonDefinition(98, R.drawable.ic_paid, R.drawable.ic_paid_filled, R.string.buy, canToggle = false, { it.currentMain is BuyFragment }, { it.navigate<BuyFragment>(withHistory = false) }))
|
newCurrentButtonDefinitions.add(ButtonDefinition(98, R.drawable.ic_paid, R.drawable.ic_paid_filled, R.string.buy, canToggle = false, { it.currentMain is BuyFragment }, { it.navigate<BuyFragment>(withHistory = true) }))
|
||||||
}
|
}
|
||||||
|
|
||||||
//Add conditional buttons here, when you add a conditional button, be sure to add the register and unregister events for when the button needs to be updated
|
//Add conditional buttons here, when you add a conditional button, be sure to add the register and unregister events for when the button needs to be updated
|
||||||
|
@ -396,7 +396,7 @@ class MenuBottomBarFragment : MainActivityFragment() {
|
||||||
ButtonDefinition(9, R.drawable.ic_subscriptions, R.drawable.ic_subscriptions_filled, R.string.subscription_group_menu, canToggle = true, { it.currentMain is SubscriptionGroupListFragment }, { it.navigate<SubscriptionGroupListFragment>(withHistory = false) }),
|
ButtonDefinition(9, R.drawable.ic_subscriptions, R.drawable.ic_subscriptions_filled, R.string.subscription_group_menu, canToggle = true, { it.currentMain is SubscriptionGroupListFragment }, { it.navigate<SubscriptionGroupListFragment>(withHistory = false) }),
|
||||||
ButtonDefinition(10, R.drawable.ic_help_square, R.drawable.ic_help_square_fill, R.string.tutorials, canToggle = true, { it.currentMain is TutorialFragment }, { it.navigate<TutorialFragment>(withHistory = false) }),
|
ButtonDefinition(10, R.drawable.ic_help_square, R.drawable.ic_help_square_fill, R.string.tutorials, canToggle = true, { it.currentMain is TutorialFragment }, { it.navigate<TutorialFragment>(withHistory = false) }),
|
||||||
ButtonDefinition(7, R.drawable.ic_settings, R.drawable.ic_settings_filled, R.string.settings, canToggle = false, { false }, {
|
ButtonDefinition(7, R.drawable.ic_settings, R.drawable.ic_settings_filled, R.string.settings, canToggle = false, { false }, {
|
||||||
val c = it.context ?: return@ButtonDefinition;
|
val c = it.context ?: return@ButtonDefinition;
|
||||||
Logger.i(TAG, "settings preventPictureInPicture()");
|
Logger.i(TAG, "settings preventPictureInPicture()");
|
||||||
it.requireFragment<VideoDetailFragment>().preventPictureInPicture();
|
it.requireFragment<VideoDetailFragment>().preventPictureInPicture();
|
||||||
val intent = Intent(c, SettingsActivity::class.java);
|
val intent = Intent(c, SettingsActivity::class.java);
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
package com.futo.platformplayer.fragment.mainactivity.main
|
package com.futo.platformplayer.fragment.mainactivity.main
|
||||||
|
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
|
import android.os.Handler
|
||||||
|
import android.os.Looper
|
||||||
import android.view.LayoutInflater
|
import android.view.LayoutInflater
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import android.view.ViewGroup
|
import android.view.ViewGroup
|
||||||
|
@ -66,8 +68,7 @@ class BuyFragment : MainFragment() {
|
||||||
|
|
||||||
_paymentManager = PaymentManager(StatePayment.instance, fragment, _overlayPaying) { success, _, exception ->
|
_paymentManager = PaymentManager(StatePayment.instance, fragment, _overlayPaying) { success, _, exception ->
|
||||||
if(success) {
|
if(success) {
|
||||||
UIDialogs.showDialog(context, R.drawable.ic_check, context.getString(R.string.payment_succeeded), context.getString(R.string.thanks_for_your_purchase_a_key_will_be_sent_to_your_email_after_your_payment_has_been_received), null, 0,
|
UIDialogs.showDialog(context, R.drawable.ic_check, context.getString(R.string.payment_succeeded), context.getString(R.string.thanks_for_your_purchase_a_key_will_be_sent_to_your_email_after_your_payment_has_been_received), null, 0, UIDialogs.Action("Ok", {}, UIDialogs.ActionStyle.PRIMARY));
|
||||||
UIDialogs.Action("Ok", {}, UIDialogs.ActionStyle.PRIMARY));
|
|
||||||
_fragment.close(true);
|
_fragment.close(true);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
@ -115,11 +116,14 @@ class BuyFragment : MainFragment() {
|
||||||
val licenseInput = SlideUpMenuTextInput(context, context.getString(R.string.license));
|
val licenseInput = SlideUpMenuTextInput(context, context.getString(R.string.license));
|
||||||
val productLicenseDialog = SlideUpMenuOverlay(context, findViewById<FrameLayout>(R.id.overlay_paid), context.getString(R.string.enter_license_key), context.getString(R.string.ok), true, licenseInput);
|
val productLicenseDialog = SlideUpMenuOverlay(context, findViewById<FrameLayout>(R.id.overlay_paid), context.getString(R.string.enter_license_key), context.getString(R.string.ok), true, licenseInput);
|
||||||
productLicenseDialog.onOK.subscribe {
|
productLicenseDialog.onOK.subscribe {
|
||||||
|
licenseInput.deactivate();
|
||||||
val licenseText = licenseInput.text;
|
val licenseText = licenseInput.text;
|
||||||
if (licenseText.isNullOrEmpty()) {
|
if (licenseText.isNullOrEmpty()) {
|
||||||
UIDialogs.showDialogOk(context, R.drawable.ic_error_pred, context.getString(R.string.invalid_license_key));
|
UIDialogs.showDialogOk(context, R.drawable.ic_error_pred, context.getString(R.string.invalid_license_key));
|
||||||
return@subscribe;
|
return@subscribe;
|
||||||
}
|
}
|
||||||
|
licenseInput.clear();
|
||||||
|
productLicenseDialog.hide(true);
|
||||||
|
|
||||||
_fragment.lifecycleScope.launch(Dispatchers.IO) {
|
_fragment.lifecycleScope.launch(Dispatchers.IO) {
|
||||||
|
|
||||||
|
@ -127,17 +131,18 @@ class BuyFragment : MainFragment() {
|
||||||
val activationResult = StatePayment.instance.setPaymentLicense(licenseText);
|
val activationResult = StatePayment.instance.setPaymentLicense(licenseText);
|
||||||
|
|
||||||
withContext(Dispatchers.Main) {
|
withContext(Dispatchers.Main) {
|
||||||
if(activationResult) {
|
try {
|
||||||
licenseInput.deactivate();
|
if(activationResult) {
|
||||||
licenseInput.clear();
|
UIDialogs.showDialogOk(context, R.drawable.ic_check, context.getString(R.string.your_license_key_has_been_set_an_app_restart_might_be_required)) {
|
||||||
productLicenseDialog.hide(true);
|
_fragment.close(true)
|
||||||
|
}
|
||||||
UIDialogs.showDialogOk(context, R.drawable.ic_check, context.getString(R.string.your_license_key_has_been_set_an_app_restart_might_be_required));
|
}
|
||||||
_fragment.close(true);
|
else
|
||||||
}
|
{
|
||||||
else
|
UIDialogs.showDialogOk(context, R.drawable.ic_error_pred, context.getString(R.string.invalid_license_key));
|
||||||
{
|
}
|
||||||
UIDialogs.showDialogOk(context, R.drawable.ic_error_pred, context.getString(R.string.invalid_license_key));
|
} catch (e: Throwable) {
|
||||||
|
Logger.e(TAG, "Failed to update UI after buy complete", e)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -158,5 +163,6 @@ class BuyFragment : MainFragment() {
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
fun newInstance() = BuyFragment().apply {}
|
fun newInstance() = BuyFragment().apply {}
|
||||||
|
private val TAG = "BuyFragment"
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -442,6 +442,8 @@
|
||||||
<string name="show_home_filters_plugin_names_description">If home filters should show full plugin names or just icons</string>
|
<string name="show_home_filters_plugin_names_description">If home filters should show full plugin names or just icons</string>
|
||||||
<string name="log_level">Log Level</string>
|
<string name="log_level">Log Level</string>
|
||||||
<string name="logging">Logging</string>
|
<string name="logging">Logging</string>
|
||||||
|
<string name="license_status">License status</string>
|
||||||
|
<string name="view_license_status">View license status</string>
|
||||||
<string name="sync_grayjay">Sync Grayjay</string>
|
<string name="sync_grayjay">Sync Grayjay</string>
|
||||||
<string name="sync_grayjay_description">Sync your data across multiple devices</string>
|
<string name="sync_grayjay_description">Sync your data across multiple devices</string>
|
||||||
<string name="manage_polycentric_identity">Manage Polycentric identity</string>
|
<string name="manage_polycentric_identity">Manage Polycentric identity</string>
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue