public static WeatherAlertsFragment NewInstance(LocationData location) { var fragment = new WeatherAlertsFragment(); if (location != null) { fragment.location = location; } return(fragment); }
public static WeatherAlertsFragment NewInstance(LocationData location, WeatherNowViewModel weatherViewModel) { var fragment = new WeatherAlertsFragment(); if (location != null && weatherViewModel != null) { fragment.location = location; fragment.weatherView = weatherViewModel; } return(fragment); }
public override void OnResume() { base.OnResume(); // Go straight to alerts here if (Arguments != null && Arguments.GetBoolean(WeatherWidgetService.ACTION_SHOWALERTS, false)) { // Remove key from Arguments Arguments.Remove(WeatherWidgetService.ACTION_SHOWALERTS); // Show Alert Fragment AppCompatActivity.SupportFragmentManager.BeginTransaction() .Add(Resource.Id.fragment_container, WeatherAlertsFragment.NewInstance(location)) .Hide(this) .AddToBackStack(null) .Commit(); return; } // Don't resume if fragment is hidden if (this.IsHidden) { return; } else { Task.Run(async() => await Resume()); } // Title if (AppCompatActivity != null) { AppCompatActivity.SupportActionBar.Title = GetString(Resource.String.title_activity_weather_now); } }
public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // Inflate the layout for this fragment View view = inflater.Inflate(Resource.Layout.fragment_weather_now, container, false); // Setup Actionbar HasOptionsMenu = false; refreshLayout = (SwipeRefreshLayout)view; mainView = view.FindViewById <NestedScrollView>(Resource.Id.fragment_weather_now); mainView.ScrollChange += ScrollView_ScrollChange; bgImageView = view.FindViewById <ImageView>(Resource.Id.image_view); // Condition locationName = view.FindViewById <TextView>(Resource.Id.label_location_name); updateTime = view.FindViewById <TextView>(Resource.Id.label_updatetime); weatherIcon = view.FindViewById <TextView>(Resource.Id.weather_icon); weatherCondition = view.FindViewById <TextView>(Resource.Id.weather_condition); weatherTemp = view.FindViewById <TextView>(Resource.Id.weather_temp); // Details detailsPanel = view.FindViewById(Resource.Id.details_panel); humidity = view.FindViewById <TextView>(Resource.Id.humidity); pressureState = view.FindViewById <TextView>(Resource.Id.pressure_state); pressure = view.FindViewById <TextView>(Resource.Id.pressure); visiblity = view.FindViewById <TextView>(Resource.Id.visibility_val); feelslike = view.FindViewById <TextView>(Resource.Id.feelslike); windDirection = view.FindViewById <TextView>(Resource.Id.wind_direction); windSpeed = view.FindViewById <TextView>(Resource.Id.wind_speed); sunrise = view.FindViewById <TextView>(Resource.Id.sunrise_time); sunset = view.FindViewById <TextView>(Resource.Id.sunset_time); // Forecast forecastPanel = view.FindViewById <RelativeLayout>(Resource.Id.forecast_panel); forecastPanel.Visibility = ViewStates.Invisible; forecastView = view.FindViewById <Android.Support.V7.Widget.RecyclerView>(Resource.Id.forecast_view); // Additional Details forecastSwitch = view.FindViewById <Switch>(Resource.Id.forecast_switch); forecastSwitch.CheckedChange += ForecastSwitch_CheckedChange; forecastSwitch.Visibility = ViewStates.Gone; txtForecastView = view.FindViewById <ViewPager>(Resource.Id.txt_forecast_viewpgr); txtForecastView.Adapter = new TextForecastPagerAdapter(this.Activity, new List <TextForecastItemViewModel>()); txtForecastView.Visibility = ViewStates.Gone; hrforecastPanel = view.FindViewById <LinearLayout>(Resource.Id.hourly_forecast_panel); hrforecastPanel.Visibility = ViewStates.Gone; hrforecastView = view.FindViewById <Android.Support.V7.Widget.RecyclerView>(Resource.Id.hourly_forecast_view); precipitationPanel = view.FindViewById <RelativeLayout>(Resource.Id.precipitation_card); precipitationPanel.Visibility = ViewStates.Gone; chanceLabel = view.FindViewById <TextView>(Resource.Id.chance_label); chance = view.FindViewById <TextView>(Resource.Id.chance_val); cloudinessLabel = view.FindViewById <TextView>(Resource.Id.cloudiness_label); cloudiness = view.FindViewById <TextView>(Resource.Id.cloudiness); qpfRain = view.FindViewById <TextView>(Resource.Id.qpf_rain_val); qpfSnow = view.FindViewById <TextView>(Resource.Id.qpf_snow_val); // Alerts alertButton = view.FindViewById(Resource.Id.alert_button); alertButton.Click += (sender, e) => { // Show Alert Fragment if (weatherView.Extras.Alerts.Count > 0) { AppCompatActivity.SupportFragmentManager.BeginTransaction() .Add(Resource.Id.fragment_container, WeatherAlertsFragment.NewInstance(location, weatherView)) .Hide(this) .AddToBackStack(null) .Commit(); } }; alertButton.Visibility = ViewStates.Invisible; // Cloudiness only supported by OWM cloudinessLabel.Visibility = ViewStates.Gone; cloudiness.Visibility = ViewStates.Gone; forecastView.HasFixedSize = true; forecastAdapter = new ForecastItemAdapter(new List <ForecastItemViewModel>()); forecastView.SetAdapter(forecastAdapter); hrforecastView.HasFixedSize = true; hrforecastAdapter = new HourlyForecastItemAdapter(new List <HourlyForecastItemViewModel>()); hrforecastView.SetAdapter(hrforecastAdapter); // SwipeRefresh refreshLayout.SetColorSchemeColors(ContextCompat.GetColor(Activity, Resource.Color.colorPrimary)); refreshLayout.Refresh += delegate { Task.Run(async() => { if (Settings.FollowGPS && await UpdateLocation()) { // Setup loader from updated location wLoader = new WeatherDataLoader(this.location, this, this); } await RefreshWeather(true); }); }; // Nav Header View navheader = Activity.FindViewById <NavigationView>(Resource.Id.nav_view).GetHeaderView(0); navLocation = navheader.FindViewById <TextView>(Resource.Id.nav_location); navWeatherTemp = navheader.FindViewById <TextView>(Resource.Id.nav_weathertemp); weatherCredit = view.FindViewById <TextView>(Resource.Id.weather_credit); loaded = true; refreshLayout.Refreshing = true; return(view); }