public AndroidJavaObject ToAjo()
        {
            var ajc = new AndroidJavaClass("im.getsocial.sdk.promocodes.PromoCodeBuilder");
            var ajo = _code == null?ajc.CallStaticAJO("createRandomCode") : ajc.CallStaticAJO("createWithCode", _code);

            ajo.CallAJO("withMaxClaimCount", (int)_maxClaimCount)
            .CallAJO("addData", _data.ToJavaHashMap())
            .CallAJO("withTimeLimit", DateToAjo(_startDate), DateToAjo(_endDate));
            return(ajo);
        }
Esempio n. 2
0
        public AndroidJavaObject ToAJO()
        {
            if (GoogleMapUtils.IsNotAndroid)
            {
                return(null);
            }

            switch (_descriptorType)
            {
            case ImageDescriptorType.AssetName:
                using (var c = new AndroidJavaClass(ImageDescriptorFactoryClass))
                {
                    try
                    {
                        if (IsAppBinarySplit)
                        {
                            var bitmap = ExpansionFileUtilsClass.AJCCallStaticOnce <AndroidJavaObject>("getBitmap", JniToolkitUtils.Activity, _assetName);
                            return(c.CallStaticAJO("fromBitmap", bitmap));
                        }

                        return(c.CallStaticAJO("fromAsset", _assetName));
                    }
                    catch (Exception e)
                    {
                        Debug.LogError("Failed to load bitmap from expansion file: " + _assetName);
                        Debug.LogException(e);
                        return(c.CallStaticAJO("defaultMarker"));
                    }
                }

            case ImageDescriptorType.DefaultWithHue:
                using (var c = new AndroidJavaClass(ImageDescriptorFactoryClass))
                {
                    return(c.CallStaticAJO("defaultMarker", _hue));
                }

            case ImageDescriptorType.Texture2D:
                using (var c = new AndroidJavaClass(ImageDescriptorFactoryClass))
                {
                    return(c.CallStaticAJO("fromBitmap", _texure.Texture2DToAndroidBitmap()));
                }

            default:
                using (var c = new AndroidJavaClass(ImageDescriptorFactoryClass))
                {
                    return(c.CallStaticAJO("defaultMarker"));
                }
            }
        }
Esempio n. 3
0
        AndroidJavaObject ToAJO()
        {
            var activityFeedBuilderAJOClass = new AndroidJavaClass("im.getsocial.sdk.ui.communities.ActivityFeedViewBuilder");
            var activityFeedBuilderAJO      = activityFeedBuilderAJOClass.CallStaticAJO("create", AndroidAJOConverter.Convert(_query, "im.getsocial.sdk.communities.ActivitiesQuery"));

            if (_actionListener != null)
            {
                activityFeedBuilderAJO.CallAJO("setActionListener",
                                               new ActionListenerProxy(_actionListener));
            }
            if (_onAvatarClickListener != null)
            {
                activityFeedBuilderAJO.CallAJO("setAvatarClickListener",
                                               new AvatarClickListenerProxy(_onAvatarClickListener));
            }
            if (_onMentionClickListener != null)
            {
                activityFeedBuilderAJO.CallAJO("setMentionClickListener",
                                               new MentionClickListenerProxy(_onMentionClickListener));
            }
            if (_tagClickListener != null)
            {
                activityFeedBuilderAJO.CallAJO("setTagClickListener",
                                               new TagClickListenerProxy(_tagClickListener));
            }

            return(activityFeedBuilderAJO);
        }
Esempio n. 4
0
 public static AndroidJavaObject Parse(string uriString)
 {
     using (var uriClass = new AndroidJavaClass(C.UriClass))
     {
         return(uriClass.CallStaticAJO("parse", uriString));
     }
 }
        public AndroidJavaObject ToAjo()
        {
            var notificationContentClass =
                new AndroidJavaClass("im.getsocial.sdk.pushnotifications.NotificationContent");
            var notificationContent = notificationContentClass.CallStaticAJO("notificationWithText", _text)
                                      .CallAJO("withTitle", _title)
                                      .CallAJO("withTemplateName", _templateName)
                                      .CallAJO("addTemplatePlaceholders", _templatePlaceholders.ToJavaHashMap())
                                      .CallAJO("addActionButtons", _actionButtons.ConvertAll(item => item.ToAjo()).ToJavaList());

            if (_action != null)
            {
                notificationContent.CallAJO("withAction", _action.ToAjo());
            }

            if (_mediaAttachment != null)
            {
                notificationContent.CallAJO("withMediaAttachment", _mediaAttachment.ToAjo());
            }

            if (_customization != null)
            {
                notificationContent.CallAJO("withCustomization", _customization.ToAjo());
            }
            if (_badge != null)
            {
                notificationContent.CallAJO("withBadge", _badge.ToAjo());
            }

            return(notificationContent);
        }
