public ActivityPost ParseFromAJO(AndroidJavaObject ajo)
        {
            using (ajo)
            {
                Id          = ajo.CallStr("getId");
                Text        = ajo.CallStr("getText");
                ImageUrl    = ajo.CallStr("getImageUrl");
                ButtonTitle = ajo.CallStr("getButtonTitle");
#pragma warning disable 0618
                ButtonAction = ajo.CallStr("getButtonAction");
#pragma warning restore 0618
                var action = ajo.CallAJO("getAction");
                if (action != null)
                {
                    Action = new GetSocialAction().ParseFromAJO(action);
                }
                CreatedAt     = DateUtils.FromUnixTime(ajo.CallLong("getCreatedAt"));
                Author        = new PostAuthor().ParseFromAJO(ajo.CallAJO("getAuthor"));
                CommentsCount = ajo.CallInt("getCommentsCount");
                LikesCount    = ajo.CallInt("getLikesCount");
                IsLikedByMe   = ajo.CallBool("isLikedByMe");

                StickyStart = DateUtils.FromUnixTime(ajo.CallLong("getStickyStart"));
                StickyEnd   = DateUtils.FromUnixTime(ajo.CallLong("getStickyEnd"));
                FeedId      = ajo.CallStr("getFeedId");
                Mentions    = ajo.CallAJO("getMentions").FromJavaList().ConvertAll(mentionAjo =>
                {
                    using (mentionAjo)
                    {
                        return(new Mention().ParseFromAJO(mentionAjo));
                    }
                }).ToList();
            }
            return(this);
        }
Пример #2
0
 public Mention ParseFromAJO(AndroidJavaObject ajo)
 {
     UserId     = ajo.CallStr("getUserId");
     StartIndex = ajo.CallInt("getStartIndex");
     EndIndex   = ajo.CallInt("getEndIndex");
     Type       = ajo.CallStr("getType");
     return(this);
 }
Пример #3
0
 public static FenceState FromAJO(AndroidJavaObject ajo)
 {
     return(new FenceState
     {
         FenceKey = ajo.CallStr("getFenceKey"),
         LastFenceUpdateTimeMillis = ajo.CallLong("getLastFenceUpdateTimeMillis"),
         CurrentState = (State)ajo.CallInt("getCurrentState"),
         PreviousState = (State)ajo.CallInt("getPreviousState")
     });
 }
Пример #4
0
 public Notification ParseFromAJO(AndroidJavaObject ajo)
 {
     Id               = ajo.CallStr("getId");
     Action           = (Type)ajo.CallInt("getActionType");
     WasRead          = ajo.CallBool("wasRead");
     NotificationType = (NotificationTypes)ajo.CallInt("getType");
     CreatedAt        = ajo.CallLong("getCreatedAt");
     Title            = ajo.CallStr("getTitle");
     Text             = ajo.CallStr("getText");
     ActionData       = ajo.CallAJO("getActionData").FromJavaHashMap();
     return(this);
 }
Пример #5
0
        public IccOpenLogicalChannelResponse(AndroidJavaObject ajo)
        {
            if (AGUtils.IsNotAndroid() || !Check.IsSdkGreaterOrEqual(AGDeviceInfo.VersionCodes.LOLLIPOP))
            {
                channelId      = InvalidChannel;
                selectResponse = new byte[0];
                status         = Status.UnknownError;
            }

            channelId      = ajo.CallInt("getChannel");
            selectResponse = ajo.Call <byte[]>("getSelectResponse");
            status         = (Status)ajo.CallInt("getStatus");
        }
Пример #6
0
 public PromoCode ParseFromAJO(AndroidJavaObject ajo)
 {
     using (ajo) {
         Code          = ajo.CallStr("getCode");
         Data          = ajo.CallAJO("getData").FromJavaHashMap();
         MaxClaimCount = (uint)ajo.CallInt("getMaxClaimCount");
         StartDate     = DateFromAjo(ajo.CallAJO("getStartDate")).Value;
         EndDate       = DateFromAjo(ajo.CallAJO("getEndDate"));
         Creator       = new UserReference().ParseFromAJO(ajo.CallAJO("getCreator"));
         ClaimCount    = (uint)ajo.CallInt("getClaimCount");
         Enabled       = ajo.CallBool("isEnabled");
         Claimable     = ajo.CallBool("isClaimable");
     }
     return(this);
 }
