You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
HMG_Patient_App/lib/pages/AlHabibMedicalService/health-weather/health-weather-indicator.dart

150 lines
6.6 KiB
Dart

import 'package:diplomaticquarterapp/config/shared_pref_kay.dart';
import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart';
import 'package:diplomaticquarterapp/core/viewModels/weather/weather_view_model.dart';
import 'package:diplomaticquarterapp/pages/base/base_view.dart';
import 'package:diplomaticquarterapp/uitl/app_shared_preferences.dart';
import 'package:diplomaticquarterapp/uitl/date_uitl.dart';
import 'package:diplomaticquarterapp/uitl/location_util.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/uitl/utils_new.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:diplomaticquarterapp/widgets/progress_indicator/app_circular_progress_Indeicator.dart';
import 'package:diplomaticquarterapp/widgets/text/app_texts_widget.dart';
import 'package:diplomaticquarterapp/widgets/weather_slider/weather_slider.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:provider/provider.dart';
class HealthWeatherIndicator extends StatefulWidget {
@override
_HospitalsPageState createState() => _HospitalsPageState();
}
class _HospitalsPageState extends State<HealthWeatherIndicator> {
var data;
AppSharedPreferences sharedPref = AppSharedPreferences();
LocationUtils locationUtils;
var weather = '--';
ProjectViewModel projectViewModel;
@override
void initState() {
locationUtils = new LocationUtils(isShowConfirmDialog: true, context: context);
WidgetsBinding.instance.addPostFrameCallback((_) => locationUtils.getCurrentLocation());
getWeather();
super.initState();
}
@override
Widget build(BuildContext context) {
projectViewModel = Provider.of(context);
return BaseView<WeatherViewModel>(
onModelReady: (model) => model.getWeatherData(),
allowAny: true,
builder: (_, mode, widget) => AppScaffold(
isShowDecPage: false,
showNewAppBar: true,
showNewAppBarTitle: true,
appBarTitle: TranslationBase.of(context).healthWeatherIndicators,
isShowAppBar: true,
body: mode.weatherIndicatorData.length > 0
? SingleChildScrollView(
child: Column(children: [
Container(
width: double.infinity,
decoration: containerRadiusWithGradient(0,
color1: timeCalculator(6, 0, 10, 59)
? Color(0xFFB3E3FE)
: timeCalculator(11, 0, 15, 59)
? Color(0xFFFF9E7E)
: Color(0xFF2E6686),
color2: timeCalculator(6, 0, 10, 59)
? Color(0xFF9AC7FF)
: timeCalculator(11, 0, 15, 59)
? Color(0xFFFECB50)
: Color(0xFF122F48)),
child: Padding(
padding: const EdgeInsets.all(20.0),
child: Row(
children: [
Expanded(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Directionality(
textDirection: TextDirection.ltr,
child: Text(
weather,
style: TextStyle(
fontSize: 24,
letterSpacing: -0.83,
fontWeight: FontWeight.bold,
color: Colors.white,
),
),
),
Text(
DateUtil.getMonthDayYearDateFormatted(new DateTime.now()),
style: TextStyle(
fontSize: 12,
letterSpacing: -0.60,
fontWeight: FontWeight.w600,
color: Colors.white,
),
),
Text(
TranslationBase.of(context).healthWeatherIndicators,
style: TextStyle(
fontSize: 12,
letterSpacing: -0.96,
fontWeight: FontWeight.bold,
color: Colors.white,
),
),
Text(
TranslationBase.of(context).healthTipsBasedOnCurrentWeather,
style: TextStyle(
fontSize: 10,
letterSpacing: -0.72,
fontWeight: FontWeight.w600,
color: Colors.white,
),
),
],
),
),
SvgPicture.asset(
"assets/images/new/cloudy.svg",
),
],
),
),
),
Padding(
padding: EdgeInsets.all(15),
child: AppText(
projectViewModel.isArabic ? mode.weatherIndicatorData[0].cityNameN : mode.weatherIndicatorData[0].cityName,
fontSize: 24,
fontWeight: FontWeight.bold,
)),
Padding(
padding: EdgeInsets.all(15),
child: Column(
children: mode.weatherIndicatorData.map((data) {
return WeatherSlider(data, projectViewModel);
}).toList()))
]))
: Center(child: AppCircularProgressIndicator())),
);
}
getWeather() async {
var data = await this.sharedPref.getObject(WEATHER);
setState(() {
weather = data['Temperature'].toString() + '\u2103' ?? '--';
});
}
}