Пример #1
0
        protected override void OnSaveInstanceState(Bundle outState)
        {
            base.OnSaveInstanceState(outState);
            Dictionary <string, IList <string> > data = StoreFactory.CurrentVM.SaveState();

            outState.PutStringArrayList("data", data["data"]);
            outState.PutStringArrayList("output", data["output"]);
        }
Пример #2
0
        public async override Task <Purchase[]> GetPrices(params string[] ids)
        {
            await Connect();

            var querySku = new Bundle();

            querySku.PutStringArrayList(BillingConstants.SkuDetailsItemList, ids);

            var skuDetails = await Task.Factory.StartNew(() => _connection.Service.GetSkuDetails(BillingConstants.ApiVersion, Application.Context.PackageName, BillingConstants.ItemTypeInApp, querySku));

            int response = skuDetails.GetInt(BillingConstants.ResponseCode);

            if (response != BillingConstants.ResultOk)
            {
                throw new Exception("GetSkuDetails failed, code: " + response);
            }

            var productsAsJson = skuDetails.GetStringArrayList(BillingConstants.SkuDetailsList);
            var products       = new List <Purchase>(productsAsJson.Count);

            foreach (string json in productsAsJson)
            {
                var nativeProduct = JsonConvert.DeserializeObject <Product>(json);
                products.Add(new Purchase
                {
                    Id           = nativeProduct.ProductId,
                    Price        = nativeProduct.Price,
                    NativeObject = nativeProduct,
                });
            }

            return(products.ToArray());
        }
        protected override void OnSaveInstanceState(Bundle state)
        {
            base.OnSaveInstanceState(state);

            state.PutInt(STATE_CHOICE_MODE, (int)this.ListView.ChoiceMode);
            state.PutStringArrayList(STATE_MODEL, this.words);
        }
Пример #4
0
        Task <Product> GetProductInfoAsync(string productSku, string itemType)
        {
            var getSkuDetailsTask = Task.Factory.StartNew <Product>(() =>
            {
                var querySku = new Bundle();
                querySku.PutStringArrayList(SKU_ITEM_ID_LIST, new string[] { productSku });


                Bundle skuDetails = serviceConnection.Service.GetSkuDetails(3, Context.PackageName, itemType, querySku);

                if (!skuDetails.ContainsKey(SKU_DETAILS_LIST))
                {
                    return(null);
                }

                var products = skuDetails.GetStringArrayList(SKU_DETAILS_LIST);

                if (products == null || !products.Any())
                {
                    return(null);
                }

                return(JsonConvert.DeserializeObject <Product>(products.FirstOrDefault()));
            });

            return(getSkuDetailsTask);
        }
        Task<IEnumerable<Product>> GetProductInfoAsync(string[] productIds, string itemType)
        {
            var getSkuDetailsTask = Task.Factory.StartNew<IEnumerable<Product>>(() =>
            {

                var querySku = new Bundle();
                querySku.PutStringArrayList(SKU_ITEM_ID_LIST, productIds);


                Bundle skuDetails = serviceConnection.Service.GetSkuDetails(3, Context.PackageName, itemType, querySku);

                if (!skuDetails.ContainsKey(SKU_DETAILS_LIST))
                {
                    return null;
                }

                var products = skuDetails.GetStringArrayList(SKU_DETAILS_LIST);

                if (products == null || !products.Any())
                    return null;

                var items = new List<Product>(products.Count);
                foreach (var item in products)
                {
                    items.Add(JsonConvert.DeserializeObject<Product>(item));
                }
                return items;
            });

            return getSkuDetailsTask;
        }
Пример #6
0
        public override IParcelable SaveState()
        {
            Bundle state = null;

            if (_savedState.Any())
            {
                state = new Bundle();

                var fss = new IParcelable[_savedState.Count];
                for (var i = 0; i < _savedState.Count; i++)
                {
                    fss[i] = _savedState.ElementAt(i);
                }

                state.PutParcelableArray("states", fss);
                state.PutStringArrayList("tags", _savedFragmentTags);
            }

            for (var i = 0; i < _fragments.Count; i++)
            {
                var f = _fragments.ElementAtOrDefault(i);
                if (f == null)
                {
                    continue;
                }

                if (state == null)
                {
                    state = new Bundle();
                }
                var key = "f" + i;
                _fragmentManager.PutFragment(state, key, f);
            }
            return(state);
        }
