public iOSBillingTransaction (IDictionary _transactionJsonDict)
		{
			ProductIdentifier		= _transactionJsonDict.GetIfAvailable<string>(kProductID);

			// Transaction date can be NULL/Empty
			string 	_tDateStr		= _transactionJsonDict.GetIfAvailable<string>(kTransactionDate);

			if (!string.IsNullOrEmpty(_tDateStr))
			{
				TransactionDateUTC		= _tDateStr.ToZuluFormatDateTimeUTC();
				TransactionDateLocal	= TransactionDateUTC.ToLocalTime();
			}

			// Transaction identifier
			TransactionIdentifier	= _transactionJsonDict.GetIfAvailable<string>(kTransactionID);

			// Transaction receipt can be NULL/Empty
			TransactionReceipt		= _transactionJsonDict.GetIfAvailable<string>(kTransactionReceipt);

			// Transactions state
			SKPaymentTransactionState _skTransactionState	= (SKPaymentTransactionState)int.Parse(_transactionJsonDict[kTransactionState].ToString());
			TransactionState		= ConvertToBillingTransactionState(_skTransactionState);

			// Verifications state
			VerificationState		= (eBillingTransactionVerificationState)int.Parse(_transactionJsonDict[kVerificationState].ToString());

			// Error can be NULL/Empty
			Error					= _transactionJsonDict.GetIfAvailable<string>(kError);		

			// Set response which is sent from Native side
			RawPurchaseData			= _transactionJsonDict.ToJSON();
		}
        protected override void RequestForImageFinished(IDictionary _dataDict)
        {
            string    _error = _dataDict.GetIfAvailable <string>(EditorGameCenter.kErrorKey);
            Texture2D _image = _dataDict.GetIfAvailable <Texture2D>(EditorGameCenter.kImageKey);

            DownloadImageFinished(_image, _error);
        }
        public AndroidBillingTransaction(IDictionary _transactionInfo)
        {
            IDictionary _originalJSON = _transactionInfo[kOriginalJSON] as IDictionary;

            // Set raw response
            RawPurchaseData			= _originalJSON.ToJSON();

            // Assign values
            ProductIdentifier		= _originalJSON.GetIfAvailable<string>(kProductID);

            // Transaction time
            long _purchaseTimeInMillis		= _originalJSON.GetIfAvailable<long>(kPurchaseTime);
            System.DateTime _purchaseDate 	= _purchaseTimeInMillis.ToDateTimeFromJavaTime();
            TransactionDateUTC				= _purchaseDate.ToUniversalTime();
            TransactionDateLocal			= _purchaseDate.ToLocalTime();

            TransactionIdentifier			= GetPurchaseIdentifier(_originalJSON);
            int _purchaseState 				= _originalJSON.GetIfAvailable<int>(kPurchaseState);
            TransactionState				= GetConvertedPurchaseState(_purchaseState);

            // Data from _transactionInfo
            TransactionReceipt				= _transactionInfo.GetIfAvailable<string>(kSignature);

            //First find out if the transaction is valid
            string _validationState 		= _transactionInfo.GetIfAvailable<string>(kPurchaseValidationState);
            VerificationState 				= GetValidationState(_validationState);

            // Error
            Error							= _transactionInfo.GetIfAvailable<string>(kError);
        }
        protected override void ExtractTransactionResponseData(string _dataStr, out BillingTransaction[] _transactions, out string _error)
        {
            // Set default values
            _transactions = null;
            _error        = null;

            // Parse and fetch properties from JSON object
            IDictionary _dataDict = (IDictionary)JSONUtility.FromJSON(_dataStr);

            _error = _dataDict.GetIfAvailable <string>(kErrorKey);

            if (_error == null)
            {
                IList _transactionsJSONList = _dataDict.GetIfAvailable <IList>(kTransactionsKey);

                if (_transactionsJSONList != null)
                {
                    int _count = _transactionsJSONList.Count;
                    _transactions = new BillingTransactionAndroid[_count];

                    for (int _iter = 0; _iter < _count; _iter++)
                    {
                        _transactions[_iter] = new BillingTransactionAndroid((IDictionary)_transactionsJSONList[_iter]);
                    }
                }
            }
        }
		public iOSTwitterSession (IDictionary _sessionJsonDict)
		{
			AuthToken		= _sessionJsonDict.GetIfAvailable<string>(kAuthToken);
			AuthTokenSecret	= _sessionJsonDict.GetIfAvailable<string>(kAuthTokenSecret);
			UserName		= _sessionJsonDict.GetIfAvailable<string>(kUserName);
			UserID			= _sessionJsonDict.GetIfAvailable<string>(kUserID);
		}
        internal CrossPlatformNotification(IDictionary _jsonDict)
        {
            // Get alert body
            AlertBody = _jsonDict.GetIfAvailable <string>(kAlertBodyKey);

            // Get fire date, repeat interval
            string _fireDateStr = _jsonDict.GetIfAvailable <string>(kFireDateKey);

            if (!string.IsNullOrEmpty(_fireDateStr))
            {
                FireDate = _fireDateStr.ToZuluFormatDateTimeLocal();
            }

            RepeatInterval = _jsonDict.GetIfAvailable <eNotificationRepeatInterval>(kRepeatIntervalKey);

            // Get user info
            UserInfo = _jsonDict[kUserInfoKey] as IDictionary;

            // Get sound name
            SoundName = _jsonDict.GetIfAvailable <string>(kSoundNameKey);

            // Get iOS specific properties, if included
            if (_jsonDict.Contains(kiOSPropertiesKey))
            {
                iOSProperties = new iOSSpecificProperties(_jsonDict[kiOSPropertiesKey] as IDictionary);
            }

            // Get Android specific properties, if included
            if (_jsonDict.Contains(kAndroidPropertiesKey))
            {
                AndroidProperties = new AndroidSpecificProperties(_jsonDict[kAndroidPropertiesKey] as IDictionary);
            }
        }
示例#7
0
 public iOSTwitterSession(IDictionary _sessionJsonDict)
 {
     AuthToken       = _sessionJsonDict.GetIfAvailable <string>(kAuthToken);
     AuthTokenSecret = _sessionJsonDict.GetIfAvailable <string>(kAuthTokenSecret);
     UserName        = _sessionJsonDict.GetIfAvailable <string>(kUserName);
     UserID          = _sessionJsonDict.GetIfAvailable <string>(kUserID);
 }
