01-02-1403 / Rhmn / release test 2.

This commit is contained in:
OkaykOrhmn 2024-05-21 10:07:44 +03:30
parent 3c01853118
commit c6e07bbb2e
36 changed files with 216 additions and 276 deletions

View File

@ -52,6 +52,7 @@ android {
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
applicationId "com.didvan.didvanapp"
minSdkVersion 24
//noinspection ExpiredTargetSdkVersion
targetSdkVersion 30
versionCode flutterVersionCode.toInteger()
versionName flutterVersionName

View File

@ -14,6 +14,7 @@
android:icon="@mipmap/ic_launcher"
android:label="Didvan"
android:requestLegacyExternalStorage="true"
android:enableOnBackInvokedCallback="true"
android:usesCleartextTraffic="true">
<receiver
android:name=".FavWidget"

View File

@ -1,6 +1,13 @@
package com.didvan.didvanapp
import androidx.annotation.NonNull
import io.flutter.embedding.android.FlutterActivity
import io.flutter.embedding.engine.FlutterEngine
import io.flutter.plugins.GeneratedPluginRegistrant
class MainActivity: FlutterActivity() {
@Override
override fun configureFlutterEngine(flutterEngine: FlutterEngine) {
GeneratedPluginRegistrant.registerWith(flutterEngine)
}
}

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="appwidget_text">EXAMPLE</string>
<string name="appwidget_text">Didvan</string>
<string name="add_widget">Add widget</string>
<string name="app_widget_description">This is an app widget description</string>
<string name="app_widget_description">چشم همیشه باز مدیران</string>
</resources>

View File

@ -22,6 +22,8 @@ allprojects {
rootProject.buildDir = '../build'
subprojects {
project.buildDir = "${rootProject.buildDir}/${project.name}"
}
subprojects {
project.evaluationDependsOn(':app')
}

Binary file not shown.

View File

@ -13,8 +13,10 @@
///
///
///
import 'package:flutter/widgets.dart';
// ignore_for_file: constant_identifier_names
///
import 'package:flutter/widgets.dart';
class DidvanIcons {
DidvanIcons._();

View File

@ -1,7 +1,6 @@
import 'package:android_intent_plus/android_intent.dart';
import 'package:bot_toast/bot_toast.dart';
import 'package:didvan/config/theme_data.dart';
import 'package:didvan/models/widget_response.dart';
import 'package:didvan/providers/media.dart';
import 'package:didvan/providers/theme.dart';
import 'package:didvan/providers/user.dart';
@ -18,7 +17,6 @@ import 'package:firebase_messaging/firebase_messaging.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:flutter_localizations/flutter_localizations.dart';
import 'package:get/get.dart';
import 'package:home_widget/home_widget.dart';
import 'package:provider/provider.dart';
import 'package:url_launcher/url_launcher_string.dart';
@ -26,13 +24,12 @@ import 'package:url_launcher/url_launcher_string.dart';
import 'models/requests/infography.dart';
import 'models/requests/news.dart';
import 'models/requests/radar.dart';
import 'models/widget_response.dart';
final GlobalKey<NavigatorState> navigatorKey = GlobalKey<NavigatorState>();
@pragma('vm:entry-point')
Future<void> _firebaseMessagingBackgroundHandler(RemoteMessage message) async {
// If you're going to use other Firebase services in the background, such as Firestore,
// make sure you call `initializeApp` before using other Firebase services.
WidgetsFlutterBinding.ensureInitialized();
await Firebase.initializeApp(
options: kIsWeb
@ -52,9 +49,6 @@ Future<void> _firebaseMessagingBackgroundHandler(RemoteMessage message) async {
),
);
// LocalNotificationService.initialize();
// LocalNotificationService.display(message);
// LocalNotificationService.showBigPictureNotification();
AwsomeNotificationHandler().alarm();
AwsomeNotificationHandler().show(message);
}
@ -62,13 +56,11 @@ Future<void> _firebaseMessagingBackgroundHandler(RemoteMessage message) async {
void main() async {
try {
WidgetsFlutterBinding.ensureInitialized();
FirebaseMessaging.onBackgroundMessage(_firebaseMessagingBackgroundHandler);
HomeWidget.registerBackgroundCallback(backgroundCallback);
// HomeWidget.registerInteractivityCallback(backgroundCallback);
HomeWidget.widgetClicked.listen((Uri? uri) {});
FirebaseNotificationHandler().initial();
FirebaseMessaging.onBackgroundMessage(_firebaseMessagingBackgroundHandler);
HomeWidget.registerInteractivityCallback(backgroundCallback);
} catch (e) {
print(e.toString());
debugPrintStack();
}
runApp(const Didvan());
@ -80,13 +72,10 @@ Future<void> backgroundCallback(Uri? uri) async {
package: 'com.didvan.didvanapp',
componentName: 'com.didvan.didvanapp.MainActivity',
);
await intent.launch();
HomeWidget.saveWidgetData("uri", uri!.host);
}
class Didvan extends StatefulWidget {
const Didvan({Key? key}) : super(key: key);
@ -99,12 +88,12 @@ class _DidvanState extends State<Didvan> with WidgetsBindingObserver {
void initState() {
super.initState();
WidgetsBinding.instance?.addObserver(this);
WidgetsBinding.instance.addObserver(this);
}
@override
void dispose() {
WidgetsBinding.instance?.removeObserver(this);
WidgetsBinding.instance.removeObserver(this);
super.dispose();
}

View File

@ -11,7 +11,7 @@ class CommentData {
bool disliked;
bool private;
int status;
dynamic? mention;
dynamic mention;
final FeedbackData feedback;
final UserOverview user;
final List<Reply> replies;

View File

@ -14,10 +14,10 @@ class FavoritesResponse {
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['id'] = this.id;
data['name'] = this.name;
data['selected'] = this.selected;
final Map<String, dynamic> data = <String, dynamic>{};
data['id'] = id;
data['name'] = name;
data['selected'] = selected;
return data;
}
}

View File

@ -31,27 +31,27 @@ class NotificationMessage {
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['notificationType'] = this.notificationType;
data['title'] = this.title;
data['body'] = this.body;
data['id'] = this.id;
data['type'] = this.type;
data['link'] = this.link;
data['image'] = this.image;
data['photo'] = this.photo;
final Map<String, dynamic> data = <String, dynamic>{};
data['notificationType'] = notificationType;
data['title'] = title;
data['body'] = body;
data['id'] = id;
data['type'] = type;
data['link'] = link;
data['image'] = image;
data['photo'] = photo;
return data;
}
Map<String, String> toPayload() {
final Map<String, String> data = new Map<String, String>();
data['notificationType'] = this.notificationType!;
data['title'] = this.title!;
data['body'] = this.body!;
data['id'] = this.id!;
data['type'] = this.type!;
data['link'] = this.link!;
data['image'] = this.image!;
data['photo'] = this.photo!;
final Map<String, String> data = <String, String>{};
data['notificationType'] = notificationType!;
data['title'] = title!;
data['body'] = body!;
data['id'] = id!;
data['type'] = type!;
data['link'] = link!;
data['image'] = image!;
data['photo'] = photo!;
return data;
}
}

View File

@ -14,11 +14,11 @@ class UsersMention {
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['id'] = this.id;
data['name'] = this.name;
data['type'] = this.type;
data['photo'] = this.photo;
final Map<String, dynamic> data = <String, dynamic>{};
data['id'] = id;
data['name'] = name;
data['type'] = type;
data['photo'] = photo;
return data;
}
}

View File

@ -27,7 +27,7 @@ class WidgetResponse {
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = Map<String, dynamic>();
final Map<String, dynamic> data = <String, dynamic>{};
data['id'] = id;
data['title'] = title;
data['createdAt'] = createdAt;

View File

@ -6,8 +6,8 @@ import '../network/request.dart';
import '../network/request_helper.dart';
class HomeWidgetRepository {
Future<void> fetchWidget() async {
if (RequestService.token != null && RequestService.token.isNotEmpty) {
final service = RequestService(
RequestHelper.widgetNews(),
);
@ -15,17 +15,17 @@ class HomeWidgetRepository {
List<WidgetResponse> responseList = [];
if (service.isSuccess) {
final favourites = service.data('content');
HomeWidget.saveWidgetData("token",
"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6NCwicm9sZUlkIjo0LCJhcHBJZCI6MCwiaWF0IjoxNzEzOTM1NzkwfQ.i-SO9tLy0M9j-_C2Wh8tdp01vtYGlDZIBFPygglHQF0");
HomeWidget.saveWidgetData("token", RequestService.token.toString());
for (var i = 0; i < favourites.length; i++) {
HomeWidget.saveWidgetData(
"id${i + 1}", WidgetResponse.fromJson(favourites[i]).id.toString());
HomeWidget.saveWidgetData("id${i + 1}",
WidgetResponse.fromJson(favourites[i]).id.toString());
HomeWidget.saveWidgetData("title${i + 1}",
WidgetResponse.fromJson(favourites[i]).title.toString());
HomeWidget.saveWidgetData(
"createdAt${i + 1}",
DateTime.parse(
WidgetResponse.fromJson(favourites[i]).createdAt.toString())
DateTime.parse(WidgetResponse.fromJson(favourites[i])
.createdAt
.toString())
.toPersianDateStr());
HomeWidget.saveWidgetData("type${i + 1}",
WidgetResponse.fromJson(favourites[i]).type.toString());
@ -42,5 +42,5 @@ class HomeWidgetRepository {
);
}
}
}
}

View File

@ -1,4 +1,3 @@
import 'dart:convert';
import 'package:awesome_notifications/awesome_notifications.dart';
import 'package:didvan/main.dart';

View File

@ -37,7 +37,7 @@ class AwsomeNotificationHandler {
// channelGroupKey: 'basic_channel_group',
// channelGroupName: 'Basic group')
// ],
debug: true);
debug: false);
initialAction = await AwesomeNotifications()
.getInitialNotificationAction(removeFromActionEvents: false);

View File

@ -60,7 +60,6 @@ class FirebaseNotificationHandler {
// Listening for incoming messages while the app is in the foreground
FirebaseMessaging.onMessage.listen((RemoteMessage message) {
if (message.data != null) {
/* if (message.notification!.title != null &&
message.notification!.body != null) {
final notificationData = message.data;
@ -100,7 +99,6 @@ class FirebaseNotificationHandler {
// LocalNotificationService.display(message);
AwsomeNotificationHandler().alarm();
AwsomeNotificationHandler().show(message);
}
});
// Handling the initial message received when the app is launched from dead (killed state)

View File

@ -6,7 +6,6 @@ import 'package:flutter_local_notifications/flutter_local_notifications.dart';
import 'package:http/http.dart';
import 'package:path_provider/path_provider.dart';
import '../../../constants/assets.dart';
import '../../../models/notification_message.dart';
import '../../../views/widgets/notification/notification_dynamic_dialog.dart';
@ -35,7 +34,7 @@ class LocalNotificationService {
final id = DateTime.now().millisecondsSinceEpoch ~/ 1000;
final BigPictureStyleInformation bigPictureStyleInformation =
BigPictureStyleInformation(
FilePathAndroidBitmap(
const FilePathAndroidBitmap(
"lib/assets/aaaa.jpg"),
contentTitle: NotificationMessage.fromJson(message.data).title,
htmlFormatContentTitle: true,
@ -45,7 +44,7 @@ class LocalNotificationService {
largeIcon: const FilePathAndroidBitmap(
"lib/assets/aaaa.jpg"));
NotificationDetails notificationDetails = NotificationDetails(
NotificationDetails notificationDetails = const NotificationDetails(
android: AndroidNotificationDetails("Channel Id", "Main Channel",
groupKey: "gfg",
color: Colors.white,
@ -76,7 +75,6 @@ class LocalNotificationService {
print('Got a message in the foreground!');
print('Message data: ${message.data}');
if (message.data != null) {
print(
'Message also contained a notification: so it will pop up ${message.notification!.body}');
showDialog(
@ -87,7 +85,6 @@ class LocalNotificationService {
title: message.notification!.title,
body: message.notification!.body);
}));
}
});
}

View File

@ -8,12 +8,12 @@ void showNotificationAndroid(String title, String value) async {
priority: Priority.high,
ticker: 'ticker');
int notification_id = 1;
int notificationId = 1;
const NotificationDetails notificationDetails =
NotificationDetails(android: androidNotificationDetails);
await FlutterLocalNotificationsPlugin().show(
notification_id, title, value, notificationDetails,
notificationId, title, value, notificationDetails,
payload: 'Not present');
}
@ -29,12 +29,12 @@ void showNotificationIos(String title, String value) async {
//Secondary description (only from iOS 10 onwards)
threadIdentifier: value);
int notification_id = 1;
int notificationId = 1;
NotificationDetails platformChannelSpecifics =
NotificationDetails(iOS: iOSPlatformChannelSpecifics);
await FlutterLocalNotificationsPlugin().show(
notification_id, title, value, platformChannelSpecifics,
notificationId, title, value, platformChannelSpecifics,
payload: 'Not present');
}

View File

@ -9,21 +9,21 @@ class DateTimeUtils {
static DayTime handleDayTime(String dayTime) {
DateFormat format = DateFormat("HH:mm");
DateTime dateTime = format.parse(dayTime);
int _selectedTimeHour = dateTime.hour;
String _selectedTimeMinute = dateTime.minute.toString();
Meridiem _selectedMeridiem = Meridiem.AM;
int selectedTimeHour = dateTime.hour;
String selectedTimeMinute = dateTime.minute.toString();
Meridiem selectedMeridiem = Meridiem.AM;
if (_selectedTimeHour > 12) {
_selectedTimeHour -= 12;
_selectedMeridiem = Meridiem.PM;
} else if (_selectedTimeHour == 0) {
_selectedTimeHour = 24;
_selectedMeridiem = Meridiem.AM;
if (selectedTimeHour > 12) {
selectedTimeHour -= 12;
selectedMeridiem = Meridiem.PM;
} else if (selectedTimeHour == 0) {
selectedTimeHour = 24;
selectedMeridiem = Meridiem.AM;
}
return DayTime(
hour: _selectedTimeHour.toString(),
minute: _selectedTimeMinute,
meridiem: _selectedMeridiem);
hour: selectedTimeHour.toString(),
minute: selectedTimeMinute,
meridiem: selectedMeridiem);
}
static String handleDayTimeReverse(DayTime dayTime) {

View File

@ -117,7 +117,7 @@ class _PasswordInputState extends State<PasswordInput> {
children: [
InkWrapper(
onPressed:Navigator.of(ActionSheetUtils.context).pop,
child: Icon(
child: const Icon(
DidvanIcons.close_solid,
size: 24,
),
@ -127,8 +127,8 @@ class _PasswordInputState extends State<PasswordInput> {
style: Theme.of(context).textTheme.displaySmall,
color: Theme.of(context).colorScheme.text,
),
InkWrapper(
child: const Icon(
const InkWrapper(
child: Icon(
DidvanIcons.close_regular,
size: 24,
color: Colors.transparent,

View File

@ -116,7 +116,7 @@ class CommentState extends State<Comment> {
color: Theme.of(context).colorScheme.primary,
style: Theme.of(context).textTheme.titleSmall,
)
: SizedBox(),
: const SizedBox(),
const SizedBox(height: 8),
if (isReply)
DidvanText(

View File

@ -35,11 +35,11 @@ class CustomizeCategoryState extends CoreProvier {
faves.add(FavoritesResponse.fromJson(favourites[i]));
}
selectedFavIds.clear();
faves.forEach((element) {
for (var element in faves) {
if (element.selected!) {
selectedFavIds.add(element.id!);
}
});
}
appState = AppState.idle;
} else {
@ -62,11 +62,11 @@ class CustomizeCategoryState extends CoreProvier {
notifs.add(FavoritesResponse.fromJson(notificationsStatuses[i]));
}
selectedNotifIds.clear();
notifs.forEach((element) {
for (var element in notifs) {
if (element.selected!) {
selectedNotifIds.add(element.id!);
}
});
}
appState = AppState.idle;
} else {
appState = AppState.failed;

View File

@ -1,13 +1,10 @@
import 'package:didvan/config/theme_data.dart';
import 'package:didvan/models/enums.dart';
import 'package:didvan/models/users_mention.dart';
import 'package:didvan/models/view/app_bar_data.dart';
import 'package:didvan/views/customize_category/customize_category_state.dart';
import 'package:didvan/views/customize_category/widgets/customize_category_checkbox.dart';
import 'package:didvan/views/widgets/didvan/checkbox.dart';
import 'package:didvan/views/widgets/didvan/scaffold.dart';
import 'package:didvan/views/widgets/didvan/text.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
@ -17,7 +14,6 @@ import '../widgets/didvan/button.dart';
import '../widgets/shimmer_placeholder.dart';
import '../widgets/state_handlers/empty_state.dart';
import '../widgets/state_handlers/sliver_state_handler.dart';
import '../widgets/user_mention.dart';
class FavoritesStep extends StatefulWidget {
final Map<String, dynamic> pageData;

View File

@ -1,14 +1,10 @@
import 'package:didvan/config/theme_data.dart';
import 'package:didvan/models/enums.dart';
import 'package:didvan/models/users_mention.dart';
import 'package:didvan/models/view/app_bar_data.dart';
import 'package:didvan/views/customize_category/customize_category_state.dart';
import 'package:didvan/views/customize_category/widgets/customize_category_checkbox.dart';
import 'package:didvan/views/widgets/didvan/checkbox.dart';
import 'package:didvan/views/widgets/didvan/scaffold.dart';
import 'package:didvan/views/widgets/didvan/switch.dart';
import 'package:didvan/views/widgets/didvan/text.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
@ -18,7 +14,6 @@ import '../widgets/didvan/button.dart';
import '../widgets/shimmer_placeholder.dart';
import '../widgets/state_handlers/empty_state.dart';
import '../widgets/state_handlers/sliver_state_handler.dart';
import '../widgets/user_mention.dart';
class NotificationStatusStep extends StatefulWidget {
final Map<String, dynamic> pageData;

View File

@ -2,7 +2,6 @@ import 'package:didvan/config/design_config.dart';
import 'package:didvan/config/theme_data.dart';
import 'package:didvan/views/widgets/animated_visibility.dart';
import 'package:didvan/views/widgets/didvan/text.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
class CustomizeCategoryCheckbox extends StatefulWidget {
@ -36,11 +35,11 @@ class _CustomizeCategoryCheckboxState extends State<CustomizeCategoryCheckbox> {
@override
Widget build(BuildContext context) {
Color? _checkColor = widget.checkColor;
_checkColor ??= Theme.of(context).colorScheme.text;
Color? checkColor = widget.checkColor;
checkColor ??= Theme.of(context).colorScheme.text;
Color? _textColor = widget.textColor;
_textColor ??= Theme.of(context).colorScheme.text;
Color? textColor = widget.textColor;
textColor ??= Theme.of(context).colorScheme.text;
return GestureDetector(
onTap: () {
@ -61,17 +60,17 @@ class _CustomizeCategoryCheckboxState extends State<CustomizeCategoryCheckbox> {
decoration: BoxDecoration(
color: Colors.transparent,
borderRadius: BorderRadius.circular(6),
border: Border.all(width: 1.0, color: _value? _checkColor: Theme.of(context).colorScheme.text),
border: Border.all(width: 1.0, color: _value? checkColor: Theme.of(context).colorScheme.text),
),
margin: EdgeInsets.all(8),
margin: const EdgeInsets.all(8),
child: AnimatedVisibility(
isVisible: _value,
duration: DesignConfig.mediumAnimationDuration,
child: Center(child: Icon(Icons.check,size: 12,color: _value? _checkColor: Theme.of(context).colorScheme.text,))
child: Center(child: Icon(Icons.check,size: 12,color: _value? checkColor: Theme.of(context).colorScheme.text,))
),
),
), DidvanText(widget.title,fontSize: widget.size,color: _value? _textColor: Theme.of(context).colorScheme.text, ),
), DidvanText(widget.title,fontSize: widget.size,color: _value? textColor: Theme.of(context).colorScheme.text, ),
],
),
),

View File

@ -1,9 +1,5 @@
import 'package:didvan/config/design_config.dart';
import 'package:didvan/config/theme_data.dart';
import 'package:didvan/views/widgets/animated_visibility.dart';
import 'package:didvan/views/widgets/didvan/switch.dart';
import 'package:didvan/views/widgets/didvan/text.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
class CustomizeCategorySwitch extends StatefulWidget {
@ -40,8 +36,8 @@ class _CustomizeCategorySwitchState extends State<CustomizeCategorySwitch> {
@override
Widget build(BuildContext context) {
Color? _color = widget.color;
_color ??= Theme.of(context).colorScheme.caption;
Color? color = widget.color;
color ??= Theme.of(context).colorScheme.caption;
return GestureDetector(
onTap: () {

View File

@ -1,27 +1,15 @@
import 'package:didvan/config/design_config.dart';
import 'package:didvan/config/theme_data.dart';
import 'package:didvan/constants/app_icons.dart';
import 'package:didvan/models/view/action_sheet_data.dart';
import 'package:didvan/models/widget_response.dart';
import 'package:didvan/providers/theme.dart';
import 'package:didvan/routes/routes.dart';
import 'package:didvan/services/app_initalizer.dart';
import 'package:didvan/services/network/request.dart';
import 'package:didvan/services/network/request_helper.dart';
import 'package:didvan/utils/action_sheet.dart';
import 'package:didvan/views/home/bookmarks/bookmarks.dart';
import 'package:didvan/views/home/categories/categories_page.dart';
import 'package:didvan/views/home/main/main_page.dart';
import 'package:didvan/views/home/home_state.dart';
import 'package:didvan/views/home/new_statistic/new_statistic.dart';
import 'package:didvan/views/home/search/search.dart';
import 'package:didvan/views/widgets/didvan/text.dart';
import 'package:didvan/views/widgets/ink_wrapper.dart';
import 'package:didvan/views/widgets/logo_app_bar.dart';
import 'package:didvan/views/widgets/didvan/bnb.dart';
import 'package:flutter/material.dart';
import 'package:home_widget/home_widget.dart';
import 'package:persian_number_utility/persian_number_utility.dart';
import 'package:provider/provider.dart';
import '../../services/app_home_widget/home_widget_repository.dart';

View File

@ -1,29 +1,15 @@
import 'package:didvan/config/theme_data.dart';
import 'package:didvan/models/day_time.dart';
import 'package:didvan/models/enums.dart';
import 'package:didvan/models/users_mention.dart';
import 'package:didvan/models/view/app_bar_data.dart';
import 'package:didvan/views/customize_category/customize_category_state.dart';
import 'package:didvan/views/customize_category/widgets/customize_category_switch.dart';
import 'package:didvan/views/notification_time/notification_time_state.dart';
import 'package:didvan/views/notification_time/widgets/custom_cupertino_date_picker.dart';
import 'package:didvan/views/customize_category/widgets/customize_category_checkbox.dart';
import 'package:didvan/views/widgets/didvan/checkbox.dart';
import 'package:didvan/views/widgets/didvan/scaffold.dart';
import 'package:didvan/views/widgets/didvan/switch.dart';
import 'package:didvan/views/widgets/didvan/text.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter/widgets.dart';
import 'package:persian_datetime_picker/persian_datetime_picker.dart';
import 'package:provider/provider.dart';
import '../../constants/assets.dart';
import '../widgets/date_picker_button.dart';
import '../widgets/didvan/button.dart';
import '../widgets/state_handlers/empty_state.dart';
import '../widgets/state_handlers/sliver_state_handler.dart';
import '../widgets/user_mention.dart';
class NotificationTime extends StatefulWidget {
final Map<String, dynamic> pageData;
@ -71,7 +57,7 @@ class _NotificationTimeState extends State<NotificationTime> {
padding: const EdgeInsets.all(16),
showSliversFirst: false,
backgroundColor: Theme.of(context).colorScheme.background,
slivers: [],
slivers: const [],
children: [
Consumer<NotificationTimeState>(
builder: (context, state, child) => state.appState ==
@ -83,7 +69,7 @@ class _NotificationTimeState extends State<NotificationTime> {
style: Theme.of(context).textTheme.bodyMedium,
),
Container(
margin: EdgeInsets.all(24),
margin: const EdgeInsets.all(24),
height: 210,
child: CustomCupertinoDatePicker(
disable: state.isAnytime,
@ -94,7 +80,7 @@ class _NotificationTimeState extends State<NotificationTime> {
.titleMedium!
.copyWith(
color: state.isAnytime
? Color(0xFFC8E0F4)
? const Color(0xFFC8E0F4)
: Theme.of(context)
.colorScheme
.white),
@ -114,7 +100,7 @@ class _NotificationTimeState extends State<NotificationTime> {
Padding(
padding: const EdgeInsets.symmetric(horizontal: 16),
child: Container(
padding: EdgeInsets.all(16),
padding: const EdgeInsets.all(16),
decoration: BoxDecoration(
color: Theme.of(context).colorScheme.surface,
border: Border.all(
@ -133,7 +119,7 @@ class _NotificationTimeState extends State<NotificationTime> {
),
],
)
: SizedBox(),
: const SizedBox(),
)
],
),

View File

@ -1,20 +1,14 @@
import 'package:didvan/main.dart';
import 'package:didvan/models/enums.dart';
import 'package:didvan/providers/core.dart';
import 'package:didvan/views/widgets/didvan/text.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:intl/intl.dart';
import 'package:provider/provider.dart';
import '../../models/day_time.dart';
import '../../models/view/alert_data.dart';
import '../../routes/routes.dart';
import '../../services/network/request.dart';
import '../../services/network/request_helper.dart';
import '../../utils/action_sheet.dart';
import '../../utils/date_time.dart';
import '../profile/general_settings/settings_state.dart';
class NotificationTimeState extends CoreProvier {
late DayTime selectedTime;

View File

@ -1,9 +1,5 @@
import 'package:day_night_time_picker/lib/state/time.dart';
import 'package:didvan/config/theme_data.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter/widgets.dart';
import 'package:intl/intl.dart';
import '../../../models/day_time.dart';
import '../../../utils/date_time.dart';
@ -163,7 +159,7 @@ class _CustomCupertinoDatePickerState extends State<CustomCupertinoDatePicker> {
}
setState(() {});
widget.onSelectedItemChanged(selectedTime!);
widget.onSelectedItemChanged(selectedTime);
}
/// check if the given day, month or year index is disabled
@ -183,7 +179,7 @@ class _CustomCupertinoDatePickerState extends State<CustomCupertinoDatePicker> {
@override
Widget build(BuildContext context) {
Color _shadow = Theme.of(context).colorScheme.background;
Color shadow = Theme.of(context).colorScheme.background;
return IgnorePointer(
ignoring: widget.disable,
child: Stack(
@ -232,12 +228,12 @@ class _CustomCupertinoDatePickerState extends State<CustomCupertinoDatePicker> {
begin: Alignment.topCenter,
end: Alignment.bottomCenter,
colors: [
_shadow.withOpacity(1),
_shadow.withOpacity(0.9),
_shadow.withOpacity(0.8),
_shadow.withOpacity(0.6),
_shadow.withOpacity(0.5),
_shadow.withOpacity(0.4),
shadow.withOpacity(1),
shadow.withOpacity(0.9),
shadow.withOpacity(0.8),
shadow.withOpacity(0.6),
shadow.withOpacity(0.5),
shadow.withOpacity(0.4),
])),
)),
Positioned(
@ -251,12 +247,12 @@ class _CustomCupertinoDatePickerState extends State<CustomCupertinoDatePicker> {
begin: Alignment.bottomCenter,
end: Alignment.topCenter,
colors: [
_shadow.withOpacity(1),
_shadow.withOpacity(0.9),
_shadow.withOpacity(0.8),
_shadow.withOpacity(0.6),
_shadow.withOpacity(0.5),
_shadow.withOpacity(0.4),
shadow.withOpacity(1),
shadow.withOpacity(0.9),
shadow.withOpacity(0.8),
shadow.withOpacity(0.6),
shadow.withOpacity(0.5),
shadow.withOpacity(0.4),
])),
)),
],
@ -285,7 +281,7 @@ class _CustomCupertinoDatePickerState extends State<CustomCupertinoDatePicker> {
itemBuilder: (context, index) => Container(
height: widget.itemExtent,
alignment: Alignment.center,
decoration: BoxDecoration(),
decoration: const BoxDecoration(),
child: Text(
'${values[index]}',
style: index == selectedValueIndex

View File

@ -39,7 +39,7 @@ class _SplashState extends State<Splash> {
Widget build(BuildContext context) {
if (_isGettingThemeData) {
return Container(
color: Colors.black,
color: Colors.transparent,
height: double.infinity,
width: double.infinity,
);
@ -56,11 +56,9 @@ class _SplashState extends State<Splash> {
child: Column(
children: [
const SizedBox(height: 70),
Expanded(
child: SvgPicture.asset(
SvgPicture.asset(
Assets.horizontalLogoWithText,
),
),
if (!_errorOccured)
Image.asset(
Assets.loadingAnimation,

View File

@ -1,6 +1,5 @@
import 'package:didvan/config/theme_data.dart';
import 'package:didvan/views/widgets/didvan/text.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
class DidvanCheckbox extends StatefulWidget {
@ -33,8 +32,8 @@ class _DidvanCheckboxState extends State<DidvanCheckbox> {
@override
Widget build(BuildContext context) {
Color? _color = widget.color;
_color ??= Theme.of(context).colorScheme.text;
Color? color = widget.color;
color ??= Theme.of(context).colorScheme.text;
return GestureDetector(
onTap: () {
@ -53,7 +52,7 @@ class _DidvanCheckboxState extends State<DidvanCheckbox> {
activeColor: widget.color,
visualDensity: const VisualDensity(horizontal: -4, vertical: -4),
side: BorderSide(color: _color, width: 1.5),
side: BorderSide(color: color, width: 1.5),
value: _value,
onChanged: (value) {
setState(() {
@ -62,7 +61,7 @@ class _DidvanCheckboxState extends State<DidvanCheckbox> {
widget.onChanged(_value);
},
),
), DidvanText(widget.title,fontSize: widget.size,color: _color, ),
), DidvanText(widget.title,fontSize: widget.size,color: color, ),
],
),
),

View File

@ -1,10 +1,9 @@
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
class NotificationDynamicDialog extends StatefulWidget {
final title;
final body;
const NotificationDynamicDialog({this.title, this.body});
const NotificationDynamicDialog({super.key, this.title, this.body});
@override
_NotificationDynamicDialogState createState() => _NotificationDynamicDialogState();
}

View File

@ -1,11 +1,9 @@
import 'package:didvan/config/theme_data.dart';
import 'package:didvan/views/widgets/ink_wrapper.dart';
import 'package:didvan/views/widgets/skeleton_image.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import '../../config/design_config.dart';
import '../../constants/app_icons.dart';
import '../../models/users_mention.dart';
import '../comments/comments_state.dart';

View File

@ -15,7 +15,7 @@ publish_to: "none" # Remove this line if you wish to publish to pub.dev
# In iOS, build-name is used as CFBundleShortVersionString while build-number used as CFBundleVersion.
# Read more about iOS versioning at
# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
version: 3.1.4+3140
version: 3.2.0+3200
environment:
sdk: ">=2.17.0 <3.0.0"