diff --git a/.fandogh/fandogh.yaml b/.fandogh/fandogh.yaml
index 039b85b..ba1302d 100644
--- a/.fandogh/fandogh.yaml
+++ b/.fandogh/fandogh.yaml
@@ -3,7 +3,7 @@ name: app-test
spec:
allow_http: false
disable_default_domains: true
- image: app:2.5.2.23
+ image: app:2.6.0.24
image_pull_policy: IfNotPresent
path: /
replicas: 1
diff --git a/android/build.gradle b/android/build.gradle
index 125594d..6e49330 100644
--- a/android/build.gradle
+++ b/android/build.gradle
@@ -6,7 +6,7 @@ buildscript {
}
dependencies {
- classpath 'com.android.tools.build:gradle:4.1.0'
+ classpath 'com.android.tools.build:gradle:7.4.1'
classpath 'com.google.gms:google-services:4.3.10'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
diff --git a/android/gradle/wrapper/gradle-wrapper.properties b/android/gradle/wrapper/gradle-wrapper.properties
index cc5527d..02e5f58 100644
--- a/android/gradle/wrapper/gradle-wrapper.properties
+++ b/android/gradle/wrapper/gradle-wrapper.properties
@@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-all.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-7.6-all.zip
diff --git a/lib/assets/icons/progress-radar.svg b/lib/assets/icons/progress-radar.svg
new file mode 100644
index 0000000..208d29e
--- /dev/null
+++ b/lib/assets/icons/progress-radar.svg
@@ -0,0 +1,3 @@
+
diff --git a/lib/assets/icons/risk-radar.svg b/lib/assets/icons/risk-radar.svg
new file mode 100644
index 0000000..bc6d5aa
--- /dev/null
+++ b/lib/assets/icons/risk-radar.svg
@@ -0,0 +1,3 @@
+
diff --git a/lib/assets/icons/startup-radar.svg b/lib/assets/icons/startup-radar.svg
new file mode 100644
index 0000000..c592d5b
--- /dev/null
+++ b/lib/assets/icons/startup-radar.svg
@@ -0,0 +1,3 @@
+
diff --git a/lib/assets/icons/strategic-radar.svg b/lib/assets/icons/strategic-radar.svg
new file mode 100644
index 0000000..2a9af2d
--- /dev/null
+++ b/lib/assets/icons/strategic-radar.svg
@@ -0,0 +1,3 @@
+
diff --git a/lib/assets/icons/tech-radar.svg b/lib/assets/icons/tech-radar.svg
new file mode 100644
index 0000000..9bb3266
--- /dev/null
+++ b/lib/assets/icons/tech-radar.svg
@@ -0,0 +1,3 @@
+
diff --git a/lib/constants/assets.dart b/lib/constants/assets.dart
index 48283e4..dcfd1aa 100644
--- a/lib/constants/assets.dart
+++ b/lib/constants/assets.dart
@@ -10,6 +10,14 @@ class Assets {
static const String _baseAnimationsPath = '$_basePath/animations';
static const String _baseRecordsPath = '$_baseImagesPath/records';
static const String _baseLogosPath = '$_baseImagesPath/logos';
+ static const String _baseIconsPath = '$_basePath/icons';
+
+ static const String progressRadarIcon = '$_baseIconsPath/progress-radar.svg';
+ static const String startupRadarIcon = '$_baseIconsPath/startup-radar.svg';
+ static const String strategicRadarIcon =
+ '$_baseIconsPath/strategic-radar.svg';
+ static const String techRadarIcon = '$_baseIconsPath/tech-radar.svg';
+ static const String riskRadarIcon = '$_baseIconsPath/risk-radar.svg';
static String get verticalLogoWithText =>
'$_baseLogosPath/logo-vertical-$_themeSuffix.svg';
diff --git a/lib/views/home/settings/settings.dart b/lib/views/home/settings/settings.dart
index 49d9759..24f7813 100644
--- a/lib/views/home/settings/settings.dart
+++ b/lib/views/home/settings/settings.dart
@@ -27,7 +27,6 @@ class Settings extends StatelessWidget {
children: [
Consumer(
builder: (context, themeProvider, child) => LogoAppBar(
- hasExtraPadding: false,
key: UniqueKey(),
),
),
diff --git a/lib/views/home/studio/studio.dart b/lib/views/home/studio/studio.dart
index b6fdfd0..7e13e10 100644
--- a/lib/views/home/studio/studio.dart
+++ b/lib/views/home/studio/studio.dart
@@ -5,7 +5,6 @@ import 'package:didvan/constants/app_icons.dart';
import 'package:didvan/models/enums.dart';
import 'package:didvan/models/requests/studio.dart';
import 'package:didvan/models/view/action_sheet_data.dart';
-import 'package:didvan/routes/routes.dart';
import 'package:didvan/utils/action_sheet.dart';
import 'package:didvan/views/home/studio/studio_state.dart';
import 'package:didvan/views/home/studio/widgets/slider.dart';
@@ -47,25 +46,7 @@ class _StudioState extends State {
return Consumer(
builder: (context, state, child) => CustomScrollView(
slivers: [
- SliverToBoxAdapter(
- child: Row(
- children: [
- const LogoAppBar(),
- Padding(
- padding: EdgeInsets.only(
- top: MediaQuery.of(context).padding.top,
- ),
- child: DidvanIconButton(
- icon: DidvanIcons.bookmark_regular,
- onPressed: () => Navigator.of(context).pushNamed(
- Routes.filteredBookmarks,
- arguments: {'type': state.type, 'onDeleted': (_) {}},
- ),
- ),
- ),
- ],
- ),
- ),
+ const SliverToBoxAdapter(child: LogoAppBar()),
const SliverToBoxAdapter(
child: StudioTabBar(),
),
diff --git a/lib/views/home/widgets/logo_app_bar.dart b/lib/views/home/widgets/logo_app_bar.dart
index 50f0bfc..c935b8f 100644
--- a/lib/views/home/widgets/logo_app_bar.dart
+++ b/lib/views/home/widgets/logo_app_bar.dart
@@ -1,26 +1,135 @@
+import 'package:didvan/config/theme_data.dart';
+import 'package:didvan/constants/assets.dart';
+import 'package:didvan/models/view/action_sheet_data.dart';
+import 'package:didvan/utils/action_sheet.dart';
+import 'package:didvan/views/widgets/didvan/icon_button.dart';
+import 'package:didvan/views/widgets/didvan/text.dart';
import 'package:didvan/views/widgets/logos/didvan_vertical_logo.dart';
import 'package:flutter/material.dart';
+import 'package:flutter_svg/svg.dart';
+import 'package:url_launcher/url_launcher_string.dart';
class LogoAppBar extends StatelessWidget {
final String? type;
- final bool hasExtraPadding;
- const LogoAppBar({Key? key, this.hasExtraPadding = true, this.type})
- : super(key: key);
+ const LogoAppBar({Key? key, this.type}) : super(key: key);
@override
Widget build(BuildContext context) {
final MediaQueryData d = MediaQuery.of(context);
- final double extraPadding = hasExtraPadding ? 0 : 16;
return Container(
margin: EdgeInsets.only(top: d.padding.top),
- padding: EdgeInsets.only(
- left: (type == null ? 140 : 0) - extraPadding,
- top: 16 - extraPadding,
- bottom: 16 - extraPadding,
- right: 16 - extraPadding,
- ),
+ padding: const EdgeInsets.all(16),
alignment: Alignment.centerRight,
- child: DidvanHorizontalLogo(type: type),
+ child: Row(
+ mainAxisAlignment: MainAxisAlignment.spaceBetween,
+ children: [
+ DidvanHorizontalLogo(type: type),
+ DidvanIconButton(
+ icon: Icons.menu,
+ size: 32,
+ onPressed: () => _handleMenuOpen(context),
+ ),
+ ],
+ ),
+ );
+ }
+
+ void _handleMenuOpen(BuildContext context) {
+ ActionSheetUtils.showBottomSheet(
+ data: ActionSheetData(
+ content: Column(
+ children: [
+ Row(
+ crossAxisAlignment: CrossAxisAlignment.center,
+ children: [
+ SvgPicture.asset(
+ Assets.strategicRadarIcon,
+ width: 48,
+ height: 48,
+ ),
+ const SizedBox(width: 4),
+ DidvanText(
+ 'سامانه رادارهای استراتژیک',
+ style: Theme.of(context).textTheme.titleMedium,
+ ),
+ ],
+ ),
+ const SizedBox(height: 16),
+ _BottomSheetItem(
+ icon: Assets.progressRadarIcon,
+ title: 'رادار روند',
+ enabled: true,
+ onTap: () {
+ launchUrlString(
+ 'https://trend.irfartak.com/',
+ mode: LaunchMode.inAppWebView,
+ );
+ },
+ ),
+ const SizedBox(height: 16),
+ _BottomSheetItem(
+ icon: Assets.techRadarIcon,
+ title: 'رادار تکنولوژی',
+ onTap: () {},
+ ),
+ const SizedBox(height: 16),
+ _BottomSheetItem(
+ icon: Assets.riskRadarIcon,
+ title: 'رادار ریسک',
+ onTap: () {},
+ ),
+ const SizedBox(height: 16),
+ _BottomSheetItem(
+ icon: Assets.startupRadarIcon,
+ title: 'رادار استارتآپ',
+ onTap: () {},
+ ),
+ ],
+ ),
+ hasConfirmButton: false,
+ hasDismissButton: false,
+ ),
+ );
+ }
+}
+
+class _BottomSheetItem extends StatelessWidget {
+ final String icon;
+ final String title;
+ final bool enabled;
+ final VoidCallback onTap;
+ const _BottomSheetItem({
+ required this.icon,
+ required this.title,
+ this.enabled = false,
+ required this.onTap,
+ });
+
+ @override
+ Widget build(BuildContext context) {
+ return GestureDetector(
+ onTap: enabled ? onTap : null,
+ child: Container(
+ color: Colors.transparent,
+ child: Row(
+ crossAxisAlignment: CrossAxisAlignment.center,
+ children: [
+ SvgPicture.asset(
+ icon,
+ color: enabled
+ ? Theme.of(context).colorScheme.title
+ : Theme.of(context).colorScheme.disabledText,
+ ),
+ const SizedBox(width: 8),
+ DidvanText(
+ title,
+ color: enabled
+ ? Theme.of(context).colorScheme.title
+ : Theme.of(context).colorScheme.disabledText,
+ ),
+ ],
+ ),
+ ),
);
}
}
diff --git a/pubspec.yaml b/pubspec.yaml
index d264f9b..9967311 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -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: 2.5.2+23
+version: 2.6.0+24
environment:
sdk: ">=2.17.0 <3.0.0"
@@ -97,6 +97,7 @@ flutter:
- lib/assets/images/themes/
- lib/assets/images/records/
- lib/assets/images/empty_states/
+ - lib/assets/icons/
- lib/assets/animations/
# An image asset can refer to one or more resolution-specific "variants", see