Esempio n. 1
0
    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();
    }
Esempio n. 2
0
    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();
        }
    }
Esempio n. 3
0
    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();
    }
Esempio n. 4
0
    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();
    }
Esempio n. 5
0
    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();
        }
    }