latest live code on stores
This commit is contained in:
1
.idea/vcs.xml
generated
1
.idea/vcs.xml
generated
@@ -1,6 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="VcsDirectoryMappings">
|
||||
<mapping directory="$PROJECT_DIR$" vcs="Git" />
|
||||
<mapping directory="$PROJECT_DIR$/gsf" vcs="Git" />
|
||||
</component>
|
||||
</project>
|
||||
5
.vscode/settings.json
vendored
5
.vscode/settings.json
vendored
@@ -1,3 +1,6 @@
|
||||
{
|
||||
"dart.flutterSdkPath": "C:\\Flutter_SDK\\flutter"
|
||||
"dart.flutterSdkPath": "C:\\Flutter_SDK\\flutter",
|
||||
"Codegeex.Chat.LanguagePreference": "English",
|
||||
"Codegeex.Comment.LanguagePreference": "English",
|
||||
"Codegeex.SidebarUI.LanguagePreference": "English"
|
||||
}
|
||||
@@ -62,7 +62,7 @@ android {
|
||||
// For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-gradle-build-configuration.
|
||||
minSdkVersion 26
|
||||
targetSdkVersion 33
|
||||
versionCode 14//flutterVersionCode.toInteger()//3
|
||||
versionCode 17//flutterVersionCode.toInteger()//3
|
||||
versionName "1.0"//flutterVersionName //"1.0"
|
||||
manifestPlaceholders['foregroundServiceType'] = 'health'
|
||||
|
||||
|
||||
6
gsf/assets/image/sidebarIcons/delete.svg
Normal file
6
gsf/assets/image/sidebarIcons/delete.svg
Normal file
@@ -0,0 +1,6 @@
|
||||
<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M2.125 4.25H3.54167H14.875" stroke="#DD4A4A" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M13.4577 4.25033V14.167C13.4577 14.5427 13.3084 14.9031 13.0428 15.1687C12.7771 15.4344 12.4167 15.5837 12.041 15.5837H4.95768C4.58196 15.5837 4.22162 15.4344 3.95595 15.1687C3.69027 14.9031 3.54102 14.5427 3.54102 14.167V4.25033M5.66602 4.25033V2.83366C5.66602 2.45794 5.81527 2.0976 6.08095 1.83192C6.34662 1.56625 6.70696 1.41699 7.08268 1.41699H9.91602C10.2917 1.41699 10.6521 1.56625 10.9178 1.83192C11.1834 2.0976 11.3327 2.45794 11.3327 2.83366V4.25033" stroke="#DD4A4A" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M7.08398 7.79199V12.042" stroke="#DD4A4A" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M9.91602 7.79199V12.042" stroke="#DD4A4A" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1016 B |
@@ -23,7 +23,7 @@
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>APPL</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>1.4.4</string>
|
||||
<string>1.5.2</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>????</string>
|
||||
<key>CFBundleURLTypes</key>
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
//chaitanya
|
||||
class Endpoints {
|
||||
static const _staging = "https://gsf.betadelivery.com/api/";
|
||||
|
||||
static const _base = "https://thegsf.co/api/";
|
||||
|
||||
static const login = _base + "login";
|
||||
|
||||
@@ -9,7 +9,8 @@ class MoodOMeterService extends GetConnect {
|
||||
HomeApiController homeApiController = Get.put(HomeApiController());
|
||||
|
||||
Future<ResponseModel> getMoodOMeter() async {
|
||||
|
||||
var _token = GetStorage().read("token");
|
||||
print("token $_token ");
|
||||
Response response = await get(
|
||||
Endpoints.moodOmeterGet,
|
||||
headers: {
|
||||
@@ -29,8 +30,7 @@ class MoodOMeterService extends GetConnect {
|
||||
|
||||
// print('moodOmeterResult new $moodOmeterResult');
|
||||
homeApiController.setMoodOMeterResult(moodOmeterResult);
|
||||
// print("moodOmeterResult data $moodOmeterResult");
|
||||
|
||||
// print("moodOmeterResult data $moodOmeterResult");
|
||||
|
||||
if (moodOmeterResult != null) {
|
||||
return ResponseModel(
|
||||
|
||||
@@ -7,8 +7,8 @@ GetFeedbackModel? getFeedback;
|
||||
class FeedbackServices {
|
||||
Future<ResponseData<dynamic>> feedbackApi(var data) async {
|
||||
// SharedPreferences prefs = await SharedPreferences.getInstance();
|
||||
final response = await NetworkApi().postApi(
|
||||
url: 'https://gsf.betadelivery.com/api/updateFeedback', data: data);
|
||||
final response = await NetworkApi()
|
||||
.postApi(url: 'https://thegsf.co/api/updateFeedback', data: data);
|
||||
|
||||
if (response.data['success'] == true) {
|
||||
return ResponseData<dynamic>(
|
||||
@@ -20,8 +20,8 @@ class FeedbackServices {
|
||||
}
|
||||
|
||||
Future<ResponseData<dynamic>> getFeedbackApi() async {
|
||||
final response = await NetworkApi()
|
||||
.getApi('https://gsf.betadelivery.com/api/getFeedback');
|
||||
final response =
|
||||
await NetworkApi().getApi('https://thegsf.co/api/getFeedback');
|
||||
|
||||
if (response.data['success'] == true) {
|
||||
getFeedback = GetFeedbackModel.fromJson(response.data);
|
||||
|
||||
@@ -3,8 +3,8 @@ import '../../../api/network_api.dart';
|
||||
|
||||
class RateUsServices {
|
||||
Future<ResponseData<dynamic>> postRateUs(updata) async {
|
||||
final response = await NetworkApi().postApi(
|
||||
url: 'https://gsf.betadelivery.com/api/updateRateUs', data: updata);
|
||||
final response = await NetworkApi()
|
||||
.postApi(url: 'https://thegsf.co/api/updateRateUs', data: updata);
|
||||
|
||||
if (response.data['success'] == true) {
|
||||
return ResponseData<dynamic>(
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
|
||||
import '../../api/ResponseManager.dart';
|
||||
import '../../api/network_api.dart';
|
||||
import '../../modals/subscriptionDataModel.dart';
|
||||
@@ -7,10 +6,10 @@ SubscriptionDataModel? subscriptionObj;
|
||||
|
||||
class SubscriptionDataService {
|
||||
Future<ResponseData<dynamic>> fetchSubscriptionData() async {
|
||||
final response = await NetworkApi()
|
||||
.getApi('https://gsf.betadelivery.com/api/userSubscriptionData');
|
||||
final response =
|
||||
await NetworkApi().getApi('https://thegsf.co/api/userSubscriptionData');
|
||||
|
||||
if (response.data['success'] == true) {
|
||||
if (response.data['success'] == true) {
|
||||
subscriptionObj = SubscriptionDataModel.fromJson(response.data);
|
||||
return ResponseData<dynamic>(
|
||||
response.data['message'], ResponseStatus.SUCCESS);
|
||||
|
||||
@@ -12,4 +12,15 @@ class DeleteDatesOnLogout {
|
||||
|
||||
return response;
|
||||
}
|
||||
|
||||
Future<ResponseData<dynamic>> deleteAccount(updata) async {
|
||||
final response = await NetworkApi()
|
||||
.postApi(url: "https://thegsf.co/api/delete_user", data: updata);
|
||||
if (response.status == ResponseStatus.SUCCESS) {
|
||||
print("success $response");
|
||||
}
|
||||
print("failed $response");
|
||||
|
||||
return response;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -93,8 +93,9 @@ class _FeedBackState extends State<FeedBack> {
|
||||
final resp = await FeedbackServices().feedbackApi(updata);
|
||||
if (resp.status == ResponseStatus.SUCCESS) {
|
||||
// btnController.reset();
|
||||
|
||||
Get.to(() => Home());
|
||||
FeedbackServices().getFeedbackApi();
|
||||
Get.back();
|
||||
// Get.to(() => Home());
|
||||
Flushbar(
|
||||
backgroundColor: Colors.green,
|
||||
message: 'Your feedback is sent successfully!',
|
||||
@@ -169,14 +170,13 @@ class _FeedBackState extends State<FeedBack> {
|
||||
active.value = false;
|
||||
},
|
||||
child: Obx(() {
|
||||
return
|
||||
active1.value
|
||||
? SvgPicture.asset(
|
||||
'assets/image/feedback/happy_active.svg',
|
||||
)
|
||||
: SvgPicture.asset(
|
||||
'assets/image/feedback/happy_unactive.svg',
|
||||
);
|
||||
return active1.value
|
||||
? SvgPicture.asset(
|
||||
'assets/image/feedback/happy_active.svg',
|
||||
)
|
||||
: SvgPicture.asset(
|
||||
'assets/image/feedback/happy_unactive.svg',
|
||||
);
|
||||
}),
|
||||
)),
|
||||
],
|
||||
|
||||
@@ -537,7 +537,7 @@ class _HomeState extends State<Home> with SingleTickerProviderStateMixin {
|
||||
future: bannerMoodOMeterFutureGroup
|
||||
.future, //MoodOMeterService().getMoodOMeter(),
|
||||
builder: (context, snapshot) {
|
||||
if (snapshot.connectionState == ConnectionState.waiting) {
|
||||
if (snapshot.connectionState == ConnectionState.waiting) {
|
||||
return Center(child: HomePageSkeleton());
|
||||
} else if (snapshot.hasError) {
|
||||
return Text('Error: ${snapshot.error}');
|
||||
|
||||
@@ -83,7 +83,7 @@ class _SettingsState extends State<Settings> {
|
||||
const Spacer(),
|
||||
if (Platform.isIOS)
|
||||
Text(
|
||||
packageInfo?.version ?? "1.3.12",
|
||||
packageInfo?.version ?? "1.5.2",
|
||||
style: TextStyle(
|
||||
fontSize: 19,
|
||||
color: (brightness == Brightness.light)
|
||||
@@ -93,7 +93,7 @@ class _SettingsState extends State<Settings> {
|
||||
),
|
||||
if (Platform.isAndroid)
|
||||
Text(
|
||||
packageInfo?.buildNumber ?? "14",
|
||||
packageInfo?.buildNumber ?? "17",
|
||||
style: TextStyle(
|
||||
fontSize: 19,
|
||||
color: (brightness == Brightness.light)
|
||||
|
||||
@@ -362,6 +362,19 @@ class _AppDrawerState extends State<AppDrawer> {
|
||||
)
|
||||
: const SizedBox(),
|
||||
),
|
||||
|
||||
SizedBox(
|
||||
child: (controller.isLoggedIn)
|
||||
? Column(
|
||||
children: [
|
||||
menuWidget('delete', 'Delete Account', () {
|
||||
deleteAccountModalSheet();
|
||||
}, false),
|
||||
const SizedBox(height: 15),
|
||||
],
|
||||
)
|
||||
: const SizedBox(),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
@@ -411,6 +424,7 @@ class _AppDrawerState extends State<AppDrawer> {
|
||||
: SvgPicture.asset(
|
||||
'assets/image/sidebarIcons/${!globalContoller.darkMode.value ? svgIcon + '_black' : svgIcon}.svg',
|
||||
width: 18,
|
||||
color: Colors.white,
|
||||
),
|
||||
const SizedBox(width: 10),
|
||||
Text(
|
||||
@@ -441,6 +455,141 @@ class _AppDrawerState extends State<AppDrawer> {
|
||||
);
|
||||
}
|
||||
|
||||
deleteAccountModalSheet() {
|
||||
return Get.bottomSheet(
|
||||
SizedBox(
|
||||
height: 250,
|
||||
child: Obx(
|
||||
() => Column(
|
||||
children: [
|
||||
const Spacer(),
|
||||
Container(
|
||||
width: 75,
|
||||
height: 75,
|
||||
decoration: BoxDecoration(
|
||||
color: const Color(0xff212121),
|
||||
border: Border.all(
|
||||
width: 1,
|
||||
color: Colors.white,
|
||||
),
|
||||
shape: BoxShape.circle,
|
||||
),
|
||||
child: appDataController.profilePicUrl.value.isEmpty
|
||||
? const Icon(
|
||||
Icons.person_rounded,
|
||||
size: 36,
|
||||
color: Colors.white,
|
||||
)
|
||||
: CircleAvatar(
|
||||
backgroundImage: NetworkImage(
|
||||
correctImgUrl(
|
||||
appDataController.profilePicUrl.value,
|
||||
),
|
||||
),
|
||||
backgroundColor: Colors.transparent,
|
||||
),
|
||||
),
|
||||
|
||||
const SizedBox(height: 10),
|
||||
// Text(
|
||||
// 'Hello ${appDataController.name.value}',
|
||||
// style: TextStyle(
|
||||
// fontSize: 16,
|
||||
// color: !globalContoller.darkMode.value
|
||||
// ? ColorConstants.kBlack
|
||||
// : ColorConstants.kPrimaryColor,
|
||||
// fontFamily: 'SFPRO',
|
||||
// ),
|
||||
// ),
|
||||
// const SizedBox(height: 10),
|
||||
Text(
|
||||
'Are you sure you want to permanently your account?',
|
||||
style: TextStyle(
|
||||
fontSize: 16,
|
||||
color: !globalContoller.darkMode.value
|
||||
? ColorConstants.kBlack
|
||||
: const Color(0xffD9D9D9),
|
||||
fontFamily: 'SFPRO',
|
||||
),
|
||||
),
|
||||
const SizedBox(height: 12),
|
||||
Container(
|
||||
decoration: BoxDecoration(
|
||||
border: Border.all(
|
||||
width: 1,
|
||||
color: ColorConstants.kPrimaryColor,
|
||||
),
|
||||
borderRadius: BorderRadius.circular(30),
|
||||
),
|
||||
child: InkWell(
|
||||
onTap: () async {
|
||||
SharedPreferences preferences =
|
||||
await SharedPreferences.getInstance();
|
||||
await preferences.clear();
|
||||
await DeleteDatesOnLogout().deleteDates("");
|
||||
await DeleteDatesOnLogout().deleteAccount("");
|
||||
|
||||
GetStorage().erase();
|
||||
|
||||
pickerdateRange.clear();
|
||||
helperController.predictedDate.clear();
|
||||
helperController.ovulatingDate.clear();
|
||||
|
||||
box.write('isLoggedIn', false).then((value) {
|
||||
Get.back();
|
||||
Get.back();
|
||||
Get.off(const SignIn());
|
||||
});
|
||||
},
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.symmetric(
|
||||
horizontal: 15.0, vertical: 8),
|
||||
child: Text(
|
||||
'DELETE ACCOUNT',
|
||||
style: TextStyle(
|
||||
fontSize: 16,
|
||||
color: !globalContoller.darkMode.value
|
||||
? ColorConstants.kBlack
|
||||
: ColorConstants.kPrimaryColor,
|
||||
fontFamily: 'SFPRO',
|
||||
fontWeight: FontWeight.w500,
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
const SizedBox(height: 10),
|
||||
InkWell(
|
||||
onTap: () => Get.back(),
|
||||
child: const Text(
|
||||
'Cancel',
|
||||
style: TextStyle(
|
||||
fontSize: 14,
|
||||
color: Color(0xff858585),
|
||||
fontFamily: 'SFPRO',
|
||||
),
|
||||
),
|
||||
),
|
||||
const Spacer(),
|
||||
],
|
||||
),
|
||||
)),
|
||||
// barrierColor: Colors.red[0],
|
||||
isDismissible: false,
|
||||
backgroundColor: !globalContoller.darkMode.value
|
||||
? ColorConstants.kWhite
|
||||
: const Color(0xff212121),
|
||||
shape: RoundedRectangleBorder(
|
||||
borderRadius: BorderRadius.only(
|
||||
topLeft: Radius.circular(20),
|
||||
topRight: Radius.circular(20),
|
||||
),
|
||||
// side: BorderSide(width: 5, color: Colors.black),
|
||||
),
|
||||
// enableDrag: false,
|
||||
);
|
||||
}
|
||||
|
||||
logoutModalSheet() {
|
||||
// final brightness = Get.theme.brightness;
|
||||
return Get.bottomSheet(
|
||||
|
||||
Reference in New Issue
Block a user