Пример #7
0
        public static Dictionary <string, string> FromJavaHashMap(this AndroidJavaObject javaHashMap)
        {
            if (javaHashMap == null)
            {
                return(new Dictionary <string, string>());
            }

            if (javaHashMap.IsJavaNull())
            {
                return(new Dictionary <string, string>());
            }

            var size       = javaHashMap.CallInt("size");
            var dictionary = new Dictionary <string, string>(size);

            var iterator = javaHashMap.CallAJO("keySet").CallAJO("iterator");

            while (iterator.CallBool("hasNext"))
            {
                string key   = iterator.CallStr("next");
                string value = javaHashMap.CallStr("get", key);
                dictionary.Add(key, value);
            }

            javaHashMap.Dispose();
            return(dictionary);
        }
Пример #8
0
        static AndroidJavaObject RotateBitmap(AndroidJavaObject bitmap, string photoPath)
        {
            try
            {
                var ei = new AndroidJavaObject(C.AndroidMediaExifinterface, photoPath);

                const int ORIENTATION_ROTATE_90  = 6;
                const int ORIENTATION_ROTATE_180 = 3;
                const int ORIENTATION_ROTATE_270 = 8;
                int       orientation            = ei.CallInt("getAttributeInt", "Orientation", 0);
                switch (orientation)
                {
                case ORIENTATION_ROTATE_90:
                    return(RotateBitmap(bitmap, 90f));

                case ORIENTATION_ROTATE_180:
                    return(RotateBitmap(bitmap, 180f));

                case ORIENTATION_ROTATE_270:
                    return(RotateBitmap(bitmap, 270f));

                default:
                    return(bitmap);
                }
            }
            catch (Exception e)
            {
                Debug.LogError("Failed rotating bitmap");
                Debug.LogException(e);
                return(bitmap);
            }
        }
Пример #9
0
        public static Place FromAJO(AndroidJavaObject ajo)
        {
            var result = new Place
            {
                Id          = ajo.CallStr("getId"),
                Address     = ajo.CallStr("getAddress"),
                Name        = ajo.CallStr("getName"),
                PhoneNumber = ajo.CallStr("getPhoneNumber"),
                PlaceTypes  = ajo.CallAJO("getPlaceTypes").FromJavaList(x => (PlaceType)x.CallInt("intValue")),
                PriceLevel  = ajo.CallInt("getPriceLevel"),
                Rating      = ajo.CallFloat("getRating"),
                Location    = LatLng.FromAJO(ajo.CallAJO("getLatLng"))
                              // This for some reason causes crashes
                              // Attrubutions = ajo.CallStr("getAttributions")
            };

            if (!ajo.CallAJO("getLocale").IsJavaNull())
            {
                result.Locale = ajo.CallAJO("getLocale").JavaToString();
            }

            if (!ajo.CallAJO("getViewport").IsJavaNull())
            {
                result.Viewport = LatLngBounds.FromAJO(ajo.CallAJO("getViewport"));
            }

            if (!ajo.CallAJO("getWebsiteUri").IsJavaNull())
            {
                result.WebsiteUrl = ajo.CallAJO("getWebsiteUri").JavaToString();
            }

            return(result);
        }
        public static object ParseJavaBoxedValue(AndroidJavaObject boxedValueAjo)
        {
            if (boxedValueAjo == null || boxedValueAjo.IsJavaNull())
            {
                return(null);
            }

            var className = boxedValueAjo.GetClassSimpleName();

            switch (className)
            {
            case "Boolean":
                return(boxedValueAjo.CallBool("booleanValue"));

            case "Float":
                return(boxedValueAjo.CallFloat("floatValue"));

            case "Integer":
                return(boxedValueAjo.CallInt("intValue"));

            case "Long":
                return(boxedValueAjo.CallLong("longValue"));

            case "String":
                return(boxedValueAjo.CallStr("toString"));
            }
            return(boxedValueAjo);
        }
Пример #11
0
 public GetSocialError ParseFromAJO(AndroidJavaObject ajo)
 {
     using (ajo)
     {
         ErrorCode = ajo.CallInt("getErrorCode");
         Message   = ajo.CallStr("getMessage");
     }
     return(this);
 }
 public new SuggestedFriend ParseFromAJO(AndroidJavaObject ajo)
 {
     using (ajo)
     {
         base.ParseFromAJO(ajo);
         MutualFriendsCount = ajo.CallInt("getMutualFriendsCount");
     }
     return(this);
 }
