changes done in rating screen

This commit is contained in:
priyanka
2024-04-22 04:29:48 -07:00
parent 8c18b76ecd
commit 13cc99735f
7 changed files with 175 additions and 131 deletions

View File

@@ -201,7 +201,7 @@
},
{
"name": "intl",
"rootUri": "file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/intl-0.18.1",
"rootUri": "file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/intl-0.17.0",
"packageUri": "lib/",
"languageVersion": "2.12"
},
@@ -379,12 +379,6 @@
"packageUri": "lib/",
"languageVersion": "2.18"
},
{
"name": "timeago",
"rootUri": "file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/timeago-3.6.1",
"packageUri": "lib/",
"languageVersion": "2.12"
},
{
"name": "timing",
"rootUri": "file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/timing-1.0.1",
@@ -428,7 +422,7 @@
"languageVersion": "2.17"
}
],
"generated": "2024-04-17T13:38:49.333490Z",
"generated": "2024-04-18T09:34:08.334722Z",
"generator": "pub",
"generatorVersion": "2.19.6"
}

View File

@@ -140,8 +140,8 @@ file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/http_parser-4.0.2/
file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/http_parser-4.0.2/lib/
intl
2.12
file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/intl-0.18.1/
file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/intl-0.18.1/lib/
file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/intl-0.17.0/
file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/intl-0.17.0/lib/
io
2.12
file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/io-1.0.4/
@@ -254,10 +254,6 @@ test_api
2.18
file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/test_api-0.4.16/
file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/test_api-0.4.16/lib/
timeago
2.12
file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/timeago-3.6.1/
file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/timeago-3.6.1/lib/
timing
2.14
file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/timing-1.0.1/

View File

@@ -0,0 +1,39 @@
import 'package:get/get.dart';
import 'package:shared_preferences/shared_preferences.dart';
// loadRatingFromPrefs(int val) async {
// SharedPreferences prefs = await SharedPreferences.getInstance();
// prefs.getInt('rating') ?? 0;
// }
class RatingController extends GetxController {
var rating = 0;
@override
void onInit() {
super.onInit();
loadRatingFromPrefs();
}
Future<void> loadRatingFromPrefs() async {
try {
SharedPreferences prefs = await SharedPreferences.getInstance();
rating = prefs.getInt('rating') ?? 0;
update();
} catch (error) {
print('Error loading rating from SharedPreferences: $error');
rating = 0;
}
}
Future<void> updateRating(int newRating) async {
try {
SharedPreferences prefs = await SharedPreferences.getInstance();
await prefs.setInt('rating', newRating);
rating = newRating;
update();
} catch (error) {
print('Error updating rating in SharedPreferences: $error');
}
}
}

View File

