FUS-412 diff: update usage trigger collector by new guidelines

GitOrigin-RevId: ee982b92921b88ef81c75a988a22b001f6c2fe44
This commit is contained in:
Aleksey Pivovarov
2019-07-02 06:52:16 +03:00
committed by intellij-monorepo-bot
parent 5390a9352d
commit 5fae07860a
4 changed files with 25 additions and 21 deletions
@@ -625,7 +625,7 @@ public abstract class DiffRequestProcessor implements Disposable {
public void actionPerformed(@NotNull AnActionEvent e) {
if (myState.getActiveTool() == myDiffTool) return;
DiffUsageTriggerCollector.trigger("toggle.diff.tool", myDiffTool);
DiffUsageTriggerCollector.trigger("toggle.diff.tool", myDiffTool, myContext.getUserData(DiffUserDataKeys.PLACE));
moveToolOnTop(myDiffTool);
updateRequest(true);
@@ -54,8 +54,9 @@ class TextDiffSettingsHolder : PersistentStateComponent<TextDiffSettingsHolder.S
}
class TextDiffSettings internal constructor(private val SHARED_SETTINGS: SharedSettings,
private val PLACE_SETTINGS: PlaceSettings) {
constructor() : this(SharedSettings(), PlaceSettings())
private val PLACE_SETTINGS: PlaceSettings,
val place: String?) {
constructor() : this(SharedSettings(), PlaceSettings(), null)
fun addListener(listener: Listener, disposable: Disposable) {
PLACE_SETTINGS.eventDispatcher.addListener(listener, disposable)
@@ -135,7 +136,7 @@ class TextDiffSettingsHolder : PersistentStateComponent<TextDiffSettingsHolder.S
@JvmStatic fun getSettings(): TextDiffSettings = getSettings(null)
@JvmStatic fun getSettings(place: String?): TextDiffSettings = service<TextDiffSettingsHolder>().getSettings(place)
internal fun getDefaultSettings(place: String): TextDiffSettings =
TextDiffSettings(SharedSettings(), service<TextDiffSettingsHolder>().defaultPlaceSettings(place))
TextDiffSettings(SharedSettings(), service<TextDiffSettingsHolder>().defaultPlaceSettings(place), place)
}
interface Listener : EventListener {
@@ -147,7 +148,7 @@ class TextDiffSettingsHolder : PersistentStateComponent<TextDiffSettingsHolder.S
fun getSettings(place: String?): TextDiffSettings {
val placeKey = place ?: DiffPlaces.DEFAULT
val placeSettings = myState.PLACES_MAP.getOrPut(placeKey) { defaultPlaceSettings(placeKey) }
return TextDiffSettings(myState.SHARED_SETTINGS, placeSettings)
return TextDiffSettings(myState.SHARED_SETTINGS, placeSettings, placeKey)
}
private fun copyStateWithoutDefaults(): State {
@@ -259,7 +259,7 @@ public class TextDiffViewerUtil {
@Override
protected void setValue(@NotNull HighlightPolicy option) {
if (getValue() == option) return;
DiffUsageTriggerCollector.trigger("toggle.highlight.policy", option);
DiffUsageTriggerCollector.trigger("toggle.highlight.policy", option, mySettings.getPlace());
mySettings.setHighlightPolicy(option);
}
@@ -300,7 +300,7 @@ public class TextDiffViewerUtil {
@Override
protected void setValue(@NotNull IgnorePolicy option) {
if (getValue() == option) return;
DiffUsageTriggerCollector.trigger("toggle.ignore.policy", option);
DiffUsageTriggerCollector.trigger("toggle.ignore.policy", option, mySettings.getPlace());
mySettings.setIgnorePolicy(option);
}
@@ -2,30 +2,33 @@
package com.intellij.openapi.diff.impl;
import com.intellij.diff.DiffTool;
import com.intellij.internal.statistic.eventLog.FeatureUsageData;
import com.intellij.internal.statistic.service.fus.collectors.FUCounterUsageLogger;
import com.intellij.internal.statistic.utils.PluginInfo;
import com.intellij.internal.statistic.utils.PluginInfoDetectorKt;
import com.intellij.openapi.util.text.StringUtil;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
public class DiffUsageTriggerCollector {
private static void trigger(@NotNull String feature) {
FUCounterUsageLogger.getInstance().logEvent("vcs.diff.trigger", feature);
private static void trigger(@NotNull String eventId, @NotNull FeatureUsageData data) {
FUCounterUsageLogger.getInstance().logEvent("vcs.diff.trigger", eventId, data);
}
public static void trigger(@NotNull String feature, @NotNull Enum value) {
trigger(feature + "." + value.name());
public static void trigger(@NotNull String feature, @NotNull Enum value, @Nullable String place) {
FeatureUsageData data = new FeatureUsageData()
.addData("value", value.name())
.addData("diff_place", StringUtil.notNullize(place, "unknown"));
trigger(feature, data);
}
public static void trigger(@NotNull String feature, @NotNull DiffTool diffTool) {
trigger(feature + "." + getDiffToolName(diffTool));
}
public static void trigger(@NotNull String feature, @NotNull DiffTool diffTool, @Nullable String place) {
FeatureUsageData data = new FeatureUsageData()
.addPluginInfo(PluginInfoDetectorKt.getPluginInfo(diffTool.getClass()))
.addData("value", diffTool.getName())
.addData("diff_place", StringUtil.notNullize(place, "unknown"));
@NotNull
private static String getDiffToolName(@NotNull DiffTool diffTool) {
PluginInfo pluginInfo = PluginInfoDetectorKt.getPluginInfo(diffTool.getClass());
if (pluginInfo.isDevelopedByJetBrains()) return diffTool.getName();
if (pluginInfo.isSafeToReport()) return "third.party." + pluginInfo.getId();
return "third.party.other";
trigger(feature, data);
}
}