IJPL-164093 Record the last time when New Terminal was disabled

It will be necessary later to decide whether we should forcefully enable New Terminal for this used or not.

GitOrigin-RevId: 57d046fdfc97753b3774fef099600cc2bad2ddb8
This commit is contained in:
Konstantin Hudyakov
2024-10-14 15:57:09 +03:00
committed by intellij-monorepo-bot
parent cbc107c458
commit f96973771f
3 changed files with 13 additions and 0 deletions

View File

@@ -36,6 +36,7 @@ import com.intellij.util.ui.SwingHelper;
import com.intellij.util.ui.UIUtil;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.plugins.terminal.block.BlockTerminalOptions;
import org.jetbrains.plugins.terminal.block.TerminalUsageLocalStorage;
import org.jetbrains.plugins.terminal.block.feedback.BlockTerminalFeedbackSurveyKt;
import org.jetbrains.plugins.terminal.block.prompt.TerminalPromptStyle;
import org.jetbrains.plugins.terminal.fus.BlockTerminalSwitchPlace;
@@ -222,6 +223,7 @@ public final class TerminalSettingsPanel {
TerminalUsageTriggerCollector.triggerBlockTerminalSwitched$intellij_terminal(myProject, myNewUiCheckbox.isSelected(),
BlockTerminalSwitchPlace.SETTINGS);
if (!myNewUiCheckbox.isSelected()) {
TerminalUsageLocalStorage.getInstance().recordBlockTerminalDisabled();
ApplicationManager.getApplication().invokeLater(() -> {
BlockTerminalFeedbackSurveyKt.showBlockTerminalFeedbackNotification(myProject);
}, ModalityState.nonModal());

View File

@@ -12,6 +12,7 @@ import com.intellij.ui.ExperimentalUI
import org.jetbrains.plugins.terminal.LocalBlockTerminalRunner
import org.jetbrains.plugins.terminal.TerminalBundle
import org.jetbrains.plugins.terminal.TerminalToolWindowManager
import org.jetbrains.plugins.terminal.block.TerminalUsageLocalStorage
import org.jetbrains.plugins.terminal.block.feedback.showBlockTerminalFeedbackNotification
import org.jetbrains.plugins.terminal.fus.BlockTerminalSwitchPlace
import org.jetbrains.plugins.terminal.fus.TerminalUsageTriggerCollector
@@ -23,11 +24,16 @@ internal class EnableBlockTerminalUiAction : DumbAwareToggleAction(TerminalBundl
override fun setSelected(e: AnActionEvent, state: Boolean) {
Registry.get(LocalBlockTerminalRunner.BLOCK_TERMINAL_REGISTRY).setValue(state)
val project = e.project!!
TerminalUsageTriggerCollector.triggerBlockTerminalSwitched(project, state, BlockTerminalSwitchPlace.TOOLWINDOW_OPTIONS)
if (!state) {
TerminalUsageLocalStorage.getInstance().recordBlockTerminalDisabled()
showBlockTerminalFeedbackNotification(project)
}
TerminalToolWindowManager.getInstance(project).createNewSession()
}

View File

@@ -30,6 +30,10 @@ internal class TerminalUsageLocalStorage : PersistentStateComponent<TerminalUsag
state.blockTerminalUsedLastTimeMillis = System.currentTimeMillis()
}
fun recordBlockTerminalDisabled() {
state.blockTerminalDisabledLastTimeMillis = System.currentTimeMillis()
}
override fun getState(): State = state
override fun loadState(state: State) {
@@ -42,6 +46,7 @@ internal class TerminalUsageLocalStorage : PersistentStateComponent<TerminalUsag
var feedbackNotificationShown: Boolean = false
var blockTerminalUsedLastVersion: String? = null
var blockTerminalUsedLastTimeMillis: Long = 0
var blockTerminalDisabledLastTimeMillis: Long = 0
}
companion object {