Esempio n. 6
0
 public static AndroidJavaObject ClassForName(string className)
 {
     using (var clazz = new AndroidJavaClass(C.JavaLangClass))
     {
         return(clazz.CallStaticAJO("forName", className));
     }
 }
Esempio n. 7
0
 public static AndroidJavaObject GetBroadcast(AndroidJavaObject intent, int id)
 {
     using (var pic = new AndroidJavaClass(C.AndroidAppPendingIntent))
     {
         return(pic.CallStaticAJO("getBroadcast", AGUtils.Activity, id, intent, FLAG_UPDATE_CURRENT));
     }
 }
Esempio n. 8
0
 public static AndroidJavaObject GetActivity(AndroidJavaObject intent)
 {
     using (var pic = new AndroidJavaClass(PendingIntentClass))
     {
         return(pic.CallStaticAJO("getActivity", AGUtils.Activity, 0, intent, FLAG_UPDATE_CURRENT));
     }
 }
        public static void OpenCalendarForDate(DateTime dateTime)
        {
            if (AGUtils.IsNotAndroid())
            {
                return;
            }

            // https://developer.android.com/guide/topics/providers/calendar-provider.html#intents
            long millis = dateTime.ToMillisSinceEpoch();

            using (var calendarContractClass = new AndroidJavaClass(C.AndroidProviderCalendarContract))
            {
                using (var contentUri = calendarContractClass.GetStatic <AndroidJavaObject>("CONTENT_URI"))
                {
                    using (var contentUriBuilder = contentUri.CallAJO("buildUpon"))
                    {
                        contentUriBuilder.CallAJO("appendPath", "time");
                        using (var conentUrisClass = new AndroidJavaClass(C.AndroidContentContentUris))
                        {
                            conentUrisClass.CallStaticAJO("appendId", contentUriBuilder, millis);
                        }
                        var uri    = contentUriBuilder.CallAJO("build");
                        var intent = new AndroidIntent(AndroidIntent.ActionView).SetData(uri);
                        AGUtils.StartActivity(intent.AJO);
                    }
                }
            }
        }
Esempio n. 10
0
 public static AndroidJavaObject FromFile(string filePath)
 {
     using (var uriClass = new AndroidJavaClass(C.UriClass))
     {
         return(uriClass.CallStaticAJO("fromFile", AGUtils.NewJavaFile(filePath)));
     }
 }
Esempio n. 11
0
        AndroidJavaObject ToAJO()
        {
            var activityFeedBuilderAJOClass = new AndroidJavaClass("im.getsocial.sdk.ui.communities.ActivityDetailsViewBuilder");
            var activityDetailsBuilderAJO   = activityFeedBuilderAJOClass.CallStaticAJO("create", _activityId);

            activityDetailsBuilderAJO.CallAJO("setShowActivityFeedView", _showActivityFeedView);
            if (_actionListener != null)
            {
                activityDetailsBuilderAJO.CallAJO("setActionListener",
                                                  new ActionListenerProxy(_actionListener));
            }
            if (_onAvatarClickListener != null)
            {
                activityDetailsBuilderAJO.CallAJO("setAvatarClickListener",
                                                  new AvatarClickListenerProxy(_onAvatarClickListener));
            }
            if (_onMentionClickListener != null)
            {
                activityDetailsBuilderAJO.CallAJO("setMentionClickListener",
                                                  new MentionClickListenerProxy(_onMentionClickListener));
            }
            if (_tagClickListener != null)
            {
                activityDetailsBuilderAJO.CallAJO("setTagClickListener",
                                                  new TagClickListenerProxy(_tagClickListener));
            }
            if (_commentId != null)
            {
                activityDetailsBuilderAJO.CallAJO("setCommentId", _commentId);
            }
            return(activityDetailsBuilderAJO);
        }
        private static AndroidJavaObject ToAndroidJavaObject <T>(T type, string javaClass) where T : IConvertible
        {
            var reasonClass = new AndroidJavaClass(javaClass);
            var values      = reasonClass.CallStaticAJO("values");

            return(new AndroidJavaClass("java.lang.reflect.Array").CallStaticAJO("get", values, type));
        }