Пример #7
0
        //Função para utilizar Bundle e enviar objeto entre activities
        public Bundle ParticipanteToBundle()
        {
            var bundle = new Bundle();

            bundle.PutStringArrayList("hobbie", Hobbies.Conteudo);
            bundle.PutStringArrayList("aprender", Aprender.Conteudo);
            bundle.PutStringArrayList("ensinar", Ensinar.Conteudo);
            bundle.PutString("nome", Nome);
            bundle.PutString("campus", Campus);
            bundle.PutString("senha", Senha);
            bundle.PutString("email", Email);
            bundle.PutString("telefone", Telefone);
            bundle.PutString("nascimento", Nascimento);

            return(bundle);
        }
        public CreateTagDialogFragment (Guid workspaceId, IList<TimeEntryData> timeEntryList)
        {
            var ids = timeEntryList.Select ( t => t.Id.ToString ()).ToList ();

            var args = new Bundle ();
            args.PutString (WorkspaceIdArgument, workspaceId.ToString ());
            args.PutStringArrayList (TimeEntriesIdsArgument, ids);
            Arguments = args;
        }
Пример #9
0
        public CreateTagDialogFragment(Guid workspaceId, IList <TimeEntryData> timeEntryList)
        {
            var ids = timeEntryList.Select(t => t.Id.ToString()).ToList();

            var args = new Bundle();

            args.PutString(WorkspaceIdArgument, workspaceId.ToString());
            args.PutStringArrayList(TimeEntriesIdsArgument, ids);
            Arguments = args;
        }
        public static ProjectListFragment NewInstance (IList<string> timeEntryIds)
        {
            var fragment = new ProjectListFragment ();

            var args = new Bundle ();
            args.PutStringArrayList (TimeEntryIdsArg, timeEntryIds);
            fragment.Arguments = args;

            return fragment;
        }
        public static EditGroupedTimeEntryFragment NewInstance (IList<string> timeEntryListIds)
        {
            var fragment = new EditGroupedTimeEntryFragment ();

            var args = new Bundle ();
            args.PutStringArrayList (TimeEntriesIdsArgument, timeEntryListIds);
            fragment.Arguments = args;

            return fragment;
        }
        private void selectCity(List<string> citylist)
        {
            Intent deviceList = new Intent(this, typeof(selectcity));

            Bundle bundle = new Bundle();  //  Bundle的底层是一个HashMap<String, Object
            bundle.PutStringArrayList("citylist", citylist);
            deviceList.PutExtra("bundle", bundle);

            StartActivity(deviceList);
        }
Пример #13
0
        public EditGroupedTimeEntryFragment (IList<TimeEntryData> timeEntryList)
        {
            var ids = timeEntryList.Select ( t => t.Id.ToString ()).ToList ();

            var args = new Bundle ();
            args.PutStringArrayList (TimeEntriesIdsArgument, ids);
            Arguments = args;

            viewModel = new EditTimeEntryViewModel (timeEntryList);
        }
        public static EditGroupedTimeEntryFragment NewInstance(IList <string> timeEntryListIds)
        {
            var fragment = new EditGroupedTimeEntryFragment();

            var args = new Bundle();

            args.PutStringArrayList(TimeEntriesIdsArgument, timeEntryListIds);
            fragment.Arguments = args;

            return(fragment);
        }
        public ChooseTimeEntryTagsDialogFragment (Guid workspaceId, IList<TimeEntryData> timeEntryList)
        {
            var ids = timeEntryList.Select ( t => t.Id.ToString ()).ToList ();

            var args = new Bundle ();
            args.PutString (WorkspaceIdArgument, workspaceId.ToString ());
            args.PutStringArrayList (TimeEntriesIdsArgument, ids);
            Arguments = args;

            viewModel = new TagListViewModel (workspaceId, timeEntryList);
        }
Пример #16
0
        public static ProjectListFragment NewInstance(IList <string> timeEntryIds)
        {
            var fragment = new ProjectListFragment();

            var args = new Bundle();

            args.PutStringArrayList(TimeEntryIdsArg, timeEntryIds);
            fragment.Arguments = args;

            return(fragment);
        }
        public EditGroupedTimeEntryFragment(IList <TimeEntryData> timeEntryList)
        {
            var ids = timeEntryList.Select(t => t.Id.ToString()).ToList();

            var args = new Bundle();

            args.PutStringArrayList(TimeEntriesIdsArgument, ids);
            Arguments = args;

            viewModel = new EditTimeEntryViewModel(timeEntryList);
        }
Пример #18
0
        /// <summary>
        /// GresourceThemeved sates of the Calendar Extended. Useful for handling rotation.
        /// It does not need to save state of SQUARE_TEXT_VIEW_CELL because this
        /// may change on orientation change.
        /// </summary>
        /// <returns>The saved states.</returns>
        public Bundle CreateBundle()
        {
            var bundle = new Bundle();

            bundle.PutInt(YEAR, _year);
            bundle.PutInt(MONTH, _month);

            if (_minDateTime != null)
            {
                bundle.PutString(MIN_DATE, _minDateTime.Value.ToString(CalendarHelper.DEFAULT_TIME_FORMAT));
            }

            if (_maxDateTime != null)
            {
                bundle.PutString(MAX_DATE, _maxDateTime.Value.ToString(CalendarHelper.DEFAULT_TIME_FORMAT));
            }

            if (_selectedDates != null && _selectedDates.Count > 0)
            {
                bundle.PutStringArrayList(SELECTED_DATES, CalendarHelper.ConvertDateTimeToString(_selectedDates));
            }

            if (_disabledDates != null && _disabledDates.Count > 0)
            {
                bundle.PutStringArrayList(DISABLED_DATES, CalendarHelper.ConvertDateTimeToString(_disabledDates));
            }

            bundle.PutBoolean(ENABLE_SWIPE, _isSwipeEnabled);
            bundle.PutBoolean(MAX_WEEK_PER_MONTH, _isMaxWeekPerMonth);
            bundle.PutBoolean(SHOW_NAVIGATION_ARROWS, _showNavigationArrows);
            bundle.PutBoolean(SQUARE_TEXT_VIEW_CELL, _isSquareTextViewCell);
            bundle.PutInt(START_DAY_OF_WEEK, _startDayOfWeek);
            bundle.PutInt(THEME_RESOURCE, _resourceTheme);

            if (_dialogTitle != null)
            {
                bundle.PutString(DIALOG_TITLE, _dialogTitle);
            }

            return(bundle);
        }
        private void selectCity(List <string> citylist)
        {
            Intent deviceList = new Intent(this, typeof(selectcity));

            Bundle bundle = new Bundle();   //  Bundle的底层是一个HashMap<String, Object

            bundle.PutStringArrayList("citylist", citylist);

            deviceList.PutExtra("bundle", bundle);

            StartActivity(deviceList);
        }
        public static ChooseTimeEntryTagsDialogFragment NewInstance (Guid workspaceId, List<Guid> tagIds)
        {
            var fragment = new ChooseTimeEntryTagsDialogFragment ();

            var args = new Bundle ();
            args.PutString (WorkspaceIdArgument, workspaceId.ToString ());
            var tagIdsStrings = tagIds.Select (t => t.ToString ()).ToList ();
            args.PutStringArrayList (SelectedTagNamesArgument, tagIdsStrings);
            fragment.Arguments = args;

            return fragment;
        }
        public ChooseTimeEntryTagsDialogFragment(Guid workspaceId, IList <TimeEntryData> timeEntryList)
        {
            var ids = timeEntryList.Select(t => t.Id.ToString()).ToList();

            var args = new Bundle();

            args.PutString(WorkspaceIdArgument, workspaceId.ToString());
            args.PutStringArrayList(TimeEntriesIdsArgument, ids);
            Arguments = args;

            viewModel = new TagListViewModel(workspaceId, timeEntryList);
        }
        public DeleteTimeEntriesPromptDialogFragment (IEnumerable<TimeEntryModel> models)
        {
            var ids = new List<string> ();
            foreach (var model in models) {
                ids.Add (model.Id.ToString ());
            }

            var args = new Bundle ();
            args.PutStringArrayList (TimeEntryIdsArgument, ids);

            Arguments = args;
        }
        public static AddMovieFragmentTest NewInstance(string title, List<string> trakkedList)
        {
            var frag = new AddMovieFragmentTest();
            var args = new Bundle();
            args.PutString("title", title);

            args.PutStringArrayList("trakked", trakkedList);

            frag.Arguments = args;

            return frag;
        }
        public override void OnSaveInstanceState(Bundle outState)
        {
            base.OnSaveInstanceState(outState);

            MovieList myList = new MovieList();
            myList.movieList = Movies;

            string myJsonString = JsonConvert.SerializeObject(myList);

            outState.PutString(Bundle_MOVIELIST, myJsonString);
            outState.PutStringArrayList(Bundle_TRAKKEDLIST, TrakkedMoviesTMDBIDs);
            outState.PutInt(Bundle_PAGENUMBER, _pageNumber);
        }
Пример #25
0
		private int querySkuDetails(string itemType, Inventory inv, IList<string> moreSkus)
		{
			logDebug("Querying SKU details.");
			List<string> skuList = new List<string>();
			skuList.AddRange(inv.getAllOwnedSkus(itemType));
			if (moreSkus != null)
			{
				foreach (string sku in moreSkus)
				{
					if (!skuList.Contains(sku))
					{
						skuList.Add(sku);
					}
				}
			}

			if (skuList.Count == 0)
			{
				logDebug("queryPrices: nothing to do because there are no SKUs.");
				return BILLING_RESPONSE_RESULT_OK;
			}

			Bundle querySkus = new Bundle();
			querySkus.PutStringArrayList(GET_SKU_DETAILS_ITEM_LIST, skuList);
			Bundle skuDetails = mService.GetSkuDetails(3, mContext.PackageName, itemType, querySkus);

			if (!skuDetails.ContainsKey(RESPONSE_GET_SKU_DETAILS_LIST))
			{
				int response = getResponseCodeFromBundle(skuDetails);
				if (response != BILLING_RESPONSE_RESULT_OK)
				{
					logDebug("getSkuDetails() failed: " + getResponseDesc(response));
					return response;
				}
				else
				{
					logError("getSkuDetails() returned a bundle with neither an error nor a detail list.");
					return IABHELPER_BAD_RESPONSE;
				}
			}

			IList<string> responseList = skuDetails.GetStringArrayList(RESPONSE_GET_SKU_DETAILS_LIST);

			foreach (string thisResponse in responseList)
			{
				SkuDetails d = new SkuDetails(itemType, thisResponse);
				logDebug("Got sku details: " + d);
				inv.addSkuDetails(d);
			}
			return BILLING_RESPONSE_RESULT_OK;
		}
Пример #26
0
        private void LaunchPlacements(int position)
        {
            Bundle         bundle = new Bundle();
            Intent         i      = new Android.Content.Intent(this, typeof(NewsEventViewer));
            IList <string> images = ConvertToStringList(placementList[position].Images);

            bundle.PutString("CONTENT", placementList[position].Content);
            bundle.PutStringArrayList("IMAGES", images);

            i.SetFlags(ActivityFlags.NewTask | ActivityFlags.ClearTop);
            i.PutExtras(bundle);

            StartActivity(i);
        }
Пример #27
0
        public static ChooseTimeEntryTagsDialogFragment NewInstance(Guid workspaceId, List <Guid> tagIds)
        {
            var fragment = new ChooseTimeEntryTagsDialogFragment();

            var args = new Bundle();

            args.PutString(WorkspaceIdArgument, workspaceId.ToString());
            var tagIdsStrings = tagIds.Select(t => t.ToString()).ToList();

            args.PutStringArrayList(SelectedTagNamesArgument, tagIdsStrings);
            fragment.Arguments = args;

            return(fragment);
        }
        public DeleteTimeEntriesPromptDialogFragment(IEnumerable <TimeEntryModel> models)
        {
            var ids = new List <string> ();

            foreach (var model in models)
            {
                ids.Add(model.Id.ToString());
            }

            var args = new Bundle();

            args.PutStringArrayList(TimeEntryIdsArgument, ids);

            Arguments = args;
        }
        public DeleteTimeEntriesPromptDialogFragment (IEnumerable<TimeEntryModel> models)
        {
            var ids = new List<string> ();
            foreach (var model in models) {
                if (!model.IsShared || model.DeletedAt != null)
                    continue;
                // Need to ensure the model IsPersisted, as we need to be able to access this model even
                // if the system suspends our process
                model.IsPersisted = true;
                ids.Add (model.Id.Value.ToString ());
            }

            var args = new Bundle ();
            args.PutStringArrayList (TimeEntryIdsArgument, ids);

            Arguments = args;
        }
Пример #30
0
        /// <summary>
        /// Queries the inventory asynchronously.
        /// </summary>
        /// <returns>List of strings</returns>
        /// <param name="skuList">Sku list.</param>
        /// <param name="itemType">Item type.</param>
        public Task <IList <string> > QueryInventoryAsync(List <string> skuList, string itemType)
        {
            var getSkuDetailsTask = Task.Factory.StartNew <IList <string> > (() => {
                Bundle querySku = new Bundle();
                querySku.PutStringArrayList(Billing.ItemIdList, skuList);


                Bundle skuDetails = billingService.GetSkuDetails(Billing.APIVersion, activity.PackageName, itemType, querySku);

                if (skuDetails.ContainsKey(Billing.SkuDetailsList))
                {
                    return(skuDetails.GetStringArrayList(Billing.SkuDetailsList));
                }

                return(null);
            });

            return(getSkuDetailsTask);
        }
		/// <summary>
		/// Queries the inventory asynchronously.
		/// </summary>
		/// <returns>List of strings</returns>
		/// <param name="skuList">Sku list.</param>
		/// <param name="itemType">Item type.</param>
		public Task<IList<string>> QueryInventoryAsync (List<string> skuList, string itemType)
		{

			var getSkuDetailsTask = Task.Factory.StartNew<IList<string>> (() => {

				Bundle querySku = new Bundle ();
				querySku.PutStringArrayList (Constants.ItemIdList, skuList);


				Bundle skuDetails = _billingService.GetSkuDetails (Constants.APIVersion, _activity.PackageName, itemType, querySku);
				
				if (skuDetails.ContainsKey (Constants.SkuDetailsList)) {
					return skuDetails.GetStringArrayList (Constants.SkuDetailsList);
				}

				return null;
			});

			return getSkuDetailsTask;
		}
Пример #32
0
        /// <summary>
        /// 分享网页到 Qzone
        /// </summary>
        /// <param name="url">网页 URI</param>
        /// <param name="title">最多200个字符</param>
        /// <param name="summary">最多600字符</param>
        /// <param name="imageUrls">最多支持9张图片(QZone接口暂不支持发送多张图片的能力,若传入多张图片,则会自动选入第一张图片作为预览图。多图的能力将会在以后支持)</param>
        /// <param name="callback">回调处理</param>
        public void ShareToQzone(string url, string title, string summary = null, IList <string> imageUrls = null, IUiListener callback = null)
        {
            Bundle parameters = new Bundle();

            parameters.PutInt(SHARE_TO_QZONE_KEY_TYPE, SHARE_TO_QZONE_TYPE_IMAGE_TEXT);
            parameters.PutString(SHARE_TO_QQ_TARGET_URL, url);
            parameters.PutString(SHARE_TO_QQ_TITLE, title);
            if (summary != null)
            {
                parameters.PutString(SHARE_TO_QQ_SUMMARY, summary);
            }
            if (imageUrls != null)
            {
                parameters.PutStringArrayList(SHARE_TO_QQ_IMAGE_URL, imageUrls);
            }
            if (appName != null)
            {
                parameters.PutString(SHARE_TO_QQ_APP_NAME, appName);
            }
            tencent.ShareToQzone(activity, parameters, callback ?? nullUiListener.Null);
        }
