package com.nagopy.android.xposed.utilities.util;
import java.util.Set;
import android.content.Context;
import com.google.analytics.tracking.android.EasyTracker;
import com.google.analytics.tracking.android.Fields;
import com.google.analytics.tracking.android.MapBuilder;
import com.google.analytics.tracking.android.Tracker;
/**
* Google Analyticsのユーティリティクラス.
*/
public class AnalyticsUtil {
private AnalyticsUtil() {
}
/**
* 設定カテゴリをpushする.
*
* @param context {@link Context}
* @param value 送信文字列
*/
public static void pushPreferenceCategory(Context context, String value) {
Tracker tracker = EasyTracker.getInstance(context);
MapBuilder builder = MapBuilder.createAppView().set(Fields.SCREEN_NAME, value);
tracker.send(builder.build());
}
/**
* 設定変更をpushする.
*
* @param context {@link Context}
* @param key キー
* @param newValue 値
*/
public static void pushSettingChengedEvent(Context context, String key, Object newValue) {
Tracker tracker = EasyTracker.getInstance(context);
if (newValue != null && newValue instanceof Set) {
pushSettingChengedEvent(tracker, key, (Set<?>) newValue);
} else {
String newValueStr = newValue == null ? "nullpo" : String.valueOf(newValue);
tracker.send(MapBuilder.createEvent("settingChenged", key, newValueStr, null).build());
}
}
/**
* 設定変更を送信する.<br>
* {@link Set}=アプリ選択の場合。パッケージ名を送信しても仕方ないため、選択したアプリの数を送信する。
*
* @param tracker
* @param key
* @param newValue
*/
private static void pushSettingChengedEvent(Tracker tracker, String key, Set<?> newValue) {
tracker.send(MapBuilder
.createEvent("settingChengedSet", key, String.valueOf(newValue.size()), null)
.build());
}
}