示例#8
0
 internal AndroidSpecificProperties(IDictionary _jsonDict)
 {
     ContentTitle = _jsonDict.GetIfAvailable <string>(kContentTitleKey);
     TickerText   = _jsonDict.GetIfAvailable <string>(kTickerTextKey);
     Tag          = _jsonDict.GetIfAvailable <string>(kTagKey);
     LargeIcon    = _jsonDict.GetIfAvailable <string>(kLargeIcon);
 }
        protected override void DidReceiveBillingProducts(string _dataStr)
        {
            IDictionary _dataDict = (IDictionary)JSONUtility.FromJSON(_dataStr);
            string      _error    = _dataDict.GetIfAvailable <string>(kErrorKey);

            if (_error != null)
            {
                DidReceiveBillingProducts(null, _error);
                return;
            }
            else
            {
                IList            _regProductsJSONList = _dataDict.GetIfAvailable <IList>(kProductsKey);
                BillingProduct[] _regProductsList     = null;

                if (_regProductsJSONList != null)
                {
                    _regProductsList = new BillingProductAndroid[_regProductsJSONList.Count];
                    int _iter = 0;

                    foreach (IDictionary _productInfoDict in _regProductsJSONList)
                    {
                        _regProductsList[_iter++] = new BillingProductAndroid(_productInfoDict);
                    }
                }

                DidReceiveBillingProducts(_regProductsList, null);
                return;
            }
        }
示例#10
0
        private void DrawUpdateNews()
        {
            string newJson = EditorPrefs.GetString(Constants.kVBNewsKey, "[]");
            IList  news    = (IList)JSONUtility.FromJSON(newJson);

            if (news.Count > 0)
            {
                GUILayout.FlexibleSpace();
                EditorGUILayout.LabelField("", GUI.skin.horizontalSlider);
                EditorGUI.indentLevel++;
                m_recentUpdatesFoldout = EditorGUILayout.Foldout(m_recentUpdatesFoldout, "Recent Updates", true);
                if (m_recentUpdatesFoldout)
                {
                    m_recentUpdatesScrollPosition = GUILayout.BeginScrollView(m_recentUpdatesScrollPosition, GUILayout.MinHeight(150f));
                    GUILayout.BeginVertical(EditorStyles.helpBox);

                    foreach (IDictionary eachEntry in news)
                    {
                        GUILayout.BeginVertical(EditorStyles.helpBox);

                        foreach (string key in eachEntry.Keys)
                        {
                            object value = eachEntry[key];

                            if ((value as IDictionary) != null)
                            {
                                IDictionary info        = value as IDictionary;
                                string      link        = info.GetIfAvailable <string>("link");
                                string      description = info.GetIfAvailable <string>("description");

                                GUILayout.BeginHorizontal();
                                if (GUILayout.Button(key))
                                {
                                    Application.OpenURL(link);
                                }
                                GUILayout.FlexibleSpace();
                                GUILayout.EndHorizontal();
                                EditorGUI.indentLevel++;
                                GUILayout.Label(description, EditorStyles.wordWrappedLabel);
                                EditorGUI.indentLevel--;
                            }
                            else
                            {
                                GUILayout.Label(key, EditorStyles.boldLabel);
                                EditorGUI.indentLevel++;
                                GUILayout.Label(value.ToString(), EditorStyles.wordWrappedLabel);
                                EditorGUI.indentLevel--;
                            }
                        }

                        GUILayout.Space(6);
                        GUILayout.EndVertical();
                    }

                    GUILayout.EndVertical();
                    GUILayout.EndScrollView();
                }
                EditorGUI.indentLevel--;
            }
        }
示例#11
0
 public iOSTwitterAuthSession(IDictionary _sessionJsonDict)
 {
     // Set properties
     AuthToken       = _sessionJsonDict.GetIfAvailable <string>(kAuthToken);
     AuthTokenSecret = _sessionJsonDict.GetIfAvailable <string>(kAuthTokenSecret);
     UserID          = _sessionJsonDict.GetIfAvailable <string>(kUserID);
 }
		public AndroidAddressBookContact (IDictionary _contactInfoJsontDict)
		{
			//If Given Name is available set it. Else pick from Display Name
			string _displayName = _contactInfoJsontDict.GetIfAvailable<string>(kDisplayName);
			string _givenName 	= _contactInfoJsontDict.GetIfAvailable<string>(kGivenName);
			string _familyName 	= _contactInfoJsontDict.GetIfAvailable<string>(kFamilyName);
		
			if(string.IsNullOrEmpty(_displayName))
			{
				_displayName = "";
			}

			FirstName 		= _givenName;
			LastName 		= _familyName;
			ImagePath		= _contactInfoJsontDict[kImagePath] as string;
			PhoneNumberList	= new List<string>();
			EmailIDList		= new List<string>();
			
			// Add phone numbers
			IList _phoneNumJsonList	= _contactInfoJsontDict[kPhoneNumList] as IList;
			foreach (string _phoneNo in _phoneNumJsonList)
				PhoneNumberList.Add(_phoneNo);
			
			// Add email id's
			IList _emailIDJsonList	= _contactInfoJsontDict[kEmailList] as IList;
			foreach (string _emailID in _emailIDJsonList)
				EmailIDList.Add(_emailID);
		}
示例#13
0
        public BillingTransactionIOS(IDictionary _transactionJsonDict)
        {
            ProductIdentifier = _transactionJsonDict.GetIfAvailable <string>(kProductID);

            // Transaction date can be NULL/Empty
            string _tDateStr = _transactionJsonDict.GetIfAvailable <string>(kTransactionDate);

            if (!string.IsNullOrEmpty(_tDateStr))
            {
                TransactionDateUTC   = _tDateStr.ToZuluFormatDateTimeUTC();
                TransactionDateLocal = TransactionDateUTC.ToLocalTime();
            }

            // Transaction identifier
            TransactionIdentifier = _transactionJsonDict.GetIfAvailable <string>(kTransactionID);

            // Transaction receipt can be NULL/Empty
            TransactionReceipt = _transactionJsonDict.GetIfAvailable <string>(kTransactionReceipt);

            // Transactions state
            SKPaymentTransactionState _skTransactionState = (SKPaymentTransactionState)int.Parse(_transactionJsonDict[kTransactionState].ToString());

            TransactionState = ConvertToBillingTransactionState(_skTransactionState);

            // Verifications state
            VerificationState = (eBillingTransactionVerificationState)int.Parse(_transactionJsonDict[kVerificationState].ToString());

            // Error can be NULL/Empty
            Error = _transactionJsonDict.GetIfAvailable <string>(kError);

            // Set response which is sent from Native side
            RawPurchaseData = _transactionJsonDict.ToJSON();
        }
			internal iOSSpecificProperties (IDictionary _jsonDict)
			{
				AlertAction	= _jsonDict.GetIfAvailable<string>(kAlertActionKey);
				HasAction	= _jsonDict.GetIfAvailable<bool>(kHasActionKey);
				BadgeCount	= _jsonDict.GetIfAvailable<int>(kBadgeCountKey);
				LaunchImage	= _jsonDict.GetIfAvailable<string>(kLaunchImageKey);
			}
        protected override void ParseReceivedNotificationData(string _dataStr, out CrossPlatformNotification _receivedNotification, out bool _isLaunchNotification)
        {
            IDictionary _dataDict = JSONUtility.FromJSON(_dataStr) as IDictionary;

            // Extract properties
            IDictionary _payloadDict = _dataDict.GetIfAvailable <IDictionary>(kPayloadKey);

            _receivedNotification = new iOSNotificationPayload(_payloadDict);
            _isLaunchNotification = _dataDict.GetIfAvailable <bool>(kIsLaunchNotificationKey);

            if (_receivedNotification.UserInfo != null)
            {
#if USES_ONE_SIGNAL
                // Our system should ignore raising events sent from One Signal
                const string _kOneSignalIdentifierKeyPath = "custom/i";

                if (_receivedNotification.UserInfo.ContainsKeyPath(_kOneSignalIdentifierKeyPath))
                {
                    _receivedNotification = null;

                    return;
                }
#endif
            }
        }
示例#16
0
 public iOSUser(IDictionary _dataDict) : base()
 {
     // Initialize properties
     Identifier = _dataDict.GetIfAvailable <string>(kPlayerIDKey);
     Name       = _dataDict.GetIfAvailable <string>(kDisplayNameKey);
     Alias      = _dataDict.GetIfAvailable <string>(kAliasKey);
 }
示例#17
0
        public AndroidAddressBookContact(IDictionary _contactInfoJsontDict)
        {
            //If Given Name is available set it. Else pick from Display Name
            string _displayName = _contactInfoJsontDict.GetIfAvailable <string>(kDisplayName);
            string _givenName   = _contactInfoJsontDict.GetIfAvailable <string>(kGivenName);
            string _familyName  = _contactInfoJsontDict.GetIfAvailable <string>(kFamilyName);

            if (string.IsNullOrEmpty(_displayName))
            {
                _displayName = "";
            }

            FirstName       = ParseFirstName(_givenName, _familyName, _displayName);
            LastName        = ParseLastName(_givenName, _familyName, _displayName);
            ImagePath       = _contactInfoJsontDict[kImagePath] as string;
            PhoneNumberList = new List <string>();
            EmailIDList     = new List <string>();

            // Add phone numbers
            IList _phoneNumJsonList = _contactInfoJsontDict[kPhoneNumList] as IList;

            foreach (string _phoneNo in _phoneNumJsonList)
            {
                PhoneNumberList.Add(_phoneNo);
            }

            // Add email id's
            IList _emailIDJsonList = _contactInfoJsontDict[kEmailList] as IList;

            foreach (string _emailID in _emailIDJsonList)
            {
                EmailIDList.Add(_emailID);
            }
        }
示例#18
0
        public AndroidBillingTransaction(IDictionary _transactionInfo)
        {
            IDictionary _originalJSON = _transactionInfo[kOriginalJSON] as IDictionary;

            // Set raw response
            RawPurchaseData = _originalJSON.ToJSON();

            // Assign values
            ProductIdentifier = _originalJSON.GetIfAvailable <string>(kProductID);

            // Transaction time
            long _purchaseTimeInMillis = _originalJSON.GetIfAvailable <long>(kPurchaseTime);

            System.DateTime _purchaseDate = _purchaseTimeInMillis.ToDateTimeFromJavaTime();
            TransactionDateUTC   = _purchaseDate.ToUniversalTime();
            TransactionDateLocal = _purchaseDate.ToLocalTime();

            TransactionIdentifier = GetPurchaseIdentifier(_originalJSON);
            int _purchaseState = _originalJSON.GetIfAvailable <int>(kPurchaseState);

            TransactionState = GetConvertedPurchaseState(_purchaseState);

            // Data from _transactionInfo
            TransactionReceipt = _transactionInfo.GetIfAvailable <string>(kSignature);

            //First find out if the transaction is valid
            string _validationState = _transactionInfo.GetIfAvailable <string>(kPurchaseValidationState);

            VerificationState = GetValidationState(_validationState);

            // Error
            Error = _transactionInfo.GetIfAvailable <string>(kError);
        }
