From 5a73440a00c793ece7102cb98cb37811440bdd31 Mon Sep 17 00:00:00 2001 From: "Vassiliy.Kudryashov" Date: Thu, 14 Dec 2017 22:13:52 +0300 Subject: [PATCH] GDPR support: menu action for Data Sharing Options --- .../ide/actions/DataSharingOptionsAction.java | 39 +++++++++++++++++++ .../src/idea/PlatformActions.xml | 1 + 2 files changed, 40 insertions(+) create mode 100644 platform/platform-impl/src/com/intellij/ide/actions/DataSharingOptionsAction.java diff --git a/platform/platform-impl/src/com/intellij/ide/actions/DataSharingOptionsAction.java b/platform/platform-impl/src/com/intellij/ide/actions/DataSharingOptionsAction.java new file mode 100644 index 000000000000..7c8a2011b164 --- /dev/null +++ b/platform/platform-impl/src/com/intellij/ide/actions/DataSharingOptionsAction.java @@ -0,0 +1,39 @@ +/* + * Copyright 2000-2017 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. + */ +package com.intellij.ide.actions; + +import com.intellij.ide.gdpr.Consent; +import com.intellij.ide.gdpr.ConsentOptions; +import com.intellij.openapi.actionSystem.AnActionEvent; +import com.intellij.openapi.diagnostic.Logger; +import com.intellij.openapi.project.DumbAwareAction; +import com.intellij.openapi.util.Pair; +import com.intellij.ui.AppUIUtil; + +import java.util.Collection; + +public class DataSharingOptionsAction extends DumbAwareAction { + public DataSharingOptionsAction() { + super("Data Sharing Options...", "Data Sharing Options", null); + } + + @Override + public void update(AnActionEvent e) { + e.getPresentation().setEnabledAndVisible(!ConsentOptions.getConsents().first.isEmpty()); + } + + @Override + public void actionPerformed(AnActionEvent e) { + final Pair, Boolean> consentsToShow = ConsentOptions.getConsents(); + try { + final Collection result = AppUIUtil.confirmConsentOptions(consentsToShow.first); + if (result != null) { + ConsentOptions.setConsents(result); + } + } + catch (Exception ex) { + Logger.getInstance(DataSharingOptionsAction.class).warn(ex); + } + } +} diff --git a/platform/platform-resources/src/idea/PlatformActions.xml b/platform/platform-resources/src/idea/PlatformActions.xml index 87f0bc8549ba..94161e3932ff 100644 --- a/platform/platform-resources/src/idea/PlatformActions.xml +++ b/platform/platform-resources/src/idea/PlatformActions.xml @@ -559,6 +559,7 @@ +