private void LoadExampleSettings() { AndroidNativeSettings.Instance.base64EncodedPublicKey = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsV676BTvO5djSDdUwotbLCIPtGZ5OVCbIn402RXuEpDwuHZMIOy5E6DQjUlQPKCiB7A1Vx+ePQI50Gk8NO1zuPRBgCgvW/oTTf863KkF34QLZD+Ii8fc6VE0UKp3GfApnLmq2qtr1fwDmRCteBUET1h0EcRn3/6R/BA5DMmF1aTv8yUY5LQETWqEPIjGdyNaAhmnWf2sTliYLANiR51WXsfbDdCNT4Ux3gQo/XJynGadfwRS7A9N9e5SgvMEFUR6EwnANOF9QXgE2d0HEitpS56D3uHH/2LwICrTWAmbLX3qPYlQ3Ncf1SRyjqiKae2wW8QUnDFU5BSozwGW6tcQvQIDAQAB"; AndroidNativeSettings.Instance.InAppProducts = new List <string>(); AndroidNativeSettings.Instance.InAppProducts.Add("coins_bonus"); AndroidNativeSettings.Instance.InAppProducts.Add("small_coins_bag"); AndroidNativeSettings.Instance.GCM_SenderId = "216817929098"; SocialPlatfromSettingsEditor.LoadExampleSettings(); }
public override void OnInspectorGUI() { #if UNITY_WEBPLAYER EditorGUILayout.HelpBox("Editing Android Native Settings not avaliable with web player platfrom. Please swith to any other platfrom under Build Seting menu", MessageType.Warning); EditorGUILayout.BeginHorizontal(); EditorGUILayout.Space(); if (GUILayout.Button("Switch To Android Platfrom", GUILayout.Width(180))) { EditorUserBuildSettings.SwitchActiveBuildTarget(BuildTarget.Android); } EditorGUILayout.EndHorizontal(); if (Application.isEditor) { return; } #endif settings = target as AndroidNativeSettings; GUI.changed = false; GeneralOptions(); PlayServiceSettings(); EditorGUILayout.Space(); BillingSettings(); EditorGUILayout.Space(); GCM(); EditorGUILayout.Space(); Other(); EditorGUILayout.Space(); SocialPlatfromSettingsEditor.FacebookSettings(); EditorGUILayout.Space(); SocialPlatfromSettingsEditor.TwitterSettings(); EditorGUILayout.Space(); AboutGUI(); if (GUI.changed) { DirtyEditor(); } }
public static void UpdateManifest() { if (!AndroidNativeSettings.Instance.KeepManifestClean) { return; } AN_ManifestManager.Refresh(); int UpdateId = 0; AN_ManifestTemplate Manifest = AN_ManifestManager.GetManifest(); AN_ApplicationTemplate application = Manifest.ApplicationTemplate; AN_ActivityTemplate launcherActivity = application.GetLauncherActivity(); //////////////////////// //Google Play Service API //////////////////////// AN_PropertyTemplate games_version = application.GetOrCreatePropertyWithName("meta-data", "com.google.android.gms.version"); if (AndroidNativeSettings.Instance.EnablePSAPI) { games_version.SetValue("android:value", "@integer/google_play_services_version"); } else { application.RemoveProperty(games_version); } //////////////////////// //GooglePlayServicesAPI //////////////////////// UpdateId++; AN_PropertyTemplate games_APP_ID = application.GetOrCreatePropertyWithName("meta-data", "com.google.android.gms.games.APP_ID"); if (!AndroidNativeSettings.Instance.GooglePlayServicesAPI) { application.RemoveProperty(games_APP_ID); } else { games_APP_ID.SetValue("android:value", "@string/app_id"); } //////////////////////// //GoogleCloudSaveAPI //////////////////////// UpdateId++; AN_PropertyTemplate appstate_APP_ID = application.GetOrCreatePropertyWithName("meta-data", "com.google.android.gms.appstate.APP_ID"); if (AndroidNativeSettings.Instance.GoogleCloudSaveAPI) { appstate_APP_ID.SetValue("android:value", "@string/app_id"); AndroidNativeSettings.Instance.EnableAppStateAPI = true; } else { AndroidNativeSettings.Instance.EnableAppStateAPI = false; application.RemoveProperty(appstate_APP_ID); } //////////////////////// //AnalyticsAPI //////////////////////// UpdateId++; if (AndroidNativeSettings.Instance.AnalyticsAPI) { //Nothing to do } //////////////////////// //PushNotificationsAPI //////////////////////// UpdateId++; AN_PropertyTemplate GcmBroadcastReceiver = application.GetOrCreatePropertyWithName("receiver", "com.androidnative.gcm.GcmBroadcastReceiver"); AN_PropertyTemplate GcmIntentService = application.GetOrCreatePropertyWithName("service", "com.androidnative.gcm.GcmIntentService"); AN_PropertyTemplate permission_C2D_MESSAGE = Manifest.GetOrCreatePropertyWithName("permission", "com.example.gcm.permission.C2D_MESSAGE"); if (AndroidNativeSettings.Instance.PushNotificationsAPI) { GcmBroadcastReceiver.SetValue("android:permission", "com.google.android.c2dm.permission.SEND"); AN_PropertyTemplate intent_filter = GcmBroadcastReceiver.GetOrCreateIntentFilterWithName("com.google.android.c2dm.intent.RECEIVE"); AN_PropertyTemplate category = intent_filter.GetOrCreatePropertyWithTag("category"); category.SetValue("android:name", PlayerSettings.bundleIdentifier); permission_C2D_MESSAGE.SetValue("android:protectionLevel", "signature"); } else { application.RemoveProperty(GcmBroadcastReceiver); application.RemoveProperty(GcmIntentService); Manifest.RemoveProperty(permission_C2D_MESSAGE); } //////////////////////// //GoogleMobileAdAPI //////////////////////// UpdateId++; AN_ActivityTemplate AdActivity = application.GetOrCreateActivityWithName("com.google.android.gms.ads.AdActivity"); if (AndroidNativeSettings.Instance.GoogleMobileAdAPI) { if (launcherActivity != null) { AN_PropertyTemplate ForwardNativeEventsToDalvik = launcherActivity.GetOrCreatePropertyWithName("meta-data", "unityplayer.ForwardNativeEventsToDalvik"); ForwardNativeEventsToDalvik.SetValue("android:value", "true"); } AdActivity.SetValue("android:configChanges", "keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"); } else { application.RemoveActivity(AdActivity); } //////////////////////// //GoogleButtonAPI //////////////////////// UpdateId++; if (AndroidNativeSettings.Instance.GoogleButtonAPI) { //Nothing to do } //////////////////////// //LocalNotificationsAPI //////////////////////// AN_PropertyTemplate LocalNotificationReceiver = application.GetOrCreatePropertyWithName("receiver", "com.androidnative.features.notifications.LocalNotificationReceiver"); if (AndroidNativeSettings.Instance.LocalNotificationsAPI) { } else { application.RemoveProperty(LocalNotificationReceiver); } //////////////////////// //ImmersiveModeAPI //////////////////////// if (AndroidNativeSettings.Instance.ImmersiveModeAPI) { //Nothing to do } //////////////////////// //ApplicationInformationAPI //////////////////////// if (AndroidNativeSettings.Instance.ApplicationInformationAPI) { //Nothing to do } //////////////////////// //ExternalAppsAPI //////////////////////// if (AndroidNativeSettings.Instance.ExternalAppsAPI) { //Nothing to do } //////////////////////// //PoupsandPreloadersAPI //////////////////////// if (AndroidNativeSettings.Instance.PoupsandPreloadersAPI) { //Nothing to do } //////////////////////// //InAppPurchasesAPI //////////////////////// if (AndroidNativeSettings.Instance.InAppPurchasesAPI) { //Nothing to do } //////////////////////// //CameraAPI //////////////////////// if (AndroidNativeSettings.Instance.CameraAPI) { //Nothing to do } //////////////////////// //GalleryAPI //////////////////////// if (AndroidNativeSettings.Instance.GalleryAPI) { //Nothing to do } List <string> permissions = GetRequiredPermissions(); foreach (string p in permissions) { Manifest.AddPermission(p); } AN_ManifestManager.SaveManifest(); SocialPlatfromSettingsEditor.UpdateManifest(); }
private void PluginSetting() { EditorGUILayout.Space(); EditorGUILayout.HelpBox("Plugin Settings", MessageType.None); AN_ManifestManager.Refresh(); AN_ManifestTemplate Manifest = AN_ManifestManager.GetManifest(); AN_ApplicationTemplate application = Manifest.ApplicationTemplate; AN_ActivityTemplate Launcher = application.GetLauncherActivity(); if (Launcher == null) { EditorGUILayout.BeginHorizontal(); EditorGUILayout.HelpBox("No Launcher Activity founded in the Manifest", MessageType.Warning); EditorGUILayout.EndHorizontal(); FixLauncherActivity(application); EditorGUILayout.Space(); } else { if (!Launcher.Name.Equals("com.androidnative.AndroidNativeBridge")) { EditorGUILayout.BeginHorizontal(); EditorGUILayout.HelpBox("Current Launcher Activity is " + Launcher.Name + ".\n" + "But AndroidNativeBridge required to be Launcher. Some features may not work.", MessageType.Warning); EditorGUILayout.EndHorizontal(); FixLauncherActivity(application); EditorGUILayout.Space(); } } EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("Keep Android Mnifest Clean"); EditorGUI.BeginChangeCheck(); AndroidNativeSettings.Instance.KeepManifestClean = EditorGUILayout.Toggle(AndroidNativeSettings.Instance.KeepManifestClean); SocialPlatfromSettings.Instance.KeepManifestClean = AndroidNativeSettings.Instance.KeepManifestClean; if (EditorGUI.EndChangeCheck()) { UpdateManifest(); } if (GUILayout.Button("[?]", GUILayout.Width(27))) { Application.OpenURL("http://goo.gl/syIebl"); } EditorGUILayout.Space(); EditorGUILayout.Space(); EditorGUILayout.EndHorizontal(); AndroidNativeSettings.Instance.ShowAppPermissions = EditorGUILayout.Foldout(AndroidNativeSettings.Instance.ShowAppPermissions, "Application Permissions"); if (AndroidNativeSettings.Instance.ShowAppPermissions) { AN_ManifestManager.Refresh(); //EditorGUI.indentLevel++; EditorGUILayout.LabelField("Required By Android Native:", EditorStyles.boldLabel); List <string> permissions = GetRequiredPermissions(); foreach (string p in permissions) { EditorGUILayout.BeginVertical(GUI.skin.box); EditorGUILayout.BeginHorizontal(); EditorGUILayout.SelectableLabel(p, GUILayout.Height(16)); EditorGUILayout.EndHorizontal(); EditorGUILayout.EndVertical(); } EditorGUILayout.Space(); EditorGUILayout.LabelField("Other Permissions in Manifest:", EditorStyles.boldLabel); foreach (AN_PropertyTemplate tpl in AN_ManifestManager.GetManifest().Permissions) { if (!permissions.Contains(tpl.Name)) { EditorGUILayout.BeginVertical(GUI.skin.box); EditorGUILayout.BeginHorizontal(); EditorGUILayout.SelectableLabel(tpl.Name, GUILayout.Height(16)); if (GUILayout.Button("x", GUILayout.Width(20))) { AN_ManifestManager.GetManifest().RemovePermission(tpl); AN_ManifestManager.SaveManifest(); return; } EditorGUILayout.EndHorizontal(); EditorGUILayout.EndVertical(); } } //EditorGUI.indentLevel--; } AndroidNativeSettings.Instance.ShowPluginSettings = EditorGUILayout.Foldout(AndroidNativeSettings.Instance.ShowPluginSettings, "Android Native Libs"); if (AndroidNativeSettings.Instance.ShowPluginSettings) { EditorGUI.indentLevel++; EditorGUI.BeginChangeCheck(); //Native Lib API EditorGUILayout.BeginHorizontal(); settings.ExpandNativeAPI = EditorGUILayout.Foldout(settings.ExpandNativeAPI, "Enable Native Lib"); SuperSpace(); GUI.enabled = false; EditorGUILayout.Toggle(true); GUI.enabled = true; EditorGUILayout.EndHorizontal(); if (settings.ExpandNativeAPI) { EditorGUI.indentLevel++; EditorGUILayout.BeginHorizontal(); settings.LocalNotificationsAPI = EditorGUILayout.Toggle(AN_API_NAME.LocalNotifications, settings.LocalNotificationsAPI); settings.ImmersiveModeAPI = EditorGUILayout.Toggle(AN_API_NAME.ImmersiveMode, settings.ImmersiveModeAPI); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); settings.ApplicationInformationAPI = EditorGUILayout.Toggle(AN_API_NAME.ApplicationInformation, settings.ApplicationInformationAPI); settings.ExternalAppsAPI = EditorGUILayout.Toggle(AN_API_NAME.RunExternalApp, settings.ExternalAppsAPI); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); settings.PoupsandPreloadersAPI = EditorGUILayout.Toggle(AN_API_NAME.PoupsandPreloaders, settings.PoupsandPreloadersAPI); EditorGUILayout.EndHorizontal(); EditorGUI.indentLevel--; EditorGUILayout.Space(); } EditorGUILayout.BeginHorizontal(); settings.ExpandBillingAPI = EditorGUILayout.Foldout(settings.ExpandBillingAPI, "Enable Billing Lib"); SuperSpace(); settings.EnableBillingAPI = EditorGUILayout.Toggle(settings.EnableBillingAPI); EditorGUILayout.EndHorizontal(); if (settings.ExpandBillingAPI) { EditorGUI.indentLevel++; EditorGUILayout.BeginHorizontal(); settings.InAppPurchasesAPI = EditorGUILayout.Toggle(AN_API_NAME.InAppPurchases, settings.InAppPurchasesAPI); EditorGUILayout.EndHorizontal(); EditorGUI.indentLevel--; EditorGUILayout.Space(); } //GOOGLE PLAY API EditorGUILayout.BeginHorizontal(); settings.ExpandPSAPI = EditorGUILayout.Foldout(settings.ExpandPSAPI, "Enable Google Play Lib"); SuperSpace(); settings.EnablePSAPI = EditorGUILayout.Toggle(settings.EnablePSAPI); EditorGUILayout.EndHorizontal(); if (settings.ExpandPSAPI) { EditorGUI.indentLevel++; EditorGUILayout.BeginHorizontal(); settings.GooglePlayServicesAPI = EditorGUILayout.Toggle(AN_API_NAME.GooglePlayServices, settings.GooglePlayServicesAPI); settings.PlayServicesAdvancedSignInAPI = EditorGUILayout.Toggle(AN_API_NAME.GooglePlayServicesAdvancedSignIn, settings.PlayServicesAdvancedSignInAPI); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); settings.PushNotificationsAPI = EditorGUILayout.Toggle(AN_API_NAME.PushNotifications, settings.PushNotificationsAPI); settings.GoogleCloudSaveAPI = EditorGUILayout.Toggle(AN_API_NAME.GoogleCloudSave, settings.GoogleCloudSaveAPI); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); settings.AnalyticsAPI = EditorGUILayout.Toggle(AN_API_NAME.Analytics, settings.AnalyticsAPI); settings.GoogleMobileAdAPI = EditorGUILayout.Toggle(AN_API_NAME.GoogleMobileAd, settings.GoogleMobileAdAPI); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); settings.GoogleButtonAPI = EditorGUILayout.Toggle(AN_API_NAME.GoogleButton, settings.GoogleButtonAPI); EditorGUILayout.EndHorizontal(); EditorGUI.indentLevel--; EditorGUILayout.Space(); } EditorGUILayout.BeginHorizontal(); settings.ExpandSocialAPI = EditorGUILayout.Foldout(settings.ExpandSocialAPI, "Enable Social Lib"); SuperSpace(); settings.EnableSocialAPI = EditorGUILayout.Toggle(settings.EnableSocialAPI); EditorGUILayout.EndHorizontal(); if (settings.ExpandSocialAPI) { EditorGUI.indentLevel++; SocialPlatfromSettingsEditor.DrawAPIsList(); EditorGUI.indentLevel--; EditorGUILayout.Space(); } EditorGUILayout.BeginHorizontal(); settings.ExpandCameraAPI = EditorGUILayout.Foldout(settings.ExpandCameraAPI, "Enable Camera Lib"); SuperSpace(); settings.EnableCameraAPI = EditorGUILayout.Toggle(settings.EnableCameraAPI); EditorGUILayout.EndHorizontal(); if (settings.ExpandCameraAPI) { EditorGUI.indentLevel++; EditorGUILayout.BeginHorizontal(); settings.CameraAPI = EditorGUILayout.Toggle(AN_API_NAME.CameraAPI, settings.CameraAPI); settings.GalleryAPI = EditorGUILayout.Toggle(AN_API_NAME.Gallery, settings.GalleryAPI); EditorGUILayout.EndHorizontal(); EditorGUI.indentLevel--; EditorGUILayout.Space(); } EditorGUI.indentLevel--; if (EditorGUI.EndChangeCheck()) { UpdateAPIsInstalation(); } } Actions(); EditorGUILayout.Space(); }
private void Actions() { AndroidNativeSettings.Instance.ShowActions = EditorGUILayout.Foldout(AndroidNativeSettings.Instance.ShowActions, "More Actions"); if (AndroidNativeSettings.Instance.ShowActions) { if (!IsFacebookInstalled) { GUI.enabled = false; } EditorGUILayout.BeginHorizontal(); EditorGUILayout.Space(); if (GUILayout.Button("Remove Facebook SDK", GUILayout.Width(160))) { bool result = EditorUtility.DisplayDialog( "Removing Facebook SDK", "Warning action can not be undone without reimporting the plugin", "Remove", "Cansel"); if (result) { FileStaticAPI.DeleteFolder(PluginsInstalationUtil.ANDROID_DESTANATION_PATH + "facebook"); FileStaticAPI.DeleteFolder("Facebook"); FileStaticAPI.DeleteFolder("Extensions/GooglePlayCommon/Social/Facebook"); FileStaticAPI.DeleteFile("Extensions/AndroidNative/xExample/Scripts/Social/FacebookAndroidUseExample.cs"); FileStaticAPI.DeleteFile("Extensions/AndroidNative/xExample/Scripts/Social/FacebookAnalyticsExample.cs"); } } GUI.enabled = true; if (GUILayout.Button("Open Manifest ", GUILayout.Width(160))) { UnityEditorInternal.InternalEditorUtility.OpenFileAtLineExternal("Assets" + AN_ManifestManager.MANIFEST_FILE_PATH, 1); } EditorGUILayout.EndHorizontal(); EditorGUILayout.Space(); EditorGUILayout.BeginHorizontal(); EditorGUILayout.Space(); if (GUILayout.Button("Reset Settings", GUILayout.Width(160))) { SocialPlatfromSettingsEditor.ResetSettings(); FileStaticAPI.DeleteFile("Extensions/AndroidNative/Resources/AndroidNativeSettings.asset"); AndroidNativeSettings.Instance.ShowActions = true; Selection.activeObject = AndroidNativeSettings.Instance; return; } if (GUILayout.Button("Load Example Settings", GUILayout.Width(160))) { LoadExampleSettings(); } EditorGUILayout.EndHorizontal(); } }