//		{
//			"tag": "tag",
//			"message-data": {
//				"host": "move",
//				"arguments": {
//					"cmd": "showAlert",
//					"var": "myVar"
//				},
//				"url-scheme": "unity"
//			}
//		}

        public iOSWebViewMessage(IDictionary _schemeDataJsonDict)
        {
            string      _URL        = _schemeDataJsonDict.GetIfAvailable <string>(kURLKey);
            string      _schemeName = _schemeDataJsonDict.GetIfAvailable <string>(kURLSchemeKey);
            string      _host       = _schemeDataJsonDict.GetIfAvailable <string>(kHostKey);
            IDictionary _args       = _schemeDataJsonDict.GetIfAvailable <IDictionary>(kArgumentsKey);

            // Set properties
            this.URL       = _URL;
            this.Scheme    = _schemeName;
            this.Host      = _host;
            this.Arguments = new Dictionary <string, string>();

            if (_args != null)
            {
                foreach (string _key in _args.Keys)
                {
                    string _keyStr   = _key.ToString();
                    string _valueStr = _args[_key].ToString();

                    // Add key and value
                    Arguments[_keyStr] = _valueStr;
                }
            }
        }
        protected override void ParseReadContactsResponseData(IDictionary _dataDict, out eABAuthorizationStatus _authStatus, out AddressBookContact[] _contactsList)
        {
            List <object> _contactsJSONList = _dataDict.GetIfAvailable <List <object> >(kContactsListKey);

            if (_contactsJSONList != null)
            {
                int _count = _contactsJSONList.Count;
                AddressBookContact[] _newContactsList = new AndroidAddressBookContact[_count];

                for (int _iter = 0; _iter < _count; _iter++)
                {
                    _newContactsList[_iter] = new AndroidAddressBookContact((IDictionary)_contactsJSONList[_iter]);
                }

                // Set properties
                _authStatus   = eABAuthorizationStatus.AUTHORIZED;
                _contactsList = _newContactsList;
            }
            else
            {
                // Set properties
                _authStatus   = GetAuthorizationStatus(_dataDict.GetIfAvailable <string>(kAuthStatusKey));
                _contactsList = null;
            }
        }
		protected override void RequestForImageFinished (IDictionary _dataDict)
		{
			string		_error	= _dataDict.GetIfAvailable<string>(EditorGameCenter.kErrorKey);
			Texture2D	_image	= _dataDict.GetIfAvailable<Texture2D>(EditorGameCenter.kImageKey);

			DownloadImageFinished(_image, _error);
		}
        protected override void DidFinishBillingTransaction(string _dataStr)
        {
            IDictionary _dataDict = (IDictionary)JSONUtility.FromJSON(_dataStr);
            string      _error    = _dataDict.GetIfAvailable <string>(kErrorKey);

            if (_error != null)
            {
                DidFinishBillingTransaction(null, _error);
                return;
            }
            else
            {
                IList _transactionsJSONList            = _dataDict.GetIfAvailable <IList>(kTransactionsKey);
                BillingTransaction[] _transactionsList = null;

                if (_transactionsJSONList != null)
                {
                    _transactionsList = new iOSBillingTransaction[_transactionsJSONList.Count];
                    int _iter = 0;

                    foreach (IDictionary _transactionInfoDict in _transactionsJSONList)
                    {
                        _transactionsList[_iter++] = new iOSBillingTransaction(_transactionInfoDict);
                    }
                }

                DidFinishBillingTransaction(_transactionsList, null);
                return;
            }
        }
 internal iOSSpecificProperties(IDictionary _jsonDict)
 {
     AlertAction = _jsonDict.GetIfAvailable <string>(kAlertActionKey);
     HasAction   = _jsonDict.GetIfAvailable <bool>(kHasActionKey);
     BadgeCount  = _jsonDict.GetIfAvailable <int>(kBadgeCountKey);
     LaunchImage = _jsonDict.GetIfAvailable <string>(kLaunchImageKey);
 }
        public iOSNotificationPayload(IDictionary _payloadDict)
        {
            iOSProperties = new iOSSpecificProperties();
            string      _userInfoKey = NPSettings.Notification.iOS.UserInfoKey;
            IDictionary _apsDict     = _payloadDict[kAPS] as IDictionary;

            // Read alert info from aps dictionary
            if (_apsDict.Contains(kAlert))
            {
                object _alertUnknownType = _apsDict[kAlert] as object;

                if (_alertUnknownType != null)
                {
                    // String format
                    if ((_alertUnknownType as string) != null)
                    {
                        AlertBody = _alertUnknownType as string;
                    }
                    // Dictionary format
                    else
                    {
                        IDictionary _alertDict   = _alertUnknownType as IDictionary;
                        string      _alertAction = _alertDict.GetIfAvailable <string>(kAction);
                        bool        _hasAction   = false;

                        if (_alertDict.Contains(kHasAction))
                        {
                            _hasAction = System.Convert.ToBoolean(_alertDict[kHasAction]);
                        }
                        else
                        {
                            _hasAction = (_alertAction != null);
                        }

                        // Set properties
                        AlertBody = _alertDict.GetIfAvailable <string>(kBody);
                        iOSProperties.AlertAction = _alertAction;
                        iOSProperties.HasAction   = _hasAction;
                        iOSProperties.LaunchImage = _alertDict.GetIfAvailable <string>(kLaunchImage);
                    }
                }
            }

            // Read sound, badge info from aps dictionary
            SoundName = _apsDict.GetIfAvailable <string>(kSound);
            iOSProperties.BadgeCount = _apsDict.GetIfAvailable <int>(kBadge);

            // Read user info from payload dictionary
            UserInfo = _payloadDict.GetIfAvailable <IDictionary>(_userInfoKey);

            // Read fire date, repeat interval from payload dictionary
            string _fireDateStr = _payloadDict.GetIfAvailable <string>(kFireDate);

            if (_fireDateStr != null)
            {
                FireDate = _fireDateStr.ToZuluFormatDateTimeLocal();
            }

            RepeatInterval = ConvertToRepeatInterval(_payloadDict.GetIfAvailable <CalendarUnit>(kRepeatIntervalKey));
        }
        private void DidReceiveNewCloudData(string _dataStr)
        {
            IDictionary _dataDict         = (IDictionary)JSONUtility.FromJSON(_dataStr);
            string      _encodedData      = _dataDict.GetIfAvailable <string>(kKeyForNewCloudData);
            string      _cloudAccountName = _dataDict.GetIfAvailable <string>(kKeyForCloudAccount);

            // Decode the data with Base64 and convert to Json IDict.
            if (!string.IsNullOrEmpty(_encodedData))
            {
                string _decodedData = _encodedData.FromBase64();

                Console.Log(Constants.kDebugTag, "[CloudServices] Received from Cloud : " + _decodedData);

                IDictionary _newCloudData = (IDictionary)JSONUtility.FromJSON(_decodedData);

                // Here compare the data with the one on local disk and trigger the ExternallyChagedEvent.
                CheckChangedKeyValueStoreDataAndRefresh(_newCloudData, _cloudAccountName);
            }

            if (IsLocalDirty())
            {
                SetLocalDirty(false);                 //We are setting to false and on failed commit to cloud we set it to true. If we don't set here, there could be chances for missing the flagstatus if set to false in callback on sucess of save.
                string _jsonString = m_dataStore.ToJSON();
                Console.Log(Constants.kDebugTag, "[CloudServices] Save To Cloud : " + _jsonString);
                Plugin.Call(Native.Methods.SAVE_CLOUD_DATA, _jsonString.ToBase64());
            }
            else
            {
                FinishedSync(true);
            }
        }
示例#26
0
	public static void DidReceiveBillingProducts(string dataStr)
	{
		IDictionary dataDict = (IDictionary)JsonUtility.FromJson(dataStr);
		string error = dataDict.GetIfAvailable<string>("error");

		if(!string.IsNullOrEmpty(error)){
			DidReceiveBillingProducts(null, error);
			return;
		} else {
			IList regProductsJSONList = dataDict.GetIfAvailable<IList>("products");
			ItemData[] regProductsList = null;

			if(regProductsJSONList != null){
				regProductsList = new iosItemData[regProductsJSONList.Count];
				int i = 0;

				foreach(IDictionary productInfoDict in regProductsJSONList)
				{
					regProductsList[i++] = new iosItemData(productInfoDict);
				}
			}

			DidReceiveBillingProducts(regProductsList, null);
			return;
		}
	}
		public iOSTwitterUser (IDictionary _userJsonDict)
		{
			UserID					= _userJsonDict.GetIfAvailable<string>(kUserID);
			Name					= _userJsonDict.GetIfAvailable<string>(kName);
			IsVerified				= _userJsonDict.GetIfAvailable<bool>(kIsVerified);
			IsProtected				= _userJsonDict.GetIfAvailable<bool>(kIsProtected);
			ProfileImageURL			= _userJsonDict.GetIfAvailable<string>(kProfileImageURL);
		}
 public AndroidTwitterUser(IDictionary _userJsonDict)
 {
     UserID          = _userJsonDict[kUserID] as string;
     Name            = _userJsonDict[kName] as string;
     IsVerified      = _userJsonDict.GetIfAvailable <bool>(kIsVerified);
     IsProtected     = _userJsonDict.GetIfAvailable <bool>(kIsProtected);
     ProfileImageURL = _userJsonDict[kProfileImageURL] as string;
 }
示例#29
0
 public iOSTwitterUser(IDictionary _userJsonDict)
 {
     UserID          = _userJsonDict.GetIfAvailable <string>(kUserID);
     Name            = _userJsonDict.GetIfAvailable <string>(kName);
     IsVerified      = _userJsonDict.GetIfAvailable <bool>(kIsVerified);
     IsProtected     = _userJsonDict.GetIfAvailable <bool>(kIsProtected);
     ProfileImageURL = _userJsonDict.GetIfAvailable <string>(kProfileImageURL);
 }
		public AndroidBillingProduct (IDictionary _productJsonDict)
		{
			ProductIdentifier	= _productJsonDict[kProductID] as string;
			Name				= _productJsonDict[kTitle] as string;
			Description			= _productJsonDict[kDescription] as string;
			Price				= _productJsonDict.GetIfAvailable<long>(kPriceAmount)/1000000.0f;//As the value is in microns
			LocalizedPrice		= _productJsonDict.GetIfAvailable<string>(kLocalizedPrice);
		}
		public AndroidTwitterUser (IDictionary _userJsonDict)
		{
			UserID					= _userJsonDict[kUserID] as string;
			Name					= _userJsonDict[kName] as string;
			IsVerified				= _userJsonDict.GetIfAvailable<bool>(kIsVerified);
			IsProtected				= _userJsonDict.GetIfAvailable<bool>(kIsProtected);
			ProfileImageURL			= _userJsonDict[kProfileImageURL] as string;
		}
		public iOSBillingProduct (IDictionary _productJsonDict)
		{
			Name				= _productJsonDict.GetIfAvailable<string>(kTitle);
			ProductIdentifier	= _productJsonDict.GetIfAvailable<string>(kProductID);
			Description			= _productJsonDict.GetIfAvailable<string>(kDescription);
			Price				= _productJsonDict.GetIfAvailable<float>(kPrice);
			LocalizedPrice		= _productJsonDict.GetIfAvailable<string>(kLocalizedPrice);
		}
示例#33
0
 public AndroidBillingProduct(IDictionary _productJsonDict)
 {
     ProductIdentifier = _productJsonDict[kProductID] as string;
     Name           = _productJsonDict[kTitle] as string;
     Description    = _productJsonDict[kDescription] as string;
     Price          = _productJsonDict.GetIfAvailable <long>(kPriceAmount) / 1000000.0f;                          //As the value is in microns
     LocalizedPrice = _productJsonDict.GetIfAvailable <string>(kLocalizedPrice);
 }
        protected override void LoadExternalAuthenticationCredentialsFinished(IDictionary _dataDict)
        {
            IDictionary _credentials = _dataDict.GetIfAvailable <IDictionary>(kCredentialsData);

            string _error = _dataDict.GetIfAvailable <string>(kNativeMessageError);

            LoadExternalAuthenticationCredentialsFinished(_credentials, _error);
        }
示例#35
0
 public iOSBillingProduct(IDictionary _productJsonDict)
 {
     Name = _productJsonDict.GetIfAvailable <string>(kTitle);
     ProductIdentifier = _productJsonDict.GetIfAvailable <string>(kProductID);
     Description       = _productJsonDict.GetIfAvailable <string>(kDescription);
     Price             = _productJsonDict.GetIfAvailable <float>(kPrice);
     LocalizedPrice    = _productJsonDict.GetIfAvailable <string>(kLocalizedPrice);
 }
		public iOSNotificationPayload (IDictionary _payloadDict)
		{
			IDictionary _apsDict			= _payloadDict[kAPS] as IDictionary;
			string 		_userInfoKey		= NPSettings.Notification.iOS.UserInfoKey;
			iOSProperties					= new iOSSpecificProperties();

			// Read alert info
			if (_apsDict.Contains(kAlert))
			{
				object 	_alertUnknownType	= _apsDict[kAlert] as object;
			
				if (_alertUnknownType != null)
				{
					// String format
					if ((_alertUnknownType as string) != null)
					{
						AlertBody						= _alertUnknownType as string;
					}
					// Dictionary format
					else
					{
						IDictionary _alertDict			= _alertUnknownType as IDictionary;
						AlertBody						= _alertDict.GetIfAvailable<string>(kBody);
						string 		_alertAction		= _alertDict.GetIfAvailable<string>(kAction);

						if (string.IsNullOrEmpty(_alertAction))
						{
							iOSProperties.AlertAction	= null;
							iOSProperties.HasAction		= false;
						}
						else
						{
							iOSProperties.AlertAction	= _alertAction;
							iOSProperties.HasAction		= true;
						}

						// Launch image
						iOSProperties.LaunchImage		= _alertDict.GetIfAvailable<string>(kLaunchImage);
					}
				}
			}

			// Read sound, badge info
			iOSProperties.SoundName		=  _apsDict.GetIfAvailable<string>(kSound);
			iOSProperties.BadgeCount	=  _apsDict.GetIfAvailable<int>(kBadge);

			// Read user info
			if (_apsDict.Contains(_userInfoKey))
				UserInfo				= _payloadDict[_userInfoKey] as IDictionary;
			
			// Read fire date, repeat interval
			string 	_fireDateStr		= _payloadDict.GetIfAvailable<string>(kFireDate);

			if (!string.IsNullOrEmpty(_fireDateStr))
				FireDate				= _fireDateStr.ToDateTimeLocalUsingZuluFormat();

			RepeatInterval				= ConvertToRepeatInterval(_payloadDict.GetIfAvailable<CalendarUnit>(kRepeatIntervalKey));
		}
		protected override void LoadUsersFinished (IDictionary _dataDict)
		{
			EGCUser[]			_gcUsers			= _dataDict.GetIfAvailable<EGCUser[]>(EditorGameCenter.kUsersListKey);
			string 				_error				= _dataDict.GetIfAvailable<string>(EditorGameCenter.kErrorKey);
			User[]				_newUsers			= EditorUser.ConvertUsersList(_gcUsers);
			
			// Invoke handler
			LoadUsersFinished(_newUsers, _error);
		}
		protected override void LoadAchievementsFinished (IDictionary _dataDict)
		{
			IList			_achievementsJSONList	= _dataDict.GetIfAvailable<IList>(kAchievementsListKey);
			string 			_error					= _dataDict.GetIfAvailable<string>(GameServicesIOS.kNativeMessageErrorKey);
			Achievement[]	_newAchievements		= iOSAchievement.ConvertAchievementsList(_achievementsJSONList);
			
			// Invoke handler
			LoadAchievementsFinished(_newAchievements, _error);
		}
		protected override void LoadAchievementsFinished (IDictionary _dataDict)
		{
			EGCAchievement[]			_gcAchievements			= _dataDict.GetIfAvailable<EGCAchievement[]>(EditorGameCenter.kAchievementsListKey);
			string 						_error					= _dataDict.GetIfAvailable<string>(EditorGameCenter.kErrorKey);
			Achievement[]				_newAchievements		= EditorAchievement.ConvertAchievementsList(_gcAchievements);
			
			// Invoke handler
			LoadAchievementsFinished(_newAchievements, _error);
		}
示例#40
0
 internal AndroidUser(IDictionary _userProfileData)
 {
     if (_userProfileData != null)
     {
         m_identifier = _userProfileData.GetIfAvailable <string>(kIdentifier);
         m_name       = _userProfileData.GetIfAvailable <string>(kName);
         m_imagePath  = _userProfileData.GetIfAvailable <string>(kHighResImageURL);
     }
 }
		internal AndroidUser (IDictionary _userProfileData)
		{
			if(_userProfileData != null)
			{
				m_identifier		= _userProfileData.GetIfAvailable<string>(kIdentifier);
				m_name				= _userProfileData.GetIfAvailable<string>(kName);
				m_imagePath			= _userProfileData.GetIfAvailable<string>(kHighResImageURL);
			}
		}
示例#42
0
        protected override void LoadAchievementsFinished(IDictionary _dataDict)
        {
            EGCAchievement[] _gcAchievements = _dataDict.GetIfAvailable <EGCAchievement[]>(EditorGameCenter.kAchievementsListKey);
            string           _error          = _dataDict.GetIfAvailable <string>(EditorGameCenter.kErrorKey);

            Achievement[] _newAchievements = EditorAchievement.ConvertAchievementsList(_gcAchievements);

            // Invoke handler
            LoadAchievementsFinished(_newAchievements, _error);
        }
        protected override void LoadUsersFinished(IDictionary _dataDict)
        {
            IList  _usersJSONList = _dataDict.GetIfAvailable <IList>(kPlayersListKey);
            string _error         = _dataDict.GetIfAvailable <string>(kNativeMessageErrorKey);

            User[] _newUsers = iOSUser.ConvertUsersList(_usersJSONList);

            // Invoke handler
            LoadUsersFinished(_newUsers, _error);
        }
