public static AndroidJavaObject ToAndroidAppMetricaConfig(this YandexAppMetricaConfig self) { AndroidJavaObject appMetricaConfig; using (AndroidJavaClass configClass = new AndroidJavaClass("com.yandex.metrica.YandexMetricaConfig")) { AndroidJavaObject builder = configClass.CallStatic <AndroidJavaObject>("newConfigBuilder", self.ApiKey); if (self.Location.HasValue) { YandexAppMetricaConfig.Coordinates location = self.Location.Value; builder.Call <AndroidJavaObject>("withLocation", location.ToAndroidLocation()); } if (self.AppVersion != null) { builder.Call <AndroidJavaObject>("withAppVersion", self.AppVersion); } if (self.LocationTracking.HasValue) { builder.Call <AndroidJavaObject>("withLocationTracking", self.LocationTracking.Value); } if (self.SessionTimeout.HasValue) { builder.Call <AndroidJavaObject>("withSessionTimeout", self.SessionTimeout.Value); } if (self.CrashReporting.HasValue) { builder.Call <AndroidJavaObject>("withCrashReporting", self.CrashReporting.Value); } if (self.Logs ?? false) { builder.Call <AndroidJavaObject>("withLogs"); } if (self.HandleFirstActivationAsUpdate.HasValue) { builder.Call <AndroidJavaObject>("handleFirstActivationAsUpdate", self.HandleFirstActivationAsUpdate.Value); } if (self.PreloadInfo.HasValue) { YandexAppMetricaPreloadInfo preloadInfo = self.PreloadInfo.Value; AndroidJavaClass preloadInfoClass = new AndroidJavaClass("com.yandex.metrica.PreloadInfo"); AndroidJavaObject preloadInfoBuilder = preloadInfoClass.CallStatic <AndroidJavaObject>("newBuilder", preloadInfo.TrackingId); foreach (KeyValuePair <string, string> kvp in preloadInfo.AdditionalInfo) { preloadInfoBuilder.Call <AndroidJavaObject>("setAdditionalParams", kvp.Key, kvp.Value); } builder.Call <AndroidJavaObject>("withPreloadInfo", preloadInfoBuilder.Call <AndroidJavaObject>("build")); } if (self.StatisticsSending.HasValue) { builder.Call <AndroidJavaObject>("withStatisticsSending", self.StatisticsSending.Value); } if (self.UserProfileID != null) { builder.Call <AndroidJavaObject>("withUserProfileID", self.UserProfileID); } if (self.RevenueAutoTrackingEnabled.HasValue) { builder.Call <AndroidJavaObject>("withRevenueAutoTrackingEnabled", self.RevenueAutoTrackingEnabled.Value); } // Native crashes are currently not supported builder.Call <AndroidJavaObject>("withNativeCrashReporting", false); // Sessions are monitored by plugin itself builder.Call <AndroidJavaObject>("withSessionsAutoTrackingEnabled", false); appMetricaConfig = builder.Call <AndroidJavaObject>("build"); } return(appMetricaConfig); }
public static AndroidJavaObject ToAndroidAppMetricaConfig(this YandexAppMetricaConfig self) { AndroidJavaObject androidJavaObject = null; using (AndroidJavaClass androidJavaClass = new AndroidJavaClass("com.yandex.metrica.YandexMetricaConfig")) { AndroidJavaObject androidJavaObject2 = androidJavaClass.CallStatic <AndroidJavaObject>("newConfigBuilder", new object[1] { self.ApiKey }); if (self.Location.HasValue) { YandexAppMetricaConfig.Coordinates value = self.Location.Value; androidJavaObject2.Call <AndroidJavaObject>("withLocation", new object[1] { value.ToAndroidLocation() }); } if (self.AppVersion != null) { androidJavaObject2.Call <AndroidJavaObject>("withAppVersion", new object[1] { self.AppVersion }); } if (self.LocationTracking.HasValue) { androidJavaObject2.Call <AndroidJavaObject>("withLocationTracking", new object[1] { self.LocationTracking.Value }); } if (self.SessionTimeout.HasValue) { androidJavaObject2.Call <AndroidJavaObject>("withSessionTimeout", new object[1] { self.SessionTimeout.Value }); } if (self.CrashReporting.HasValue) { androidJavaObject2.Call <AndroidJavaObject>("withCrashReporting", new object[1] { self.CrashReporting.Value }); } bool?logs = self.Logs; if (logs.HasValue && logs.Value) { androidJavaObject2.Call <AndroidJavaObject>("withLogs", new object[0]); } if (self.InstalledAppCollecting.HasValue) { androidJavaObject2.Call <AndroidJavaObject>("withInstalledAppCollecting", new object[1] { self.InstalledAppCollecting.Value }); } if (self.HandleFirstActivationAsUpdate.HasValue) { androidJavaObject2.Call <AndroidJavaObject>("handleFirstActivationAsUpdate", new object[1] { self.HandleFirstActivationAsUpdate.Value }); } if (self.PreloadInfo.HasValue) { YandexAppMetricaPreloadInfo value2 = self.PreloadInfo.Value; AndroidJavaClass androidJavaClass2 = new AndroidJavaClass("com.yandex.metrica.PreloadInfo"); AndroidJavaObject androidJavaObject3 = androidJavaClass2.CallStatic <AndroidJavaObject>("newBuilder", new object[1] { value2.TrackingId }); foreach (KeyValuePair <string, string> item in value2.AdditionalInfo) { androidJavaObject3.Call <AndroidJavaObject>("setAdditionalParams", new object[2] { item.Key, item.Value }); } androidJavaObject2.Call <AndroidJavaObject>("withPreloadInfo", new object[1] { androidJavaObject3.Call <AndroidJavaObject>("build", new object[0]) }); } if (self.StatisticsSending.HasValue) { androidJavaObject2.Call <AndroidJavaObject>("withStatisticsSending", new object[1] { self.StatisticsSending.Value }); } androidJavaObject2.Call <AndroidJavaObject>("withNativeCrashReporting", new object[1] { false }); return(androidJavaObject2.Call <AndroidJavaObject>("build", new object[0])); } }
public static Hashtable ToHashtable(this YandexAppMetricaConfig self) { Hashtable data = new Hashtable { { "ApiKey", self.ApiKey } }; if (self.AppVersion != null) { data["AppVersion"] = self.AppVersion; } if (self.Location.HasValue) { YandexAppMetricaConfig.Coordinates location = self.Location.Value; data["Location"] = new Hashtable { { "Latitude", location.Latitude }, { "Longitude", location.Longitude } }; } if (self.SessionTimeout.HasValue) { data["SessionTimeout"] = self.SessionTimeout.Value; } if (self.CrashReporting.HasValue) { data["CrashReporting"] = self.CrashReporting.Value; } if (self.LocationTracking.HasValue) { data["LocationTracking"] = self.LocationTracking.Value; } if (self.Logs.HasValue) { data["Logs"] = self.Logs.Value; } if (self.HandleFirstActivationAsUpdate.HasValue) { data["HandleFirstActivationAsUpdate"] = self.HandleFirstActivationAsUpdate.Value; } if (self.PreloadInfo.HasValue) { YandexAppMetricaPreloadInfo preloadInfo = self.PreloadInfo.Value; data["PreloadInfo"] = new Hashtable { { "TrackingId", preloadInfo.TrackingId }, { "AdditionalInfo", new Hashtable(preloadInfo.AdditionalInfo) } }; } if (self.StatisticsSending.HasValue) { data["StatisticsSending"] = self.StatisticsSending.Value; } if (self.AppForKids.HasValue) { data["AppForKids"] = self.AppForKids.Value; } if (self.UserProfileID != null) { data["UserProfileID"] = self.UserProfileID; } if (self.RevenueAutoTrackingEnabled.HasValue) { data["RevenueAutoTrackingEnabled"] = self.RevenueAutoTrackingEnabled.Value; } return(data); }