From b87ae55b2d50e280f486b5ffc475d68c04117cfc Mon Sep 17 00:00:00 2001 From: Timur Aliberdov Date: Tue, 7 Oct 2025 19:50:34 +0200 Subject: [PATCH] IJPL-184018, IJPL-199342: add a Builder for SubscriptionExpirationSettings class GitOrigin-RevId: 375cd003361a27c0b853eb016dc7e7beab12792f --- .../ide/ui/SubscriptionExpirationDialog.kt | 49 +++++++++++++++++-- 1 file changed, 46 insertions(+), 3 deletions(-) diff --git a/platform/platform-impl/src/com/intellij/ide/ui/SubscriptionExpirationDialog.kt b/platform/platform-impl/src/com/intellij/ide/ui/SubscriptionExpirationDialog.kt index 5e994518ec22..a674a726920a 100644 --- a/platform/platform-impl/src/com/intellij/ide/ui/SubscriptionExpirationDialog.kt +++ b/platform/platform-impl/src/com/intellij/ide/ui/SubscriptionExpirationDialog.kt @@ -150,11 +150,54 @@ class SubscriptionExpirationDialog(project: Project?, private val settings: Subs } @Internal -data class SubscriptionExpirationSettings( +class SubscriptionExpirationSettings( val isEvaluation: Boolean, val showPromise: Boolean, val showExtendTrial: Boolean, val showContinueWithoutSubscription: Boolean, val showRemDevHint: Boolean, - @param:Nls val errorMessage: String? -) \ No newline at end of file + @param:Nls val errorMessage: String?, +) { + @Internal + class Builder { + private var isEvaluation: Boolean = false + private var showPromise: Boolean = false + private var showExtendTrial: Boolean = false + private var showContinueWithoutSubscription: Boolean = false + private var showRemDevHint: Boolean = false + + @Nls + private var errorMessage: String? = null + + @JvmOverloads + fun evaluation(isEvaluation: Boolean = true): Builder = apply { this.isEvaluation = isEvaluation } + + @JvmOverloads + fun showPromise(show: Boolean = true): Builder = apply { this.showPromise = show } + + @JvmOverloads + fun showExtendTrial(show: Boolean = true): Builder = apply { this.showExtendTrial = show } + + @JvmOverloads + fun showContinueWithoutSubscription(show: Boolean = true): Builder = apply { this.showContinueWithoutSubscription = show } + + @JvmOverloads + fun showRemDevHint(show: Boolean = true): Builder = apply { this.showRemDevHint = show } + + fun showErrorMessage(@Nls message: String): Builder = apply { this.errorMessage = message } + + fun build(): SubscriptionExpirationSettings = SubscriptionExpirationSettings( + isEvaluation = isEvaluation, + showPromise = showPromise, + showExtendTrial = showExtendTrial, + showContinueWithoutSubscription = showContinueWithoutSubscription, + showRemDevHint = showRemDevHint, + errorMessage = errorMessage, + ) + } + + companion object { + @JvmStatic + fun builder(): Builder = Builder() + } +}