Пример #33
0
        public override System.Threading.Tasks.Task <GetSkuDetailsResponse> Execute(IBillingService service)
        {
            this.TCS = new System.Threading.Tasks.TaskCompletionSource <GetSkuDetailsResponse>();

            var b = new Bundle();

            b.PutStringArrayList(Consts.GET_SKU_DETAILS_ITEM_LIST, m_SKUs);
            var skuDetails = service.InAppService.GetSkuDetails(3, service.MainContext.PackageName, this.m_itemType, b);

            if (!skuDetails.ContainsKey(Consts.RESPONSE_GET_SKU_DETAILS_LIST))
            {
                int response = Utils.GetResponseCodeFromBundle(skuDetails);
                if (response != Consts.BILLING_RESPONSE_RESULT_OK)
                {
                    Utils.LogError(string.Format("SkueDetails.Execute failed. Message : {0}", Utils.GetResponseDesc(response)));
                    this.TCS.SetResult(new GetSkuDetailsResponse(response));
                    return(this.TCS.Task);
                }
                else
                {
                    Utils.LogError("SkueDetails.Execute failed. Neither an error nor a detail list.");
                    this.TCS.SetResult(new GetSkuDetailsResponse(Consts.BAD_RESPONSE));
                    return(this.TCS.Task);
                }
            }

            var responseList = skuDetails.GetStringArrayList(Consts.RESPONSE_GET_SKU_DETAILS_LIST);
            var skus         = new List <SkuDetail>();

            responseList.ToList().ForEach(x =>
            {
                var d = new SkuDetail(this.m_itemType, x);
                skus.Add(d);
                Utils.LogDebug("SkuDetail: " + d);
                service.CurrentInventory.AddSkuDetails(d);
            });

            this.TCS.SetResult(new GetSkuDetailsResponse(skus));
            return(this.TCS.Task);
        }
        public DeleteTimeEntriesPromptDialogFragment(IEnumerable <TimeEntryModel> models)
        {
            var ids = new List <string> ();

            foreach (var model in models)
            {
                if (!model.IsShared || model.DeletedAt != null)
                {
                    continue;
                }
                // Need to ensure the model IsPersisted, as we need to be able to access this model even
                // if the system suspends our process
                model.IsPersisted = true;
                ids.Add(model.Id.Value.ToString());
            }

            var args = new Bundle();

            args.PutStringArrayList(TimeEntryIdsArgument, ids);

            Arguments = args;
        }
        public Task <IList <Product> > QueryInventoryAsync(IList <string> skuList, string itemType)
        {
            var getSkuDetailsTask = Task.Factory.StartNew <IList <Product> > (() => {
                Bundle querySku = new Bundle();
                querySku.PutStringArrayList(Billing.ItemIdList, skuList);


                Bundle skuDetails = _billingService.GetSkuDetails(Billing.APIVersion, _activity.PackageName, itemType, querySku);

                if (!skuDetails.ContainsKey(Billing.SkuDetailsList))
                {
                    return(null);
                }

                var products = skuDetails.GetStringArrayList(Billing.SkuDetailsList);

                return((products == null) ? null
                                        : products.Select(JsonConvert.DeserializeObject <Product>).ToList());
            });

            return(getSkuDetailsTask);
        }
		public static SearchYearFragment newInstance(List<string> yearsIn)
		{
			SearchYearFragment yf = new SearchYearFragment ();

			Bundle bdl = new Bundle ();
			bdl.PutStringArrayList ("years", yearsIn);
			yf.Arguments = bdl;

			return yf;
		}
		public static SearchPartFragment newInstance(List<string> partsIn)
		{
			SearchPartFragment pf = new SearchPartFragment ();

			Bundle bdl = new Bundle ();
			bdl.PutStringArrayList ("parts", partsIn);
			pf.Arguments = bdl;

			return pf;
		}
 protected override void OnSaveInstanceState(Bundle outState)
 {
     base.OnSaveInstanceState(outState);
     outState.PutStringArrayList("trakkedlist", TrakkedShows);
 }
Пример #39
0
        protected override void OnSaveInstanceState(Bundle outState)
        {
            base.OnSaveInstanceState(outState);
            AppTask.ToBundle(outState);
            outState.PutBoolean(ShowpasswordKey, _showPassword);

            outState.PutString(KeyFileOrProviderKey, _keyFileOrProvider);
            outState.PutString(PasswordKey, _password);
            outState.PutStringArrayList(PendingOtpsKey, _pendingOtps);
            if (_otpInfo != null)
            {
                outState.PutStringArrayList(EnteredOtpsKey, GetOtpsFromUi());

                var sw = new StringWriter();

                var xws = OtpInfo.XmlWriterSettings();

                XmlWriter xw = XmlWriter.Create(sw, xws);

                XmlSerializer xs = new XmlSerializer(typeof(OtpInfo));
                xs.Serialize(xw, _otpInfo);

                xw.Close();

                outState.PutString(OtpInfoKey, sw.ToString());
            }

            //more OTP TODO:
            // * Caching of aux file
            // *  -> implement IFileStorage in JavaFileStorage based on ListFiles
            // *  -> Sync
        }
