示例#1
0
        public async void city_click()
        {
            SpecializationMethods specializationMethods = new SpecializationMethods();

            resetBn.Enabled = true;
            resetBn.SetTextColor(Android.Graphics.Color.White);
            distanceRL.Visibility = ViewStates.Gone;
            edit_expert.PutString("distance_radius", "");
            edit_expert.Apply();
            //USING RESOURCES IN HERE CAUSES EXCEPTION
            inform_processTV.Text    = "Подсчет количества специалистов";//GetString(Resource.String.getting_exps_count);
            city_chooseLL.Visibility = ViewStates.Gone;
            city_value.Text          = expert_data.GetString("expert_city_name", String.Empty);
            var filtered = await specializationMethods.ExpertCount(
                expert_data.GetString("spec_id", String.Empty),
                expert_data.GetString("expert_city_id", String.Empty),
                expert_data.GetString("distance_radius", String.Empty),
                expert_data.GetBoolean("has_reviews", false),
                pref.GetString("latitude", String.Empty),
                pref.GetString("longitude", String.Empty)
                );

            var deserialized_value = JsonConvert.DeserializeObject <ExpertCount>(filtered.ToString());

            activityIndicator.Visibility = ViewStates.Gone;
            findBn.Visibility            = ViewStates.Visible;
            inform_processTV.Visibility  = ViewStates.Gone;
            findBn.Text   = "Показать " + deserialized_value.count.ToString() + " специалистов";
            reset_pressed = false;
        }