Esempio n. 13
0
        public AndroidJavaObject ToAjo()
        {
            var queryClass =
                new AndroidJavaClass("im.getsocial.sdk.pushnotifications.NotificationsCountQuery");
            var query = _isRead.HasValue
                ? queryClass.CallStaticAJO(_isRead.Value ? "read" : "unread")
                : queryClass.CallStaticAJO("readAndUnread");

            if (_types.Length > 0)
            {
                var types = Array.ConvertAll(_types, type => (int)type);
                query.CallAJO("ofTypes", types);
            }

            return(query);
        }
Esempio n. 14
0
 static void TurnOnOld()
 {
     if (_camera != null)
     {
         Debug.LogWarning("Flashlight is already on");
         return;
     }
     try
     {
         AGUtils.RunOnUiThread(() =>
         {
             using (var camAJC = new AndroidJavaClass(C.AndroidHardwareCamera))
             {
                 var cam       = camAJC.CallStaticAJO("open");
                 var camParams = cam.CallAJO("getParameters");
                 camParams.Call("setFlashMode", CameraParameters_FLASH_MODE_TORCH);
                 cam.Call("setParameters", camParams);
                 cam.Call("startPreview");
                 _camera = cam;
             }
         });
     }
     catch (Exception e)
     {
         if (Debug.isDebugBuild)
         {
             Debug.Log("Could not enable flashlight:" + e.Message);
         }
     }
 }
Esempio n. 15
0
 public static AndroidJavaObject FromFile(string filePath)
 {
     using (var uriClass = new AndroidJavaClass(UriClass))
     {
         return(uriClass.CallStaticAJO("fromFile", new AndroidJavaObject("java.io.File", filePath)));
     }
 }
Esempio n. 16
0
 public static AndroidJavaObject Texture2DToAndroidBitmap(Texture2D tex2D, ImageFormat format = ImageFormat.PNG)
 {
     byte[] encoded = tex2D.Encode(format);
     using (var bf = new AndroidJavaClass("android.graphics.BitmapFactory"))
     {
         return(bf.CallStaticAJO("decodeByteArray", encoded, 0, encoded.Length));
     }
 }
        public AndroidJavaObject ToAjo()
        {
            var activitiesQueryClass = new AndroidJavaClass("im.getsocial.sdk.activities.ActivitiesQuery");
            var activitiesQuery      = _type == Type.Post
                ? activitiesQueryClass.CallStaticAJO("postsForFeed", _feed)
                : activitiesQueryClass.CallStaticAJO("commentsToPost", _parentActivityId);

            activitiesQuery.CallAJO("withLimit", _limit);
            activitiesQuery.CallAJO("filterByUser", _filterUserId);
            activitiesQuery.CallAJO("friendsFeed", _isFriendsFeed);
            activitiesQuery.CallAJO("withTags", _tags.ToJavaStringArray());

            if (_filter != Filter.NoFilter)
            {
                activitiesQuery.CallAJO("withFilter", _filter.ToAndroidJavaObject(), _filteringActivityId);
            }
            return(activitiesQuery);
        }
        public AndroidJavaObject ToAjo()
        {
            var notificationCustomizationClass =
                new AndroidJavaClass("im.getsocial.sdk.pushnotifications.NotificationCustomization");
            var notificationCustomization = notificationCustomizationClass.CallStaticAJO("withBackgroundImageConfiguration", BackgroundImageConfiguration)
                                            .CallAJO("withTitleColor", TitleColor)
                                            .CallAJO("withTextColor", TextColor);

            return(notificationCustomization);
        }
Esempio n. 19
0
        public AndroidJavaObject ToAjo()
        {
            var usersQueryClass    = new AndroidJavaClass("im.getsocial.sdk.invites.ReferralUsersQuery");
            var usersQueryInstance = usersQueryClass.CallStaticAJO("usersForEvent", _eventName);

            usersQueryInstance.CallAJO("setLimit", _limit);
            usersQueryInstance.CallAJO("setOffset", _offset);

            return(usersQueryInstance);
        }
Esempio n. 20
0
        static AndroidJavaObject CreateCameraUpdateAJO(string methodName, params object[] args)
        {
            if (GoogleMapUtils.IsNotAndroid)
            {
                return(null);
            }

            using (var c = new AndroidJavaClass(CameraUpdateFactoryClass))
            {
                return(c.CallStaticAJO(methodName, args));
            }
        }