Пример #40
0
 protected override void OnSaveInstanceState(Bundle outState)
 {
     base.OnSaveInstanceState(outState);
     outState.PutStringArrayList(SAVED_DATA_KEY, mData);
 }
        public override void OnSaveInstanceState(Bundle outState)
        {
            base.OnSaveInstanceState(outState);

            var myList = new TVShowList {tvShowList = ShowsList};

            var myJsonString = JsonConvert.SerializeObject(myList);

            outState.PutString(Bundle_SHOWLIST, myJsonString);
            outState.PutStringArrayList(Bundle_TRAKKEDLIST, TrakkedShowsTMDBIDs);
            outState.PutInt(Bundle_PAGENUMBER, _pageNumber);
        }
Пример #42
0
 public void ToBundle(Bundle b)
 {
     b.PutStringArrayList(Key, Value);
 }
        async Task <Purchase> UpgradePurchasedSubscriptionInternalAsync(string oldProductId, string newProductId, string payload, IInAppBillingVerifyPurchase verifyPurchase = null)
        {
            string itemType = ITEM_TYPE_SUBSCRIPTION;

            lock (purchaseLocker)
            {
                if (tcsPurchase != null && !tcsPurchase.Task.IsCompleted)
                {
                    return(null);
                }

                Bundle extraParams = new Bundle();
                extraParams.PutStringArrayList(EXTRA_SUB_PARAM_REPLACED_SKUS, new List <string> {
                    oldProductId
                });
                Bundle buyIntentBundle = serviceConnection.Service.GetBuyIntentExtraParams(6, Context.PackageName, newProductId, itemType, payload, extraParams);
                var    response        = GetResponseCodeFromBundle(buyIntentBundle);

                switch (response)
                {
                case 0:
                    //OK to purchase
                    break;

                case 1:
                    //User Cancelled, should try again
                    throw new InAppBillingPurchaseException(PurchaseError.UserCancelled);

                case 2:
                    //Network connection is down
                    throw new InAppBillingPurchaseException(PurchaseError.ServiceUnavailable);

                case 3:
                    //Billing Unavailable
                    throw new InAppBillingPurchaseException(PurchaseError.BillingUnavailable);

                case 4:
                    //Item Unavailable
                    throw new InAppBillingPurchaseException(PurchaseError.ItemUnavailable);

                case 5:
                    //Developer Error
                    throw new InAppBillingPurchaseException(PurchaseError.DeveloperError);

                case 6:
                    //Generic Error
                    throw new InAppBillingPurchaseException(PurchaseError.GeneralError);

                case 7:
                    //already purchased
                    throw new InAppBillingPurchaseException(PurchaseError.AlreadyOwned);
                }


                var pendingIntent = buyIntentBundle.GetParcelable(RESPONSE_BUY_INTENT) as PendingIntent;
                if (pendingIntent == null)
                {
                    throw new InAppBillingPurchaseException(PurchaseError.GeneralError);
                }

                tcsPurchase = new TaskCompletionSource <PurchaseResponse>();

                Context.StartIntentSenderForResult(pendingIntent.IntentSender, PURCHASE_REQUEST_CODE, new Intent(), 0, 0, 0);
            }

            var result = await tcsPurchase.Task;

            if (result == null)
            {
                return(null);
            }

            var data = result.PurchaseData;
            var sign = result.DataSignature;

            //for some reason the data didn't come back
            if (string.IsNullOrWhiteSpace(data))
            {
                var purchases = await GetPurchasesAsync(itemType, verifyPurchase);

                var purchase = purchases.FirstOrDefault(p => p.ProductId == newProductId && payload.Equals(p.DeveloperPayload ?? string.Empty));

                return(purchase);
            }

            if (verifyPurchase == null || await verifyPurchase.VerifyPurchase(data, sign))
            {
                var purchase = JsonConvert.DeserializeObject <Purchase>(data);
                if (purchase.ProductId == newProductId && payload.Equals(purchase.DeveloperPayload ?? string.Empty))
                {
                    return(purchase);
                }
            }

            return(null);
        }
        public override IParcelable SaveState()
        {
            Bundle state = null;

            if (_savedState.Any())
            {
                state = new Bundle();

                var fss = new IParcelable[_savedState.Count];
                for (var i = 0; i < _savedState.Count; i++)
                    fss[i] = _savedState.ElementAt(i);

                state.PutParcelableArray("states", fss);
                state.PutStringArrayList("tags", _savedFragmentTags);
            }

            for (var i = 0; i < _fragments.Count; i++)
            {
                var f = _fragments.ElementAtOrDefault(i);
                if (f == null)
                    continue;

                if (state == null)
                    state = new Bundle();
                var key = "f" + i;
                _fragmentManager.PutFragment(state, key, f);
            }
            return state;
        }