示例#2
0
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            try
            {
                SetContentView(Resource.Layout.Filter);

                expert_data        = Application.Context.GetSharedPreferences("experts", FileCreationMode.Private);
                edit_expert        = expert_data.Edit();
                recyclerView       = FindViewById <RecyclerView>(Resource.Id.recyclerView);
                layoutManager      = new LinearLayoutManager(this, LinearLayoutManager.Vertical, false);
                findBn             = FindViewById <Button>(Resource.Id.findBn);
                resetBn            = FindViewById <Button>(Resource.Id.resetBn);
                backRelativeLayout = FindViewById <RelativeLayout>(Resource.Id.backRelativeLayout);
                distanceRL         = FindViewById <RelativeLayout>(Resource.Id.distanceRL);
                back_button        = FindViewById <ImageButton>(Resource.Id.back_button);
                cancellationBn     = FindViewById <Button>(Resource.Id.cancellationBn);
                city_value         = FindViewById <TextView>(Resource.Id.city_value);
                distance_value     = FindViewById <TextView>(Resource.Id.distance_value);
                inform_processTV   = FindViewById <TextView>(Resource.Id.inform_processTV);
                distanceSB         = FindViewById <SeekBar>(Resource.Id.distanceSB);
                onlyWithReviewsS   = FindViewById <Switch>(Resource.Id.onlyWithReviewsS);
                activityIndicator  = FindViewById <ProgressBar>(Resource.Id.activityIndicator);
                city_chooseLL      = FindViewById <LinearLayout>(Resource.Id.city_chooseLL);
                activityIndicator.IndeterminateDrawable.SetColorFilter(Resources.GetColor(Resource.Color.buttonBackgroundColor), Android.Graphics.PorterDuff.Mode.Multiply);
                SpecializationMethods specializationMethods = new SpecializationMethods();
                recyclerView.SetLayoutManager(layoutManager);
                Typeface tf = Typeface.CreateFromAsset(Assets, "Roboto-Regular.ttf");
                FindViewById <TextView>(Resource.Id.headerTV).SetTypeface(tf, TypefaceStyle.Bold);
                resetBn.SetTypeface(tf, TypefaceStyle.Normal);
                FindViewById <TextView>(Resource.Id.textView1).SetTypeface(tf, TypefaceStyle.Normal);
                city_value.SetTypeface(tf, TypefaceStyle.Normal);
                FindViewById <TextView>(Resource.Id.textViesw1).SetTypeface(tf, TypefaceStyle.Normal);
                distance_value.SetTypeface(tf, TypefaceStyle.Normal);
                FindViewById <TextView>(Resource.Id.textVsiew1).SetTypeface(tf, TypefaceStyle.Normal);
                inform_processTV.SetTypeface(tf, TypefaceStyle.Normal);
                findBn.SetTypeface(tf, TypefaceStyle.Normal);
                cancellationBn.SetTypeface(tf, TypefaceStyle.Normal);

                backRelativeLayout.Click += (s, e) =>
                {
                    OnBackPressed();
                };
                back_button.Click += (s, e) =>
                {
                    OnBackPressed();
                };

                if (String.IsNullOrEmpty(expert_data.GetString("expert_city_name", String.Empty)))
                {
                    city_value.Text = GetString(Resource.String.not_chosen);
                }
                else
                {
                    city_value.Text = expert_data.GetString("expert_city_name", String.Empty);
                    resetBn.Enabled = true;
                    resetBn.SetTextColor(Android.Graphics.Color.White);
                }

                if (String.IsNullOrEmpty(expert_data.GetString("distance_radius", String.Empty)))
                {
                    distance_value.Text = "100 " + GetString(Resource.String.km);
                    distanceSB.Progress = 100;
                }
                else
                {
                    distance_value.Text = expert_data.GetString("distance_radius", String.Empty);
                    distanceSB.Progress = Convert.ToInt32(expert_data.GetString("distance_radius", String.Empty));
                    resetBn.Enabled     = true;
                    resetBn.SetTextColor(Android.Graphics.Color.White);
                }
                if (expert_data.GetBoolean("has_reviews", false) == false)
                {
                    onlyWithReviewsS.Checked = false;
                }
                else
                {
                    onlyWithReviewsS.Checked = true;
                    resetBn.Enabled          = true;
                    resetBn.SetTextColor(Android.Graphics.Color.White);
                }

                distanceSB.ProgressChanged += async(s, e) =>
                {
                    if (!reset_pressed)
                    {
                        resetBn.Enabled = true;
                        resetBn.SetTextColor(Android.Graphics.Color.White);
                    }
                    if (e.Progress == 0)
                    {
                        distance_value.Text = "0.5" + " " + GetString(Resource.String.km);
                    }
                    else
                    {
                        distance_value.Text = e.Progress.ToString() + " " + GetString(Resource.String.km);
                    }

                    if (e.Progress == 0)
                    {
                        edit_expert.PutString("distance_radius", "0.5");
                    }
                    else
                    {
                        edit_expert.PutString("distance_radius", e.Progress.ToString());
                    }
                    edit_expert.Apply();
                    findBn.Visibility            = ViewStates.Gone;
                    activityIndicator.Visibility = ViewStates.Visible;
                    inform_processTV.Visibility  = ViewStates.Visible;
                    inform_processTV.Text        = "Получение количества специалистов";
                    var filtered = await specializationMethods.ExpertCount(
                        expert_data.GetString("spec_id", String.Empty),
                        expert_data.GetString("expert_city_id", String.Empty),
                        expert_data.GetString("distance_radius", String.Empty),
                        expert_data.GetBoolean("has_reviews", false),
                        pref.GetString("latitude", String.Empty),
                        pref.GetString("longitude", String.Empty));

                    var deserialized_value = JsonConvert.DeserializeObject <ExpertCount>(filtered.ToString());
                    activityIndicator.Visibility = ViewStates.Gone;
                    findBn.Visibility            = ViewStates.Visible;
                    inform_processTV.Visibility  = ViewStates.Gone;
                    findBn.Text   = "Показать " + deserialized_value.count.ToString() + " специалистов";
                    reset_pressed = false;
                };

                onlyWithReviewsS.CheckedChange += async(s, e) =>
                {
                    if (!reset_pressed)
                    {
                        resetBn.Enabled = true;
                        resetBn.SetTextColor(Android.Graphics.Color.White);
                    }
                    if (onlyWithReviewsS.Checked)
                    {
                        edit_expert.PutBoolean("has_reviews", true);
                    }
                    else
                    {
                        edit_expert.PutBoolean("has_reviews", false);
                    }
                    edit_expert.Apply();
                    findBn.Visibility            = ViewStates.Gone;
                    activityIndicator.Visibility = ViewStates.Visible;
                    inform_processTV.Visibility  = ViewStates.Visible;
                    inform_processTV.Text        = "Получение количества специалитов";
                    var filtered = await specializationMethods.ExpertCount(
                        expert_data.GetString("spec_id", String.Empty),
                        expert_data.GetString("expert_city_id", String.Empty),
                        expert_data.GetString("distance_radius", String.Empty),
                        expert_data.GetBoolean("has_reviews", false),
                        pref.GetString("latitude", String.Empty),
                        pref.GetString("longitude", String.Empty)
                        );

                    var deserialized_value = JsonConvert.DeserializeObject <ExpertCount>(filtered.ToString());
                    activityIndicator.Visibility = ViewStates.Gone;
                    findBn.Visibility            = ViewStates.Visible;
                    inform_processTV.Visibility  = ViewStates.Gone;
                    findBn.Text   = "Показать " + deserialized_value.count.ToString() + " специалистов";
                    reset_pressed = false;
                };
                city_value.Click += async(s, e) =>
                {
                    findBn.Visibility            = ViewStates.Gone;
                    activityIndicator.Visibility = ViewStates.Visible;
                    inform_processTV.Visibility  = ViewStates.Visible;
                    inform_processTV.Text        = GetString(Resource.String.getting_cities);
                    var cities = await specializationMethods.GetCities();

                    city_chooseLL.Visibility = ViewStates.Visible;
                    var deserialized_cities = JsonConvert.DeserializeObject <List <City> >(cities.ToString());
                    var listOfCitiesAdapter = new CityAdapter(deserialized_cities, this, tf);
                    recyclerView.SetAdapter(listOfCitiesAdapter);
                };
                cancellationBn.Click += (s, e) =>
                {
                    city_chooseLL.Visibility    = ViewStates.Gone;
                    inform_processTV.Visibility = ViewStates.Gone;
                    findBn.Visibility           = ViewStates.Visible;
                };
                findBn.Click += (s, e) =>
                {
                    StartActivity(typeof(ListOfSpecialistsActivity));
                };
                resetBn.Click += (s, e) =>
                {
                    city_chooseLL.Visibility = ViewStates.Gone;
                    reset_pressed            = true;
                    resetBn.Enabled          = false;
                    resetBn.SetTextColor(new Color(ContextCompat.GetColor(this, Resource.Color.lightBlueColor)));
                    distanceRL.Visibility = ViewStates.Visible;
                    distance_value.Text   = "100 " + GetString(Resource.String.km);
                    distanceSB.Progress   = 100;
                    //setting values to default
                    edit_expert.PutString("expert_city_id", "");
                    edit_expert.PutString("expert_city_name", "");
                    edit_expert.PutString("distance_radius", "");
                    edit_expert.PutBoolean("has_reviews", false);
                    edit_expert.Apply();
                    city_value.Text          = GetString(Resource.String.not_chosen);
                    onlyWithReviewsS.Checked = false;
                };
            }
            catch
            {
                StartActivity(typeof(MainActivity));
            }
        }