V2.6.0 Build 24
This commit is contained in:
parent
8a5341f3da
commit
2118a0291d
|
|
@ -3,7 +3,7 @@ name: app-test
|
||||||
spec:
|
spec:
|
||||||
allow_http: false
|
allow_http: false
|
||||||
disable_default_domains: true
|
disable_default_domains: true
|
||||||
image: app:2.5.2.23
|
image: app:2.6.0.24
|
||||||
image_pull_policy: IfNotPresent
|
image_pull_policy: IfNotPresent
|
||||||
path: /
|
path: /
|
||||||
replicas: 1
|
replicas: 1
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@ buildscript {
|
||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
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 'com.google.gms:google-services:4.3.10'
|
||||||
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
|
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME
|
||||||
distributionPath=wrapper/dists
|
distributionPath=wrapper/dists
|
||||||
zipStoreBase=GRADLE_USER_HOME
|
zipStoreBase=GRADLE_USER_HOME
|
||||||
zipStorePath=wrapper/dists
|
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
|
||||||
|
|
|
||||||
File diff suppressed because one or more lines are too long
|
After Width: | Height: | Size: 6.4 KiB |
File diff suppressed because one or more lines are too long
|
After Width: | Height: | Size: 9.8 KiB |
File diff suppressed because one or more lines are too long
|
After Width: | Height: | Size: 15 KiB |
File diff suppressed because one or more lines are too long
|
After Width: | Height: | Size: 22 KiB |
File diff suppressed because one or more lines are too long
|
After Width: | Height: | Size: 18 KiB |
|
|
@ -10,6 +10,14 @@ class Assets {
|
||||||
static const String _baseAnimationsPath = '$_basePath/animations';
|
static const String _baseAnimationsPath = '$_basePath/animations';
|
||||||
static const String _baseRecordsPath = '$_baseImagesPath/records';
|
static const String _baseRecordsPath = '$_baseImagesPath/records';
|
||||||
static const String _baseLogosPath = '$_baseImagesPath/logos';
|
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 =>
|
static String get verticalLogoWithText =>
|
||||||
'$_baseLogosPath/logo-vertical-$_themeSuffix.svg';
|
'$_baseLogosPath/logo-vertical-$_themeSuffix.svg';
|
||||||
|
|
|
||||||
|
|
@ -27,7 +27,6 @@ class Settings extends StatelessWidget {
|
||||||
children: [
|
children: [
|
||||||
Consumer<ThemeProvider>(
|
Consumer<ThemeProvider>(
|
||||||
builder: (context, themeProvider, child) => LogoAppBar(
|
builder: (context, themeProvider, child) => LogoAppBar(
|
||||||
hasExtraPadding: false,
|
|
||||||
key: UniqueKey(),
|
key: UniqueKey(),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,6 @@ import 'package:didvan/constants/app_icons.dart';
|
||||||
import 'package:didvan/models/enums.dart';
|
import 'package:didvan/models/enums.dart';
|
||||||
import 'package:didvan/models/requests/studio.dart';
|
import 'package:didvan/models/requests/studio.dart';
|
||||||
import 'package:didvan/models/view/action_sheet_data.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/utils/action_sheet.dart';
|
||||||
import 'package:didvan/views/home/studio/studio_state.dart';
|
import 'package:didvan/views/home/studio/studio_state.dart';
|
||||||
import 'package:didvan/views/home/studio/widgets/slider.dart';
|
import 'package:didvan/views/home/studio/widgets/slider.dart';
|
||||||
|
|
@ -47,25 +46,7 @@ class _StudioState extends State<Studio> {
|
||||||
return Consumer<StudioState>(
|
return Consumer<StudioState>(
|
||||||
builder: (context, state, child) => CustomScrollView(
|
builder: (context, state, child) => CustomScrollView(
|
||||||
slivers: [
|
slivers: [
|
||||||
SliverToBoxAdapter(
|
const SliverToBoxAdapter(child: LogoAppBar()),
|
||||||
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(
|
const SliverToBoxAdapter(
|
||||||
child: StudioTabBar(),
|
child: StudioTabBar(),
|
||||||
),
|
),
|
||||||
|
|
|
||||||
|
|
@ -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:didvan/views/widgets/logos/didvan_vertical_logo.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:flutter_svg/svg.dart';
|
||||||
|
import 'package:url_launcher/url_launcher_string.dart';
|
||||||
|
|
||||||
class LogoAppBar extends StatelessWidget {
|
class LogoAppBar extends StatelessWidget {
|
||||||
final String? type;
|
final String? type;
|
||||||
final bool hasExtraPadding;
|
const LogoAppBar({Key? key, this.type}) : super(key: key);
|
||||||
const LogoAppBar({Key? key, this.hasExtraPadding = true, this.type})
|
|
||||||
: super(key: key);
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
final MediaQueryData d = MediaQuery.of(context);
|
final MediaQueryData d = MediaQuery.of(context);
|
||||||
final double extraPadding = hasExtraPadding ? 0 : 16;
|
|
||||||
return Container(
|
return Container(
|
||||||
margin: EdgeInsets.only(top: d.padding.top),
|
margin: EdgeInsets.only(top: d.padding.top),
|
||||||
padding: EdgeInsets.only(
|
padding: const EdgeInsets.all(16),
|
||||||
left: (type == null ? 140 : 0) - extraPadding,
|
|
||||||
top: 16 - extraPadding,
|
|
||||||
bottom: 16 - extraPadding,
|
|
||||||
right: 16 - extraPadding,
|
|
||||||
),
|
|
||||||
alignment: Alignment.centerRight,
|
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,
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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.
|
# In iOS, build-name is used as CFBundleShortVersionString while build-number used as CFBundleVersion.
|
||||||
# Read more about iOS versioning at
|
# Read more about iOS versioning at
|
||||||
# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
|
# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
|
||||||
version: 2.5.2+23
|
version: 2.6.0+24
|
||||||
|
|
||||||
environment:
|
environment:
|
||||||
sdk: ">=2.17.0 <3.0.0"
|
sdk: ">=2.17.0 <3.0.0"
|
||||||
|
|
@ -97,6 +97,7 @@ flutter:
|
||||||
- lib/assets/images/themes/
|
- lib/assets/images/themes/
|
||||||
- lib/assets/images/records/
|
- lib/assets/images/records/
|
||||||
- lib/assets/images/empty_states/
|
- lib/assets/images/empty_states/
|
||||||
|
- lib/assets/icons/
|
||||||
- lib/assets/animations/
|
- lib/assets/animations/
|
||||||
|
|
||||||
# An image asset can refer to one or more resolution-specific "variants", see
|
# An image asset can refer to one or more resolution-specific "variants", see
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue