Beispiel #1
0
        public static Location FromAJO(/*Location*/ AndroidJavaObject locationAJO)
        {
            if (locationAJO.IsJavaNull())
            {
                return(null);
            }

            using (locationAJO)
            {
                var  latitude    = locationAJO.Call <double>("getLatitude");
                var  longitude   = locationAJO.Call <double>("getLongitude");
                var  hasAccuracy = locationAJO.Call <bool>("hasAccuracy");
                var  accuracy    = locationAJO.Call <float>("getAccuracy");
                long time        = locationAJO.Call <long>("getTime");

                var hasSpeed   = locationAJO.CallBool("hasSpeed");
                var speed      = locationAJO.Call <float>("getSpeed");
                var hasBearing = locationAJO.CallBool("hasBearing");
                var bearing    = locationAJO.Call <float>("getBearing");


                var result = new Location(latitude, longitude, hasAccuracy, accuracy, time);

                if (hasSpeed)
                {
                    result.HasSpeed = true;
                    result.Speed    = speed;
                }
                if (hasBearing)
                {
                    result.HasBearing = true;
                    result.Bearing    = bearing;
                }

                bool isFromMockProvider = false;
                try
                {
                    isFromMockProvider = locationAJO.CallBool("isFromMockProvider");
                }
                catch (Exception)
                {
                    // Ignore
                }
                result.IsFromMockProvider = isFromMockProvider;

                return(result);
            }
        }
Beispiel #2
0
        public new ReferralUser ParseFromAJO(AndroidJavaObject ajo)
        {
            if (ajo.IsJavaNull())
            {
                return(null);
            }

            using (ajo)
            {
                base.ParseFromAJO(ajo);
                EventDate = DateUtils.FromUnixTime(ajo.CallLong("getEventDate"));
                Event     = ajo.CallStr("getEvent");
                EventData = ajo.CallAJO("getEventData").FromJavaHashMap();
            }
            return(this);
        }
Beispiel #3
0
        void onSuccess(AndroidJavaObject resultAJO)
        {
            var retValue = new Dictionary <string, TValue>();

            if (resultAJO != null && !resultAJO.IsJavaNull())
            {
                var iterator = resultAJO.CallAJO("keySet").CallAJO("iterator");
                while (iterator.CallBool("hasNext"))
                {
                    var key   = iterator.CallStr("next");
                    var value = new TValue().ParseFromAJO(resultAJO.Call <AndroidJavaObject>("get", key));
                    retValue.Add(key, value);
                }
            }

            HandleValue(retValue, _onSuccess);
        }
        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);
        }
        public new ReferredUser ParseFromAJO(AndroidJavaObject ajo)
        {
            if (ajo.IsJavaNull())
            {
                return(null);
            }

            using (ajo)
            {
                base.ParseFromAJO(ajo);
                InstallationDate    = DateUtils.FromUnixTime(ajo.CallLong("getInstallationDate"));
                InstallationChannel = ajo.CallStr("getInstallationChannel");
                InstallPlatform     = ajo.CallStr("getInstallPlatform");
                Reinstall           = ajo.CallBool("isReinstall");
                InstallSuspicious   = ajo.CallBool("isInstallSuspicious");
            }
            return(this);
        }
Beispiel #6
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);
        }
Beispiel #7
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);
        }
Beispiel #8
0
        private void InitializeGetSocial()
        {
            using (AndroidJavaObject clazz = new AndroidJavaClass("im.getsocial.sdk.core.unity.GetSocialUnityBridge"))
            {
                getSocialJavaObject = clazz.CallStatic <AndroidJavaObject>("initBridge");
            }

            if (getSocialJavaObject.IsJavaNull())
            {
                throw new Exception("Failed to instantiate Android GetSocial SDK");
            }

            if (!AndroidUtils.IsUnityBuildOfGetSocialAndroidSDK())
            {
                throw new Exception(
                          "Wrong version of GetSocial Android SDK is included into the build. BuildConfig.TARGET_PLATFORM != \"UNITY\"");
            }

            // Call OnResume manually first time
            OnResume();
            MainThreadExecutor.Init();
        }
        public static Dictionary <string, object> FromJavaMap(this AndroidJavaObject javaMap)
        {
            if (javaMap == null || 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"))
            {
                string key   = iterator.CallStr("next");
                var    value = javaMap.CallAJO("get", key);
                dictionary.Add(key, ParseJavaBoxedValue(value));
            }

            javaMap.Dispose();
            return(dictionary);
        }
Beispiel #10
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");
        }
        public static BeaconState FromAJO(AndroidJavaObject ajo)
        {
            var result = new BeaconState();

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

            var beaconInfoList = ajo.CallAJO("getBeaconInfo");
            var ajos           = beaconInfoList.FromJavaList <AndroidJavaObject>();

            foreach (var beaconInfoAjo in ajos)
            {
                var content   = beaconInfoAjo.Call <byte[]>("getContent");
                var nameSpace = beaconInfoAjo.CallStr("getNamespace");
                var type      = beaconInfoAjo.CallStr("getType");
                result.BeaconInfos.Add(new BeaconInfo(content, nameSpace, type));
            }

            return(result);
        }
Beispiel #12
0
 // this is needed to handle null, it won't be called with any other value
 void onSuccess(AndroidJavaObject value)
 {
     HandleValue(value.IsJavaNull() ? null : value.ToString(), _onSuccess);
 }