Esempio n. 21
0
        public AndroidJavaObject ToAjo()
        {
            var queryClass =
                new AndroidJavaClass("im.getsocial.sdk.pushnotifications.NotificationsQuery");
            var query = _isRead.HasValue
                ? queryClass.CallStaticAJO(_isRead.Value ? "read" : "unread")
                : queryClass.CallStaticAJO("readAndUnread");

            query.CallAJO("withLimit", _limit);

            if (_types.Length > 0)
            {
                var types = Array.ConvertAll(_types, type => (int)type);
                query.CallAJO("ofTypes", types);
            }

            if (_filter != Filter.NoFilter)
            {
                query.CallAJO("withFilter", _filter.ToAndroidJavaObject(), _notificationId);
            }
            return(query);
        }
        AndroidJavaObject ToAJO()
        {
            var clazz = new AndroidJavaClass("im.getsocial.sdk.ui.pushnotifications.NotificationCenterViewBuilder");
            var notificationCenterViewBuilderAJO = clazz.CallStaticAJO("create", AndroidAJOConverter.Convert(_query, "im.getsocial.sdk.notifications.NotificationsQuery"));

            if (_notificationClickListener != null)
            {
                notificationCenterViewBuilderAJO.CallAJO("setNotificationClickListener",
                                                         new NotificationClickListenerProxy(_notificationClickListener));
            }

            return(notificationCenterViewBuilderAJO);
        }
Esempio n. 23
0
        /// <summary>
        /// Shows the toast with specified text.
        /// </summary>
        /// <param name="text">Text to display on toast.</param>
        /// <param name="length">Duration to show.</param>
        public static void ShowToast(string text, ToastLength length = ToastLength.Short)
        {
            if (AGUtils.IsNotAndroidCheck())
            {
                return;
            }

            AGUtils.RunOnUiThread(() =>
            {
                using (var toast = new AndroidJavaClass(C.AndroidWidgetToast))
                {
                    var toastInstance = toast.CallStaticAJO("makeText", AGUtils.Activity, text, (int)length);
                    toastInstance.Call("show");
                }
            }
                                  );
        }
Esempio n. 24
0
        AndroidJavaObject ToAJO()
        {
            var invitesBuilderAJOClass = new AndroidJavaClass("im.getsocial.sdk.ui.invites.InvitesViewBuilder");
            var invitesBuilderAJO      = invitesBuilderAJOClass.CallStaticAJO("create");

            if (_inviteContent != null)
            {
                invitesBuilderAJO.CallAJO("setCustomInviteContent", AndroidAJOConverter.Convert(_inviteContent, "im.getsocial.sdk.invites.InviteContent"));
            }

            if (_onInviteComplete != null)
            {
                invitesBuilderAJO.CallAJO("setInviteCallback",
                                          new InviteUiCallbackProxy(_onInviteComplete, _onInviteCancel, _onInviteFailure));
            }

            return(invitesBuilderAJO);
        }
        public static AndroidJavaObject GetUriFromFilePath(string saveFilePath)
        {
            AndroidJavaObject uri;

            if (AGDeviceInfo.SDK_INT >= AGDeviceInfo.VersionCodes.N)
            {
                // Reference: http://stackoverflow.com/questions/38200282/android-os-fileuriexposedexception-file-storage-emulated-0-test-txt-exposed
                using (var c = new AndroidJavaClass(FileProviderClass))
                {
                    var provider = AGDeviceInfo.GetApplicationPackage() + ".multipicker.fileprovider";
                    uri = c.CallStaticAJO("getUriForFile", AGUtils.Activity, provider, AGUtils.NewJavaFile(saveFilePath));
                }
            }
            else
            {
                uri = AndroidUri.FromFile(saveFilePath);
            }
            return(uri);
        }