Пример #13
0
        public InviteChannel ParseFromAJO(AndroidJavaObject ajo)
        {
            JniUtils.CheckIfClassIsCorrect(ajo, "InviteChannel");

            using (ajo)
            {
                Id           = ajo.CallStr("getChannelId");
                Name         = ajo.CallStr("getChannelName");
                IconImageUrl = ajo.CallStr("getIconImageUrl");
                DisplayOrder = ajo.CallInt("getDisplayOrder");
                IsEnabled    = ajo.CallBool("isEnabled");
            }
            return(this);
        }
        public static float GetBatteryChargeLevel()
        {
            if (AGUtils.IsNotAndroid())
            {
                return(0f);
            }

            using (BatteryChangeIntentFilter)
            {
                using (BatteryChangeIntentReceiver)
                {
                    var level = BatteryChangeIntentReceiver.CallInt(GetIntExtraMethod, ExtraLevel, -1);
                    var scale = BatteryChangeIntentReceiver.CallInt(GetIntExtraMethod, ExtraScale, -1);

                    if (level == -1 || scale == -1)
                    {
                        return(50.0f);
                    }

                    return(level / (float)scale * 100.0f);
                }
            }
        }
        public static List <T> FromJavaList <T>(this AndroidJavaObject javaList)
        {
            if (javaList == null || javaList.IsJavaNull())
            {
                return(new List <T>());
            }

            int size = javaList.CallInt("size");
            var list = new List <T>(size);

            for (int i = 0; i < size; i++)
            {
                list.Add(javaList.Call <T>("get", i));
            }

            javaList.Dispose();
            return(list);
        }
Пример #16
0
        public CellInfo(AndroidJavaObject ajo)
        {
            if (AGUtils.IsNotAndroid() || !Check.IsSdkGreaterOrEqual(AGDeviceInfo.VersionCodes.JELLY_BEAN_MR1))
            {
                return;
            }

            if (!Check.IsSdkGreaterOrEqual(AGDeviceInfo.VersionCodes.P))
            {
                cellConnectionStatus = Connection.Unknown;
            }
            else
            {
                cellConnectionStatus = (Connection)ajo.CallInt("getCellConnectionStatus");
            }

            timeStamp    = ajo.CallLong("getTimeStamp");
            isRegistered = ajo.CallBool("isRegistered");
        }
Пример #17
0
        public static List <T> FromJavaList <T>(this AndroidJavaObject javaList, Func <AndroidJavaObject, T> converter)
        {
            if (javaList.IsJavaNull())
            {
                return(new List <T>());
            }

            int size = javaList.CallInt("size");
            var list = new List <T>(size);

            for (int i = 0; i < size; i++)
            {
                var listItem = converter(javaList.CallAJO("get", i));
                list.Add(listItem);
            }

            javaList.Dispose();
            return(list);
        }
Пример #18
0
        public static List <T> FromJavaIterable <T>(this AndroidJavaObject javaIterable)
        {
            if (javaIterable.IsJavaNull())
            {
                return(new List <T>());
            }

            var size     = javaIterable.CallInt("size");
            var iterator = javaIterable.CallAJO("iterator");
            var list     = new List <T>(size);

            while (iterator.CallBool("hasNext"))
            {
                list.Add(iterator.Call <T>("next"));
            }

            javaIterable.Dispose();
            return(list);
        }
Пример #19
0
            // ReSharper disable once InconsistentNaming
            // ReSharper disable once UnusedMember.Local
            void onRequestPermissionsResults(AndroidJavaObject results)
            {
                int size           = results.CallInt("size");
                var requestResults = new PermissionRequestResult[size];

                for (int i = 0; i < size; i++)
                {
                    var    resultAJO  = results.CallAJO("get", i);
                    string permission = resultAJO.CallStr("getPermission");
                    bool   shouldShowRequestPermissionRationale = resultAJO.CallBool("isShouldShowRequestPermissionRationale");
                    var    status = (PermissionStatus)resultAJO.CallInt("getResult");
                    requestResults[i] = new PermissionRequestResult(permission, shouldShowRequestPermissionRationale, status);
                }

                if (_onResult != null)
                {
                    GoodiesSceneHelper.Queue(() => _onResult(requestResults));
                }
                results.Dispose();
            }