@@ -22,6 +22,7 @@ import 'package:onesignal_flutter/onesignal_flutter.dart';
import 'package:pedometer/pedometer.dart';
import 'package:permission_handler/permission_handler.dart';
import 'package:shared_preferences/shared_preferences.dart';
import 'api/ratingController.dart';
import 'views/pages/intro/get_started.dart';
import 'views/short_video_player/svp_lib/injection.dart';
@@ -96,6 +97,8 @@ class MyApp extends StatefulWidget {
State<MyApp> createState() => _MyAppState();
}
final RatingController ratingController = Get.put(RatingController());
class _MyAppState extends State<MyApp> {
//pedometer module variables
late Stream<StepCount> _stepCountStream;
@@ -110,6 +113,7 @@ class _MyAppState extends State<MyApp> {
void initState() {
super.initState();
// initShortClipLinks();
ratingController.loadRatingFromPrefs();
LocalStorage.init();
IcBluetoothSdk.instance.initSDK(ICDeviceManagerConfig());
checkLocationStatus();

View File

@@ -6,10 +6,12 @@ import 'package:flutter_svg/flutter_svg.dart';
import 'package:get/get.dart';
import '../../../api/ResponseManager.dart';
import '../../../api/ratingController.dart';
import '../../../repository/services/rate_usServices.dart';
import '../../components/appbar.dart';
import '../../components/btn.dart';
import '../../theme.dart';
import 'package:shared_preferences/shared_preferences.dart';
class Ratings extends StatefulWidget {
const Ratings({Key? key}) : super(key: key);
@@ -18,13 +20,20 @@ class Ratings extends StatefulWidget {
State<Ratings> createState() => _RatingsState();
}
var _rating = 0;
// var _rating = 0;
class _RatingsState extends State<Ratings> {
@override
void initState() {
// TODO: implement initState
super.initState();
ratingController.loadRatingFromPrefs();
}
final RatingController ratingController = Get.put(RatingController());
@override
Widget build(BuildContext context) {
_RateUsbutton() async {
if (_rating == 0) {
if (ratingController.rating == 0) {
Flushbar(
backgroundColor: Colors.red,
message: 'Rate your experience!',
@@ -33,23 +42,28 @@ class _RatingsState extends State<Ratings> {
return;
}
Map<String, String> updata = {
"rate_us": _rating.toString(),
"rate_us": ratingController.rating.toString(),
};
final resp = await RateUsServices().postRateUs(updata);
if (resp.status == ResponseStatus.SUCCESS) {
// btnController.reset();
// Get.to(() => BlogMain());
Flushbar(
Get.snackbar(
"Success !",
'Your rating successfully added!',
duration: Duration(seconds: 1),
animationDuration: Duration(seconds: 1),
colorText: Colors.white,
backgroundColor: Colors.green,
message: 'Your feedback is sent successfully!',
duration: Duration(seconds: 3),
).show(context);
setState(() {
_rating = 0;
});
// _textarea.clear();
margin: EdgeInsets.all(8),
snackStyle: SnackStyle.FLOATING,
snackPosition: SnackPosition.BOTTOM,
);
// setState(() {
// _rating = 0;
// });
ratingController.updateRating(ratingController.rating);
} else if (resp.status == ResponseStatus.FAILED) {
if (resp.data["success"] == false) {
log("failed error msg is :- ${resp.data} ");
@@ -101,30 +115,35 @@ class _RatingsState extends State<Ratings> {
const SizedBox(height: 10),
Padding(
padding: const EdgeInsets.only(left: 8),
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
children: List.generate(
5,
(index) => IconButton(
onPressed: () {
setState(() {
_rating = index + 1;
print('rating------$_rating');
});
},
icon: index < _rating
? const Icon(
Icons.star,
color: ColorConstants.kPrimaryColor,
size: 30,
)
: const Icon(
Icons.star_border,
color: ColorConstants.kPrimaryColor,
size: 30,
),
),
),
child: GetBuilder<RatingController>(
init: ratingController,
builder: (controller) {
return Row(
mainAxisAlignment: MainAxisAlignment.center,
children: List.generate(
5,
(index) => IconButton(
onPressed: () {
setState(() {
ratingController.rating = index + 1;
// print('rating------$_rating');
});
},
icon: index < ratingController.rating
? const Icon(
Icons.star,
color: ColorConstants.kPrimaryColor,
size: 30,
)
: const Icon(
Icons.star_border,
color: ColorConstants.kPrimaryColor,
size: 30,
),
),
),
);
},
),
),
const SizedBox(height: 20),

View File

@@ -71,77 +71,77 @@ class _MySubscriptionState extends State<MySubscription> {
SizedBox(
height: 60,
),
Container(
// height: 400,
width: double.infinity,
decoration: BoxDecoration(
color: !globalController.darkMode.value
? ColorConstants.kWhite
: const Color(0xff212121),
boxShadow: [
BoxShadow(
spreadRadius: 2,
blurRadius: 10,
color: !globalController.darkMode.value
? ColorConstants.kBlack.withOpacity(0.3)
: ColorConstants.kWhite.withOpacity(0),
)
],
borderRadius: BorderRadius.circular(30),
),
child: Padding(
padding: const EdgeInsets.all(16),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Text(
'Current active plan:-',
style: TextStyle(
fontSize: 22,
color: !globalController.darkMode.value
? ColorConstants.kBlack
: ColorConstants.kWhite,
fontFamily: 'SFPRO',
),
),
Text(
subscriptionObj!.result!.utmSource ?? '',
style: TextStyle(
fontSize: 22,
color: !globalController.darkMode.value
? ColorConstants.kBlack
: ColorConstants.kWhite,
fontFamily: 'SFPRO',
),
),
// rowTile(
// text:
// 'Unlimited access to live virtual fitness classes led by certified trainers.'),
// SizedBox(
// height: 20,
// ),
// rowTile(
// text:
// 'Access to a library of workout videos covering various fitness levels and goals.'),
// SizedBox(
// height: 20,
// ),
// rowTile(
// text:
// 'Progress tracking to monitor your achievements and stay motivated.'),
// SizedBox(
// height: 20,
// ),
// rowTile(
// text:
// 'Basic nutrition guidance and meal planning tips.'),
// SizedBox(
// height: 20,
// ),
],
),
),
),
// Container(
// // height: 400,
// width: double.infinity,
// decoration: BoxDecoration(
// color: !globalController.darkMode.value
// ? ColorConstants.kWhite
// : const Color(0xff212121),
// boxShadow: [
// BoxShadow(
// spreadRadius: 2,
// blurRadius: 10,
// color: !globalController.darkMode.value
// ? ColorConstants.kBlack.withOpacity(0.3)
// : ColorConstants.kWhite.withOpacity(0),
// )
// ],
// borderRadius: BorderRadius.circular(30),
// ),
// child: Padding(
// padding: const EdgeInsets.all(16),
// child: Row(
// mainAxisAlignment: MainAxisAlignment.spaceBetween,
// children: [
// Text(
// 'Current active plan:-',
// style: TextStyle(
// fontSize: 22,
// color: !globalController.darkMode.value
// ? ColorConstants.kBlack
// : ColorConstants.kWhite,
// fontFamily: 'SFPRO',
// ),
// ),
// Text(
// subscriptionObj!.result!.utmSource ?? '',
// style: TextStyle(
// fontSize: 22,
// color: !globalController.darkMode.value
// ? ColorConstants.kBlack
// : ColorConstants.kWhite,
// fontFamily: 'SFPRO',
// ),
// ),
// // rowTile(
// // text:
// // 'Unlimited access to live virtual fitness classes led by certified trainers.'),
// // SizedBox(
// // height: 20,
// // ),
// // rowTile(
// // text:
// // 'Access to a library of workout videos covering various fitness levels and goals.'),
// // SizedBox(
// // height: 20,
// // ),
// // rowTile(
// // text:
// // 'Progress tracking to monitor your achievements and stay motivated.'),
// // SizedBox(
// // height: 20,
// // ),
// // rowTile(
// // text:
// // 'Basic nutrition guidance and meal planning tips.'),
// // SizedBox(
// // height: 20,
// // ),
// ],
// ),
// ),
// ),
SizedBox(
height: 25,
),

View File

@@ -263,10 +263,10 @@ packages:
dependency: "direct main"
description:
name: intl
sha256: "3bc132a9dbce73a7e4a21a17d06e1878839ffbf975568bc875c60537824b0c4d"
sha256: "910f85bce16fb5c6f614e117efa303e85a1731bb0081edf3604a2ae6e9a3cc91"
url: "https://pub.dev"
source: hosted
version: "0.18.1"
version: "0.17.0"
io:
dependency: transitive
description:
@@ -496,14 +496,6 @@ packages:
url: "https://pub.dev"
source: hosted
version: "0.4.16"
timeago:
dependency: "direct main"
description:
name: timeago
sha256: d3204eb4c788214883380253da7f23485320a58c11d145babc82ad16bf4e7764
url: "https://pub.dev"
source: hosted
version: "3.6.1"
timing:
dependency: transitive
description: