Compare commits

..

33 Commits

Author SHA1 Message Date
e54f7908e3 Merge pull request 'Добавлено форматирование текста' (#9) from feature/training into develop
Reviewed-on: #9
2025-11-05 11:59:47 +00:00
84aefe0d35 feature(core):добавлен формат текста 2025-11-05 14:58:05 +03:00
6d04c0ada0 feature(core):save 2025-10-29 10:13:34 +03:00
e791f08eef feature(self): добавлен разлогин 2025-09-08 22:55:38 +03:00
bcfb9d42e8 Merge pull request 'Feature: Получение данных для тренировки, фоторедактор, изменение хранения изображений на локальный формат файлов а не байтов в бд' (#8) from feature/training into develop
Reviewed-on: #8
2025-09-08 22:46:19 +03:00
845a380fbf feature(training): отбражение данных для тренировки 2025-09-08 22:44:03 +03:00
90531e6e4e feature(image): Добавлен редактор фото 2025-09-08 21:47:51 +03:00
6cb9e82e61 feature(collection): Подсчет кол-ва карточек в коллекции 2025-09-08 21:13:16 +03:00
51c4ae4f02 bugfix(image): Перенос хранения картинок из бд в папку приложения 2025-09-08 20:55:17 +03:00
a376faf0ce bugfix(collections): Оптимизация редактирования и создания коллекции 2025-09-08 17:42:09 +03:00
cebc46bbb3 feature(collections): Роутинг на поиск 2025-09-08 16:43:43 +03:00
8b546214eb feature(collections): Заготовка под апи. Переключалка коллекций 2025-09-08 16:39:33 +03:00
0426d94d60 Merge pull request 'feature(training): Добавлен состояния загрузки, пустоты и наличие данных на экране тренировки' (#7) from feature/training into develop
Reviewed-on: https://git.dizoft.ru/Dimkov966/Remever/pulls/7
2025-06-17 22:27:49 +03:00
285c4ca3f2 feature(training): Добавлен состояния загрузки, пустоты и наличие данных на экране тренировки 2025-06-17 22:27:22 +03:00
b1da4507f1 Merge pull request 'Feature: Добавлена верстка экрана статистики' (#6) from feature/statistick into develop
Reviewed-on: https://git.dizoft.ru/Dimkov966/Remever/pulls/6
2025-06-17 21:06:55 +03:00
0842c479c7 fix(home): Оптимизация работы навигационного бара 2025-06-17 21:05:44 +03:00
e3d3bcfb68 feature(statistick): Основная верстка экрана статистики 2 2025-06-17 20:59:23 +03:00
1a0ecee501 feature(statistick): Основная верстка экрана статистики 2025-06-17 20:56:48 +03:00
49f1ee9529 Merge pull request 'Feature: Верстка экранов настроек' (#5) from feature/settings into develop
Reviewed-on: https://git.dizoft.ru/Dimkov966/Remever/pulls/5
2025-06-16 22:22:27 +03:00
5e65118ab4 feature(settings): Верстка экранов настроек 2025-06-16 22:21:23 +03:00
9c5e06884d Merge pull request 'fix(collection): правки по коллекциям' (#4) from feature/collection into develop
Reviewed-on: https://git.dizoft.ru/Dimkov966/Remever/pulls/4
2025-06-16 20:24:12 +03:00
3d31cd7737 fix(collection): правки по коллекциям 2025-06-16 20:22:56 +03:00
7609601cd0 Merge pull request 'Пачка экранов и логики' (#3) from feature/collection into develop
Reviewed-on: https://git.dizoft.ru/Dimkov966/Remever/pulls/3
2025-04-02 23:13:10 +03:00
9981f1ef0f Доработка действий с билетом 2025-04-02 23:10:47 +03:00
588c026f27 Доработка действий с билетом 2025-04-02 23:04:15 +03:00
0478ff6f47 Доработка деталки коллекции 2025-04-02 22:22:52 +03:00
49d21cc34b Добавлен вывод деталки коллекции 2025-04-02 22:17:16 +03:00
a3ef313e7c Доработка создания карточки в коллекции 2025-04-02 21:52:44 +03:00
17dff72655 Создание карточки в коллекции + экран поиска коллекции 2025-04-02 21:40:31 +03:00
fb7ff84087 Правки + иконка 2025-04-01 22:38:36 +03:00
b1aefa9f11 Добавлено логирование 2025-04-01 20:26:22 +03:00
edcc157dbb Merge pull request 'feature/collection' (#2) from feature/collection into develop
Reviewed-on: https://git.dizoft.ru/Dimkov966/Remever/pulls/2
2025-04-01 20:11:56 +03:00
5e8a8699ac Merge pull request 'Добавление коллекций' (#1) from feature/collection into develop
Reviewed-on: https://git.dizoft.ru/Dimkov966/Remever/pulls/1
2025-03-25 21:00:05 +03:00
170 changed files with 8517 additions and 1898 deletions

BIN
.DS_Store vendored

Binary file not shown.

View File

@@ -1,192 +0,0 @@
//
// Generated file. Do not edit.
// This file is generated from template in file `flutter_tools/lib/src/flutter_plugins.dart`.
//
// @dart = 3.7
import 'dart:io'; // flutter_ignore: dart_io_import.
import 'package:file_picker/file_picker.dart';
import 'package:path_provider_android/path_provider_android.dart';
import 'package:file_picker/file_picker.dart';
import 'package:path_provider_foundation/path_provider_foundation.dart';
import 'package:file_picker/file_picker.dart';
import 'package:package_info_plus/package_info_plus.dart';
import 'package:path_provider_linux/path_provider_linux.dart';
import 'package:share_plus/share_plus.dart';
import 'package:url_launcher_linux/url_launcher_linux.dart';
import 'package:file_picker/file_picker.dart';
import 'package:path_provider_foundation/path_provider_foundation.dart';
import 'package:file_picker/file_picker.dart';
import 'package:flutter_secure_storage_windows/flutter_secure_storage_windows.dart';
import 'package:package_info_plus/package_info_plus.dart';
import 'package:path_provider_windows/path_provider_windows.dart';
import 'package:share_plus/share_plus.dart';
import 'package:url_launcher_windows/url_launcher_windows.dart';
@pragma('vm:entry-point')
class _PluginRegistrant {
@pragma('vm:entry-point')
static void register() {
if (Platform.isAndroid) {
try {
FilePickerIO.registerWith();
} catch (err) {
print(
'`file_picker` threw an error: $err. '
'The app may not function as expected until you remove this plugin from pubspec.yaml'
);
}
try {
PathProviderAndroid.registerWith();
} catch (err) {
print(
'`path_provider_android` threw an error: $err. '
'The app may not function as expected until you remove this plugin from pubspec.yaml'
);
}
} else if (Platform.isIOS) {
try {
FilePickerIO.registerWith();
} catch (err) {
print(
'`file_picker` threw an error: $err. '
'The app may not function as expected until you remove this plugin from pubspec.yaml'
);
}
try {
PathProviderFoundation.registerWith();
} catch (err) {
print(
'`path_provider_foundation` threw an error: $err. '
'The app may not function as expected until you remove this plugin from pubspec.yaml'
);
}
} else if (Platform.isLinux) {
try {
FilePickerLinux.registerWith();
} catch (err) {
print(
'`file_picker` threw an error: $err. '
'The app may not function as expected until you remove this plugin from pubspec.yaml'
);
}
try {
PackageInfoPlusLinuxPlugin.registerWith();
} catch (err) {
print(
'`package_info_plus` threw an error: $err. '
'The app may not function as expected until you remove this plugin from pubspec.yaml'
);
}
try {
PathProviderLinux.registerWith();
} catch (err) {
print(
'`path_provider_linux` threw an error: $err. '
'The app may not function as expected until you remove this plugin from pubspec.yaml'
);
}
try {
SharePlusLinuxPlugin.registerWith();
} catch (err) {
print(
'`share_plus` threw an error: $err. '
'The app may not function as expected until you remove this plugin from pubspec.yaml'
);
}
try {
UrlLauncherLinux.registerWith();
} catch (err) {
print(
'`url_launcher_linux` threw an error: $err. '
'The app may not function as expected until you remove this plugin from pubspec.yaml'
);
}
} else if (Platform.isMacOS) {
try {
FilePickerMacOS.registerWith();
} catch (err) {
print(
'`file_picker` threw an error: $err. '
'The app may not function as expected until you remove this plugin from pubspec.yaml'
);
}
try {
PathProviderFoundation.registerWith();
} catch (err) {
print(
'`path_provider_foundation` threw an error: $err. '
'The app may not function as expected until you remove this plugin from pubspec.yaml'
);
}
} else if (Platform.isWindows) {
try {
FilePickerWindows.registerWith();
} catch (err) {
print(
'`file_picker` threw an error: $err. '
'The app may not function as expected until you remove this plugin from pubspec.yaml'
);
}
try {
FlutterSecureStorageWindows.registerWith();
} catch (err) {
print(
'`flutter_secure_storage_windows` threw an error: $err. '
'The app may not function as expected until you remove this plugin from pubspec.yaml'
);
}
try {
PackageInfoPlusWindowsPlugin.registerWith();
} catch (err) {
print(
'`package_info_plus` threw an error: $err. '
'The app may not function as expected until you remove this plugin from pubspec.yaml'
);
}
try {
PathProviderWindows.registerWith();
} catch (err) {
print(
'`path_provider_windows` threw an error: $err. '
'The app may not function as expected until you remove this plugin from pubspec.yaml'
);
}
try {
SharePlusWindowsPlugin.registerWith();
} catch (err) {
print(
'`share_plus` threw an error: $err. '
'The app may not function as expected until you remove this plugin from pubspec.yaml'
);
}
try {
UrlLauncherWindows.registerWith();
} catch (err) {
print(
'`url_launcher_windows` threw an error: $err. '
'The app may not function as expected until you remove this plugin from pubspec.yaml'
);
}
}
}
}

File diff suppressed because one or more lines are too long

View File

@@ -1 +0,0 @@
/Users/vitalijnecitajlo/work/my/new\ remover/.dart_tool/flutter_build/f8aeafefd67128b8dbf5f95a00355084/dart_build_result.json:

View File

@@ -1 +0,0 @@
{"inputs":["/Users/vitalijnecitajlo/fvm/versions/3.29.0/packages/flutter_tools/lib/src/build_system/targets/native_assets.dart","/Users/vitalijnecitajlo/work/my/new remover/.dart_tool/package_config_subset"],"outputs":["/Users/vitalijnecitajlo/work/my/new remover/.dart_tool/flutter_build/f8aeafefd67128b8dbf5f95a00355084/dart_build_result.json","/Users/vitalijnecitajlo/work/my/new remover/.dart_tool/flutter_build/f8aeafefd67128b8dbf5f95a00355084/dart_build_result.json"]}

View File

@@ -1 +0,0 @@
{"dependencies":[],"code_assets":[]}

File diff suppressed because one or more lines are too long

View File

@@ -1 +0,0 @@
{"inputs":["/Users/vitalijnecitajlo/work/my/new remover/.dart_tool/package_config_subset"],"outputs":["/Users/vitalijnecitajlo/work/my/new remover/.dart_tool/flutter_build/dart_plugin_registrant.dart"]}

View File

@@ -1 +0,0 @@
{"inputs":[],"outputs":[]}

View File

@@ -1 +0,0 @@
/Users/vitalijnecitajlo/work/my/new\ remover/.dart_tool/flutter_build/f8aeafefd67128b8dbf5f95a00355084/native_assets.json:

View File

@@ -1 +0,0 @@
{"inputs":["/Users/vitalijnecitajlo/fvm/versions/3.29.0/packages/flutter_tools/lib/src/build_system/targets/native_assets.dart","/Users/vitalijnecitajlo/work/my/new remover/.dart_tool/package_config_subset"],"outputs":["/Users/vitalijnecitajlo/work/my/new remover/.dart_tool/flutter_build/f8aeafefd67128b8dbf5f95a00355084/native_assets.json","/Users/vitalijnecitajlo/work/my/new remover/.dart_tool/flutter_build/f8aeafefd67128b8dbf5f95a00355084/native_assets.json"]}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1 +0,0 @@
{"format-version":[1,0,0],"native-assets":{}}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -6,22 +6,26 @@ analyzer
3.3 3.3
file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/analyzer-7.3.0/ file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/analyzer-7.3.0/
file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/analyzer-7.3.0/lib/ file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/analyzer-7.3.0/lib/
ansicolor
3.0
file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/ansicolor-2.0.3/
file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/ansicolor-2.0.3/lib/
archive archive
3.0 3.0
file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/archive-4.0.4/ file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/archive-4.0.5/
file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/archive-4.0.4/lib/ file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/archive-4.0.5/lib/
args args
3.3 3.3
file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/args-2.6.0/ file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/args-2.7.0/
file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/args-2.6.0/lib/ file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/args-2.7.0/lib/
async async
3.4 3.4
file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/async-2.12.0/ file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/async-2.12.0/
file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/async-2.12.0/lib/ file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/async-2.12.0/lib/
auto_route auto_route
3.0 3.0
file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/auto_route-10.0.0/ file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/auto_route-10.0.1/
file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/auto_route-10.0.0/lib/ file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/auto_route-10.0.1/lib/
auto_route_generator auto_route_generator
3.4 3.4
file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/auto_route_generator-10.0.1/ file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/auto_route_generator-10.0.1/
@@ -68,8 +72,8 @@ file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/built_collection-5.1.1/
file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/built_collection-5.1.1/lib/ file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/built_collection-5.1.1/lib/
built_value built_value
3.0 3.0
file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/built_value-8.9.4/ file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/built_value-8.9.5/
file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/built_value-8.9.4/lib/ file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/built_value-8.9.5/lib/
characters characters
3.4 3.4
file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/characters-1.4.0/ file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/characters-1.4.0/
@@ -126,10 +130,6 @@ cupertino_icons
3.1 3.1
file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/cupertino_icons-1.0.8/ file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/cupertino_icons-1.0.8/
file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/cupertino_icons-1.0.8/lib/ file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/cupertino_icons-1.0.8/lib/
curl_logger_dio_interceptor
2.12
file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/curl_logger_dio_interceptor-1.0.0/
file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/curl_logger_dio_interceptor-1.0.0/lib/
dart_style dart_style
3.4 3.4
file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/dart_style-3.0.1/ file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/dart_style-3.0.1/
@@ -156,16 +156,16 @@ file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/dio_web_adapter-2.1.1/
file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/dio_web_adapter-2.1.1/lib/ file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/dio_web_adapter-2.1.1/lib/
drift drift
3.4 3.4
file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/drift-2.25.1/ file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/drift-2.26.0/
file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/drift-2.25.1/lib/ file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/drift-2.26.0/lib/
drift_db_viewer drift_db_viewer
2.13 2.13
file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/drift_db_viewer-2.1.0/ file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/drift_db_viewer-2.1.0/
file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/drift_db_viewer-2.1.0/lib/ file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/drift_db_viewer-2.1.0/lib/
drift_dev drift_dev
3.4 3.4
file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/drift_dev-2.25.2/ file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/drift_dev-2.26.0/
file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/drift_dev-2.25.2/lib/ file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/drift_dev-2.26.0/lib/
event_bus event_bus
2.12 2.12
file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/event_bus-2.0.1/ file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/event_bus-2.0.1/
@@ -184,8 +184,8 @@ file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/file-7.0.1/
file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/file-7.0.1/lib/ file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/file-7.0.1/lib/
file_picker file_picker
3.4 3.4
file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/file_picker-9.2.1/ file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/file_picker-10.0.0/
file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/file_picker-9.2.1/lib/ file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/file_picker-10.0.0/lib/
fixnum fixnum
3.1 3.1
file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/fixnum-1.1.1/ file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/fixnum-1.1.1/
@@ -210,6 +210,10 @@ flutter_keyboard_size
2.18 2.18
file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_keyboard_size-1.0.1/ file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_keyboard_size-1.0.1/
file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_keyboard_size-1.0.1/lib/ file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_keyboard_size-1.0.1/lib/
flutter_launcher_icons
3.0
file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_launcher_icons-0.14.3/
file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_launcher_icons-0.14.3/lib/
flutter_lints flutter_lints
3.5 3.5
file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_lints-5.0.0/ file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_lints-5.0.0/
@@ -294,6 +298,10 @@ graphs
3.4 3.4
file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/graphs-2.3.2/ file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/graphs-2.3.2/
file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/graphs-2.3.2/lib/ file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/graphs-2.3.2/lib/
group_button
2.12
file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/group_button-5.3.4/
file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/group_button-5.3.4/lib/
hashcodes hashcodes
2.12 2.12
file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/hashcodes-2.0.0/ file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/hashcodes-2.0.0/
@@ -322,6 +330,22 @@ http_parser
3.4 3.4
file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/http_parser-4.1.2/ file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/http_parser-4.1.2/
file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/http_parser-4.1.2/lib/ file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/http_parser-4.1.2/lib/
image
3.0
file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/image-4.5.4/
file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/image-4.5.4/lib/
image_cropper
3.3
file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/image_cropper-9.1.0/
file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/image_cropper-9.1.0/lib/
image_cropper_for_web
3.3
file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/image_cropper_for_web-6.1.0/
file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/image_cropper_for_web-6.1.0/lib/
image_cropper_platform_interface
3.3
file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/image_cropper_platform_interface-7.1.0/
file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/image_cropper_platform_interface-7.1.0/lib/
image_size_getter image_size_getter
2.12 2.12
file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/image_size_getter-2.4.0/ file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/image_size_getter-2.4.0/
@@ -412,8 +436,8 @@ file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/node_preamble-2.0.2/
file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/node_preamble-2.0.2/lib/ file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/node_preamble-2.0.2/lib/
package_config package_config
3.4 3.4
file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/package_config-2.1.1/ file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/package_config-2.2.0/
file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/package_config-2.1.1/lib/ file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/package_config-2.2.0/lib/
package_info_plus package_info_plus
3.3 3.3
file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/package_info_plus-8.3.0/ file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/package_info_plus-8.3.0/
@@ -435,9 +459,9 @@ path_provider
file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/path_provider-2.1.5/ file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/path_provider-2.1.5/
file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/path_provider-2.1.5/lib/ file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/path_provider-2.1.5/lib/
path_provider_android path_provider_android
3.5 3.6
file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/path_provider_android-2.2.15/ file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/path_provider_android-2.2.16/
file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/path_provider_android-2.2.15/lib/ file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/path_provider_android-2.2.16/lib/
path_provider_foundation path_provider_foundation
3.3 3.3
file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/path_provider_foundation-2.4.1/ file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/path_provider_foundation-2.4.1/
@@ -478,34 +502,22 @@ posix
3.0 3.0
file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/posix-6.0.1/ file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/posix-6.0.1/
file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/posix-6.0.1/lib/ file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/posix-6.0.1/lib/
pretty_dio_logger
3.0
file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/pretty_dio_logger-1.4.0/
file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/pretty_dio_logger-1.4.0/lib/
provider provider
2.12 2.12
file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/provider-6.1.2/ file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/provider-6.1.4/
file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/provider-6.1.2/lib/ file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/provider-6.1.4/lib/
pub_semver pub_semver
3.4 3.4
file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/pub_semver-2.1.5/ file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/pub_semver-2.2.0/
file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/pub_semver-2.1.5/lib/ file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/pub_semver-2.2.0/lib/
pubspec_parse pubspec_parse
3.6 3.6
file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/pubspec_parse-1.5.0/ file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/pubspec_parse-1.5.0/
file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/pubspec_parse-1.5.0/lib/ file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/pubspec_parse-1.5.0/lib/
readmore
3.0
file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/readmore-3.0.0/
file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/readmore-3.0.0/lib/
recase recase
2.12 2.12
file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/recase-4.1.0/ file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/recase-4.1.0/
file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/recase-4.1.0/lib/ file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/recase-4.1.0/lib/
settings_ui
2.12
file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/settings_ui-2.0.2/
file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/settings_ui-2.0.2/lib/
share_plus share_plus
3.4 3.4
file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/share_plus-10.1.4/ file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/share_plus-10.1.4/
@@ -532,16 +544,16 @@ file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/shelf_web_socket-3.0.0/
file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/shelf_web_socket-3.0.0/lib/ file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/shelf_web_socket-3.0.0/lib/
slang slang
3.3 3.3
file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/slang-4.5.0/ file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/slang-4.6.0/
file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/slang-4.5.0/lib/ file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/slang-4.6.0/lib/
slang_build_runner slang_build_runner
3.3 3.3
file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/slang_build_runner-4.5.0/ file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/slang_build_runner-4.6.0/
file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/slang_build_runner-4.5.0/lib/ file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/slang_build_runner-4.6.0/lib/
slang_flutter slang_flutter
3.3 3.3
file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/slang_flutter-4.5.0/ file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/slang_flutter-4.6.0/
file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/slang_flutter-4.5.0/lib/ file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/slang_flutter-4.6.0/lib/
source_gen source_gen
3.6 3.6
file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/source_gen-2.0.0/ file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/source_gen-2.0.0/
@@ -568,12 +580,12 @@ file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/sprintf-7.0.0/
file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/sprintf-7.0.0/lib/ file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/sprintf-7.0.0/lib/
sqlite3 sqlite3
3.5 3.5
file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/sqlite3-2.7.4/ file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/sqlite3-2.7.5/
file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/sqlite3-2.7.4/lib/ file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/sqlite3-2.7.5/lib/
sqlite3_flutter_libs sqlite3_flutter_libs
2.12 2.12
file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/sqlite3_flutter_libs-0.5.31/ file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/sqlite3_flutter_libs-0.5.32/
file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/sqlite3_flutter_libs-0.5.31/lib/ file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/sqlite3_flutter_libs-0.5.32/lib/
sqlparser sqlparser
3.0 3.0
file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/sqlparser-0.41.0/ file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/sqlparser-0.41.0/
@@ -594,6 +606,26 @@ string_scanner
3.1 3.1
file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/string_scanner-1.4.1/ file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/string_scanner-1.4.1/
file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/string_scanner-1.4.1/lib/ file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/string_scanner-1.4.1/lib/
talker
2.17
file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/talker-4.7.1/
file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/talker-4.7.1/lib/
talker_bloc_logger
2.15
file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/talker_bloc_logger-4.7.1/
file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/talker_bloc_logger-4.7.1/lib/
talker_dio_logger
2.15
file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/talker_dio_logger-4.7.1/
file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/talker_dio_logger-4.7.1/lib/
talker_flutter
3.6
file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/talker_flutter-4.7.1/
file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/talker_flutter-4.7.1/lib/
talker_logger
2.15
file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/talker_logger-4.7.1/
file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/talker_logger-4.7.1/lib/
term_glyph term_glyph
3.1 3.1
file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/term_glyph-1.2.2/ file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/term_glyph-1.2.2/
@@ -684,8 +716,8 @@ file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/webkit_inspection_proto
file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/webkit_inspection_protocol-1.2.1/lib/ file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/webkit_inspection_protocol-1.2.1/lib/
win32 win32
3.7 3.7
file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/win32-5.11.0/ file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/win32-5.12.0/
file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/win32-5.11.0/lib/ file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/win32-5.12.0/lib/
xdg_directories xdg_directories
3.3 3.3
file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/xdg_directories-1.1.0/ file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/xdg_directories-1.1.0/

View File

@@ -1,5 +1,5 @@
# This is a generated file; do not edit or check into version control. # This is a generated file; do not edit or check into version control.
file_picker=/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/file_picker-9.2.1/ file_picker=/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/file_picker-10.0.0/
flutter_displaymode=/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_displaymode-0.6.0/ flutter_displaymode=/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_displaymode-0.6.0/
flutter_plugin_android_lifecycle=/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_plugin_android_lifecycle-2.0.27/ flutter_plugin_android_lifecycle=/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_plugin_android_lifecycle-2.0.27/
flutter_secure_storage=/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_secure_storage-9.2.4/ flutter_secure_storage=/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_secure_storage-9.2.4/
@@ -8,14 +8,16 @@ flutter_secure_storage_macos=/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/f
flutter_secure_storage_web=/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_secure_storage_web-1.2.1/ flutter_secure_storage_web=/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_secure_storage_web-1.2.1/
flutter_secure_storage_windows=/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_secure_storage_windows-3.1.2/ flutter_secure_storage_windows=/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_secure_storage_windows-3.1.2/
fluttertoast=/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/fluttertoast-8.2.12/ fluttertoast=/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/fluttertoast-8.2.12/
image_cropper=/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/image_cropper-9.1.0/
image_cropper_for_web=/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/image_cropper_for_web-6.1.0/
package_info_plus=/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/package_info_plus-8.3.0/ package_info_plus=/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/package_info_plus-8.3.0/
path_provider=/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/path_provider-2.1.5/ path_provider=/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/path_provider-2.1.5/
path_provider_android=/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/path_provider_android-2.2.15/ path_provider_android=/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/path_provider_android-2.2.16/
path_provider_foundation=/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/path_provider_foundation-2.4.1/ path_provider_foundation=/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/path_provider_foundation-2.4.1/
path_provider_linux=/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/path_provider_linux-2.2.1/ path_provider_linux=/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/path_provider_linux-2.2.1/
path_provider_windows=/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/path_provider_windows-2.3.0/ path_provider_windows=/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/path_provider_windows-2.3.0/
share_plus=/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/share_plus-10.1.4/ share_plus=/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/share_plus-10.1.4/
sqlite3_flutter_libs=/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/sqlite3_flutter_libs-0.5.31/ sqlite3_flutter_libs=/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/sqlite3_flutter_libs-0.5.32/
url_launcher_linux=/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/url_launcher_linux-3.2.1/ url_launcher_linux=/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/url_launcher_linux-3.2.1/
url_launcher_web=/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/url_launcher_web-2.4.0/ url_launcher_web=/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/url_launcher_web-2.4.0/
url_launcher_windows=/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/url_launcher_windows-3.1.4/ url_launcher_windows=/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/url_launcher_windows-3.1.4/

File diff suppressed because one or more lines are too long

View File

@@ -1,4 +1,4 @@
PROJECT_NAME=JY PROJECT_NAME=remever
.PHONY: clean .PHONY: clean
@@ -8,10 +8,6 @@ clean:
codegen: clean codegen: clean
fvm flutter pub run build_runner build --delete-conflicting-outputs fvm flutter pub run build_runner build --delete-conflicting-outputs
watchgen: clean
fvm flutter pub run build_runner watch --delete-conflicting-outputs
iosPod: iosPod:
cd ios && rm -rf Podfile.lock Pods Runner.xcworkspace && fvm flutter clean && fvm flutter pub get && pod install cd ios && rm -rf Podfile.lock Pods Runner.xcworkspace && fvm flutter clean && fvm flutter pub get && pod install
@@ -31,8 +27,8 @@ macosPodUpdate:
cd macos && pod install --repo-update cd macos && pod install --repo-update
androidBuild: clean androidBuild: clean
fvm flutter build apk --split-per-abi fvm flutter build apk
mv `pwd`/build/app/outputs/flutter-apk/app-armeabi-v7a-release.apk /tmp/$(PROJECT_NAME)-$(env)-$(ver).apk mv `pwd`/build/app/outputs/flutter-apk/app-release.apk /tmp/$(PROJECT_NAME)-$(env)-$(ver).apk
echo /tmp/$(PROJECT_NAME)-$(env)-$(ver).apk echo /tmp/$(PROJECT_NAME)-$(env)-$(ver).apk
open /tmp open /tmp

View File

@@ -6,8 +6,8 @@ plugins {
} }
android { android {
namespace = "ru.remever.mobile.remever" namespace = "ru.remever.mobile"
compileSdk = flutter.compileSdkVersion compileSdk = 36
ndkVersion = "27.0.12077973" ndkVersion = "27.0.12077973"
compileOptions { compileOptions {
@@ -21,11 +21,11 @@ android {
defaultConfig { defaultConfig {
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
applicationId = "ru.remever.mobile.remever" applicationId = "ru.remever.mobile"
// You can update the following values to match your application needs. // You can update the following values to match your application needs.
// For more information, see: https://flutter.dev/to/review-gradle-config. // For more information, see: https://flutter.dev/to/review-gradle-config.
minSdk = flutter.minSdkVersion minSdk = 21
targetSdk = flutter.targetSdkVersion targetSdk = 36
versionCode = flutter.versionCode versionCode = flutter.versionCode
versionName = flutter.versionName versionName = flutter.versionName
} }

View File

@@ -1,8 +1,11 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"> <manifest xmlns:android="http://schemas.android.com/apk/res/android">
<uses-permission android:name="android.permission.INTERNET" />
<application <application
android:label="remever" android:label="remever"
android:name="${applicationName}" android:name="${applicationName}"
android:icon="@mipmap/ic_launcher"> android:icon="@mipmap/launcher_icon">
<activity <activity
android:name=".MainActivity" android:name=".MainActivity"
android:exported="true" android:exported="true"
@@ -20,6 +23,7 @@
android:name="io.flutter.embedding.android.NormalTheme" android:name="io.flutter.embedding.android.NormalTheme"
android:resource="@style/NormalTheme" android:resource="@style/NormalTheme"
/> />
<intent-filter> <intent-filter>
<action android:name="android.intent.action.MAIN" /> <action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" /> <category android:name="android.intent.category.LAUNCHER" />
@@ -30,6 +34,15 @@
<meta-data <meta-data
android:name="flutterEmbedding" android:name="flutterEmbedding"
android:value="2" /> android:value="2" />
<meta-data
android:name="io.flutter.embedding.android.EnableImpeller"
android:value="false" />
<activity
android:name="com.yalantis.ucrop.UCropActivity"
android:screenOrientation="portrait"
android:theme="@style/Ucrop.CropTheme" />
</application> </application>
<!-- Required to query activities that can process text, see: <!-- Required to query activities that can process text, see:
https://developer.android.com/training/package-visibility and https://developer.android.com/training/package-visibility and

View File

@@ -1,4 +1,4 @@
package ru.remever.mobile.remever package ru.remever.mobile
import io.flutter.embedding.android.FlutterActivity import io.flutter.embedding.android.FlutterActivity

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

View File

@@ -0,0 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@color/ic_launcher_background"/>
<foreground>
<inset
android:drawable="@drawable/ic_launcher_foreground"
android:inset="16%" />
</foreground>
<monochrome>
<inset
android:drawable="@drawable/ic_launcher_monochrome"
android:inset="16%" />
</monochrome>
</adaptive-icon>

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.1 KiB

View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="Ucrop.CropTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="android:windowOptOutEdgeToEdgeEnforcement">true</item>
</style>
</resources>

View File

@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="ic_launcher_background">#ffffff</color>
</resources>

View File

@@ -1,6 +1,7 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<resources> <resources>
<!-- Theme applied to the Android Window while the process is starting when the OS's Dark Mode setting is off --> <!-- Theme applied to the Android Window while the process is starting when the OS's Dark Mode
setting is off -->
<style name="LaunchTheme" parent="@android:style/Theme.Light.NoTitleBar"> <style name="LaunchTheme" parent="@android:style/Theme.Light.NoTitleBar">
<!-- Show a splash screen on the activity. Automatically removed when <!-- Show a splash screen on the activity. Automatically removed when
the Flutter engine draws its first frame --> the Flutter engine draws its first frame -->
@@ -15,4 +16,8 @@
<style name="NormalTheme" parent="@android:style/Theme.Light.NoTitleBar"> <style name="NormalTheme" parent="@android:style/Theme.Light.NoTitleBar">
<item name="android:windowBackground">?android:colorBackground</item> <item name="android:windowBackground">?android:colorBackground</item>
</style> </style>
<style name="Ucrop.CropTheme" parent="Theme.AppCompat.Light.NoActionBar" /> <!--add
this line-->
</resources> </resources>

BIN
assets/.DS_Store vendored

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 746 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 811 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 759 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 954 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 639 B

BIN
assets/icons/stats_best.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

BIN
assets/icons/stats_card.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

BIN
assets/icons/stats_down.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 397 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 764 B

BIN
assets/icons/stats_time.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

BIN
assets/icons/stats_up.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 429 B

BIN
assets/images/app_icon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 KiB

138
ios/Podfile.lock Normal file
View File

@@ -0,0 +1,138 @@
PODS:
- DKImagePickerController/Core (4.3.9):
- DKImagePickerController/ImageDataManager
- DKImagePickerController/Resource
- DKImagePickerController/ImageDataManager (4.3.9)
- DKImagePickerController/PhotoGallery (4.3.9):
- DKImagePickerController/Core
- DKPhotoGallery
- DKImagePickerController/Resource (4.3.9)
- DKPhotoGallery (0.0.19):
- DKPhotoGallery/Core (= 0.0.19)
- DKPhotoGallery/Model (= 0.0.19)
- DKPhotoGallery/Preview (= 0.0.19)
- DKPhotoGallery/Resource (= 0.0.19)
- SDWebImage
- SwiftyGif
- DKPhotoGallery/Core (0.0.19):
- DKPhotoGallery/Model
- DKPhotoGallery/Preview
- SDWebImage
- SwiftyGif
- DKPhotoGallery/Model (0.0.19):
- SDWebImage
- SwiftyGif
- DKPhotoGallery/Preview (0.0.19):
- DKPhotoGallery/Model
- DKPhotoGallery/Resource
- SDWebImage
- SwiftyGif
- DKPhotoGallery/Resource (0.0.19):
- SDWebImage
- SwiftyGif
- file_picker (0.0.1):
- DKImagePickerController/PhotoGallery
- Flutter
- Flutter (1.0.0)
- flutter_secure_storage (6.0.0):
- Flutter
- fluttertoast (0.0.2):
- Flutter
- image_cropper (0.0.4):
- Flutter
- TOCropViewController (~> 2.7.4)
- package_info_plus (0.4.5):
- Flutter
- path_provider_foundation (0.0.1):
- Flutter
- FlutterMacOS
- SDWebImage (5.21.3):
- SDWebImage/Core (= 5.21.3)
- SDWebImage/Core (5.21.3)
- share_plus (0.0.1):
- Flutter
- sqlite3 (3.49.2):
- sqlite3/common (= 3.49.2)
- sqlite3/common (3.49.2)
- sqlite3/dbstatvtab (3.49.2):
- sqlite3/common
- sqlite3/fts5 (3.49.2):
- sqlite3/common
- sqlite3/math (3.49.2):
- sqlite3/common
- sqlite3/perf-threadsafe (3.49.2):
- sqlite3/common
- sqlite3/rtree (3.49.2):
- sqlite3/common
- sqlite3_flutter_libs (0.0.1):
- Flutter
- FlutterMacOS
- sqlite3 (~> 3.49.1)
- sqlite3/dbstatvtab
- sqlite3/fts5
- sqlite3/math
- sqlite3/perf-threadsafe
- sqlite3/rtree
- SwiftyGif (5.4.5)
- TOCropViewController (2.7.4)
DEPENDENCIES:
- file_picker (from `.symlinks/plugins/file_picker/ios`)
- Flutter (from `Flutter`)
- flutter_secure_storage (from `.symlinks/plugins/flutter_secure_storage/ios`)
- fluttertoast (from `.symlinks/plugins/fluttertoast/ios`)
- image_cropper (from `.symlinks/plugins/image_cropper/ios`)
- package_info_plus (from `.symlinks/plugins/package_info_plus/ios`)
- path_provider_foundation (from `.symlinks/plugins/path_provider_foundation/darwin`)
- share_plus (from `.symlinks/plugins/share_plus/ios`)
- sqlite3_flutter_libs (from `.symlinks/plugins/sqlite3_flutter_libs/darwin`)
SPEC REPOS:
trunk:
- DKImagePickerController
- DKPhotoGallery
- SDWebImage
- sqlite3
- SwiftyGif
- TOCropViewController
EXTERNAL SOURCES:
file_picker:
:path: ".symlinks/plugins/file_picker/ios"
Flutter:
:path: Flutter
flutter_secure_storage:
:path: ".symlinks/plugins/flutter_secure_storage/ios"
fluttertoast:
:path: ".symlinks/plugins/fluttertoast/ios"
image_cropper:
:path: ".symlinks/plugins/image_cropper/ios"
package_info_plus:
:path: ".symlinks/plugins/package_info_plus/ios"
path_provider_foundation:
:path: ".symlinks/plugins/path_provider_foundation/darwin"
share_plus:
:path: ".symlinks/plugins/share_plus/ios"
sqlite3_flutter_libs:
:path: ".symlinks/plugins/sqlite3_flutter_libs/darwin"
SPEC CHECKSUMS:
DKImagePickerController: 946cec48c7873164274ecc4624d19e3da4c1ef3c
DKPhotoGallery: b3834fecb755ee09a593d7c9e389d8b5d6deed60
file_picker: a0560bc09d61de87f12d246fc47d2119e6ef37be
Flutter: e0871f40cf51350855a761d2e70bf5af5b9b5de7
flutter_secure_storage: 1ed9476fba7e7a782b22888f956cce43e2c62f13
fluttertoast: 2c67e14dce98bbdb200df9e1acf610d7a6264ea1
image_cropper: c4326ea50132b1e1564499e5d32a84f01fb03537
package_info_plus: af8e2ca6888548050f16fa2f1938db7b5a5df499
path_provider_foundation: 080d55be775b7414fd5a5ef3ac137b97b097e564
SDWebImage: 16309af6d214ba3f77a7c6f6fdda888cb313a50a
share_plus: 50da8cb520a8f0f65671c6c6a99b3617ed10a58a
sqlite3: 3c950dc86011117c307eb0b28c4a7bb449dce9f1
sqlite3_flutter_libs: f6acaa2172e6bb3e2e70c771661905080e8ebcf2
SwiftyGif: 706c60cf65fa2bc5ee0313beece843c8eb8194d4
TOCropViewController: 80b8985ad794298fb69d3341de183f33d1853654
PODFILE CHECKSUM: 4305caec6b40dde0ae97be1573c53de1882a07e5
COCOAPODS: 1.16.2

View File

@@ -10,7 +10,9 @@
1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; }; 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; };
331C808B294A63AB00263BE5 /* RunnerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 331C807B294A618700263BE5 /* RunnerTests.swift */; }; 331C808B294A63AB00263BE5 /* RunnerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 331C807B294A618700263BE5 /* RunnerTests.swift */; };
3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; }; 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; };
56D0DA369935817C9FD61D64 /* Pods_RunnerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 20EA46D90FEDEE106AB74AE3 /* Pods_RunnerTests.framework */; };
74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; }; 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; };
869B506EF2E45BAB39615F26 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B39F7BDABEAD0ED3D2BCBF8A /* Pods_Runner.framework */; };
97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; }; 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; };
97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; }; 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; };
97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; }; 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; };
@@ -42,12 +44,18 @@
/* Begin PBXFileReference section */ /* Begin PBXFileReference section */
1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = "<group>"; }; 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = "<group>"; };
1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = "<group>"; }; 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = "<group>"; };
20EA46D90FEDEE106AB74AE3 /* Pods_RunnerTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RunnerTests.framework; sourceTree = BUILT_PRODUCTS_DIR; };
274309643C09AEB895F5B282 /* Pods-RunnerTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.release.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.release.xcconfig"; sourceTree = "<group>"; };
331C807B294A618700263BE5 /* RunnerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RunnerTests.swift; sourceTree = "<group>"; }; 331C807B294A618700263BE5 /* RunnerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RunnerTests.swift; sourceTree = "<group>"; };
331C8081294A63A400263BE5 /* RunnerTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RunnerTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 331C8081294A63A400263BE5 /* RunnerTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RunnerTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = "<group>"; }; 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = "<group>"; };
3DD5DA132CCC13F9168EA46C /* Pods-RunnerTests.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.profile.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.profile.xcconfig"; sourceTree = "<group>"; };
4D9F7D7DAC8938D01FCC4D51 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = "<group>"; };
74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = "<group>"; }; 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = "<group>"; };
74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; }; 74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = "<group>"; }; 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = "<group>"; };
8430F8544E2F6590CF5BD216 /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = "<group>"; };
923EC9622249E9CDBDFE9D06 /* Pods-RunnerTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.debug.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.debug.xcconfig"; sourceTree = "<group>"; };
9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = "<group>"; }; 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = "<group>"; };
9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = "<group>"; }; 9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = "<group>"; };
97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; }; 97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; };
@@ -55,19 +63,39 @@
97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; }; 97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; }; 97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; }; 97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
B39F7BDABEAD0ED3D2BCBF8A /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; };
B5951109D53267981AE8A56D /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = "<group>"; };
/* End PBXFileReference section */ /* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */ /* Begin PBXFrameworksBuildPhase section */
627E60B7283AB62A12CFF618 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
56D0DA369935817C9FD61D64 /* Pods_RunnerTests.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
97C146EB1CF9000F007C117D /* Frameworks */ = { 97C146EB1CF9000F007C117D /* Frameworks */ = {
isa = PBXFrameworksBuildPhase; isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647; buildActionMask = 2147483647;
files = ( files = (
869B506EF2E45BAB39615F26 /* Pods_Runner.framework in Frameworks */,
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
}; };
/* End PBXFrameworksBuildPhase section */ /* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */ /* Begin PBXGroup section */
27B1E70DD21F0A27FF242714 /* Frameworks */ = {
isa = PBXGroup;
children = (
B39F7BDABEAD0ED3D2BCBF8A /* Pods_Runner.framework */,
20EA46D90FEDEE106AB74AE3 /* Pods_RunnerTests.framework */,
);
name = Frameworks;
sourceTree = "<group>";
};
331C8082294A63A400263BE5 /* RunnerTests */ = { 331C8082294A63A400263BE5 /* RunnerTests */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
@@ -94,6 +122,8 @@
97C146F01CF9000F007C117D /* Runner */, 97C146F01CF9000F007C117D /* Runner */,
97C146EF1CF9000F007C117D /* Products */, 97C146EF1CF9000F007C117D /* Products */,
331C8082294A63A400263BE5 /* RunnerTests */, 331C8082294A63A400263BE5 /* RunnerTests */,
E9812416A7ACA68201AEE0BB /* Pods */,
27B1E70DD21F0A27FF242714 /* Frameworks */,
); );
sourceTree = "<group>"; sourceTree = "<group>";
}; };
@@ -121,6 +151,20 @@
path = Runner; path = Runner;
sourceTree = "<group>"; sourceTree = "<group>";
}; };
E9812416A7ACA68201AEE0BB /* Pods */ = {
isa = PBXGroup;
children = (
B5951109D53267981AE8A56D /* Pods-Runner.debug.xcconfig */,
4D9F7D7DAC8938D01FCC4D51 /* Pods-Runner.release.xcconfig */,
8430F8544E2F6590CF5BD216 /* Pods-Runner.profile.xcconfig */,
923EC9622249E9CDBDFE9D06 /* Pods-RunnerTests.debug.xcconfig */,
274309643C09AEB895F5B282 /* Pods-RunnerTests.release.xcconfig */,
3DD5DA132CCC13F9168EA46C /* Pods-RunnerTests.profile.xcconfig */,
);
name = Pods;
path = Pods;
sourceTree = "<group>";
};
/* End PBXGroup section */ /* End PBXGroup section */
/* Begin PBXNativeTarget section */ /* Begin PBXNativeTarget section */
@@ -128,8 +172,10 @@
isa = PBXNativeTarget; isa = PBXNativeTarget;
buildConfigurationList = 331C8087294A63A400263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */; buildConfigurationList = 331C8087294A63A400263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */;
buildPhases = ( buildPhases = (
B6EC4F9E6BB4749CD063C598 /* [CP] Check Pods Manifest.lock */,
331C807D294A63A400263BE5 /* Sources */, 331C807D294A63A400263BE5 /* Sources */,
331C807F294A63A400263BE5 /* Resources */, 331C807F294A63A400263BE5 /* Resources */,
627E60B7283AB62A12CFF618 /* Frameworks */,
); );
buildRules = ( buildRules = (
); );
@@ -145,12 +191,14 @@
isa = PBXNativeTarget; isa = PBXNativeTarget;
buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */; buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */;
buildPhases = ( buildPhases = (
7961A0D505DA31A674AC7FD6 /* [CP] Check Pods Manifest.lock */,
9740EEB61CF901F6004384FC /* Run Script */, 9740EEB61CF901F6004384FC /* Run Script */,
97C146EA1CF9000F007C117D /* Sources */, 97C146EA1CF9000F007C117D /* Sources */,
97C146EB1CF9000F007C117D /* Frameworks */, 97C146EB1CF9000F007C117D /* Frameworks */,
97C146EC1CF9000F007C117D /* Resources */, 97C146EC1CF9000F007C117D /* Resources */,
9705A1C41CF9048500538489 /* Embed Frameworks */, 9705A1C41CF9048500538489 /* Embed Frameworks */,
3B06AD1E1E4923F5004D2608 /* Thin Binary */, 3B06AD1E1E4923F5004D2608 /* Thin Binary */,
FD477B45F6C2D4CD5E5F5D4C /* [CP] Embed Pods Frameworks */,
); );
buildRules = ( buildRules = (
); );
@@ -238,6 +286,28 @@
shellPath = /bin/sh; shellPath = /bin/sh;
shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin"; shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin";
}; };
7961A0D505DA31A674AC7FD6 /* [CP] Check Pods Manifest.lock */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
);
inputPaths = (
"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
"${PODS_ROOT}/Manifest.lock",
);
name = "[CP] Check Pods Manifest.lock";
outputFileListPaths = (
);
outputPaths = (
"$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
showEnvVarsInLog = 0;
};
9740EEB61CF901F6004384FC /* Run Script */ = { 9740EEB61CF901F6004384FC /* Run Script */ = {
isa = PBXShellScriptBuildPhase; isa = PBXShellScriptBuildPhase;
alwaysOutOfDate = 1; alwaysOutOfDate = 1;
@@ -253,6 +323,45 @@
shellPath = /bin/sh; shellPath = /bin/sh;
shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build"; shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build";
}; };
B6EC4F9E6BB4749CD063C598 /* [CP] Check Pods Manifest.lock */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
);
inputPaths = (
"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
"${PODS_ROOT}/Manifest.lock",
);
name = "[CP] Check Pods Manifest.lock";
outputFileListPaths = (
);
outputPaths = (
"$(DERIVED_FILE_DIR)/Pods-RunnerTests-checkManifestLockResult.txt",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
showEnvVarsInLog = 0;
};
FD477B45F6C2D4CD5E5F5D4C /* [CP] Embed Pods Frameworks */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-input-files.xcfilelist",
);
name = "[CP] Embed Pods Frameworks";
outputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-output-files.xcfilelist",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n";
showEnvVarsInLog = 0;
};
/* End PBXShellScriptBuildPhase section */ /* End PBXShellScriptBuildPhase section */
/* Begin PBXSourcesBuildPhase section */ /* Begin PBXSourcesBuildPhase section */
@@ -369,7 +478,7 @@
"$(inherited)", "$(inherited)",
"@executable_path/Frameworks", "@executable_path/Frameworks",
); );
PRODUCT_BUNDLE_IDENTIFIER = ru.remever.mobile.remever; PRODUCT_BUNDLE_IDENTIFIER = ru.remever.mobile;
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
SWIFT_VERSION = 5.0; SWIFT_VERSION = 5.0;
@@ -379,13 +488,14 @@
}; };
331C8088294A63A400263BE5 /* Debug */ = { 331C8088294A63A400263BE5 /* Debug */ = {
isa = XCBuildConfiguration; isa = XCBuildConfiguration;
baseConfigurationReference = 923EC9622249E9CDBDFE9D06 /* Pods-RunnerTests.debug.xcconfig */;
buildSettings = { buildSettings = {
BUNDLE_LOADER = "$(TEST_HOST)"; BUNDLE_LOADER = "$(TEST_HOST)";
CODE_SIGN_STYLE = Automatic; CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 1; CURRENT_PROJECT_VERSION = 1;
GENERATE_INFOPLIST_FILE = YES; GENERATE_INFOPLIST_FILE = YES;
MARKETING_VERSION = 1.0; MARKETING_VERSION = 1.0;
PRODUCT_BUNDLE_IDENTIFIER = ru.remever.mobile.remever.RunnerTests; PRODUCT_BUNDLE_IDENTIFIER = ru.remever.mobile.RunnerTests;
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_OPTIMIZATION_LEVEL = "-Onone";
@@ -396,13 +506,14 @@
}; };
331C8089294A63A400263BE5 /* Release */ = { 331C8089294A63A400263BE5 /* Release */ = {
isa = XCBuildConfiguration; isa = XCBuildConfiguration;
baseConfigurationReference = 274309643C09AEB895F5B282 /* Pods-RunnerTests.release.xcconfig */;
buildSettings = { buildSettings = {
BUNDLE_LOADER = "$(TEST_HOST)"; BUNDLE_LOADER = "$(TEST_HOST)";
CODE_SIGN_STYLE = Automatic; CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 1; CURRENT_PROJECT_VERSION = 1;
GENERATE_INFOPLIST_FILE = YES; GENERATE_INFOPLIST_FILE = YES;
MARKETING_VERSION = 1.0; MARKETING_VERSION = 1.0;
PRODUCT_BUNDLE_IDENTIFIER = ru.remever.mobile.remever.RunnerTests; PRODUCT_BUNDLE_IDENTIFIER = ru.remever.mobile.RunnerTests;
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_VERSION = 5.0; SWIFT_VERSION = 5.0;
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner"; TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner";
@@ -411,13 +522,14 @@
}; };
331C808A294A63A400263BE5 /* Profile */ = { 331C808A294A63A400263BE5 /* Profile */ = {
isa = XCBuildConfiguration; isa = XCBuildConfiguration;
baseConfigurationReference = 3DD5DA132CCC13F9168EA46C /* Pods-RunnerTests.profile.xcconfig */;
buildSettings = { buildSettings = {
BUNDLE_LOADER = "$(TEST_HOST)"; BUNDLE_LOADER = "$(TEST_HOST)";
CODE_SIGN_STYLE = Automatic; CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 1; CURRENT_PROJECT_VERSION = 1;
GENERATE_INFOPLIST_FILE = YES; GENERATE_INFOPLIST_FILE = YES;
MARKETING_VERSION = 1.0; MARKETING_VERSION = 1.0;
PRODUCT_BUNDLE_IDENTIFIER = ru.remever.mobile.remever.RunnerTests; PRODUCT_BUNDLE_IDENTIFIER = ru.remever.mobile.RunnerTests;
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_VERSION = 5.0; SWIFT_VERSION = 5.0;
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner"; TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner";
@@ -428,7 +540,7 @@
isa = XCBuildConfiguration; isa = XCBuildConfiguration;
buildSettings = { buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO; ALWAYS_SEARCH_USER_PATHS = NO;
ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = AppIcon;
CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NONNULL = YES;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++"; CLANG_CXX_LIBRARY = "libc++";
@@ -485,7 +597,7 @@
isa = XCBuildConfiguration; isa = XCBuildConfiguration;
buildSettings = { buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO; ALWAYS_SEARCH_USER_PATHS = NO;
ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = AppIcon;
CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NONNULL = YES;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++"; CLANG_CXX_LIBRARY = "libc++";
@@ -549,7 +661,7 @@
"$(inherited)", "$(inherited)",
"@executable_path/Frameworks", "@executable_path/Frameworks",
); );
PRODUCT_BUNDLE_IDENTIFIER = ru.remever.mobile.remever; PRODUCT_BUNDLE_IDENTIFIER = ru.remever.mobile;
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_OPTIMIZATION_LEVEL = "-Onone";
@@ -572,7 +684,7 @@
"$(inherited)", "$(inherited)",
"@executable_path/Frameworks", "@executable_path/Frameworks",
); );
PRODUCT_BUNDLE_IDENTIFIER = ru.remever.mobile.remever; PRODUCT_BUNDLE_IDENTIFIER = ru.remever.mobile;
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
SWIFT_VERSION = 5.0; SWIFT_VERSION = 5.0;

View File

@@ -4,4 +4,7 @@
<FileRef <FileRef
location = "group:Runner.xcodeproj"> location = "group:Runner.xcodeproj">
</FileRef> </FileRef>
<FileRef
location = "group:Pods/Pods.xcodeproj">
</FileRef>
</Workspace> </Workspace>

View File

@@ -1,122 +1 @@
{ {"images":[{"size":"20x20","idiom":"iphone","filename":"Icon-App-20x20@2x.png","scale":"2x"},{"size":"20x20","idiom":"iphone","filename":"Icon-App-20x20@3x.png","scale":"3x"},{"size":"29x29","idiom":"iphone","filename":"Icon-App-29x29@1x.png","scale":"1x"},{"size":"29x29","idiom":"iphone","filename":"Icon-App-29x29@2x.png","scale":"2x"},{"size":"29x29","idiom":"iphone","filename":"Icon-App-29x29@3x.png","scale":"3x"},{"size":"40x40","idiom":"iphone","filename":"Icon-App-40x40@2x.png","scale":"2x"},{"size":"40x40","idiom":"iphone","filename":"Icon-App-40x40@3x.png","scale":"3x"},{"size":"57x57","idiom":"iphone","filename":"Icon-App-57x57@1x.png","scale":"1x"},{"size":"57x57","idiom":"iphone","filename":"Icon-App-57x57@2x.png","scale":"2x"},{"size":"60x60","idiom":"iphone","filename":"Icon-App-60x60@2x.png","scale":"2x"},{"size":"60x60","idiom":"iphone","filename":"Icon-App-60x60@3x.png","scale":"3x"},{"size":"20x20","idiom":"ipad","filename":"Icon-App-20x20@1x.png","scale":"1x"},{"size":"20x20","idiom":"ipad","filename":"Icon-App-20x20@2x.png","scale":"2x"},{"size":"29x29","idiom":"ipad","filename":"Icon-App-29x29@1x.png","scale":"1x"},{"size":"29x29","idiom":"ipad","filename":"Icon-App-29x29@2x.png","scale":"2x"},{"size":"40x40","idiom":"ipad","filename":"Icon-App-40x40@1x.png","scale":"1x"},{"size":"40x40","idiom":"ipad","filename":"Icon-App-40x40@2x.png","scale":"2x"},{"size":"50x50","idiom":"ipad","filename":"Icon-App-50x50@1x.png","scale":"1x"},{"size":"50x50","idiom":"ipad","filename":"Icon-App-50x50@2x.png","scale":"2x"},{"size":"72x72","idiom":"ipad","filename":"Icon-App-72x72@1x.png","scale":"1x"},{"size":"72x72","idiom":"ipad","filename":"Icon-App-72x72@2x.png","scale":"2x"},{"size":"76x76","idiom":"ipad","filename":"Icon-App-76x76@1x.png","scale":"1x"},{"size":"76x76","idiom":"ipad","filename":"Icon-App-76x76@2x.png","scale":"2x"},{"size":"83.5x83.5","idiom":"ipad","filename":"Icon-App-83.5x83.5@2x.png","scale":"2x"},{"size":"1024x1024","idiom":"ios-marketing","filename":"Icon-App-1024x1024@1x.png","scale":"1x"}],"info":{"version":1,"author":"xcode"}}
"images" : [
{
"size" : "20x20",
"idiom" : "iphone",
"filename" : "Icon-App-20x20@2x.png",
"scale" : "2x"
},
{
"size" : "20x20",
"idiom" : "iphone",
"filename" : "Icon-App-20x20@3x.png",
"scale" : "3x"
},
{
"size" : "29x29",
"idiom" : "iphone",
"filename" : "Icon-App-29x29@1x.png",
"scale" : "1x"
},
{
"size" : "29x29",
"idiom" : "iphone",
"filename" : "Icon-App-29x29@2x.png",
"scale" : "2x"
},
{
"size" : "29x29",
"idiom" : "iphone",
"filename" : "Icon-App-29x29@3x.png",
"scale" : "3x"
},
{
"size" : "40x40",
"idiom" : "iphone",
"filename" : "Icon-App-40x40@2x.png",
"scale" : "2x"
},
{
"size" : "40x40",
"idiom" : "iphone",
"filename" : "Icon-App-40x40@3x.png",
"scale" : "3x"
},
{
"size" : "60x60",
"idiom" : "iphone",
"filename" : "Icon-App-60x60@2x.png",
"scale" : "2x"
},
{
"size" : "60x60",
"idiom" : "iphone",
"filename" : "Icon-App-60x60@3x.png",
"scale" : "3x"
},
{
"size" : "20x20",
"idiom" : "ipad",
"filename" : "Icon-App-20x20@1x.png",
"scale" : "1x"
},
{
"size" : "20x20",
"idiom" : "ipad",
"filename" : "Icon-App-20x20@2x.png",
"scale" : "2x"
},
{
"size" : "29x29",
"idiom" : "ipad",
"filename" : "Icon-App-29x29@1x.png",
"scale" : "1x"
},
{
"size" : "29x29",
"idiom" : "ipad",
"filename" : "Icon-App-29x29@2x.png",
"scale" : "2x"
},
{
"size" : "40x40",
"idiom" : "ipad",
"filename" : "Icon-App-40x40@1x.png",
"scale" : "1x"
},
{
"size" : "40x40",
"idiom" : "ipad",
"filename" : "Icon-App-40x40@2x.png",
"scale" : "2x"
},
{
"size" : "76x76",
"idiom" : "ipad",
"filename" : "Icon-App-76x76@1x.png",
"scale" : "1x"
},
{
"size" : "76x76",
"idiom" : "ipad",
"filename" : "Icon-App-76x76@2x.png",
"scale" : "2x"
},
{
"size" : "83.5x83.5",
"idiom" : "ipad",
"filename" : "Icon-App-83.5x83.5@2x.png",
"scale" : "2x"
},
{
"size" : "1024x1024",
"idiom" : "ios-marketing",
"filename" : "Icon-App-1024x1024@1x.png",
"scale" : "1x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 295 B

After

Width:  |  Height:  |  Size: 447 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 406 B

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 450 B

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 282 B

After

Width:  |  Height:  |  Size: 737 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 462 B

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 704 B

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 406 B

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 586 B

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 862 B

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 862 B

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 762 B

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 6.1 KiB

View File

@@ -18,6 +18,7 @@ import 'package:remever/components/notifiers/app_settings.dart';
import 'package:remever/components/listeners/theme_listener.dart'; import 'package:remever/components/listeners/theme_listener.dart';
import 'package:remever/i18n/strings.g.dart'; import 'package:remever/i18n/strings.g.dart';
import 'package:remever/theme/custom_theme.dart'; import 'package:remever/theme/custom_theme.dart';
import 'package:talker_flutter/talker_flutter.dart';
final Completer<GlobalKey<NavigatorState>> navKeyCompleter = final Completer<GlobalKey<NavigatorState>> navKeyCompleter =
Completer<GlobalKey<NavigatorState>>(); Completer<GlobalKey<NavigatorState>>();
@@ -142,42 +143,41 @@ class _MyAppState extends State<MyApp>
locale: TranslationProvider.of(context).flutterLocale, locale: TranslationProvider.of(context).flutterLocale,
supportedLocales: AppLocaleUtils.supportedLocales, supportedLocales: AppLocaleUtils.supportedLocales,
localizationsDelegates: GlobalMaterialLocalizations.delegates, localizationsDelegates: GlobalMaterialLocalizations.delegates,
routerConfig: globalRouter.config(),
routerConfig: globalRouter.config(
navigatorObservers:
() => <NavigatorObserver>[TalkerRouteObserver(talker)],
),
builder: (BuildContext context, Widget? child) { builder: (BuildContext context, Widget? child) {
return MediaQuery( return ChangeNotifierProvider<AppSettingsNotifier>(
data: MediaQuery.of( create: (_) => settingsNotifier,
context, builder: (BuildContext context, Widget? nchild) {
).copyWith(textScaler: TextScaler.noScaling), if (nchild != null) return nchild;
child: ChangeNotifierProvider<AppSettingsNotifier>(
create: (_) => settingsNotifier,
builder: (BuildContext context, Widget? nchild) {
if (nchild != null) return nchild;
return Consumer<AppSettingsNotifier>( return Consumer<AppSettingsNotifier>(
// TIP: должно убрать мерцание // TIP: должно убрать мерцание
key: const Key('consumer AppSettingsNotifier'), key: const Key('consumer AppSettingsNotifier'),
child: child, child: child,
builder: ( builder: (
BuildContext context, BuildContext context,
AppSettingsNotifier value, AppSettingsNotifier value,
Widget? nchild, Widget? nchild,
) { ) {
final Widget result = nchild ?? const SizedBox(); final Widget result = nchild ?? const SizedBox();
if (value.showFps) { if (value.showFps) {
return Material( return Material(
child: FPSWidget( child: FPSWidget(
alignment: Alignment.centerLeft, alignment: Alignment.centerLeft,
child: result, child: result,
), ),
); );
} }
return result; return result;
}, },
); );
}, },
),
); );
}, },
); );

View File

@@ -8,6 +8,8 @@ import 'package:modal_bottom_sheet/modal_bottom_sheet.dart';
import 'package:remever/common/resources.dart'; import 'package:remever/common/resources.dart';
import 'package:remever/components/extensions/context.dart'; import 'package:remever/components/extensions/context.dart';
import 'package:remever/router.dart'; import 'package:remever/router.dart';
import 'package:remever/services/logs/logs_service.dart';
import 'package:talker/talker.dart';
import 'events/events.dart'; import 'events/events.dart';
/// ///
@@ -17,6 +19,17 @@ AppRouter get globalRouter {
return GetIt.I.get<AppRouter>(); return GetIt.I.get<AppRouter>();
} }
///
/// Логирование
///
LogsService get logger {
return GetIt.I.get<LogsService>();
}
Talker get talker {
return GetIt.I.get<Talker>();
}
/// ///
/// Показ тоста /// Показ тоста
/// ///
@@ -38,7 +51,19 @@ void showSuccessToast(String text) {
toastLength: Toast.LENGTH_SHORT, toastLength: Toast.LENGTH_SHORT,
gravity: ToastGravity.TOP, gravity: ToastGravity.TOP,
timeInSecForIosWeb: 1, timeInSecForIosWeb: 1,
backgroundColor: AppColors.additional_blue, backgroundColor: Colors.green,
textColor: AppColors.white,
fontSize: 16,
);
}
void showInfoToast(String text) {
Fluttertoast.showToast(
msg: text,
toastLength: Toast.LENGTH_SHORT,
gravity: ToastGravity.TOP,
timeInSecForIosWeb: 1,
backgroundColor: AppColors.disabled,
textColor: AppColors.white, textColor: AppColors.white,
fontSize: 16, fontSize: 16,
); );

View File

@@ -1,8 +1,11 @@
// Package imports: // Package imports:
import 'package:curl_logger_dio_interceptor/curl_logger_dio_interceptor.dart';
import 'package:dio/dio.dart'; import 'package:dio/dio.dart';
import 'package:dio_smart_retry/dio_smart_retry.dart'; import 'package:dio_smart_retry/dio_smart_retry.dart';
import 'package:pretty_dio_logger/pretty_dio_logger.dart'; import 'package:remever/common/functions.dart';
import 'package:remever/common/resources.dart';
import 'package:remever/common/storage.dart';
import 'package:talker_dio_logger/talker_dio_logger_interceptor.dart';
import 'package:talker_dio_logger/talker_dio_logger_settings.dart';
// Project imports: // Project imports:
import '../../components/env.dart'; import '../../components/env.dart';
@@ -16,17 +19,17 @@ InterceptorsWrapper get _auth {
RequestOptions options, RequestOptions options,
RequestInterceptorHandler handler, RequestInterceptorHandler handler,
) async { ) async {
// try { try {
// String? token = await authSecStorage.read(key: StorageKeys.authToken); String? token = await authSecStorage.read(key: StorageKeys.accessToken);
// if (token != null) { if (token != null) {
// options.headers['Authorization'] = 'Bearer $token'; options.headers['Authorization'] = 'Bearer $token';
// } }
// } catch (e) { } catch (e) {
// getIt<LogService>().log( // getIt<LogService>().log(
// entity: LogEntity.error(message: 'Error to load access token $e'), // entity: LogEntity.error(message: 'Error to load access token $e'),
// ); // );
// } }
return handler.next(options); return handler.next(options);
}, },
@@ -42,6 +45,14 @@ InterceptorsWrapper get _error {
// String? token = await getIt<AuthService>().refresh(); // String? token = await getIt<AuthService>().refresh();
} }
if (error.response != null) {
try {
showErrorToast(error.response?.data['message']);
} catch (_) {
showErrorToast(error.response?.data);
}
}
handler.next(error); handler.next(error);
}, },
); );
@@ -62,15 +73,11 @@ Dio get apiClient {
..add(_auth) ..add(_auth)
..add(_error) ..add(_error)
..add( ..add(
PrettyDioLogger( TalkerDioLogger(
request: true, talker: talker,
requestBody: true, settings: const TalkerDioLoggerSettings(printRequestHeaders: true),
requestHeader: true,
responseBody: true,
error: true,
), ),
) )
..add(CurlLoggerDioInterceptor())
..add( ..add(
RetryInterceptor( RetryInterceptor(
dio: client, dio: client,

View File

@@ -103,6 +103,11 @@ class Bold14px extends TypographyTypeBold {
double get size => 14; double get size => 14;
} }
class Bold24px extends TypographyTypeBold {
@override
double get size => 24;
}
class Bold34px extends TypographyTypeBold { class Bold34px extends TypographyTypeBold {
@override @override
double get size => 34; double get size => 34;

View File

@@ -5,7 +5,7 @@ part of '../env.dart';
/// ///
class DevEnv extends Env { class DevEnv extends Env {
@override @override
Uri get url => Uri.parse('https://api.remever.dizoft-studio.ru'); Uri get url => Uri.parse('https://remever.neojik.tech');
@override @override
String get mode => 'dev'; String get mode => 'dev';

View File

@@ -1,8 +1,12 @@
// Package imports: // Package imports:
import 'dart:io';
import 'package:drift/drift.dart'; import 'package:drift/drift.dart';
import 'package:remever/common/functions.dart';
import 'package:remever/common/typedef.dart';
import 'package:remever/database/database.dart'; import 'package:remever/database/database.dart';
import 'package:remever/database/tables.dart'; import 'package:remever/database/tables.dart';
import 'package:remever/models/collection_dto.dart'; import 'package:remever/models/crud_collection_dto.dart';
part 'collections_dao.g.dart'; part 'collections_dao.g.dart';
@@ -15,38 +19,97 @@ class CollectionsDao extends DatabaseAccessor<AppDatabase>
CollectionsDao(super.attachedDatabase); CollectionsDao(super.attachedDatabase);
/// Получение коллекций из базы данных /// Получение коллекций из базы данных
Stream<List<Collection>> getCollections() { Stream<List<Collection>> getCollections(String? search) {
return db.managers.collections.watch(); try {
return db.managers.collections
.filter((f) => f.title.contains(search ?? ''))
.watch();
} catch (e, st) {
logger.logError('Ошибка в методе getCollections', e, st);
throw ('EXEPTION');
}
}
Future<Collection?> getCollectionById(String? id) {
try {
return db.managers.collections
.filter((f) => f.id.equals(id))
.getSingleOrNull();
} catch (e, st) {
logger.logError('Ошибка в методе getCollectionById', e, st);
throw ('EXEPTION');
}
} }
/// Создание коллекции /// Создание коллекции
Future<void> createCollection(CollectionDto dto) async { Future<void> createCollection(CrudCollectionDto dto) async {
await db.managers.collections.create( try {
(o) => o( await db.managers.collections.create(
title: dto.title, (o) => o(
desc: dto.desc, title: dto.title,
isPublic: Value<bool>(dto.isPublic), desc: dto.desc,
image: Value<String?>(dto.avatar), isPublic: Value<bool>(dto.isPublic),
), image: Value<String?>(dto.avatar),
); ),
);
} catch (e, st) {
logger.logError('Ошибка в методе createCollection', e, st);
}
}
/// Синхронизация коллекций
Future<void> syncCollectionFromApi(List<Json> data) async {
for (final item in data) {
try {
await db.managers.collections.create(
(o) => o(
// id: Value<String>(item['id'].toString()),
title: item['title'],
desc: item['description'],
isPublic: Value<bool>(item['is_public']),
image: Value<String?>(null),
createdAt: Value<DateTime>(DateTime.parse(item['created_at'])),
updatedAt: Value<DateTime>(DateTime.parse(item['updated_at'])),
),
);
} catch (e, st) {
logger.logError(
'Не смог добавить колекцию в методе syncCollectionFromApi',
e,
st,
);
continue;
}
}
} }
/// Обновление коллекции /// Обновление коллекции
Future<void> updateCollection(CollectionDto dto, String id) async { Future<void> updateCollection(CrudCollectionDto dto, String id) async {
await db.managers.collections try {
.filter((f) => f.id(id)) await db.managers.collections
.update( .filter((f) => f.id(id))
(o) => o( .update(
title: Value<String>(dto.title), (o) => o(
desc: Value<String>(dto.desc), title: Value<String>(dto.title),
isPublic: Value<bool>(dto.isPublic), desc: Value<String>(dto.desc),
image: Value<String?>(dto.avatar), isPublic: Value<bool>(dto.isPublic),
), image: Value<String?>(dto.avatar),
); ),
);
} catch (e, st) {
logger.logError('Ошибка в методе updateCollection', e, st);
}
} }
/// Удаление коллекции /// Удаление коллекции
Future<void> deleteCollection(String id) async { Future<void> deleteCollection(String id) async {
await db.managers.collections.filter((f) => f.id(id)).delete(); try {
await db.managers.collections.filter((f) => f.id(id)).delete();
} catch (e, st) {
logger.logError('Ошибка в методе deleteCollection', e, st);
}
} }
} }

View File

@@ -0,0 +1,96 @@
// Package imports:
import 'package:drift/drift.dart';
import 'package:remever/common/functions.dart';
import 'package:remever/database/database.dart';
import 'package:remever/database/tables.dart';
import 'package:remever/models/create_ticket_dto.dart';
part 'tickets_dao.g.dart';
@DriftAccessor(tables: <Type>[Tickets])
class TicketsDao extends DatabaseAccessor<AppDatabase> with _$TicketsDaoMixin {
///
/// Репозиторий для работы с билетами
///
TicketsDao(super.attachedDatabase);
/// Получение билетов из базы данных
Stream<List<Ticket>> getTickets(String collectionId) {
try {
return db.managers.tickets
.filter((f) => f.collectionId.id(collectionId))
.watch();
} catch (e, st) {
logger.logError('Ошибка в методе getTickets', e, st);
throw ('EXEPTION');
}
}
/// Получение билетов из базы данных
Future<int> getTicketsInCollectionCount(String collectionId) async {
try {
return (await db.managers.tickets
.filter((f) => f.collectionId.id(collectionId))
.get())
.length;
} catch (e, st) {
logger.logError('Ошибка в методе getTicketsInCollectionCount', e, st);
throw ('EXEPTION');
}
}
/// Удаление билета
Future<void> removeTicket(String id) async {
try {
await db.transaction(() {
return db.managers.tickets.filter((f) => f.id(id)).delete();
});
} catch (e, st) {
logger.logError('Ошибка в методе deleteTicket', e, st);
}
}
/// Создание билета
Future<void> createTicket(CreateTicketDto dto) async {
try {
final TicketsCompanion companion = TicketsCompanion.insert(
question: dto.question!,
answer: dto.answer!,
collectionId: dto.collection!.id,
questionImage: Value<String?>(dto.questionImage),
answerImage: Value<String?>(dto.answerImage),
);
await db.managers.tickets.create((o) => companion);
if (dto.needRevert != null && dto.needRevert!) {
/// Создаем обратную карточку где ответ == вопрос и вопрос == ответ
final TicketsCompanion revertCompanion = TicketsCompanion.insert(
answer: dto.question!,
question: dto.answer!,
collectionId: dto.collection!.id,
answerImage: Value<String?>(dto.questionImage),
questionImage: Value<String?>(dto.answerImage),
);
await db.managers.tickets.create((o) => revertCompanion);
}
} catch (e, st) {
logger.logError('Ошибка в методе createTicket', e, st);
}
}
/// Перенос билета с одной коллекции в другую
Future<void> transferTicket(String ticketId, String newCollectionId) async {
try {
await db.managers.tickets
.filter((f) => f.id(ticketId))
.update((o) => o(collectionId: Value<String>(newCollectionId)));
} catch (e, st) {
logger.logError('Ошибка в методе transferTicket', e, st);
}
}
}

View File

@@ -0,0 +1,9 @@
// GENERATED CODE - DO NOT MODIFY BY HAND
part of 'tickets_dao.dart';
// ignore_for_file: type=lint
mixin _$TicketsDaoMixin on DatabaseAccessor<AppDatabase> {
$CollectionsTable get collections => attachedDatabase.collections;
$TicketsTable get tickets => attachedDatabase.tickets;
}

View File

@@ -2,6 +2,7 @@ import 'package:drift/drift.dart';
import 'package:flutter/foundation.dart'; import 'package:flutter/foundation.dart';
import 'package:injectable/injectable.dart'; import 'package:injectable/injectable.dart';
import 'package:remever/database/dao/collections_dao.dart'; import 'package:remever/database/dao/collections_dao.dart';
import 'package:remever/database/dao/tickets_dao.dart';
import 'package:remever/database/tables.dart'; import 'package:remever/database/tables.dart';
import 'connection/connection.dart' as impl; import 'connection/connection.dart' as impl;
import 'package:uuid/uuid.dart'; import 'package:uuid/uuid.dart';
@@ -10,8 +11,8 @@ part 'database.g.dart';
@DriftDatabase( @DriftDatabase(
include: <String>{'sql.drift'}, include: <String>{'sql.drift'},
daos: <Type>[CollectionsDao], daos: <Type>[CollectionsDao, TicketsDao],
tables: <Type>[Collections], tables: <Type>[Collections, Tickets],
) )
@Singleton() @Singleton()
final class AppDatabase extends _$AppDatabase { final class AppDatabase extends _$AppDatabase {

File diff suppressed because it is too large Load Diff

View File

@@ -71,3 +71,17 @@ class Collections extends Table with _UuidPrimaryKey, _Timestampable {
BoolColumn get isPublic => boolean().withDefault(Constant(false))(); BoolColumn get isPublic => boolean().withDefault(Constant(false))();
BoolColumn get includeInTraining => boolean().withDefault(Constant(false))(); BoolColumn get includeInTraining => boolean().withDefault(Constant(false))();
} }
///
///
///
@DataClassName('Ticket')
class Tickets extends Table with _UuidPrimaryKey, _Timestampable {
TextColumn get question => text()();
TextColumn get questionImage => text().named('question_image').nullable()();
TextColumn get answer => text()();
TextColumn get answerImage => text().named('answer_image').nullable()();
TextColumn get collectionId =>
text().references(Collections, #id, onDelete: KeyAction.cascade)();
RealColumn get progress => real().withDefault(Constant(0))();
}

Some files were not shown because too many files have changed in this diff Show More