Пример #20
0
        public SignalStrengths(AndroidJavaObject ajo)
        {
            if (AGUtils.IsNotAndroid() || !Check.IsSdkGreaterOrEqual(AGDeviceInfo.VersionCodes.P))
            {
                return;
            }

            if (ajo.IsJavaNull())
            {
                return;
            }

            cdmaDbm           = ajo.CallInt("getCdmaDbm");
            cdmaEcio          = ajo.CallInt("getCdmaEcio");
            evdoDbm           = ajo.CallInt("getEvdoDbm");
            evdoEcio          = ajo.CallInt("getEvdoEcio");
            evdoSnr           = ajo.CallInt("getEvdoSnr");
            gsmBitErrorRate   = ajo.CallInt("getGsmBitErrorRate");
            gsmSignalStrength = ajo.CallInt("getGsmSignalStrength");
            level             = ajo.CallInt("getLevel");
            isGsm             = ajo.CallBool("isGsm");
        }
Пример #21
0
        public static Dictionary <string, object> FromJavaMap(this AndroidJavaObject javaMap)
        {
            if (javaMap.IsJavaNull())
            {
                return(new Dictionary <string, object>());
            }

            int size       = javaMap.CallInt("size");
            var dictionary = new Dictionary <string, object>(size);

            var iterator = javaMap.CallAJO("keySet").CallAJO("iterator");

            while (iterator.CallBool("hasNext"))
            {
                var key   = iterator.CallStr("next");
                var value = javaMap.CallAJO("get", key);
                dictionary.Add(key, ParseJavaBoxedValue(value));
            }

            javaMap.Dispose();
            return(dictionary);
        }
        public Notification ParseFromAJO(AndroidJavaObject ajo)
        {
            Id               = ajo.CallStr("getId");
            Status           = ajo.CallStr("getStatus");
            NotificationType = ajo.CallStr("getType");
#pragma warning disable 618
            Action = (Type)ajo.CallInt("getActionType");
#pragma warning restore 618
            CreatedAt          = ajo.CallLong("getCreatedAt");
            Title              = ajo.CallStr("getTitle");
            Text               = ajo.CallStr("getText");
            NotificationAction = new GetSocialAction().ParseFromAJO(ajo.CallAJO("getAction"));
            ActionButtons      = ajo.CallAJO("getActionButtons").FromJavaList().ConvertAll(item => {
                using (item) {
                    return(new ActionButton().ParseFromAJO(item));
                }
            });
            ImageUrl      = ajo.CallStr("getImageUrl");
            VideoUrl      = ajo.CallStr("getVideoUrl");
            Sender        = new UserReference().ParseFromAJO(ajo.CallAJO("getSender"));
            Customization = new NotificationCustomization().ParseFromAJO(ajo.CallAJO("getCustomization"));
            return(this);
        }
 void onWarning(AndroidJavaObject warning)
 {
     GoodiesSceneHelper.Queue(() => _warningCallback((AGFingerprintScanner.Warning)warning.CallInt("getValue")));
 }
Пример #24
0
 static AndroidJavaObject RotateBitmap(AndroidJavaObject bitmap, float angle)
 {
     using (var matrix = new AndroidJavaObject(C.AndroidGraphicsMatrix))
     {
         matrix.CallBool("postRotate", angle);
         return(C.AndroidGraphicsBitmap.AJCCallStaticOnceAJO("createBitmap", bitmap, 0, 0, bitmap.CallInt("getWidth"), bitmap.CallInt("getHeight"), matrix, true));
     }
 }
 void onError(AndroidJavaObject error)
 {
     GoodiesSceneHelper.Queue(() => _errorCallback((AGFingerprintScanner.Error)error.CallInt("getValue")));
 }
Пример #26
0
 public NotificationsSummary ParseFromAJO(AndroidJavaObject ajo)
 {
     SuccessfullySentCount = ajo.CallInt("getSuccessfullySentCount");
     return(this);
 }
 private UiAction toUIActionEnum(AndroidJavaObject actionType)
 {
     return((UiAction)actionType.CallInt("ordinal"));
 }