示例#44
0
        protected override void LoadUsersFinished(IDictionary _dataDict)
        {
            EGCUser[] _gcUsers = _dataDict.GetIfAvailable <EGCUser[]>(EditorGameCenter.kUsersListKey);
            string    _error   = _dataDict.GetIfAvailable <string>(EditorGameCenter.kErrorKey);

            User[] _newUsers = EditorUser.ConvertUsersList(_gcUsers);

            // Invoke handler
            LoadUsersFinished(_newUsers, _error);
        }
 public AndroidBillingProduct(IDictionary _productJsonDict)
 {
     AndroidProductID = _productJsonDict[kProductIdentifier] as string;
     Name             = _productJsonDict[kName] as string;
     Description      = _productJsonDict[kDescription] as string;
     Price            = _productJsonDict.GetIfAvailable <long>(kPriceAmount) / 1000000.0f;                        //As the value is in microns
     LocalizedPrice   = _productJsonDict.GetIfAvailable <string>(kLocalisedPrice);
     CurrencyCode     = _productJsonDict.GetIfAvailable <string>(kPriceCurrencyCode);
     CurrencySymbol   = _productJsonDict.GetIfAvailable <string>(kPriceCurrencySymbol);
 }
		public iOSNotificationPayload (IDictionary _payloadDict)
		{
			iOSProperties					= new iOSSpecificProperties();
			string 		_userInfoKey		= NPSettings.Notification.iOS.UserInfoKey;
			IDictionary _apsDict			= _payloadDict[kAPS] as IDictionary;

			// Read alert info from aps dictionary
			if (_apsDict.Contains(kAlert))
			{
				object 	_alertUnknownType	= _apsDict[kAlert] as object;
			
				if (_alertUnknownType != null)
				{
					// String format
					if ((_alertUnknownType as string) != null)
					{
						AlertBody						= _alertUnknownType as string;
					}
					// Dictionary format
					else
					{
						IDictionary _alertDict			= _alertUnknownType as IDictionary;
						string		_alertAction		= _alertDict.GetIfAvailable<string>(kAction);
						bool		_hasAction			= false;

						if (_alertDict.Contains(kHasAction))
							_hasAction					= System.Convert.ToBoolean(_alertDict[kHasAction]);
						else
							_hasAction					= (_alertAction != null);

						// Set properties
						AlertBody						= _alertDict.GetIfAvailable<string>(kBody);
						iOSProperties.AlertAction		= _alertAction;
						iOSProperties.HasAction			= _hasAction;
						iOSProperties.LaunchImage		= _alertDict.GetIfAvailable<string>(kLaunchImage);
					}
				}
			}

			// Read sound, badge info from aps dictionary
			SoundName					=  _apsDict.GetIfAvailable<string>(kSound);
			iOSProperties.BadgeCount	=  _apsDict.GetIfAvailable<int>(kBadge);

			// Read user info from payload dictionary
			UserInfo					= _payloadDict.GetIfAvailable<IDictionary>(_userInfoKey);

			// Read fire date, repeat interval from payload dictionary
			string 	_fireDateStr		= _payloadDict.GetIfAvailable<string>(kFireDate);
			
			if (_fireDateStr != null)
				FireDate				= _fireDateStr.ToZuluFormatDateTimeLocal();
			
			RepeatInterval				= ConvertToRepeatInterval(_payloadDict.GetIfAvailable<CalendarUnit>(kRepeatIntervalKey));
		}
		protected override void ParsePickImageFinishedData (IDictionary _infoDict, out string _selectedImagePath, out ePickImageFinishReason _finishReason)
		{
			_selectedImagePath	= _infoDict.GetIfAvailable<string>(kImagePath);
			_finishReason		=  kPickImageParseMap[_infoDict.GetIfAvailable<string>(kFinishReason)];
			
			// Selected image path is invalid
			if (string.IsNullOrEmpty(_selectedImagePath))
			{
				_selectedImagePath	= null;
				_finishReason		= ePickImageFinishReason.FAILED;
			}
		}
		internal AndroidScore (IDictionary _scoreData)
		{
			LeaderboardID			= _scoreData.GetIfAvailable<string>(kIdentifier);	
			LeaderboardGlobalID		= GameServicesIDHandler.GetLeaderboardGID(LeaderboardID);
			
			User					= new AndroidUser(_scoreData.GetIfAvailable<Dictionary<string, object>>(kUser));
			Value					= _scoreData.GetIfAvailable<long>(kValue);

			long _timeInMillis		= _scoreData.GetIfAvailable<long>(kDate);
			Date 					= _timeInMillis.ToDateTimeFromJavaTime();

			Rank					= _scoreData.GetIfAvailable<int>(kRank);
		}
		protected override void LoadAchievementsFinished (IDictionary _dataDict)
		{
			IList			_achievementsJSONList	= _dataDict.GetIfAvailable<IList>(kAchievementsList);
			string 			_error					= _dataDict.GetIfAvailable<string>(kNativeMessageError);
			Achievement[]	_newAchievements		= null;
			

			if (_achievementsJSONList != null)
			{
				_newAchievements	=	AndroidAchievement.ConvertAchievementList(_achievementsJSONList);
			}
			
			LoadAchievementsFinished(_newAchievements, _error);
		}
		internal ProductUpdateInfo (string _currentVersion, IDictionary _dataDict) : this ()
		{
			string _availableVersion	= _dataDict.GetIfAvailable<string>(kVersionNumberKey);
			string _downloadLink		= _dataDict.GetIfAvailable<string>(kDownloadLinkKey);
			string _assetStoreLink		= _dataDict.GetIfAvailable<string>(kAssetStoreLink);
			string _releaseNote			= _dataDict.GetIfAvailable<string>(kReleaseNoteKey);
			
			// Update class properties
			NewUpdateAvailable			= (_availableVersion.CompareTo(_currentVersion) > 0);
			VersionNumber				= _availableVersion;
			DownloadLink				= _downloadLink;
			AssetStoreLink				= _assetStoreLink;
			ReleaseNote					= _releaseNote;
		}
		protected override void LoadAchievementDescriptionsFinished (IDictionary _dataDict)
		{
			IList			_descriptionsJSONList	= _dataDict.GetIfAvailable<List<object>>(kAchievementsList);//On Android desc's are also in Achievement details.
			string 			_error					= _dataDict.GetIfAvailable<string>(kNativeMessageError);
			AchievementDescription[]	_newDescriptions	= null;

			Debug.Log("LoadAchievementDescriptionsFinished [IDictionary] " + _descriptionsJSONList.ToJSON());
			
			if (_descriptionsJSONList != null)
			{
				_newDescriptions = AndroidAchievementDescription.ConvertAchievementDescriptionList(_descriptionsJSONList);
			}
			
			LoadAchievementDescriptionsFinished(_newDescriptions, _error);
		}
		protected override void ReportScoreFinished (IDictionary _dataDict)
		{
			string		_error			= _dataDict.GetIfAvailable<string>(EditorGameCenter.kErrorKey);
			EGCScore	_gcScoreInfo	= _dataDict.GetIfAvailable<EGCScore>(EditorGameCenter.kScoreInfoKey);
			
			if (_gcScoreInfo != null)
			{
				// Update properties
				Value	= _gcScoreInfo.Value;
				Date	= _gcScoreInfo.Date;
				Rank	= _gcScoreInfo.Rank;
			}
			
			ReportScoreFinished(_error == null, _error);
		}
		public iOSScore (IDictionary _dataDict) : base ()
		{
			// Parse data dictionary values
			string		_leaderboardID	= _dataDict.GetIfAvailable<string>(kLeaderboardIdentifierKey);
			IDictionary _userDataDict	= _dataDict.GetIfAvailable<IDictionary>(kPlayerKey);

			LeaderboardGlobalID		= GameServicesIDHandler.GetLeaderboardGID(_leaderboardID);
			LeaderboardID			= _leaderboardID;
			Value					= _dataDict.GetIfAvailable<long>(kValueKey);
			Date					= _dataDict.GetIfAvailable<string>(kDateKey).ToZuluFormatDateTimeLocal();
			Rank					= _dataDict.GetIfAvailable<int>(kRankKey);

			if (_userDataDict != null)
				User				= new iOSUser(_userDataDict);
		}
		protected override void RequestForAchievementImageFinished (IDictionary _dataDict)
		{
			string			_instanceID				= _dataDict.GetIfAvailable<string>(kObjectInstanceIDKey);

			// Invoke handler
			RequestForAchievementImageFinished(_instanceID, _dataDict);
		}
		protected override void ReportProgressFinished (IDictionary _dataDict)
		{
			string			_instanceID				= _dataDict.GetIfAvailable<string>(kObjectInstanceIDKey);

			// Invoke handler
			ReportProgressFinished(_instanceID, _dataDict);
		}
		public iOSWebViewMessage (IDictionary _schemeDataJsonDict)
		{
			string _schemeName	= _schemeDataJsonDict.GetIfAvailable<string>(kURLScheme);
			string _host		= _schemeDataJsonDict.GetIfAvailable<string>(kHost);
			IDictionary _args	= _schemeDataJsonDict[kArguments] as IDictionary;

			// Assign value
			SchemeName			= _schemeName;
			Host				= _host;
			Arguments			= new Dictionary<string, string>();

			foreach (object _key in _args.Keys)
			{
				string _keyStr		= _key.ToString();
				string _valueStr	= _args[_key].ToString();

				// Add key and value
				Arguments[_keyStr]	= _valueStr;
			}
		}
		public iOSBillingProduct (IDictionary _productJsonDict)
		{
			Name				= _productJsonDict.GetIfAvailable<string>(kTitle);
			IOSProductID		= _productJsonDict.GetIfAvailable<string>(kProductID);
			Description			= _productJsonDict.GetIfAvailable<string>(kDescription);
			Price				= _productJsonDict.GetIfAvailable<float>(kPrice);
			LocalizedPrice		= _productJsonDict.GetIfAvailable<string>(kLocalizedPrice);
			CurrencyCode		= _productJsonDict.GetIfAvailable<string>(kCurrencyCode);
			CurrencySymbol		= _productJsonDict.GetIfAvailable<string>(kCurrencySymbol);
		}
        public AndroidNotificationPayload(IDictionary _payloadDict)
        {
            AndroidProperties		= new AndroidSpecificProperties();

            // Alert
            if (_payloadDict.Contains(NPSettings.Notification.Android.ContentTextKey))
            {
                //Check here which key is being received.
                Console.Log(Constants.kDebugTag, "[BillingTransaction] " + _payloadDict.ToJSON());//TODO
                object _alertUnknownType	= _payloadDict[ContentTextKey] as object;

                // String type
                if ((_alertUnknownType as string) != null)
                {
                    AlertBody	= _alertUnknownType as string;
                }
            }

            if (_payloadDict.Contains(UserInfoKey))
                UserInfo		= _payloadDict[UserInfoKey] as IDictionary;

            // Fire date
            long _secsFromNow	= _payloadDict.GetIfAvailable<long>(kFireDate);

            FireDate			= _secsFromNow.ToDateTimeFromJavaTime();

            // Sound, Badge
            AndroidProperties.ContentTitle		=  	_payloadDict.GetIfAvailable<string>(ContentTitleKey);
            AndroidProperties.TickerText		=  	_payloadDict.GetIfAvailable<string>(TickerTextKey);
            AndroidProperties.Tag				=  	_payloadDict.GetIfAvailable<string>(TagKey);

            //Added in 1.03
            AndroidProperties.CustomSound		= 	_payloadDict.GetIfAvailable<string>(kCustomSound);
            AndroidProperties.LargeIcon			= 	_payloadDict.GetIfAvailable<string>(kLargeIcon);
        }
		public AndroidAddressBookContact (IDictionary _contactInfoJsontDict)
		{
			string _givenName 	= _contactInfoJsontDict.GetIfAvailable<string>(kGivenName);
			string _familyName 	= _contactInfoJsontDict.GetIfAvailable<string>(kFamilyName);
		
			// Set first name and last name
			FirstName 		= _givenName;
			LastName 		= _familyName;
			ImagePath		= _contactInfoJsontDict.GetIfAvailable<string>(kImagePath);

			// Set phone numbers
			IList 		_phoneNumJSONList	= _contactInfoJsontDict.GetIfAvailable<IList>(kPhoneNumList);
			string[] 	_newPhoneNumList	= null;
			
			if (_phoneNumJSONList != null)
			{
				int		_totalCount			= _phoneNumJSONList.Count;
				_newPhoneNumList			= new string[_totalCount];
				
				for (int _iter = 0; _iter < _totalCount; _iter++)
					_newPhoneNumList[_iter]	= (string)_phoneNumJSONList[_iter];
			}
			
			PhoneNumberList		= _newPhoneNumList;
			
			// Set email id list
			IList 		_emailIDJsonList	= _contactInfoJsontDict.GetIfAvailable<IList>(kEmailList);
			string[] 	_newEmailIDList		= null;
			
			if (_emailIDJsonList != null)
			{
				int		_totalCount			= _emailIDJsonList.Count;
				_newEmailIDList				= new string[_totalCount];
				
				for (int _iter = 0; _iter < _totalCount; _iter++)
					_newEmailIDList[_iter]	= (string)_emailIDJsonList[_iter];
			}
			
			EmailIDList			= _newEmailIDList;
		}
        internal CrossPlatformNotification(IDictionary _jsonDict)
        {
            // Get alert body
            AlertBody			= _jsonDict.GetIfAvailable<string>(kAlertBodyKey);

            // Get fire date
            string _fireDateStr	= _jsonDict.GetIfAvailable<string>(kFireDateKey);

            if (!string.IsNullOrEmpty(_fireDateStr))
                FireDate		= _fireDateStr.ToDateTimeLocalUsingZuluFormat();

            // Get user info
            UserInfo			= _jsonDict[kUserInfoKey] as IDictionary;

            // Get iOS specific properties, if included
            if (_jsonDict.Contains(kiOSPropertiesKey))
                iOSProperties		= new iOSSpecificProperties(_jsonDict[kiOSPropertiesKey] as IDictionary);

            // Get Android specific properties, if included
            if (_jsonDict.Contains(kAndroidPropertiesKey))
                AndroidProperties	= new AndroidSpecificProperties(_jsonDict[kAndroidPropertiesKey] as IDictionary);
        }