Пример #45
0
        public override bool OnOptionsItemSelected(IMenuItem item)
        {
            switch (item.ItemId)
            {
            case Resource.Id.SetShareCardArrows:
            {
                AutofillShareCardCells(item);
                return(true);
            }

            case Resource.Id.ClearAllFields:
            {
                var dialog = new AlertDialog.Builder(this);
                dialog.SetTitle("Clear Scorecard");
                dialog.SetMessage("Are you sure you want to delete all the scores?");
                dialog.SetCancelable(true);
                dialog.SetPositiveButton("Delete", delegate { OnCreate(null); });
                dialog.SetNegativeButton("Cancel", delegate { });
                dialog.SetNeutralButton("Keep Names",
                                        delegate
                    {
                        var bundle = new Bundle();
                        bundle.PutStringArrayList(
                            "PlayerNames",
                            _playerNameEditTexts.Select(et => et.Text).ToList()
                            );
                        OnCreate(bundle);
                    });
                dialog.Show();
                return(true);
            }

            case Resource.Id.ShameBell:
            {
                SoundManager.PlayShame(this);
                return(true);
            }

            case Resource.Id.JawsRingtone:
            {
                SoundManager.PlayJaws(this);
                return(true);
            }

            case Resource.Id.WololoRingtone:
            {
                SoundManager.PlayWololo(this);
                return(true);
            }

            case Resource.Id.SwitchScoreView:
            {
                if (_rowScoreProgressBar.Visibility == ViewStates.Visible)
                {
                    _rowScoreProgressBar.Visibility = ViewStates.Gone;
                    _rowScoreTextView.Visibility    = ViewStates.Visible;
                }
                else
                {
                    _rowScoreProgressBar.Visibility = ViewStates.Visible;
                    _rowScoreTextView.Visibility    = ViewStates.Gone;
                }
                return(true);
            }

            default:
                // If we got here, the user's action was not recognized.
                // Invoke the superclass to handle it.
                return(base.OnOptionsItemSelected(item));
            }
        }
Пример #46
0
 public void ToBundle(Bundle b)
 {
     b.PutStringArrayList(Key, Value);
 }
Пример #47
0
        public Task<IList<Product>> QueryInventoryAsync(IList<string> skuList, string itemType)
        {
            var getSkuDetailsTask = Task.Factory.StartNew<IList<Product>> (() => {

                Bundle querySku = new Bundle ();
                querySku.PutStringArrayList (Billing.ItemIdList, skuList);

                Bundle skuDetails = _billingService.GetSkuDetails (Billing.APIVersion, _activity.PackageName, itemType, querySku);

                if (!skuDetails.ContainsKey (Billing.SkuDetailsList)) {
                    return null;
                }

                var products = skuDetails.GetStringArrayList (Billing.SkuDetailsList);

                return (products == null) ? null
                    : products.Select (JsonConvert.DeserializeObject<Product>).ToList ();
            });

            return getSkuDetailsTask;
        }
Пример #48
0
 protected override void OnSaveInstanceState(Bundle outState)
 {
     base.OnSaveInstanceState(outState);
     outState.PutStringArrayList(PresenterStateKey, Presenter.SaveState());
 }