Ejemplo n.º 1
0
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            SetContentView(Resource.Layout.activity_main);

            var toolbar = FindViewById <Android.Support.V7.Widget.Toolbar>(Resource.Id.toolbar);

            SetSupportActionBar(toolbar);

            var iconView        = FindViewById <ImageView>(Resource.Id.icon);
            var nameView        = FindViewById <TextView>(Resource.Id.name);
            var temperatureView = FindViewById <TextView>(Resource.Id.temperature);

            locationProvider = LocationServices.GetFusedLocationProviderClient(this);

            var provider      = new WeatherViewModelProvider(new LocationProvider(locationProvider), new DefaultWeatherProvider());
            var iconConverter = new WeatherIconConverter();

            viewModel              = new WeatherViewModel(provider, iconConverter);
            viewModel.DataChanged += data =>
            {
                nameView.Text        = data.Name;
                temperatureView.Text = $"{Convert.ToInt32(data.Temp)}\u2103";

                Drawable icon = null;
                switch (data.IconType)
                {
                case WeatherIcon.CLEAR_SKY_DAY:
                    icon = VectorDrawableCompat.Create(Resources, Resource.Drawable.d01, null);
                    break;

                case WeatherIcon.CLEAR_SKY_NIGHT:
                    icon = VectorDrawableCompat.Create(Resources, Resource.Drawable.n01, null);
                    break;

                case WeatherIcon.FEW_CLOUDS_DAY:
                    icon = VectorDrawableCompat.Create(Resources, Resource.Drawable.d02, null);
                    break;

                case WeatherIcon.FEW_CLOUDS_NIGHT:
                    icon = VectorDrawableCompat.Create(Resources, Resource.Drawable.n02, null);
                    break;

                case WeatherIcon.SCATTERED_CLOUDS:
                    icon = VectorDrawableCompat.Create(Resources, Resource.Drawable.m03, null);
                    break;

                case WeatherIcon.BROKEN_CLOUDS:
                    icon = VectorDrawableCompat.Create(Resources, Resource.Drawable.m04, null);
                    break;

                case WeatherIcon.SHOWER_RAIN:
                    icon = VectorDrawableCompat.Create(Resources, Resource.Drawable.m09, null);
                    break;

                case WeatherIcon.RAIN_DAY:
                    icon = VectorDrawableCompat.Create(Resources, Resource.Drawable.d10, null);
                    break;

                case WeatherIcon.RAIN_NIGHT:
                    icon = VectorDrawableCompat.Create(Resources, Resource.Drawable.n10, null);
                    break;

                case WeatherIcon.THUNDERSTORM:
                    icon = VectorDrawableCompat.Create(Resources, Resource.Drawable.m11, null);
                    break;

                case WeatherIcon.SNOW:
                    icon = VectorDrawableCompat.Create(Resources, Resource.Drawable.m13, null);
                    break;

                case WeatherIcon.MIST:
                    icon = VectorDrawableCompat.Create(Resources, Resource.Drawable.m50, null);
                    break;
                }
                iconView.SetImageDrawable(icon);
            };
        }
Ejemplo n.º 2
0
 public WeatherViewModel(IWeatherViewModelProvider dataProvider,
                         WeatherIconConverter iconConverter)
 {
     _dataProvider  = dataProvider;
     _iconConverter = iconConverter;
 }
 public void SetUp()
 {
     Converter = new WeatherIconConverter();
 }