Esempio n. 26
0
        /// <summary>
        ///
        /// Turns on the camera flashlight if available
        ///
        /// Required permissions in manifest:
        ///     <uses-permission android:name="android.permission.CAMERA" />
        ///     <uses-feature android:name="android.hardware.camera" />
        ///
        ///     <uses-permission android:name="android.permission.FLASHLIGHT"/>
        ///     <uses-feature android:name="android.hardware.camera.flash" android:required="false" />
        /// </summary>
        public static void Enable()
        {
            if (AGUtils.IsNotAndroidCheck())
            {
                return;
            }

            if (!HasFlashlight())
            {
                Debug.LogWarning("This device does not have a flashlight");
                return;
            }

            if (_camera != null)
            {
                Debug.LogWarning("Flashlight is already on");
                return;
            }

            try
            {
                AGUtils.RunOnUiThread(() =>
                {
                    using (var camAJC = new AndroidJavaClass(CameraClass))
                    {
                        var cam       = camAJC.CallStaticAJO("open");
                        var camParams = cam.CallAJO("getParameters");
                        camParams.Call("setFlashMode", CameraParameters_FLASH_MODE_TORCH);
                        cam.Call("setParameters", camParams);
                        cam.Call("startPreview");
                        _camera = cam;
                    }
                });
            }
            catch (Exception e)
            {
                if (Debug.isDebugBuild)
                {
                    Debug.Log("Could not enable flashlight:" + e.Message);
                }
            }
        }
        public static AndroidJavaObject SaveShareImageToExternalStorage(Texture2D tex2D)
        {
            // aTODO update : http://stackoverflow.com/questions/38200282/android-os-fileuriexposedexception-file-storage-emulated-0-test-txt-exposed
            string            saveFilePath = SaveImageToPictures(tex2D, GoodiesShareImageFileName, GoodiesFileFolder, ImageFormat.PNG);
            AndroidJavaObject uri;

            if (AGDeviceInfo.SDK_INT >= AGDeviceInfo.VersionCodes.N)
            {
                using (var c = new AndroidJavaClass(FileProviderClass))
                {
                    var provider = AGDeviceInfo.GetApplicationPackage() + ".multipicker.fileprovider";
                    uri = c.CallStaticAJO("getUriForFile", AGUtils.Activity, provider, AGUtils.NewJavaFile(saveFilePath));
                }
            }
            else
            {
                uri = AndroidUri.FromFile(saveFilePath);
            }
            return(uri);
        }
Esempio n. 28
0
        static string GetFileDirectory(string methodName, params object[] args)
        {
            if (AGUtils.IsNotAndroidCheck())
            {
                return(null);
            }

            try
            {
                using (var env = new AndroidJavaClass(C.AndroidOsEnvironment))
                {
                    return(env.CallStaticAJO(methodName, args).GetAbsolutePath());
                }
            }
            catch (Exception e)
            {
                Debug.LogWarning(string.Format("Failed to get directory {0} on {1}, Error: {2}", methodName, C.AndroidOsEnvironment, e.Message));
                return(null);
            }
        }
Esempio n. 29
0
        /// <summary>
        /// Loads Texture2D from URI
        /// </summary>
        /// <returns>The from URI internal.</returns>
        /// <param name="uri">URI.</param>
        public static Texture2D TextureFromUriInternal(string uri)
        {
            if (string.IsNullOrEmpty(uri))
            {
                return(null);
            }

            using (var resolver = ContentResolver)
            {
                var uriAjo = AndroidUri.Parse(uri);
                AndroidJavaObject bitmapAjo;
                try
                {
                    var stream = resolver.CallAJO("openInputStream", uriAjo);
                    using (var c = new AndroidJavaClass(C.AndroidGraphicsBitmapFactory))
                    {
                        bitmapAjo = c.CallStaticAJO("decodeStream", stream);
                    }

                    var compressFormatPng = new AndroidJavaClass(C.AndroidGraphicsBitmapCompressFormat).GetStatic <AndroidJavaObject>("PNG");
                    var outputStream      = new AndroidJavaObject(C.JavaIoBytearrayOutputStream);
                    bitmapAjo.CallBool("compress", compressFormatPng, 100, outputStream);
                    byte[] buffer = outputStream.Call <byte[]>("toByteArray");

                    var tex = new Texture2D(2, 2);
                    tex.LoadImage(buffer);
                    return(tex);
                }
                catch (Exception ex)
                {
                    if (Debug.isDebugBuild)
                    {
                        Debug.LogException(ex);
                    }
                    return(null);
                }
            }
        }
Esempio n. 30
0
        public AndroidJavaObject ToAjo()
        {
            var identityClass = new AndroidJavaClass("im.getsocial.sdk.usermanagement.AuthIdentity");

            return(identityClass.CallStaticAJO("createCustomIdentity", ProviderId, ProviderUserId, AccessToken));
        }