187 Commits

Author SHA1 Message Date
9c98d3ed53 Team,Member, Entryの登録まで完了 2024-07-29 08:41:28 +09:00
7f8adeea01 チーム編集時の文字化け修正済み 2024-07-28 08:39:10 +09:00
08ffc42cdd チームまでは表示できた。表示と更新及びメンバー編集不可。エントリー以降も表示不可。 2024-07-27 09:46:00 +09:00
c81bcef4bc Android release 4.8.2 revision 483 2024-07-19 16:54:49 +09:00
616f87c0c5 ログインをメアドに変更 2024-07-15 06:54:02 +09:00
ae05a8bbcd Release 4.8.0 - 2024-05-26 2024-05-26 11:00:06 +09:00
6a49aed98d Fixed Location & Storage issues 2024-05-25 11:05:02 +09:00
e55674e1b9 Fixed Location Permission issue on Android - 1 2024-05-24 07:21:28 +09:00
74f6a79a36 Android release Minokamo 2024-05-16 20:19:55 +09:00
e70d3fd012 Android のGPS切断からの復帰処理のデバッグ 2024-05-16 10:02:13 +09:00
02e463d3ec ギャラリーに写真保存ができなくなったバグを修正 2024-05-16 09:26:15 +09:00
df4405aedf 審査用に文言などを修正 ver.4.5.1 467 2024-05-15 17:59:25 +09:00
dd9343bef7 Android のバックグラウンドGPSを組み込み 2024-05-06 00:06:38 +09:00
7a97127a19 iOS GPS 設定によるポップアップ、バックグラウンド処理修正。Android は未確認 2024-05-02 11:51:52 +09:00
9d8f1ef31a Android用のWebViewを追加。OSのブラウザは起動できないため。 2024-04-30 22:11:33 +09:00
08dd823c41 チェックポイントのラベル表示不具合修正 2024-04-30 21:29:03 +09:00
bbf3be7a62 不明 2024-04-30 17:08:23 +09:00
3be78ab97c 買い物ポイントでチェックアウトをキャンセルしたらレシート撮影は抑制する 2024-04-27 18:39:55 +09:00
aada6262fe Snackbar の色を変更。ロゲ開始時のエラーを回避。 2024-04-27 10:48:21 +09:00
72267f29bb タイマーを設定で変更できるようにした。現在地ボタンの長押しおよびドロワーへの設定ボタンの追加 2024-04-26 18:44:22 +09:00
b9c641954d adjust position of bottom_sheet title, fix popup while checkin 2024-04-26 01:30:41 +09:00
5d6fd72df6 チェッキン中に自動ポップアップを抑制 2024-04-24 22:54:27 +09:00
8945748d07 手戻り修正、APK出力 2024-04-24 11:30:38 +09:00
4d40a10f9a サイドメニューの改善、ログイン直後にマップが表示されない問題、屋内でGPS信号が受信できない場合のポップアップ追加 2024-04-20 17:30:26 +09:00
33bd2b97a1 #2832 まで解決 2024-04-20 12:34:49 +09:00
797f01f76b Fix 2818 領収書写真を撮った後、買い物なしボタンを押すとログイン画面になる 2024-04-17 09:13:36 +09:00
41264c4d76 CPのラベルが切れている 2024-04-15 01:57:18 +09:00
4ef42216f8 CPラベルが1文字しか出ない、起動が遅い 2024-04-14 20:16:13 +09:00
f6b2a6c7d4 Destination controller から Location controller へGPS信号シミュレーションを変更 2024-04-09 15:06:41 +09:00
8ad2e5988d 稼働確認: 2024-04-09 09:11:49 +09:00
1b4073f690 未確認だが問題回避のためプッシュ 2024-04-09 01:58:25 +09:00
dd9dd0d087 Fix GPS信号表示・制御 2024-04-07 23:35:00 +09:00
a0c1efc522 まだ#2800検証中 2024-04-07 10:56:51 +09:00
cd5befddb5 Fix 2800 再発のため修正 2024-04-05 12:32:58 +09:00
299769ec60 Fix 2799 2024-04-04 21:33:07 +09:00
accd0cad43 Fix 2803,2802,2800 2024-04-03 21:39:12 +09:00
7e6b5f887a Fix 2796 2024-04-03 20:44:30 +09:00
dd36ab8399 update 2024-03-09 11:59:42 +05:30
b37a33bc2f update versionto 33 2024-03-08 19:17:31 +05:30
e35608651b fix goal reset 2024-03-08 19:14:03 +05:30
c6eb97bbb2 updated for retain rogainin after goal 2024-03-08 18:19:18 +05:30
cb3a843566 update popup conditions 2024-03-08 15:31:49 +05:30
f5922d9034 disabled spinner on matrix 2024-03-07 12:27:30 +05:30
1414d370f4 fixed route 2024-03-06 15:07:14 +05:30
e30c5f255c updated start condition 2024-03-06 14:24:32 +05:30
e6a7d37519 fixed popup buttons added location stream and center button 2024-03-06 11:40:00 +05:30
2f329669e9 fixed position error and added goad condition button 2024-03-05 19:32:42 +05:30
773650be82 disabled gps zoom to current location when popup 2024-03-05 15:43:13 +05:30
cd258744fc updated cp start back to minus one and auto center timer to 10 sec 2024-03-05 12:20:24 +05:30
eaee1ce820 added cp zzero also to start icon 2024-03-04 21:18:22 +05:30
d7ff309c09 disabled auto popup for cp zero 2024-03-03 18:38:22 +05:30
d55ba7cfdb update buttons 2024-03-02 11:11:46 +05:30
992f9f3414 added disabled feature to buttons and reset on start 2024-02-26 20:23:58 +05:30
c3cb6d758c update for network issue 2024-02-19 09:54:06 +05:30
cfa9e055f5 updated to resume in hibernate and set gps accuray to 15m 2024-02-06 15:22:27 +05:30
494b27bf9e added game status 2024-02-04 19:14:41 +05:30
eda5f77e2d fixed cance recipt image 2024-01-18 22:24:51 +05:30
b9e4df069f update goal condition for more that 1000 m away 2024-01-18 19:58:00 +05:30
2fb095bd50 commented print statements 2024-01-18 17:11:36 +05:30
591b6f7aed update waypoint marker positions 2024-01-18 15:21:26 +05:30
8e050267e1 update for always checkin points 2024-01-17 16:08:41 +05:30
c95cb75934 update for checkin radius 2024-01-14 23:01:09 +05:30
0b5ce75d6c update label to black and white 2024-01-08 15:14:44 +05:30
c67914f286 update log for error and disabled log window 2024-01-06 23:02:12 +05:30
9145e0e27d fixed multi popup on camera page 2023-12-18 09:22:18 +05:30
445c53d21b updated map markers 2023-12-12 16:16:17 +05:30
56c07852f9 changed GPS listener 2023-12-07 10:20:44 +05:30
fa0587178f map updated to 6 2023-12-06 11:16:17 +05:30
8d1c84d9fb added GPS logs 2023-11-29 10:20:19 +05:30
0af1b3139c added debug windows 2023-11-28 15:58:37 +05:30
6f084b2349 update gps collection time and distance 2023-11-28 11:48:31 +05:30
44cb728fab fixed timer issue 2023-11-27 14:57:25 +05:30
13e07b007a fix gps updated 2023-11-27 13:22:18 +05:30
9c66dffe69 removed distance to checkin 2023-11-24 12:08:02 +05:30
d8fd352a62 update fixes 2023-11-24 11:58:17 +05:30
23fde37e3d fixed gps page 2023-11-22 23:06:38 +05:30
4e4cfda40b fixed details screen checkin 2023-11-22 12:58:29 +05:30
8a1e5b1ca8 fixed issues for release 2023-11-21 22:43:28 +05:30
acc03f8e2b fixed start issue 2023-11-21 15:45:03 +05:30
3abd306e89 update goal issue 2023-11-20 22:49:54 +05:30
4648b0424d updated for tag text 2023-11-20 14:01:28 +05:30
b04985b71f text fix for bottomsheet error 2023-11-19 15:30:26 +05:30
954ff36640 reverted 2023-11-18 21:02:00 +05:30
85b8c4705f update forced checkin for start point and nearbt start points 2023-11-15 16:27:28 +05:30
e8d65ba725 updated tranparency only to label background 2023-11-14 16:40:11 +05:30
32ae1f5249 update opacity of point label 2023-11-09 12:20:49 +05:30
7a154b4390 update image on camera page 2023-11-07 17:17:47 +05:30
7412d1e074 added GPS feature 2023-10-31 14:12:48 +05:30
0508c50b97 optimized and removed travel mode 2023-10-08 19:13:14 +05:30
0e2a8f89f3 optimized 2023-10-06 16:25:21 +05:30
7fdb6c05ee update logs 2023-09-21 15:41:23 +05:30
4db56e9c0f fixed reset 2 2023-09-15 21:01:38 +05:30
0ca29a5293 fixed reset 2023-09-15 20:58:55 +05:30
93dacc35ae update history and start 2023-09-15 20:26:15 +05:30
167a321cd5 update error message 2023-09-15 18:59:00 +05:30
67c3a46cd5 added buypoint upload 2023-09-15 18:11:13 +05:30
63a86d75d6 added message to external checkin call 2023-09-15 17:56:15 +05:30
f760294a39 added cancel buypoints 2023-09-15 17:19:26 +05:30
a2b055fe8b fixed messages 2023-09-15 16:50:59 +05:30
14c8cb6f70 fix display text issue 2023-09-15 12:05:05 +05:30
cac0c1065f updated history images 2023-09-15 01:21:51 +05:30
15c70acf7b updated messages 2023-09-15 01:06:21 +05:30
b54c29eb4b updated and fix checking, buy point 2023-09-14 22:53:51 +05:30
aa7b13b76a added buypoint images 2023-09-14 00:08:53 +05:30
30fea7cf8a added reset button and fix history 2023-09-12 22:08:03 +05:30
f64ac1ccfd fixed history 2023-09-12 16:00:58 +05:30
48f4b833f6 fixed checkin issue 2023-09-12 12:57:45 +05:30
d67d17e971 fixed popup and map scale issues 2023-09-11 18:04:29 +05:30
c2d9e366d1 fixed state 2023-09-11 00:45:54 +05:30
6f3249631f update status 2023-09-08 21:19:12 +05:30
720dd149a9 fixed forced start 2023-09-07 16:18:19 +05:30
44a3fc21fb fix bottomsheel 2023-09-06 21:36:11 +05:30
36751f6ef7 photos saved to media library 2023-09-06 21:04:44 +05:30
7b33468e3f update manual start 2023-09-06 15:25:12 +05:30
0f3bf2c2c7 fixed GPS issue 2023-09-06 00:22:02 +05:30
3f157d7ddf update new features and flutter 3.13 2023-09-04 22:46:53 +05:30
2ab96cc3d0 update to add resume app from sleep 2023-08-16 14:53:32 +05:30
68bf3e9ab3 update permission flow 2023-07-20 13:42:34 +05:30
ed892b915b added refresh 2023-07-18 22:10:30 +05:30
75770c9f16 version 15 2023-07-18 15:09:43 +05:30
83ecc0ec8f update location accuracy setting 2023-07-18 15:08:41 +05:30
9154798448 update version number 2023-07-18 12:39:33 +05:30
7a9adf8f06 fixed search bug 2023-07-18 11:28:35 +05:30
c756c4a5be updated progress indicator for goal 2023-07-16 00:17:42 +05:30
547891437b changed url for goal 2023-07-15 22:36:29 +05:30
4437b5368a update checking url 2023-07-15 21:29:50 +05:30
c0c739046a changed url 2023-07-15 14:54:25 +05:30
b0a91e301e changed ext.service urls 2023-07-14 19:43:46 +05:30
b3a9e35f76 added drawer 2023-07-11 12:11:41 +05:30
0c0234ad3c update ok button on permission 2023-07-10 14:18:44 +05:30
8e57515eaf updated permission 2023-07-07 16:16:56 +05:30
64857d8a8b changed permission dialog 2023-07-04 11:18:27 +05:30
bfb238323b update distance calculation to from current location 2023-06-19 15:29:25 +05:30
3e06c4cd7f fixed distance Mx 2023-06-14 11:27:11 +05:30
6c8ac75b19 update to rog_only 2023-06-11 21:03:30 +05:30
08332d45d4 fix text display issue 2023-05-19 16:27:00 +05:30
67a52c6f84 disabled top navigaion part 2023-05-18 10:27:49 +05:30
da0d37708d fix popup current location when click other locations in search mode 2023-05-17 13:38:52 +05:30
042cdbe488 update checkin, buypoint format 2023-05-17 10:09:30 +05:30
1769d52601 fixed bug on display buypoints 2023-05-16 20:40:02 +05:30
05a812428a added map cache 2023-03-17 11:54:12 +05:30
044e5595c2 update finish and check point message 2023-03-03 17:45:03 +05:30
4994660dda update login text 2023-03-01 16:49:43 +05:30
27768e4cfd added travel from current location 2023-02-16 19:36:39 +05:30
a708cf23ee update list image view 2023-02-02 15:43:35 +05:30
34b642b2b5 update to fix start after goal 2023-01-31 10:14:23 +05:30
65dc5309d6 updated camera back button and text 2023-01-26 23:30:48 +05:30
03b586651d added reset 2023-01-26 20:09:33 +05:30
ad61ab2b16 update gps time 2023-01-26 11:02:28 +05:30
dcf7d4363d update goal 2023-01-26 10:57:44 +05:30
b5d2de44f9 update loc 2023-01-25 13:28:35 +05:30
b5b361df70 gps settings for ios 2023-01-25 11:03:22 +05:30
93461da863 gps photoe 2023-01-25 10:27:49 +05:30
9d2736e53d gps update 2023-01-25 10:03:01 +05:30
563c574e9c update pop up 2023-01-24 14:59:56 +05:30
fe6de0ee91 update db 2023-01-24 13:00:55 +05:30
117022a8c8 update point filter 2023-01-24 11:11:54 +05:30
70f377f563 update display text 3 2023-01-22 19:25:17 +05:30
45ef09a613 update display text 2023-01-22 18:43:08 +05:30
0d5be265ff update for display text 2023-01-22 18:05:15 +05:30
adf8d59777 update for filter location 2023-01-20 17:21:54 +05:30
cf14a85eaf update for permission and destination ordering 2023-01-19 16:39:25 +05:30
07653e9b9e update rog for goal 2023-01-12 13:11:44 +05:30
4a7b4a531c update external api call start 2023-01-12 12:32:08 +05:30
615c086c24 added user delete feture 2023-01-06 16:48:47 +05:30
d56ed36be5 update to init loading 2023-01-03 12:00:28 +05:30
f8a79842e3 update initial map loading 2022-12-27 18:52:37 +05:30
c1f7656044 update permission 2022-12-25 19:26:07 +05:30
6a4d4b5033 update location permission 2022-12-22 14:06:02 +05:30
3c3740bc6a update for server sync 2022-11-14 22:27:52 +05:30
22a17e108c added rog local data 2022-11-14 22:22:41 +05:30
78970ef5c3 update for game logic 2022-11-08 15:29:42 +05:30
991c6694c2 image chekin 2022-11-05 22:02:21 +05:30
d2517cd0bf update 2022-11-04 14:11:18 +05:30
9987b243f7 update for GPS fix 2022-11-02 22:47:49 +05:30
4d40b400b1 update 2022-11-01 23:47:35 +05:30
d16d97f64f update to server location popup 2022-10-30 21:43:29 +05:30
2d9f7a9633 update to external apis 2022-10-19 08:53:17 +05:30
8e30ee6ba7 added goal feature 2022-10-12 21:46:17 +05:30
0470e1f27f update to routing 2022-09-29 15:32:33 +05:30
0ca322e278 update for release1 2022-09-27 17:52:54 +05:30
904dd358f7 update reordering 2022-09-23 18:40:17 +05:30
5a183867bd update for routing 2022-09-22 20:36:56 +05:30
e0c33435ef upodate for login system and app name, icon 2022-09-14 19:51:50 +05:30
b5932f2578 update for ios permission 2022-09-12 19:52:28 +05:30
6802083a0a update for user group 2022-09-05 19:12:25 +05:30
09ac737de5 update for reorder and location points 2022-09-01 19:14:18 +05:30
1256 changed files with 162924 additions and 4324 deletions

91
.gitignore vendored
View File

@ -1,46 +1,45 @@
# Miscellaneous # Miscellaneous
*.class *.class
*.log *.log
*.pyc *.pyc
*.swp *.swp
.DS_Store .DS_Store
.atom/ .atom/
.buildlog/ .buildlog/
.history .history
.svn/ .svn/
# IntelliJ related # IntelliJ related
*.iml *.iml
*.ipr *.ipr
*.iws *.iws
.idea/ .idea/
# The .vscode folder contains launch configuration and tasks you configure in # The .vscode folder contains launch configuration and tasks you configure in
# VS Code which you may wish to be included in version control, so this line # VS Code which you may wish to be included in version control, so this line
# is commented out by default. # is commented out by default.
#.vscode/ #.vscode/
# Flutter/Dart/Pub related # Flutter/Dart/Pub related
**/doc/api/ **/doc/api/
**/ios/Flutter/.last_build_id **/ios/Flutter/.last_build_id
.dart_tool/ .dart_tool/
.flutter-plugins .flutter-plugins
.flutter-plugins-dependencies .flutter-plugins-dependencies
.packages .packages
.pub-cache/ .pub-cache/
.pub/ .pub/
/build/ /build/
# Web related # Web related
lib/generated_plugin_registrant.dart
# Symbolication related
# Symbolication related app.*.symbols
app.*.symbols
# Obfuscation related
# Obfuscation related app.*.map.json
app.*.map.json
# Android Studio will place build artifacts here
# Android Studio will place build artifacts here /android/app/debug
/android/app/debug /android/app/profile
/android/app/profile /android/app/release
/android/app/release

View File

@ -1,10 +1,36 @@
# This file tracks properties of this Flutter project. # This file tracks properties of this Flutter project.
# Used by Flutter tool to assess capabilities and perform upgrades etc. # Used by Flutter tool to assess capabilities and perform upgrades etc.
# #
# This file should be version controlled and should not be manually edited. # This file should be version controlled and should not be manually edited.
version: version:
revision: 5f105a6ca7a5ac7b8bc9b241f4c2d86f4188cf5c revision: "300451adae589accbece3490f4396f10bdf15e6e"
channel: stable channel: "stable"
project_type: app project_type: app
# Tracks metadata for the flutter migrate command
migration:
platforms:
- platform: root
create_revision: 300451adae589accbece3490f4396f10bdf15e6e
base_revision: 300451adae589accbece3490f4396f10bdf15e6e
- platform: android
create_revision: 300451adae589accbece3490f4396f10bdf15e6e
base_revision: 300451adae589accbece3490f4396f10bdf15e6e
- platform: ios
create_revision: 300451adae589accbece3490f4396f10bdf15e6e
base_revision: 300451adae589accbece3490f4396f10bdf15e6e
- platform: macos
create_revision: 300451adae589accbece3490f4396f10bdf15e6e
base_revision: 300451adae589accbece3490f4396f10bdf15e6e
# User provided section
# List of Local paths (relative to this file) that should be
# ignored by the migrate tool.
#
# Files that are not part of the templates will be ignored by default.
unmanaged_files:
- 'lib/main.dart'
- 'ios/Runner.xcodeproj/project.pbxproj'

6
.vscode/launch.json vendored
View File

@ -20,6 +20,12 @@
"request": "launch", "request": "launch",
"type": "dart", "type": "dart",
"flutterMode": "release" "flutterMode": "release"
},
{
"name": "Flutter (lib/main.dart)",
"type": "dart",
"request": "launch",
"program": "lib/main.dart"
} }
] ]
} }

View File

@ -0,0 +1,19 @@
//
// Generated file. Do not edit.
//
// clang-format off
#ifndef GeneratedPluginRegistrant_h
#define GeneratedPluginRegistrant_h
#import <Flutter/Flutter.h>
NS_ASSUME_NONNULL_BEGIN
@interface GeneratedPluginRegistrant : NSObject
+ (void)registerWithRegistry:(NSObject<FlutterPluginRegistry>*)registry;
@end
NS_ASSUME_NONNULL_END
#endif /* GeneratedPluginRegistrant_h */

View File

@ -0,0 +1,140 @@
//
// Generated file. Do not edit.
//
// clang-format off
#import "GeneratedPluginRegistrant.h"
#if __has_include(<camera_avfoundation/CameraPlugin.h>)
#import <camera_avfoundation/CameraPlugin.h>
#else
@import camera_avfoundation;
#endif
#if __has_include(<connectivity_plus/ConnectivityPlusPlugin.h>)
#import <connectivity_plus/ConnectivityPlusPlugin.h>
#else
@import connectivity_plus;
#endif
#if __has_include(<device_info_plus/FPPDeviceInfoPlusPlugin.h>)
#import <device_info_plus/FPPDeviceInfoPlusPlugin.h>
#else
@import device_info_plus;
#endif
#if __has_include(<flutter_compass/FlutterCompassPlugin.h>)
#import <flutter_compass/FlutterCompassPlugin.h>
#else
@import flutter_compass;
#endif
#if __has_include(<flutter_keyboard_visibility/FlutterKeyboardVisibilityPlugin.h>)
#import <flutter_keyboard_visibility/FlutterKeyboardVisibilityPlugin.h>
#else
@import flutter_keyboard_visibility;
#endif
#if __has_include(<geolocator_apple/GeolocatorPlugin.h>)
#import <geolocator_apple/GeolocatorPlugin.h>
#else
@import geolocator_apple;
#endif
#if __has_include(<image_gallery_saver/ImageGallerySaverPlugin.h>)
#import <image_gallery_saver/ImageGallerySaverPlugin.h>
#else
@import image_gallery_saver;
#endif
#if __has_include(<image_picker_ios/FLTImagePickerPlugin.h>)
#import <image_picker_ios/FLTImagePickerPlugin.h>
#else
@import image_picker_ios;
#endif
#if __has_include(<isar_flutter_libs/IsarFlutterLibsPlugin.h>)
#import <isar_flutter_libs/IsarFlutterLibsPlugin.h>
#else
@import isar_flutter_libs;
#endif
#if __has_include(<package_info_plus/FPPPackageInfoPlusPlugin.h>)
#import <package_info_plus/FPPPackageInfoPlusPlugin.h>
#else
@import package_info_plus;
#endif
#if __has_include(<path_provider_foundation/PathProviderPlugin.h>)
#import <path_provider_foundation/PathProviderPlugin.h>
#else
@import path_provider_foundation;
#endif
#if __has_include(<permission_handler_apple/PermissionHandlerPlugin.h>)
#import <permission_handler_apple/PermissionHandlerPlugin.h>
#else
@import permission_handler_apple;
#endif
#if __has_include(<pointer_interceptor_ios/PointerInterceptorIosPlugin.h>)
#import <pointer_interceptor_ios/PointerInterceptorIosPlugin.h>
#else
@import pointer_interceptor_ios;
#endif
#if __has_include(<qr_code_scanner/FlutterQrPlugin.h>)
#import <qr_code_scanner/FlutterQrPlugin.h>
#else
@import qr_code_scanner;
#endif
#if __has_include(<shared_preferences_foundation/SharedPreferencesPlugin.h>)
#import <shared_preferences_foundation/SharedPreferencesPlugin.h>
#else
@import shared_preferences_foundation;
#endif
#if __has_include(<sqflite/SqflitePlugin.h>)
#import <sqflite/SqflitePlugin.h>
#else
@import sqflite;
#endif
#if __has_include(<url_launcher_ios/URLLauncherPlugin.h>)
#import <url_launcher_ios/URLLauncherPlugin.h>
#else
@import url_launcher_ios;
#endif
#if __has_include(<webview_flutter_wkwebview/FLTWebViewFlutterPlugin.h>)
#import <webview_flutter_wkwebview/FLTWebViewFlutterPlugin.h>
#else
@import webview_flutter_wkwebview;
#endif
@implementation GeneratedPluginRegistrant
+ (void)registerWithRegistry:(NSObject<FlutterPluginRegistry>*)registry {
[CameraPlugin registerWithRegistrar:[registry registrarForPlugin:@"CameraPlugin"]];
[ConnectivityPlusPlugin registerWithRegistrar:[registry registrarForPlugin:@"ConnectivityPlusPlugin"]];
[FPPDeviceInfoPlusPlugin registerWithRegistrar:[registry registrarForPlugin:@"FPPDeviceInfoPlusPlugin"]];
[FlutterCompassPlugin registerWithRegistrar:[registry registrarForPlugin:@"FlutterCompassPlugin"]];
[FlutterKeyboardVisibilityPlugin registerWithRegistrar:[registry registrarForPlugin:@"FlutterKeyboardVisibilityPlugin"]];
[GeolocatorPlugin registerWithRegistrar:[registry registrarForPlugin:@"GeolocatorPlugin"]];
[ImageGallerySaverPlugin registerWithRegistrar:[registry registrarForPlugin:@"ImageGallerySaverPlugin"]];
[FLTImagePickerPlugin registerWithRegistrar:[registry registrarForPlugin:@"FLTImagePickerPlugin"]];
[IsarFlutterLibsPlugin registerWithRegistrar:[registry registrarForPlugin:@"IsarFlutterLibsPlugin"]];
[FPPPackageInfoPlusPlugin registerWithRegistrar:[registry registrarForPlugin:@"FPPPackageInfoPlusPlugin"]];
[PathProviderPlugin registerWithRegistrar:[registry registrarForPlugin:@"PathProviderPlugin"]];
[PermissionHandlerPlugin registerWithRegistrar:[registry registrarForPlugin:@"PermissionHandlerPlugin"]];
[PointerInterceptorIosPlugin registerWithRegistrar:[registry registrarForPlugin:@"PointerInterceptorIosPlugin"]];
[FlutterQrPlugin registerWithRegistrar:[registry registrarForPlugin:@"FlutterQrPlugin"]];
[SharedPreferencesPlugin registerWithRegistrar:[registry registrarForPlugin:@"SharedPreferencesPlugin"]];
[SqflitePlugin registerWithRegistrar:[registry registrarForPlugin:@"SqflitePlugin"]];
[URLLauncherPlugin registerWithRegistrar:[registry registrarForPlugin:@"URLLauncherPlugin"]];
[FLTWebViewFlutterPlugin registerWithRegistrar:[registry registrarForPlugin:@"FLTWebViewFlutterPlugin"]];
}
@end

View File

@ -0,0 +1,46 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>AvailableLibraries</key>
<array>
<dict>
<key>BinaryPath</key>
<string>App.framework/App</string>
<key>LibraryIdentifier</key>
<string>ios-arm64_x86_64-simulator</string>
<key>LibraryPath</key>
<string>App.framework</string>
<key>SupportedArchitectures</key>
<array>
<string>arm64</string>
<string>x86_64</string>
</array>
<key>SupportedPlatform</key>
<string>ios</string>
<key>SupportedPlatformVariant</key>
<string>simulator</string>
</dict>
<dict>
<key>BinaryPath</key>
<string>App.framework/App</string>
<key>DebugSymbolsPath</key>
<string>dSYMs</string>
<key>LibraryIdentifier</key>
<string>ios-arm64</string>
<key>LibraryPath</key>
<string>App.framework</string>
<key>SupportedArchitectures</key>
<array>
<string>arm64</string>
</array>
<key>SupportedPlatform</key>
<string>ios</string>
</dict>
</array>
<key>CFBundlePackageType</key>
<string>XFWK</string>
<key>XCFrameworkFormatVersion</key>
<string>1.0</string>
</dict>
</plist>

Binary file not shown.

View File

@ -0,0 +1,26 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleExecutable</key>
<string>App</string>
<key>CFBundleIdentifier</key>
<string>io.flutter.flutter.app</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>App</string>
<key>CFBundlePackageType</key>
<string>FMWK</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>1.0</string>
<key>MinimumOSVersion</key>
<string>12.0</string>
</dict>
</plist>

View File

@ -0,0 +1,509 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>files</key>
<dict>
<key>Info.plist</key>
<data>
h5OB7aKzS5WR9SemvZAyN6FEkJs=
</data>
<key>flutter_assets/AssetManifest.bin</key>
<data>
gx7J/9H+qura/uKEBIel5ooKh5c=
</data>
<key>flutter_assets/AssetManifest.json</key>
<data>
5bDNETWg5/9sYMb5HEMNO7c1Ge4=
</data>
<key>flutter_assets/FontManifest.json</key>
<data>
Ju3WlZtknDhH01xFu5VKP8gddUQ=
</data>
<key>flutter_assets/NOTICES.Z</key>
<data>
L5vm36jaEPgXQAINmcWQxdkI8pM=
</data>
<key>flutter_assets/assets/fonts/icomoon.ttf</key>
<data>
hNVbqLw8wzkNwPmcAcS1ljymQWk=
</data>
<key>flutter_assets/assets/images/appicon.png</key>
<data>
/uIgmJFBoqhti3gXkA4ZqAu3Y40=
</data>
<key>flutter_assets/assets/images/basic-walking.gif</key>
<data>
enBFSLpN5e0epUbhFgxgs1CFOeg=
</data>
<key>flutter_assets/assets/images/empty_image.png</key>
<data>
78W38Di4MqE5qMpKFR7OYuxQyB4=
</data>
<key>flutter_assets/assets/images/gradient_japanese_temple.jpg</key>
<data>
/WzWkCCQc9dRBFT8XMHk9iPk2X0=
</data>
<key>flutter_assets/assets/images/japanese_fun.jpeg</key>
<data>
GpulXy6e4bXGwwZdbrevpP20Ve4=
</data>
<key>flutter_assets/assets/images/list2.png</key>
<data>
brjQCRj7Ce/LcV+Vj+aSZxrAWQY=
</data>
<key>flutter_assets/assets/images/list2_off.png</key>
<data>
3IK81nqdqak3k8Mb5YncrJWHyvU=
</data>
<key>flutter_assets/assets/images/login_image.jpg</key>
<data>
w6J4CBPjesezHoniP7/70iTEYCw=
</data>
<key>flutter_assets/assets/images/map.png</key>
<data>
HkccHLtF24evXRSL+IkJmTeI8YM=
</data>
<key>flutter_assets/assets/images/map2.png</key>
<data>
3YYf297eGkFol0jxwJMtaP+uw60=
</data>
<key>flutter_assets/assets/images/map3.png</key>
<data>
zTIFEpZn7ULs68MWREuqvIAbJdg=
</data>
<key>flutter_assets/assets/images/map_off.png</key>
<data>
1yO8lmNdkAset/nAEFFI/uFmWQU=
</data>
<key>flutter_assets/assets/images/money.png</key>
<data>
DeZU0NPOHMLp+tfx3AlVik8zEQw=
</data>
<key>flutter_assets/assets/images/p4_10_train.png</key>
<data>
LoKaAjjV2CEBs35eVCXQKGyAJNY=
</data>
<key>flutter_assets/assets/images/p4_13_position__down.png</key>
<data>
1yO8lmNdkAset/nAEFFI/uFmWQU=
</data>
<key>flutter_assets/assets/images/p4_13_position_map2.png</key>
<data>
3YYf297eGkFol0jxwJMtaP+uw60=
</data>
<key>flutter_assets/assets/images/p4_6_map_destination_icon.png</key>
<data>
o7The9PMyJQt8XeMcEe+ShbHBg0=
</data>
<key>flutter_assets/assets/images/p4_8_car.png</key>
<data>
88AF7VijhZRIzAb6bjZV73/DmRc=
</data>
<key>flutter_assets/assets/images/p4_9_man.png</key>
<data>
SC8SjxRT2YjBHe0H9/VvBqpAuTs=
</data>
<key>flutter_assets/assets/images/route2_off.png</key>
<data>
J6tXXduQAW4MHR9Oy0fzKWZL8R0=
</data>
<key>flutter_assets/assets/images/route2_on.png</key>
<data>
sFcnQD9GLuhjnoIOEUYtRGu+cBA=
</data>
<key>flutter_assets/assets/images/route3_off.png</key>
<data>
T3E2DWttsOnrKHIyO/U6czf8Pi0=
</data>
<key>flutter_assets/assets/images/route3_on.png</key>
<data>
s0ZJAVmN3ql8fgqXajjMsWJiXwM=
</data>
<key>flutter_assets/assets/images/viaicon.png</key>
<data>
o7The9PMyJQt8XeMcEe+ShbHBg0=
</data>
<key>flutter_assets/fonts/MaterialIcons-Regular.otf</key>
<data>
HiDWB9xvmamOrIXUBO8+ifj93Mc=
</data>
<key>flutter_assets/packages/cupertino_icons/assets/CupertinoIcons.ttf</key>
<data>
P7bb/oR3EhwqCIH1M6LyTuBIWYU=
</data>
<key>flutter_assets/packages/flutter_map/lib/assets/flutter_map_logo.png</key>
<data>
kUCCgXRmQ7Ql3lxXrdQuoudq1L8=
</data>
<key>flutter_assets/packages/font_awesome_flutter/lib/fonts/fa-brands-400.ttf</key>
<data>
uUtYhUJxJH+lEL1ch7dyMO5YVIc=
</data>
<key>flutter_assets/packages/font_awesome_flutter/lib/fonts/fa-regular-400.ttf</key>
<data>
2qlhM5dzNTx2SaPhAbWCrCSS1z8=
</data>
<key>flutter_assets/packages/font_awesome_flutter/lib/fonts/fa-solid-900.ttf</key>
<data>
e0kg5q9IIhoUqIIb2xKRlVFJN/w=
</data>
<key>flutter_assets/packages/material_design_icons_flutter/lib/fonts/materialdesignicons-webfont.ttf</key>
<data>
j78E9Zp9n71W2+dBoUcVh2zLaPY=
</data>
<key>flutter_assets/shaders/ink_sparkle.frag</key>
<data>
hBZgIGdEvhX+IvXd5bjkjJVu6+s=
</data>
</dict>
<key>files2</key>
<dict>
<key>flutter_assets/AssetManifest.bin</key>
<dict>
<key>hash2</key>
<data>
6hOQ5fja4LvioBZo73qnPQYZvD6hktZ8YcZeBaNxGuo=
</data>
</dict>
<key>flutter_assets/AssetManifest.json</key>
<dict>
<key>hash2</key>
<data>
zF91VI+OQsVmL4fkjNoQup/A8HAq1laCeO6shV0yIfA=
</data>
</dict>
<key>flutter_assets/FontManifest.json</key>
<dict>
<key>hash2</key>
<data>
C/zjaR227USEmXvjID0F9yTUF8gvz5amf8m+QtIFvYs=
</data>
</dict>
<key>flutter_assets/NOTICES.Z</key>
<dict>
<key>hash2</key>
<data>
Ur8k2oJnkdMjsFjrhLykWgQrMpsK9WpcyFEwAAMJFHA=
</data>
</dict>
<key>flutter_assets/assets/fonts/icomoon.ttf</key>
<dict>
<key>hash2</key>
<data>
KvHt9hHtb2RYcztXsEBBtz1T0An/QVRH6fxTMDGN9oI=
</data>
</dict>
<key>flutter_assets/assets/images/appicon.png</key>
<dict>
<key>hash2</key>
<data>
R93k7XF2kn9SeVH+BJeQTWJ7dicMgozbFebc6qt/lX0=
</data>
</dict>
<key>flutter_assets/assets/images/basic-walking.gif</key>
<dict>
<key>hash2</key>
<data>
1mnICd5a7/A39YK0hfq9zCqfCF2/Lo3Uih+U1Lo32YI=
</data>
</dict>
<key>flutter_assets/assets/images/empty_image.png</key>
<dict>
<key>hash2</key>
<data>
J0BhfSi5xSTcy9VxKHgCj6QfqeEmJLT69hnpGA+R5os=
</data>
</dict>
<key>flutter_assets/assets/images/gradient_japanese_temple.jpg</key>
<dict>
<key>hash2</key>
<data>
4PrQkThtQ6IeJT1LgS6FBL7fDABZa8DD2UNzoZZgCjc=
</data>
</dict>
<key>flutter_assets/assets/images/japanese_fun.jpeg</key>
<dict>
<key>hash2</key>
<data>
bqacHkrnlq6sfOA2ZvaaVlydcuawgHNkVSF04LzsQVo=
</data>
</dict>
<key>flutter_assets/assets/images/list2.png</key>
<dict>
<key>hash2</key>
<data>
wuiE8J7/Z7RQLXF5EnsTZZnj35ywgcjJyS60YYCatgc=
</data>
</dict>
<key>flutter_assets/assets/images/list2_off.png</key>
<dict>
<key>hash2</key>
<data>
uLxyfXBaSBU2+bBYxONTBPaLmLviqsG0BxadaW9KXTE=
</data>
</dict>
<key>flutter_assets/assets/images/login_image.jpg</key>
<dict>
<key>hash2</key>
<data>
00gEMe9G3DtJzO0lkhh5epMZheEYhocR0KwxaWcGJtI=
</data>
</dict>
<key>flutter_assets/assets/images/map.png</key>
<dict>
<key>hash2</key>
<data>
SKl96YlX9/xBgJcPkwGY+Hdx8M7h60yUHDD/obEf4Ro=
</data>
</dict>
<key>flutter_assets/assets/images/map2.png</key>
<dict>
<key>hash2</key>
<data>
La+v96uc68xgZwxCqWusz+hc6H8XL2yQ2R5fPs2R+yg=
</data>
</dict>
<key>flutter_assets/assets/images/map3.png</key>
<dict>
<key>hash2</key>
<data>
rRpwEV4RW7TSPbfc+1Dv8oGb6XKwUPl3Ul/Tj8qVnGw=
</data>
</dict>
<key>flutter_assets/assets/images/map_off.png</key>
<dict>
<key>hash2</key>
<data>
7m6OUgngZE5YSgx5aQ8UaoXLpjv21rEgh0CL+JBuv1w=
</data>
</dict>
<key>flutter_assets/assets/images/money.png</key>
<dict>
<key>hash2</key>
<data>
LDY7v3fDjU7FvGUOLB8+kfqIGcnuXrY5DlX3eP3oiRc=
</data>
</dict>
<key>flutter_assets/assets/images/p4_10_train.png</key>
<dict>
<key>hash2</key>
<data>
S5of5bXoLvYtm6wPPOf+xdLe5/vV3Uhs4rjkG4d5wyM=
</data>
</dict>
<key>flutter_assets/assets/images/p4_13_position__down.png</key>
<dict>
<key>hash2</key>
<data>
7m6OUgngZE5YSgx5aQ8UaoXLpjv21rEgh0CL+JBuv1w=
</data>
</dict>
<key>flutter_assets/assets/images/p4_13_position_map2.png</key>
<dict>
<key>hash2</key>
<data>
La+v96uc68xgZwxCqWusz+hc6H8XL2yQ2R5fPs2R+yg=
</data>
</dict>
<key>flutter_assets/assets/images/p4_6_map_destination_icon.png</key>
<dict>
<key>hash2</key>
<data>
G5mAN62nG9oDALGjDfYWIOMwf0rbNM02VmEoDoGRfYA=
</data>
</dict>
<key>flutter_assets/assets/images/p4_8_car.png</key>
<dict>
<key>hash2</key>
<data>
b36T8Hl83lbiu3ifhuJxb1vxD6ZTQU5whjSHUH+sJ3Q=
</data>
</dict>
<key>flutter_assets/assets/images/p4_9_man.png</key>
<dict>
<key>hash2</key>
<data>
b8nHYyG3exzBeOqFOqXh2I37ZBxDpPSc9pw2KlHZAd4=
</data>
</dict>
<key>flutter_assets/assets/images/route2_off.png</key>
<dict>
<key>hash2</key>
<data>
bun1so72ohigN7VK49e5Fu2RCmNPt8K+voAJvtNzapk=
</data>
</dict>
<key>flutter_assets/assets/images/route2_on.png</key>
<dict>
<key>hash2</key>
<data>
r83wENE16lx34Y+rw8xNj/tFvpxGQlUuGm6eibG2pJY=
</data>
</dict>
<key>flutter_assets/assets/images/route3_off.png</key>
<dict>
<key>hash2</key>
<data>
3Y3Fkt9GTIixEtBKhFs4iA0weiAiC3jwkH7UmFaCJzM=
</data>
</dict>
<key>flutter_assets/assets/images/route3_on.png</key>
<dict>
<key>hash2</key>
<data>
ddVcSvfP3kFoxsM4H9ORrpbRYvprmcnoMuQ6wYJZJM8=
</data>
</dict>
<key>flutter_assets/assets/images/viaicon.png</key>
<dict>
<key>hash2</key>
<data>
G5mAN62nG9oDALGjDfYWIOMwf0rbNM02VmEoDoGRfYA=
</data>
</dict>
<key>flutter_assets/fonts/MaterialIcons-Regular.otf</key>
<dict>
<key>hash2</key>
<data>
d6jAyzoZ6f6+ZRZxiBnxUDZ0ESUG6Y5iDNdphS9Sp2s=
</data>
</dict>
<key>flutter_assets/packages/cupertino_icons/assets/CupertinoIcons.ttf</key>
<dict>
<key>hash2</key>
<data>
x6NX+tjyECiQtyzbbjyY8U2zoZ7GDbJtE+T+k/dzgI0=
</data>
</dict>
<key>flutter_assets/packages/flutter_map/lib/assets/flutter_map_logo.png</key>
<dict>
<key>hash2</key>
<data>
YFGuQvtQWTGoM+WPkgmp+WZppNDks/BvbYLN4SoOBAE=
</data>
</dict>
<key>flutter_assets/packages/font_awesome_flutter/lib/fonts/fa-brands-400.ttf</key>
<dict>
<key>hash2</key>
<data>
PIAy9P/E9pg+JtVzzRnYHKVS0ZL8GHInLKq+369QLBw=
</data>
</dict>
<key>flutter_assets/packages/font_awesome_flutter/lib/fonts/fa-regular-400.ttf</key>
<dict>
<key>hash2</key>
<data>
q4IDU/32RXM02bHzZ+jrgy9fvDwy1N4NL1JtQB5o0uc=
</data>
</dict>
<key>flutter_assets/packages/font_awesome_flutter/lib/fonts/fa-solid-900.ttf</key>
<dict>
<key>hash2</key>
<data>
w2pgOtOQJdCgxy1Iyym6iWSGXbIRYPXC4sxmlO0LoTA=
</data>
</dict>
<key>flutter_assets/packages/material_design_icons_flutter/lib/fonts/materialdesignicons-webfont.ttf</key>
<dict>
<key>hash2</key>
<data>
pY7LVPRe7Br628ITFNHwkyzwCeXLx/MiXX5KThtx72s=
</data>
</dict>
<key>flutter_assets/shaders/ink_sparkle.frag</key>
<dict>
<key>hash2</key>
<data>
0T+w183eMSTh5phjUfkXjg4ZpPYnVqkH4Gv3Ge4QCh8=
</data>
</dict>
</dict>
<key>rules</key>
<dict>
<key>^.*</key>
<true/>
<key>^.*\.lproj/</key>
<dict>
<key>optional</key>
<true/>
<key>weight</key>
<real>1000</real>
</dict>
<key>^.*\.lproj/locversion.plist$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>1100</real>
</dict>
<key>^Base\.lproj/</key>
<dict>
<key>weight</key>
<real>1010</real>
</dict>
<key>^version.plist$</key>
<true/>
</dict>
<key>rules2</key>
<dict>
<key>.*\.dSYM($|/)</key>
<dict>
<key>weight</key>
<real>11</real>
</dict>
<key>^(.*/)?\.DS_Store$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>2000</real>
</dict>
<key>^.*</key>
<true/>
<key>^.*\.lproj/</key>
<dict>
<key>optional</key>
<true/>
<key>weight</key>
<real>1000</real>
</dict>
<key>^.*\.lproj/locversion.plist$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>1100</real>
</dict>
<key>^Base\.lproj/</key>
<dict>
<key>weight</key>
<real>1010</real>
</dict>
<key>^Info\.plist$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>20</real>
</dict>
<key>^PkgInfo$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>20</real>
</dict>
<key>^embedded\.provisionprofile$</key>
<dict>
<key>weight</key>
<real>20</real>
</dict>
<key>^version\.plist$</key>
<dict>
<key>weight</key>
<real>20</real>
</dict>
</dict>
</dict>
</plist>

View File

@ -0,0 +1 @@
{"assets/fonts/icomoon.ttf":["assets/fonts/icomoon.ttf"],"assets/images/appicon.png":["assets/images/appicon.png"],"assets/images/basic-walking.gif":["assets/images/basic-walking.gif"],"assets/images/empty_image.png":["assets/images/empty_image.png"],"assets/images/gradient_japanese_temple.jpg":["assets/images/gradient_japanese_temple.jpg"],"assets/images/japanese_fun.jpeg":["assets/images/japanese_fun.jpeg"],"assets/images/list2.png":["assets/images/list2.png"],"assets/images/list2_off.png":["assets/images/list2_off.png"],"assets/images/login_image.jpg":["assets/images/login_image.jpg"],"assets/images/map.png":["assets/images/map.png"],"assets/images/map2.png":["assets/images/map2.png"],"assets/images/map3.png":["assets/images/map3.png"],"assets/images/map_off.png":["assets/images/map_off.png"],"assets/images/money.png":["assets/images/money.png"],"assets/images/p4_10_train.png":["assets/images/p4_10_train.png"],"assets/images/p4_13_position__down.png":["assets/images/p4_13_position__down.png"],"assets/images/p4_13_position_map2.png":["assets/images/p4_13_position_map2.png"],"assets/images/p4_6_map_destination_icon.png":["assets/images/p4_6_map_destination_icon.png"],"assets/images/p4_8_car.png":["assets/images/p4_8_car.png"],"assets/images/p4_9_man.png":["assets/images/p4_9_man.png"],"assets/images/route2_off.png":["assets/images/route2_off.png"],"assets/images/route2_on.png":["assets/images/route2_on.png"],"assets/images/route3_off.png":["assets/images/route3_off.png"],"assets/images/route3_on.png":["assets/images/route3_on.png"],"assets/images/viaicon.png":["assets/images/viaicon.png"],"packages/cupertino_icons/assets/CupertinoIcons.ttf":["packages/cupertino_icons/assets/CupertinoIcons.ttf"],"packages/flutter_map/lib/assets/flutter_map_logo.png":["packages/flutter_map/lib/assets/flutter_map_logo.png"],"packages/font_awesome_flutter/lib/fonts/fa-brands-400.ttf":["packages/font_awesome_flutter/lib/fonts/fa-brands-400.ttf"],"packages/font_awesome_flutter/lib/fonts/fa-regular-400.ttf":["packages/font_awesome_flutter/lib/fonts/fa-regular-400.ttf"],"packages/font_awesome_flutter/lib/fonts/fa-solid-900.ttf":["packages/font_awesome_flutter/lib/fonts/fa-solid-900.ttf"],"packages/material_design_icons_flutter/lib/fonts/materialdesignicons-webfont.ttf":["packages/material_design_icons_flutter/lib/fonts/materialdesignicons-webfont.ttf"]}

View File

@ -0,0 +1 @@
[{"family":"MaterialIcons","fonts":[{"asset":"fonts/MaterialIcons-Regular.otf"}]},{"family":"CustomIcons","fonts":[{"asset":"assets/fonts/icomoon.ttf"}]},{"family":"packages/cupertino_icons/CupertinoIcons","fonts":[{"asset":"packages/cupertino_icons/assets/CupertinoIcons.ttf"}]},{"family":"packages/font_awesome_flutter/FontAwesomeBrands","fonts":[{"weight":400,"asset":"packages/font_awesome_flutter/lib/fonts/fa-brands-400.ttf"}]},{"family":"packages/font_awesome_flutter/FontAwesomeRegular","fonts":[{"weight":400,"asset":"packages/font_awesome_flutter/lib/fonts/fa-regular-400.ttf"}]},{"family":"packages/font_awesome_flutter/FontAwesomeSolid","fonts":[{"weight":900,"asset":"packages/font_awesome_flutter/lib/fonts/fa-solid-900.ttf"}]},{"family":"packages/material_design_icons_flutter/Material Design Icons","fonts":[{"asset":"packages/material_design_icons_flutter/lib/fonts/materialdesignicons-webfont.ttf"}]}]

Binary file not shown.

After

Width:  |  Height:  |  Size: 145 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 325 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 82 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@ -0,0 +1,26 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleExecutable</key>
<string>App</string>
<key>CFBundleIdentifier</key>
<string>io.flutter.flutter.app</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>App</string>
<key>CFBundlePackageType</key>
<string>FMWK</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>1.0</string>
<key>MinimumOSVersion</key>
<string>12.0</string>
</dict>
</plist>

View File

@ -0,0 +1,509 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>files</key>
<dict>
<key>Info.plist</key>
<data>
h5OB7aKzS5WR9SemvZAyN6FEkJs=
</data>
<key>flutter_assets/AssetManifest.bin</key>
<data>
gx7J/9H+qura/uKEBIel5ooKh5c=
</data>
<key>flutter_assets/AssetManifest.json</key>
<data>
5bDNETWg5/9sYMb5HEMNO7c1Ge4=
</data>
<key>flutter_assets/FontManifest.json</key>
<data>
Ju3WlZtknDhH01xFu5VKP8gddUQ=
</data>
<key>flutter_assets/NOTICES.Z</key>
<data>
L5vm36jaEPgXQAINmcWQxdkI8pM=
</data>
<key>flutter_assets/assets/fonts/icomoon.ttf</key>
<data>
hNVbqLw8wzkNwPmcAcS1ljymQWk=
</data>
<key>flutter_assets/assets/images/appicon.png</key>
<data>
/uIgmJFBoqhti3gXkA4ZqAu3Y40=
</data>
<key>flutter_assets/assets/images/basic-walking.gif</key>
<data>
enBFSLpN5e0epUbhFgxgs1CFOeg=
</data>
<key>flutter_assets/assets/images/empty_image.png</key>
<data>
78W38Di4MqE5qMpKFR7OYuxQyB4=
</data>
<key>flutter_assets/assets/images/gradient_japanese_temple.jpg</key>
<data>
/WzWkCCQc9dRBFT8XMHk9iPk2X0=
</data>
<key>flutter_assets/assets/images/japanese_fun.jpeg</key>
<data>
GpulXy6e4bXGwwZdbrevpP20Ve4=
</data>
<key>flutter_assets/assets/images/list2.png</key>
<data>
brjQCRj7Ce/LcV+Vj+aSZxrAWQY=
</data>
<key>flutter_assets/assets/images/list2_off.png</key>
<data>
3IK81nqdqak3k8Mb5YncrJWHyvU=
</data>
<key>flutter_assets/assets/images/login_image.jpg</key>
<data>
w6J4CBPjesezHoniP7/70iTEYCw=
</data>
<key>flutter_assets/assets/images/map.png</key>
<data>
HkccHLtF24evXRSL+IkJmTeI8YM=
</data>
<key>flutter_assets/assets/images/map2.png</key>
<data>
3YYf297eGkFol0jxwJMtaP+uw60=
</data>
<key>flutter_assets/assets/images/map3.png</key>
<data>
zTIFEpZn7ULs68MWREuqvIAbJdg=
</data>
<key>flutter_assets/assets/images/map_off.png</key>
<data>
1yO8lmNdkAset/nAEFFI/uFmWQU=
</data>
<key>flutter_assets/assets/images/money.png</key>
<data>
DeZU0NPOHMLp+tfx3AlVik8zEQw=
</data>
<key>flutter_assets/assets/images/p4_10_train.png</key>
<data>
LoKaAjjV2CEBs35eVCXQKGyAJNY=
</data>
<key>flutter_assets/assets/images/p4_13_position__down.png</key>
<data>
1yO8lmNdkAset/nAEFFI/uFmWQU=
</data>
<key>flutter_assets/assets/images/p4_13_position_map2.png</key>
<data>
3YYf297eGkFol0jxwJMtaP+uw60=
</data>
<key>flutter_assets/assets/images/p4_6_map_destination_icon.png</key>
<data>
o7The9PMyJQt8XeMcEe+ShbHBg0=
</data>
<key>flutter_assets/assets/images/p4_8_car.png</key>
<data>
88AF7VijhZRIzAb6bjZV73/DmRc=
</data>
<key>flutter_assets/assets/images/p4_9_man.png</key>
<data>
SC8SjxRT2YjBHe0H9/VvBqpAuTs=
</data>
<key>flutter_assets/assets/images/route2_off.png</key>
<data>
J6tXXduQAW4MHR9Oy0fzKWZL8R0=
</data>
<key>flutter_assets/assets/images/route2_on.png</key>
<data>
sFcnQD9GLuhjnoIOEUYtRGu+cBA=
</data>
<key>flutter_assets/assets/images/route3_off.png</key>
<data>
T3E2DWttsOnrKHIyO/U6czf8Pi0=
</data>
<key>flutter_assets/assets/images/route3_on.png</key>
<data>
s0ZJAVmN3ql8fgqXajjMsWJiXwM=
</data>
<key>flutter_assets/assets/images/viaicon.png</key>
<data>
o7The9PMyJQt8XeMcEe+ShbHBg0=
</data>
<key>flutter_assets/fonts/MaterialIcons-Regular.otf</key>
<data>
HiDWB9xvmamOrIXUBO8+ifj93Mc=
</data>
<key>flutter_assets/packages/cupertino_icons/assets/CupertinoIcons.ttf</key>
<data>
P7bb/oR3EhwqCIH1M6LyTuBIWYU=
</data>
<key>flutter_assets/packages/flutter_map/lib/assets/flutter_map_logo.png</key>
<data>
kUCCgXRmQ7Ql3lxXrdQuoudq1L8=
</data>
<key>flutter_assets/packages/font_awesome_flutter/lib/fonts/fa-brands-400.ttf</key>
<data>
uUtYhUJxJH+lEL1ch7dyMO5YVIc=
</data>
<key>flutter_assets/packages/font_awesome_flutter/lib/fonts/fa-regular-400.ttf</key>
<data>
2qlhM5dzNTx2SaPhAbWCrCSS1z8=
</data>
<key>flutter_assets/packages/font_awesome_flutter/lib/fonts/fa-solid-900.ttf</key>
<data>
e0kg5q9IIhoUqIIb2xKRlVFJN/w=
</data>
<key>flutter_assets/packages/material_design_icons_flutter/lib/fonts/materialdesignicons-webfont.ttf</key>
<data>
j78E9Zp9n71W2+dBoUcVh2zLaPY=
</data>
<key>flutter_assets/shaders/ink_sparkle.frag</key>
<data>
hBZgIGdEvhX+IvXd5bjkjJVu6+s=
</data>
</dict>
<key>files2</key>
<dict>
<key>flutter_assets/AssetManifest.bin</key>
<dict>
<key>hash2</key>
<data>
6hOQ5fja4LvioBZo73qnPQYZvD6hktZ8YcZeBaNxGuo=
</data>
</dict>
<key>flutter_assets/AssetManifest.json</key>
<dict>
<key>hash2</key>
<data>
zF91VI+OQsVmL4fkjNoQup/A8HAq1laCeO6shV0yIfA=
</data>
</dict>
<key>flutter_assets/FontManifest.json</key>
<dict>
<key>hash2</key>
<data>
C/zjaR227USEmXvjID0F9yTUF8gvz5amf8m+QtIFvYs=
</data>
</dict>
<key>flutter_assets/NOTICES.Z</key>
<dict>
<key>hash2</key>
<data>
Ur8k2oJnkdMjsFjrhLykWgQrMpsK9WpcyFEwAAMJFHA=
</data>
</dict>
<key>flutter_assets/assets/fonts/icomoon.ttf</key>
<dict>
<key>hash2</key>
<data>
KvHt9hHtb2RYcztXsEBBtz1T0An/QVRH6fxTMDGN9oI=
</data>
</dict>
<key>flutter_assets/assets/images/appicon.png</key>
<dict>
<key>hash2</key>
<data>
R93k7XF2kn9SeVH+BJeQTWJ7dicMgozbFebc6qt/lX0=
</data>
</dict>
<key>flutter_assets/assets/images/basic-walking.gif</key>
<dict>
<key>hash2</key>
<data>
1mnICd5a7/A39YK0hfq9zCqfCF2/Lo3Uih+U1Lo32YI=
</data>
</dict>
<key>flutter_assets/assets/images/empty_image.png</key>
<dict>
<key>hash2</key>
<data>
J0BhfSi5xSTcy9VxKHgCj6QfqeEmJLT69hnpGA+R5os=
</data>
</dict>
<key>flutter_assets/assets/images/gradient_japanese_temple.jpg</key>
<dict>
<key>hash2</key>
<data>
4PrQkThtQ6IeJT1LgS6FBL7fDABZa8DD2UNzoZZgCjc=
</data>
</dict>
<key>flutter_assets/assets/images/japanese_fun.jpeg</key>
<dict>
<key>hash2</key>
<data>
bqacHkrnlq6sfOA2ZvaaVlydcuawgHNkVSF04LzsQVo=
</data>
</dict>
<key>flutter_assets/assets/images/list2.png</key>
<dict>
<key>hash2</key>
<data>
wuiE8J7/Z7RQLXF5EnsTZZnj35ywgcjJyS60YYCatgc=
</data>
</dict>
<key>flutter_assets/assets/images/list2_off.png</key>
<dict>
<key>hash2</key>
<data>
uLxyfXBaSBU2+bBYxONTBPaLmLviqsG0BxadaW9KXTE=
</data>
</dict>
<key>flutter_assets/assets/images/login_image.jpg</key>
<dict>
<key>hash2</key>
<data>
00gEMe9G3DtJzO0lkhh5epMZheEYhocR0KwxaWcGJtI=
</data>
</dict>
<key>flutter_assets/assets/images/map.png</key>
<dict>
<key>hash2</key>
<data>
SKl96YlX9/xBgJcPkwGY+Hdx8M7h60yUHDD/obEf4Ro=
</data>
</dict>
<key>flutter_assets/assets/images/map2.png</key>
<dict>
<key>hash2</key>
<data>
La+v96uc68xgZwxCqWusz+hc6H8XL2yQ2R5fPs2R+yg=
</data>
</dict>
<key>flutter_assets/assets/images/map3.png</key>
<dict>
<key>hash2</key>
<data>
rRpwEV4RW7TSPbfc+1Dv8oGb6XKwUPl3Ul/Tj8qVnGw=
</data>
</dict>
<key>flutter_assets/assets/images/map_off.png</key>
<dict>
<key>hash2</key>
<data>
7m6OUgngZE5YSgx5aQ8UaoXLpjv21rEgh0CL+JBuv1w=
</data>
</dict>
<key>flutter_assets/assets/images/money.png</key>
<dict>
<key>hash2</key>
<data>
LDY7v3fDjU7FvGUOLB8+kfqIGcnuXrY5DlX3eP3oiRc=
</data>
</dict>
<key>flutter_assets/assets/images/p4_10_train.png</key>
<dict>
<key>hash2</key>
<data>
S5of5bXoLvYtm6wPPOf+xdLe5/vV3Uhs4rjkG4d5wyM=
</data>
</dict>
<key>flutter_assets/assets/images/p4_13_position__down.png</key>
<dict>
<key>hash2</key>
<data>
7m6OUgngZE5YSgx5aQ8UaoXLpjv21rEgh0CL+JBuv1w=
</data>
</dict>
<key>flutter_assets/assets/images/p4_13_position_map2.png</key>
<dict>
<key>hash2</key>
<data>
La+v96uc68xgZwxCqWusz+hc6H8XL2yQ2R5fPs2R+yg=
</data>
</dict>
<key>flutter_assets/assets/images/p4_6_map_destination_icon.png</key>
<dict>
<key>hash2</key>
<data>
G5mAN62nG9oDALGjDfYWIOMwf0rbNM02VmEoDoGRfYA=
</data>
</dict>
<key>flutter_assets/assets/images/p4_8_car.png</key>
<dict>
<key>hash2</key>
<data>
b36T8Hl83lbiu3ifhuJxb1vxD6ZTQU5whjSHUH+sJ3Q=
</data>
</dict>
<key>flutter_assets/assets/images/p4_9_man.png</key>
<dict>
<key>hash2</key>
<data>
b8nHYyG3exzBeOqFOqXh2I37ZBxDpPSc9pw2KlHZAd4=
</data>
</dict>
<key>flutter_assets/assets/images/route2_off.png</key>
<dict>
<key>hash2</key>
<data>
bun1so72ohigN7VK49e5Fu2RCmNPt8K+voAJvtNzapk=
</data>
</dict>
<key>flutter_assets/assets/images/route2_on.png</key>
<dict>
<key>hash2</key>
<data>
r83wENE16lx34Y+rw8xNj/tFvpxGQlUuGm6eibG2pJY=
</data>
</dict>
<key>flutter_assets/assets/images/route3_off.png</key>
<dict>
<key>hash2</key>
<data>
3Y3Fkt9GTIixEtBKhFs4iA0weiAiC3jwkH7UmFaCJzM=
</data>
</dict>
<key>flutter_assets/assets/images/route3_on.png</key>
<dict>
<key>hash2</key>
<data>
ddVcSvfP3kFoxsM4H9ORrpbRYvprmcnoMuQ6wYJZJM8=
</data>
</dict>
<key>flutter_assets/assets/images/viaicon.png</key>
<dict>
<key>hash2</key>
<data>
G5mAN62nG9oDALGjDfYWIOMwf0rbNM02VmEoDoGRfYA=
</data>
</dict>
<key>flutter_assets/fonts/MaterialIcons-Regular.otf</key>
<dict>
<key>hash2</key>
<data>
d6jAyzoZ6f6+ZRZxiBnxUDZ0ESUG6Y5iDNdphS9Sp2s=
</data>
</dict>
<key>flutter_assets/packages/cupertino_icons/assets/CupertinoIcons.ttf</key>
<dict>
<key>hash2</key>
<data>
x6NX+tjyECiQtyzbbjyY8U2zoZ7GDbJtE+T+k/dzgI0=
</data>
</dict>
<key>flutter_assets/packages/flutter_map/lib/assets/flutter_map_logo.png</key>
<dict>
<key>hash2</key>
<data>
YFGuQvtQWTGoM+WPkgmp+WZppNDks/BvbYLN4SoOBAE=
</data>
</dict>
<key>flutter_assets/packages/font_awesome_flutter/lib/fonts/fa-brands-400.ttf</key>
<dict>
<key>hash2</key>
<data>
PIAy9P/E9pg+JtVzzRnYHKVS0ZL8GHInLKq+369QLBw=
</data>
</dict>
<key>flutter_assets/packages/font_awesome_flutter/lib/fonts/fa-regular-400.ttf</key>
<dict>
<key>hash2</key>
<data>
q4IDU/32RXM02bHzZ+jrgy9fvDwy1N4NL1JtQB5o0uc=
</data>
</dict>
<key>flutter_assets/packages/font_awesome_flutter/lib/fonts/fa-solid-900.ttf</key>
<dict>
<key>hash2</key>
<data>
w2pgOtOQJdCgxy1Iyym6iWSGXbIRYPXC4sxmlO0LoTA=
</data>
</dict>
<key>flutter_assets/packages/material_design_icons_flutter/lib/fonts/materialdesignicons-webfont.ttf</key>
<dict>
<key>hash2</key>
<data>
pY7LVPRe7Br628ITFNHwkyzwCeXLx/MiXX5KThtx72s=
</data>
</dict>
<key>flutter_assets/shaders/ink_sparkle.frag</key>
<dict>
<key>hash2</key>
<data>
0T+w183eMSTh5phjUfkXjg4ZpPYnVqkH4Gv3Ge4QCh8=
</data>
</dict>
</dict>
<key>rules</key>
<dict>
<key>^.*</key>
<true/>
<key>^.*\.lproj/</key>
<dict>
<key>optional</key>
<true/>
<key>weight</key>
<real>1000</real>
</dict>
<key>^.*\.lproj/locversion.plist$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>1100</real>
</dict>
<key>^Base\.lproj/</key>
<dict>
<key>weight</key>
<real>1010</real>
</dict>
<key>^version.plist$</key>
<true/>
</dict>
<key>rules2</key>
<dict>
<key>.*\.dSYM($|/)</key>
<dict>
<key>weight</key>
<real>11</real>
</dict>
<key>^(.*/)?\.DS_Store$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>2000</real>
</dict>
<key>^.*</key>
<true/>
<key>^.*\.lproj/</key>
<dict>
<key>optional</key>
<true/>
<key>weight</key>
<real>1000</real>
</dict>
<key>^.*\.lproj/locversion.plist$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>1100</real>
</dict>
<key>^Base\.lproj/</key>
<dict>
<key>weight</key>
<real>1010</real>
</dict>
<key>^Info\.plist$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>20</real>
</dict>
<key>^PkgInfo$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>20</real>
</dict>
<key>^embedded\.provisionprofile$</key>
<dict>
<key>weight</key>
<real>20</real>
</dict>
<key>^version\.plist$</key>
<dict>
<key>weight</key>
<real>20</real>
</dict>
</dict>
</dict>
</plist>

View File

@ -0,0 +1 @@
{"assets/fonts/icomoon.ttf":["assets/fonts/icomoon.ttf"],"assets/images/appicon.png":["assets/images/appicon.png"],"assets/images/basic-walking.gif":["assets/images/basic-walking.gif"],"assets/images/empty_image.png":["assets/images/empty_image.png"],"assets/images/gradient_japanese_temple.jpg":["assets/images/gradient_japanese_temple.jpg"],"assets/images/japanese_fun.jpeg":["assets/images/japanese_fun.jpeg"],"assets/images/list2.png":["assets/images/list2.png"],"assets/images/list2_off.png":["assets/images/list2_off.png"],"assets/images/login_image.jpg":["assets/images/login_image.jpg"],"assets/images/map.png":["assets/images/map.png"],"assets/images/map2.png":["assets/images/map2.png"],"assets/images/map3.png":["assets/images/map3.png"],"assets/images/map_off.png":["assets/images/map_off.png"],"assets/images/money.png":["assets/images/money.png"],"assets/images/p4_10_train.png":["assets/images/p4_10_train.png"],"assets/images/p4_13_position__down.png":["assets/images/p4_13_position__down.png"],"assets/images/p4_13_position_map2.png":["assets/images/p4_13_position_map2.png"],"assets/images/p4_6_map_destination_icon.png":["assets/images/p4_6_map_destination_icon.png"],"assets/images/p4_8_car.png":["assets/images/p4_8_car.png"],"assets/images/p4_9_man.png":["assets/images/p4_9_man.png"],"assets/images/route2_off.png":["assets/images/route2_off.png"],"assets/images/route2_on.png":["assets/images/route2_on.png"],"assets/images/route3_off.png":["assets/images/route3_off.png"],"assets/images/route3_on.png":["assets/images/route3_on.png"],"assets/images/viaicon.png":["assets/images/viaicon.png"],"packages/cupertino_icons/assets/CupertinoIcons.ttf":["packages/cupertino_icons/assets/CupertinoIcons.ttf"],"packages/flutter_map/lib/assets/flutter_map_logo.png":["packages/flutter_map/lib/assets/flutter_map_logo.png"],"packages/font_awesome_flutter/lib/fonts/fa-brands-400.ttf":["packages/font_awesome_flutter/lib/fonts/fa-brands-400.ttf"],"packages/font_awesome_flutter/lib/fonts/fa-regular-400.ttf":["packages/font_awesome_flutter/lib/fonts/fa-regular-400.ttf"],"packages/font_awesome_flutter/lib/fonts/fa-solid-900.ttf":["packages/font_awesome_flutter/lib/fonts/fa-solid-900.ttf"],"packages/material_design_icons_flutter/lib/fonts/materialdesignicons-webfont.ttf":["packages/material_design_icons_flutter/lib/fonts/materialdesignicons-webfont.ttf"]}

View File

@ -0,0 +1 @@
[{"family":"MaterialIcons","fonts":[{"asset":"fonts/MaterialIcons-Regular.otf"}]},{"family":"CustomIcons","fonts":[{"asset":"assets/fonts/icomoon.ttf"}]},{"family":"packages/cupertino_icons/CupertinoIcons","fonts":[{"asset":"packages/cupertino_icons/assets/CupertinoIcons.ttf"}]},{"family":"packages/font_awesome_flutter/FontAwesomeBrands","fonts":[{"weight":400,"asset":"packages/font_awesome_flutter/lib/fonts/fa-brands-400.ttf"}]},{"family":"packages/font_awesome_flutter/FontAwesomeRegular","fonts":[{"weight":400,"asset":"packages/font_awesome_flutter/lib/fonts/fa-regular-400.ttf"}]},{"family":"packages/font_awesome_flutter/FontAwesomeSolid","fonts":[{"weight":900,"asset":"packages/font_awesome_flutter/lib/fonts/fa-solid-900.ttf"}]},{"family":"packages/material_design_icons_flutter/Material Design Icons","fonts":[{"asset":"packages/material_design_icons_flutter/lib/fonts/materialdesignicons-webfont.ttf"}]}]

Binary file not shown.

After

Width:  |  Height:  |  Size: 145 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@ -0,0 +1,46 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>AvailableLibraries</key>
<array>
<dict>
<key>BinaryPath</key>
<string>FMDB.framework/FMDB</string>
<key>LibraryIdentifier</key>
<string>ios-arm64_x86_64-simulator</string>
<key>LibraryPath</key>
<string>FMDB.framework</string>
<key>SupportedArchitectures</key>
<array>
<string>arm64</string>
<string>x86_64</string>
</array>
<key>SupportedPlatform</key>
<string>ios</string>
<key>SupportedPlatformVariant</key>
<string>simulator</string>
</dict>
<dict>
<key>BinaryPath</key>
<string>FMDB.framework/FMDB</string>
<key>DebugSymbolsPath</key>
<string>dSYMs</string>
<key>LibraryIdentifier</key>
<string>ios-arm64</string>
<key>LibraryPath</key>
<string>FMDB.framework</string>
<key>SupportedArchitectures</key>
<array>
<string>arm64</string>
</array>
<key>SupportedPlatform</key>
<string>ios</string>
</dict>
</array>
<key>CFBundlePackageType</key>
<string>XFWK</string>
<key>XCFrameworkFormatVersion</key>
<string>1.0</string>
</dict>
</plist>

View File

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>NSPrivacyTracking</key>
<false/>
<key>NSPrivacyTrackingDomains</key>
<array/>
<key>NSPrivacyCollectedDataTypes</key>
<array/>
<key>NSPrivacyAccessedAPITypes</key>
<array/>
</dict>
</plist>

View File

@ -0,0 +1,22 @@
#ifdef __OBJC__
#import <UIKit/UIKit.h>
#else
#ifndef FOUNDATION_EXPORT
#if defined(__cplusplus)
#define FOUNDATION_EXPORT extern "C"
#else
#define FOUNDATION_EXPORT extern
#endif
#endif
#endif
#import "FMDatabase.h"
#import "FMDatabaseAdditions.h"
#import "FMDatabasePool.h"
#import "FMDatabaseQueue.h"
#import "FMDB.h"
#import "FMResultSet.h"
FOUNDATION_EXPORT double FMDBVersionNumber;
FOUNDATION_EXPORT const unsigned char FMDBVersionString[];

View File

@ -0,0 +1,10 @@
#import <Foundation/Foundation.h>
FOUNDATION_EXPORT double FMDBVersionNumber;
FOUNDATION_EXPORT const unsigned char FMDBVersionString[];
#import "FMDatabase.h"
#import "FMResultSet.h"
#import "FMDatabaseAdditions.h"
#import "FMDatabaseQueue.h"
#import "FMDatabasePool.h"

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,243 @@
//
// FMDatabaseAdditions.h
// fmdb
//
// Created by August Mueller on 10/30/05.
// Copyright 2005 Flying Meat Inc.. All rights reserved.
//
#import <Foundation/Foundation.h>
#import "FMDatabase.h"
NS_ASSUME_NONNULL_BEGIN
/** Category of additions for @c FMDatabase class.
See also
- @c FMDatabase
*/
@interface FMDatabase (FMDatabaseAdditions)
///----------------------------------------
/// @name Return results of SQL to variable
///----------------------------------------
/** Return @c int value for query
@param query The SQL query to be performed, followed by a list of parameters that will be bound to the `?` placeholders in the SQL query.
@return @c int value.
@note This is not available from Swift.
*/
- (int)intForQuery:(NSString*)query, ...;
/** Return @c long value for query
@param query The SQL query to be performed, followed by a list of parameters that will be bound to the `?` placeholders in the SQL query.
@return @c long value.
@note This is not available from Swift.
*/
- (long)longForQuery:(NSString*)query, ...;
/** Return `BOOL` value for query
@param query The SQL query to be performed, followed by a list of parameters that will be bound to the `?` placeholders in the SQL query.
@return `BOOL` value.
@note This is not available from Swift.
*/
- (BOOL)boolForQuery:(NSString*)query, ...;
/** Return `double` value for query
@param query The SQL query to be performed, followed by a list of parameters that will be bound to the `?` placeholders in the SQL query.
@return `double` value.
@note This is not available from Swift.
*/
- (double)doubleForQuery:(NSString*)query, ...;
/** Return @c NSString value for query
@param query The SQL query to be performed, followed by a list of parameters that will be bound to the `?` placeholders in the SQL query.
@return @c NSString value.
@note This is not available from Swift.
*/
- (NSString * _Nullable)stringForQuery:(NSString*)query, ...;
/** Return @c NSData value for query
@param query The SQL query to be performed, followed by a list of parameters that will be bound to the `?` placeholders in the SQL query.
@return @c NSData value.
@note This is not available from Swift.
*/
- (NSData * _Nullable)dataForQuery:(NSString*)query, ...;
/** Return @c NSDate value for query
@param query The SQL query to be performed, followed by a list of parameters that will be bound to the `?` placeholders in the SQL query.
@return @c NSDate value.
@note This is not available from Swift.
*/
- (NSDate * _Nullable)dateForQuery:(NSString*)query, ...;
// Notice that there's no dataNoCopyForQuery:.
// That would be a bad idea, because we close out the result set, and then what
// happens to the data that we just didn't copy? Who knows, not I.
///--------------------------------
/// @name Schema related operations
///--------------------------------
/** Does table exist in database?
@param tableName The name of the table being looked for.
@return @c YES if table found; @c NO if not found.
*/
- (BOOL)tableExists:(NSString*)tableName;
/** The schema of the database.
This will be the schema for the entire database. For each entity, each row of the result set will include the following fields:
- `type` - The type of entity (e.g. table, index, view, or trigger)
- `name` - The name of the object
- `tbl_name` - The name of the table to which the object references
- `rootpage` - The page number of the root b-tree page for tables and indices
- `sql` - The SQL that created the entity
@return `FMResultSet` of schema; @c nil on error.
@see [SQLite File Format](https://sqlite.org/fileformat.html)
*/
- (FMResultSet * _Nullable)getSchema;
/** The schema of the database.
This will be the schema for a particular table as report by SQLite `PRAGMA`, for example:
PRAGMA table_info('employees')
This will report:
- `cid` - The column ID number
- `name` - The name of the column
- `type` - The data type specified for the column
- `notnull` - whether the field is defined as NOT NULL (i.e. values required)
- `dflt_value` - The default value for the column
- `pk` - Whether the field is part of the primary key of the table
@param tableName The name of the table for whom the schema will be returned.
@return `FMResultSet` of schema; @c nil on error.
@see [table_info](https://sqlite.org/pragma.html#pragma_table_info)
*/
- (FMResultSet * _Nullable)getTableSchema:(NSString*)tableName;
/** Test to see if particular column exists for particular table in database
@param columnName The name of the column.
@param tableName The name of the table.
@return @c YES if column exists in table in question; @c NO otherwise.
*/
- (BOOL)columnExists:(NSString*)columnName inTableWithName:(NSString*)tableName;
/** Test to see if particular column exists for particular table in database
@param columnName The name of the column.
@param tableName The name of the table.
@return @c YES if column exists in table in question; @c NO otherwise.
@see columnExists:inTableWithName:
@warning Deprecated - use `<columnExists:inTableWithName:>` instead.
*/
- (BOOL)columnExists:(NSString*)tableName columnName:(NSString*)columnName __deprecated_msg("Use columnExists:inTableWithName: instead");
/** Validate SQL statement
This validates SQL statement by performing `sqlite3_prepare_v2`, but not returning the results, but instead immediately calling `sqlite3_finalize`.
@param sql The SQL statement being validated.
@param error This is a pointer to a @c NSError object that will receive the autoreleased @c NSError object if there was any error. If this is @c nil , no @c NSError result will be returned.
@return @c YES if validation succeeded without incident; @c NO otherwise.
*/
- (BOOL)validateSQL:(NSString*)sql error:(NSError * _Nullable __autoreleasing *)error;
///-----------------------------------
/// @name Application identifier tasks
///-----------------------------------
/** Retrieve application ID
@return The `uint32_t` numeric value of the application ID.
@see setApplicationID:
*/
@property (nonatomic) uint32_t applicationID;
#if TARGET_OS_MAC && !TARGET_OS_IPHONE
/** Retrieve application ID string
@see setApplicationIDString:
*/
@property (nonatomic, retain) NSString *applicationIDString;
#endif
///-----------------------------------
/// @name user version identifier tasks
///-----------------------------------
/** Retrieve user version
@see setUserVersion:
*/
@property (nonatomic) uint32_t userVersion;
@end
NS_ASSUME_NONNULL_END

View File

@ -0,0 +1,280 @@
//
// FMDatabasePool.h
// fmdb
//
// Created by August Mueller on 6/22/11.
// Copyright 2011 Flying Meat Inc. All rights reserved.
//
#import <Foundation/Foundation.h>
NS_ASSUME_NONNULL_BEGIN
@class FMDatabase;
/** Pool of @c FMDatabase objects.
See also
- @c FMDatabaseQueue
- @c FMDatabase
@warning Before using @c FMDatabasePool , please consider using @c FMDatabaseQueue instead.
If you really really really know what you're doing and @c FMDatabasePool is what
you really really need (ie, you're using a read only database), OK you can use
it. But just be careful not to deadlock!
For an example on deadlocking, search for:
`ONLY_USE_THE_POOL_IF_YOU_ARE_DOING_READS_OTHERWISE_YOULL_DEADLOCK_USE_FMDATABASEQUEUE_INSTEAD`
in the main.m file.
*/
@interface FMDatabasePool : NSObject
/** Database path */
@property (atomic, copy, nullable) NSString *path;
/** Delegate object */
@property (atomic, unsafe_unretained, nullable) id delegate;
/** Maximum number of databases to create */
@property (atomic, assign) NSUInteger maximumNumberOfDatabasesToCreate;
/** Open flags */
@property (atomic, readonly) int openFlags;
/** Custom virtual file system name */
@property (atomic, copy, nullable) NSString *vfsName;
///---------------------
/// @name Initialization
///---------------------
/** Create pool using path.
@param aPath The file path of the database.
@return The @c FMDatabasePool object. @c nil on error.
*/
+ (instancetype)databasePoolWithPath:(NSString * _Nullable)aPath;
/** Create pool using file URL.
@param url The file @c NSURL of the database.
@return The @c FMDatabasePool object. @c nil on error.
*/
+ (instancetype)databasePoolWithURL:(NSURL * _Nullable)url;
/** Create pool using path and specified flags
@param aPath The file path of the database.
@param openFlags Flags passed to the openWithFlags method of the database.
@return The @c FMDatabasePool object. @c nil on error.
*/
+ (instancetype)databasePoolWithPath:(NSString * _Nullable)aPath flags:(int)openFlags;
/** Create pool using file URL and specified flags
@param url The file @c NSURL of the database.
@param openFlags Flags passed to the openWithFlags method of the database.
@return The @c FMDatabasePool object. @c nil on error.
*/
+ (instancetype)databasePoolWithURL:(NSURL * _Nullable)url flags:(int)openFlags;
/** Create pool using path.
@param aPath The file path of the database.
@return The @c FMDatabasePool object. @c nil on error.
*/
- (instancetype)initWithPath:(NSString * _Nullable)aPath;
/** Create pool using file URL.
@param url The file `NSURL of the database.
@return The @c FMDatabasePool object. @c nil on error.
*/
- (instancetype)initWithURL:(NSURL * _Nullable)url;
/** Create pool using path and specified flags.
@param aPath The file path of the database.
@param openFlags Flags passed to the openWithFlags method of the database
@return The @c FMDatabasePool object. @c nil on error.
*/
- (instancetype)initWithPath:(NSString * _Nullable)aPath flags:(int)openFlags;
/** Create pool using file URL and specified flags.
@param url The file @c NSURL of the database.
@param openFlags Flags passed to the openWithFlags method of the database
@return The @c FMDatabasePool object. @c nil on error.
*/
- (instancetype)initWithURL:(NSURL * _Nullable)url flags:(int)openFlags;
/** Create pool using path and specified flags.
@param aPath The file path of the database.
@param openFlags Flags passed to the openWithFlags method of the database
@param vfsName The name of a custom virtual file system
@return The @c FMDatabasePool object. @c nil on error.
*/
- (instancetype)initWithPath:(NSString * _Nullable)aPath flags:(int)openFlags vfs:(NSString * _Nullable)vfsName;
/** Create pool using file URL and specified flags.
@param url The file @c NSURL of the database.
@param openFlags Flags passed to the openWithFlags method of the database
@param vfsName The name of a custom virtual file system
@return The @c FMDatabasePool object. @c nil on error.
*/
- (instancetype)initWithURL:(NSURL * _Nullable)url flags:(int)openFlags vfs:(NSString * _Nullable)vfsName;
/** Returns the Class of 'FMDatabase' subclass, that will be used to instantiate database object.
Subclasses can override this method to return specified Class of 'FMDatabase' subclass.
@return The Class of 'FMDatabase' subclass, that will be used to instantiate database object.
*/
+ (Class)databaseClass;
///------------------------------------------------
/// @name Keeping track of checked in/out databases
///------------------------------------------------
/** Number of checked-in databases in pool
*/
@property (nonatomic, readonly) NSUInteger countOfCheckedInDatabases;
/** Number of checked-out databases in pool
*/
@property (nonatomic, readonly) NSUInteger countOfCheckedOutDatabases;
/** Total number of databases in pool
*/
@property (nonatomic, readonly) NSUInteger countOfOpenDatabases;
/** Release all databases in pool */
- (void)releaseAllDatabases;
///------------------------------------------
/// @name Perform database operations in pool
///------------------------------------------
/** Synchronously perform database operations in pool.
@param block The code to be run on the @c FMDatabasePool pool.
*/
- (void)inDatabase:(__attribute__((noescape)) void (^)(FMDatabase *db))block;
/** Synchronously perform database operations in pool using transaction.
@param block The code to be run on the @c FMDatabasePool pool.
@warning Unlike SQLite's `BEGIN TRANSACTION`, this method currently performs
an exclusive transaction, not a deferred transaction. This behavior
is likely to change in future versions of FMDB, whereby this method
will likely eventually adopt standard SQLite behavior and perform
deferred transactions. If you really need exclusive tranaction, it is
recommended that you use `inExclusiveTransaction`, instead, not only
to make your intent explicit, but also to future-proof your code.
*/
- (void)inTransaction:(__attribute__((noescape)) void (^)(FMDatabase *db, BOOL *rollback))block;
/** Synchronously perform database operations in pool using exclusive transaction.
@param block The code to be run on the @c FMDatabasePool pool.
*/
- (void)inExclusiveTransaction:(__attribute__((noescape)) void (^)(FMDatabase *db, BOOL *rollback))block;
/** Synchronously perform database operations in pool using deferred transaction.
@param block The code to be run on the @c FMDatabasePool pool.
*/
- (void)inDeferredTransaction:(__attribute__((noescape)) void (^)(FMDatabase *db, BOOL *rollback))block;
/** Synchronously perform database operations on queue, using immediate transactions.
@param block The code to be run on the queue of @c FMDatabaseQueue
*/
- (void)inImmediateTransaction:(__attribute__((noescape)) void (^)(FMDatabase *db, BOOL *rollback))block;
/** Synchronously perform database operations in pool using save point.
@param block The code to be run on the @c FMDatabasePool pool.
@return @c NSError object if error; @c nil if successful.
@warning You can not nest these, since calling it will pull another database out of the pool and you'll get a deadlock. If you need to nest, use @c startSavePointWithName:error: instead.
*/
- (NSError * _Nullable)inSavePoint:(__attribute__((noescape)) void (^)(FMDatabase *db, BOOL *rollback))block;
@end
/** FMDatabasePool delegate category
This is a category that defines the protocol for the FMDatabasePool delegate
*/
@interface NSObject (FMDatabasePoolDelegate)
/** Asks the delegate whether database should be added to the pool.
@param pool The @c FMDatabasePool object.
@param database The @c FMDatabase object.
@return @c YES if it should add database to pool; @c NO if not.
*/
- (BOOL)databasePool:(FMDatabasePool*)pool shouldAddDatabaseToPool:(FMDatabase*)database;
/** Tells the delegate that database was added to the pool.
@param pool The @c FMDatabasePool object.
@param database The @c FMDatabase object.
*/
- (void)databasePool:(FMDatabasePool*)pool didAddDatabase:(FMDatabase*)database;
@end
NS_ASSUME_NONNULL_END

View File

@ -0,0 +1,295 @@
//
// FMDatabaseQueue.h
// fmdb
//
// Created by August Mueller on 6/22/11.
// Copyright 2011 Flying Meat Inc. All rights reserved.
//
#import <Foundation/Foundation.h>
#import "FMDatabase.h"
NS_ASSUME_NONNULL_BEGIN
/** To perform queries and updates on multiple threads, you'll want to use @c FMDatabaseQueue .
Using a single instance of @c FMDatabase from multiple threads at once is a bad idea. It has always been OK to make a @c FMDatabase object *per thread*. Just don't share a single instance across threads, and definitely not across multiple threads at the same time.
Instead, use @c FMDatabaseQueue . Here's how to use it:
First, make your queue.
@code
FMDatabaseQueue *queue = [FMDatabaseQueue databaseQueueWithPath:aPath];
@endcode
Then use it like so:
@code
[queue inDatabase:^(FMDatabase *db) {
[db executeUpdate:@"INSERT INTO myTable VALUES (?)", [NSNumber numberWithInt:1]];
[db executeUpdate:@"INSERT INTO myTable VALUES (?)", [NSNumber numberWithInt:2]];
[db executeUpdate:@"INSERT INTO myTable VALUES (?)", [NSNumber numberWithInt:3]];
FMResultSet *rs = [db executeQuery:@"select * from foo"];
while ([rs next]) {
//…
}
}];
@endcode
An easy way to wrap things up in a transaction can be done like this:
@code
[queue inTransaction:^(FMDatabase *db, BOOL *rollback) {
[db executeUpdate:@"INSERT INTO myTable VALUES (?)", [NSNumber numberWithInt:1]];
[db executeUpdate:@"INSERT INTO myTable VALUES (?)", [NSNumber numberWithInt:2]];
[db executeUpdate:@"INSERT INTO myTable VALUES (?)", [NSNumber numberWithInt:3]];
// if (whoopsSomethingWrongHappened) {
// *rollback = YES;
// return;
// }
// etc…
[db executeUpdate:@"INSERT INTO myTable VALUES (?)", [NSNumber numberWithInt:4]];
}];
@endcode
@c FMDatabaseQueue will run the blocks on a serialized queue (hence the name of the class). So if you call @c FMDatabaseQueue 's methods from multiple threads at the same time, they will be executed in the order they are received. This way queries and updates won't step on each other's toes, and every one is happy.
@warning Do not instantiate a single @c FMDatabase object and use it across multiple threads. Use @c FMDatabaseQueue instead.
@warning The calls to @c FMDatabaseQueue 's methods are blocking. So even though you are passing along blocks, they will **not** be run on another thread.
@sa FMDatabase
*/
@interface FMDatabaseQueue : NSObject
/** Path of database */
@property (atomic, retain, nullable) NSString *path;
/** Open flags */
@property (atomic, readonly) int openFlags;
/** Custom virtual file system name */
@property (atomic, copy, nullable) NSString *vfsName;
///----------------------------------------------------
/// @name Initialization, opening, and closing of queue
///----------------------------------------------------
/** Create queue using path.
@param aPath The file path of the database.
@return The @c FMDatabaseQueue object. @c nil on error.
*/
+ (nullable instancetype)databaseQueueWithPath:(NSString * _Nullable)aPath;
/** Create queue using file URL.
@param url The file @c NSURL of the database.
@return The @c FMDatabaseQueue object. @c nil on error.
*/
+ (nullable instancetype)databaseQueueWithURL:(NSURL * _Nullable)url;
/** Create queue using path and specified flags.
@param aPath The file path of the database.
@param openFlags Flags passed to the openWithFlags method of the database.
@return The @c FMDatabaseQueue object. @c nil on error.
*/
+ (nullable instancetype)databaseQueueWithPath:(NSString * _Nullable)aPath flags:(int)openFlags;
/** Create queue using file URL and specified flags.
@param url The file @c NSURL of the database.
@param openFlags Flags passed to the openWithFlags method of the database.
@return The @c FMDatabaseQueue object. @c nil on error.
*/
+ (nullable instancetype)databaseQueueWithURL:(NSURL * _Nullable)url flags:(int)openFlags;
/** Create queue using path.
@param aPath The file path of the database.
@return The @c FMDatabaseQueue object. @c nil on error.
*/
- (nullable instancetype)initWithPath:(NSString * _Nullable)aPath;
/** Create queue using file URL.
@param url The file `NSURL of the database.
@return The @c FMDatabaseQueue object. @c nil on error.
*/
- (nullable instancetype)initWithURL:(NSURL * _Nullable)url;
/** Create queue using path and specified flags.
@param aPath The file path of the database.
@param openFlags Flags passed to the openWithFlags method of the database.
@return The @c FMDatabaseQueue object. @c nil on error.
*/
- (nullable instancetype)initWithPath:(NSString * _Nullable)aPath flags:(int)openFlags;
/** Create queue using file URL and specified flags.
@param url The file path of the database.
@param openFlags Flags passed to the openWithFlags method of the database.
@return The @c FMDatabaseQueue object. @c nil on error.
*/
- (nullable instancetype)initWithURL:(NSURL * _Nullable)url flags:(int)openFlags;
/** Create queue using path and specified flags.
@param aPath The file path of the database.
@param openFlags Flags passed to the openWithFlags method of the database
@param vfsName The name of a custom virtual file system
@return The @c FMDatabaseQueue object. @c nil on error.
*/
- (nullable instancetype)initWithPath:(NSString * _Nullable)aPath flags:(int)openFlags vfs:(NSString * _Nullable)vfsName;
/** Create queue using file URL and specified flags.
@param url The file `NSURL of the database.
@param openFlags Flags passed to the openWithFlags method of the database
@param vfsName The name of a custom virtual file system
@return The @c FMDatabaseQueue object. @c nil on error.
*/
- (nullable instancetype)initWithURL:(NSURL * _Nullable)url flags:(int)openFlags vfs:(NSString * _Nullable)vfsName;
/** Returns the Class of 'FMDatabase' subclass, that will be used to instantiate database object.
Subclasses can override this method to return specified Class of 'FMDatabase' subclass.
@return The Class of 'FMDatabase' subclass, that will be used to instantiate database object.
*/
+ (Class)databaseClass;
/** Close database used by queue. */
- (void)close;
/** Interupt pending database operation. */
- (void)interrupt;
///-----------------------------------------------
/// @name Dispatching database operations to queue
///-----------------------------------------------
/** Synchronously perform database operations on queue.
@param block The code to be run on the queue of @c FMDatabaseQueue
*/
- (void)inDatabase:(__attribute__((noescape)) void (^)(FMDatabase *db))block;
/** Synchronously perform database operations on queue, using transactions.
@param block The code to be run on the queue of @c FMDatabaseQueue
@warning Unlike SQLite's `BEGIN TRANSACTION`, this method currently performs
an exclusive transaction, not a deferred transaction. This behavior
is likely to change in future versions of FMDB, whereby this method
will likely eventually adopt standard SQLite behavior and perform
deferred transactions. If you really need exclusive tranaction, it is
recommended that you use `inExclusiveTransaction`, instead, not only
to make your intent explicit, but also to future-proof your code.
*/
- (void)inTransaction:(__attribute__((noescape)) void (^)(FMDatabase *db, BOOL *rollback))block;
/** Synchronously perform database operations on queue, using deferred transactions.
@param block The code to be run on the queue of @c FMDatabaseQueue
*/
- (void)inDeferredTransaction:(__attribute__((noescape)) void (^)(FMDatabase *db, BOOL *rollback))block;
/** Synchronously perform database operations on queue, using exclusive transactions.
@param block The code to be run on the queue of @c FMDatabaseQueue
*/
- (void)inExclusiveTransaction:(__attribute__((noescape)) void (^)(FMDatabase *db, BOOL *rollback))block;
/** Synchronously perform database operations on queue, using immediate transactions.
@param block The code to be run on the queue of @c FMDatabaseQueue
*/
- (void)inImmediateTransaction:(__attribute__((noescape)) void (^)(FMDatabase *db, BOOL *rollback))block;
///-----------------------------------------------
/// @name Dispatching database operations to queue
///-----------------------------------------------
/** Synchronously perform database operations using save point.
@param block The code to be run on the queue of @c FMDatabaseQueue
*/
// NOTE: you can not nest these, since calling it will pull another database out of the pool and you'll get a deadlock.
// If you need to nest, use FMDatabase's startSavePointWithName:error: instead.
- (NSError * _Nullable)inSavePoint:(__attribute__((noescape)) void (^)(FMDatabase *db, BOOL *rollback))block;
///-----------------
/// @name Checkpoint
///-----------------
/** Performs a WAL checkpoint
@param checkpointMode The checkpoint mode for sqlite3_wal_checkpoint_v2
@param error The NSError corresponding to the error, if any.
@return YES on success, otherwise NO.
*/
- (BOOL)checkpoint:(FMDBCheckpointMode)checkpointMode error:(NSError * _Nullable *)error;
/** Performs a WAL checkpoint
@param checkpointMode The checkpoint mode for sqlite3_wal_checkpoint_v2
@param name The db name for sqlite3_wal_checkpoint_v2
@param error The NSError corresponding to the error, if any.
@return YES on success, otherwise NO.
*/
- (BOOL)checkpoint:(FMDBCheckpointMode)checkpointMode name:(NSString * _Nullable)name error:(NSError * _Nullable *)error;
/** Performs a WAL checkpoint
@param checkpointMode The checkpoint mode for sqlite3_wal_checkpoint_v2
@param name The db name for sqlite3_wal_checkpoint_v2
@param error The NSError corresponding to the error, if any.
@param logFrameCount If not NULL, then this is set to the total number of frames in the log file or to -1 if the checkpoint could not run because of an error or because the database is not in WAL mode.
@param checkpointCount If not NULL, then this is set to the total number of checkpointed frames in the log file (including any that were already checkpointed before the function was called) or to -1 if the checkpoint could not run due to an error or because the database is not in WAL mode.
@return YES on success, otherwise NO.
*/
- (BOOL)checkpoint:(FMDBCheckpointMode)checkpointMode name:(NSString * _Nullable)name logFrameCount:(int * _Nullable)logFrameCount checkpointCount:(int * _Nullable)checkpointCount error:(NSError * _Nullable *)error;
@end
NS_ASSUME_NONNULL_END

View File

@ -0,0 +1,538 @@
#import <Foundation/Foundation.h>
NS_ASSUME_NONNULL_BEGIN
#ifndef __has_feature // Optional.
#define __has_feature(x) 0 // Compatibility with non-clang compilers.
#endif
#ifndef NS_RETURNS_NOT_RETAINED
#if __has_feature(attribute_ns_returns_not_retained)
#define NS_RETURNS_NOT_RETAINED __attribute__((ns_returns_not_retained))
#else
#define NS_RETURNS_NOT_RETAINED
#endif
#endif
@class FMDatabase;
@class FMStatement;
/** Types for columns in a result set.
*/
typedef NS_ENUM(int, SqliteValueType) {
SqliteValueTypeInteger = 1,
SqliteValueTypeFloat = 2,
SqliteValueTypeText = 3,
SqliteValueTypeBlob = 4,
SqliteValueTypeNull = 5
};
/** Represents the results of executing a query on an @c FMDatabase .
See also
- @c FMDatabase
*/
@interface FMResultSet : NSObject
@property (nonatomic, retain, nullable) FMDatabase *parentDB;
///-----------------
/// @name Properties
///-----------------
/** Executed query */
@property (atomic, retain, nullable) NSString *query;
/** `NSMutableDictionary` mapping column names to numeric index */
@property (readonly) NSMutableDictionary *columnNameToIndexMap;
/** `FMStatement` used by result set. */
@property (atomic, retain, nullable) FMStatement *statement;
///------------------------------------
/// @name Creating and closing a result set
///------------------------------------
/** Close result set */
- (void)close;
///---------------------------------------
/// @name Iterating through the result set
///---------------------------------------
/** Retrieve next row for result set.
You must always invoke `next` or `nextWithError` before attempting to access the values returned in a query, even if you're only expecting one.
@return @c YES if row successfully retrieved; @c NO if end of result set reached
@see hasAnotherRow
*/
- (BOOL)next;
/** Retrieve next row for result set.
You must always invoke `next` or `nextWithError` before attempting to access the values returned in a query, even if you're only expecting one.
@param outErr A 'NSError' object to receive any error object (if any).
@return 'YES' if row successfully retrieved; 'NO' if end of result set reached
@see hasAnotherRow
*/
- (BOOL)nextWithError:(NSError * _Nullable __autoreleasing *)outErr;
/** Perform SQL statement.
@return 'YES' if successful; 'NO' if not.
@see hasAnotherRow
*/
- (BOOL)step;
/** Perform SQL statement.
@param outErr A 'NSError' object to receive any error object (if any).
@return 'YES' if successful; 'NO' if not.
@see hasAnotherRow
*/
- (BOOL)stepWithError:(NSError * _Nullable __autoreleasing *)outErr;
/** Did the last call to `<next>` succeed in retrieving another row?
@return 'YES' if there is another row; 'NO' if not.
@see next
@warning The `hasAnotherRow` method must follow a call to `<next>`. If the previous database interaction was something other than a call to `next`, then this method may return @c NO, whether there is another row of data or not.
*/
- (BOOL)hasAnotherRow;
///---------------------------------------------
/// @name Retrieving information from result set
///---------------------------------------------
/** How many columns in result set
@return Integer value of the number of columns.
*/
@property (nonatomic, readonly) int columnCount;
/** Column index for column name
@param columnName @c NSString value of the name of the column.
@return Zero-based index for column.
*/
- (int)columnIndexForName:(NSString*)columnName;
/** Column name for column index
@param columnIdx Zero-based index for column.
@return columnName @c NSString value of the name of the column.
*/
- (NSString * _Nullable)columnNameForIndex:(int)columnIdx;
/** Result set integer value for column.
@param columnName @c NSString value of the name of the column.
@return @c int value of the result set's column.
*/
- (int)intForColumn:(NSString*)columnName;
/** Result set integer value for column.
@param columnIdx Zero-based index for column.
@return @c int value of the result set's column.
*/
- (int)intForColumnIndex:(int)columnIdx;
/** Result set @c long value for column.
@param columnName @c NSString value of the name of the column.
@return @c long value of the result set's column.
*/
- (long)longForColumn:(NSString*)columnName;
/** Result set long value for column.
@param columnIdx Zero-based index for column.
@return @c long value of the result set's column.
*/
- (long)longForColumnIndex:(int)columnIdx;
/** Result set `long long int` value for column.
@param columnName @c NSString value of the name of the column.
@return `long long int` value of the result set's column.
*/
- (long long int)longLongIntForColumn:(NSString*)columnName;
/** Result set `long long int` value for column.
@param columnIdx Zero-based index for column.
@return `long long int` value of the result set's column.
*/
- (long long int)longLongIntForColumnIndex:(int)columnIdx;
/** Result set `unsigned long long int` value for column.
@param columnName @c NSString value of the name of the column.
@return `unsigned long long int` value of the result set's column.
*/
- (unsigned long long int)unsignedLongLongIntForColumn:(NSString*)columnName;
/** Result set `unsigned long long int` value for column.
@param columnIdx Zero-based index for column.
@return `unsigned long long int` value of the result set's column.
*/
- (unsigned long long int)unsignedLongLongIntForColumnIndex:(int)columnIdx;
/** Result set `BOOL` value for column.
@param columnName @c NSString value of the name of the column.
@return `BOOL` value of the result set's column.
*/
- (BOOL)boolForColumn:(NSString*)columnName;
/** Result set `BOOL` value for column.
@param columnIdx Zero-based index for column.
@return `BOOL` value of the result set's column.
*/
- (BOOL)boolForColumnIndex:(int)columnIdx;
/** Result set `double` value for column.
@param columnName @c NSString value of the name of the column.
@return `double` value of the result set's column.
*/
- (double)doubleForColumn:(NSString*)columnName;
/** Result set `double` value for column.
@param columnIdx Zero-based index for column.
@return `double` value of the result set's column.
*/
- (double)doubleForColumnIndex:(int)columnIdx;
/** Result set @c NSString value for column.
@param columnName @c NSString value of the name of the column.
@return String value of the result set's column.
*/
- (NSString * _Nullable)stringForColumn:(NSString*)columnName;
/** Result set @c NSString value for column.
@param columnIdx Zero-based index for column.
@return String value of the result set's column.
*/
- (NSString * _Nullable)stringForColumnIndex:(int)columnIdx;
/** Result set @c NSDate value for column.
@param columnName @c NSString value of the name of the column.
@return Date value of the result set's column.
*/
- (NSDate * _Nullable)dateForColumn:(NSString*)columnName;
/** Result set @c NSDate value for column.
@param columnIdx Zero-based index for column.
@return Date value of the result set's column.
*/
- (NSDate * _Nullable)dateForColumnIndex:(int)columnIdx;
/** Result set @c NSData value for column.
This is useful when storing binary data in table (such as image or the like).
@param columnName @c NSString value of the name of the column.
@return Data value of the result set's column.
*/
- (NSData * _Nullable)dataForColumn:(NSString*)columnName;
/** Result set @c NSData value for column.
@param columnIdx Zero-based index for column.
@warning For zero length BLOBs, this will return `nil`. Use `typeForColumn` to determine whether this was really a zero
length BLOB or `NULL`.
@return Data value of the result set's column.
*/
- (NSData * _Nullable)dataForColumnIndex:(int)columnIdx;
/** Result set `(const unsigned char *)` value for column.
@param columnName @c NSString value of the name of the column.
@warning For zero length BLOBs, this will return `nil`. Use `typeForColumnIndex` to determine whether this was really a zero
length BLOB or `NULL`.
@return `(const unsigned char *)` value of the result set's column.
*/
- (const unsigned char * _Nullable)UTF8StringForColumn:(NSString*)columnName;
- (const unsigned char * _Nullable)UTF8StringForColumnName:(NSString*)columnName __deprecated_msg("Use UTF8StringForColumn instead");
/** Result set `(const unsigned char *)` value for column.
@param columnIdx Zero-based index for column.
@return `(const unsigned char *)` value of the result set's column.
*/
- (const unsigned char * _Nullable)UTF8StringForColumnIndex:(int)columnIdx;
/** Result set object for column.
@param columnName Name of the column.
@return Either @c NSNumber , @c NSString , @c NSData , or @c NSNull . If the column was @c NULL , this returns `[NSNull null]` object.
@see objectForKeyedSubscript:
*/
- (id _Nullable)objectForColumn:(NSString*)columnName;
- (id _Nullable)objectForColumnName:(NSString*)columnName __deprecated_msg("Use objectForColumn instead");
/** Column type by column name.
@param columnName Name of the column.
@return The `SqliteValueType` of the value in this column.
*/
- (SqliteValueType)typeForColumn:(NSString*)columnName;
/** Column type by column index.
@param columnIdx Index of the column.
@return The `SqliteValueType` of the value in this column.
*/
- (SqliteValueType)typeForColumnIndex:(int)columnIdx;
/** Result set object for column.
@param columnIdx Zero-based index for column.
@return Either @c NSNumber , @c NSString , @c NSData , or @c NSNull . If the column was @c NULL , this returns `[NSNull null]` object.
@see objectAtIndexedSubscript:
*/
- (id _Nullable)objectForColumnIndex:(int)columnIdx;
/** Result set object for column.
This method allows the use of the "boxed" syntax supported in Modern Objective-C. For example, by defining this method, the following syntax is now supported:
@code
id result = rs[@"employee_name"];
@endcode
This simplified syntax is equivalent to calling:
@code
id result = [rs objectForKeyedSubscript:@"employee_name"];
@endcode
which is, it turns out, equivalent to calling:
@code
id result = [rs objectForColumnName:@"employee_name"];
@endcode
@param columnName @c NSString value of the name of the column.
@return Either @c NSNumber , @c NSString , @c NSData , or @c NSNull . If the column was @c NULL , this returns `[NSNull null]` object.
*/
- (id _Nullable)objectForKeyedSubscript:(NSString *)columnName;
/** Result set object for column.
This method allows the use of the "boxed" syntax supported in Modern Objective-C. For example, by defining this method, the following syntax is now supported:
@code
id result = rs[0];
@endcode
This simplified syntax is equivalent to calling:
@code
id result = [rs objectForKeyedSubscript:0];
@endcode
which is, it turns out, equivalent to calling:
@code
id result = [rs objectForColumnName:0];
@endcode
@param columnIdx Zero-based index for column.
@return Either @c NSNumber , @c NSString , @c NSData , or @c NSNull . If the column was @c NULL , this returns `[NSNull null]` object.
*/
- (id _Nullable)objectAtIndexedSubscript:(int)columnIdx;
/** Result set @c NSData value for column.
@param columnName @c NSString value of the name of the column.
@return Data value of the result set's column.
@warning If you are going to use this data after you iterate over the next row, or after you close the
result set, make sure to make a copy of the data first (or just use `<dataForColumn:>`/`<dataForColumnIndex:>`)
If you don't, you're going to be in a world of hurt when you try and use the data.
*/
- (NSData * _Nullable)dataNoCopyForColumn:(NSString *)columnName NS_RETURNS_NOT_RETAINED;
/** Result set @c NSData value for column.
@param columnIdx Zero-based index for column.
@return Data value of the result set's column.
@warning If you are going to use this data after you iterate over the next row, or after you close the
result set, make sure to make a copy of the data first (or just use `<dataForColumn:>`/`<dataForColumnIndex:>`)
If you don't, you're going to be in a world of hurt when you try and use the data.
*/
- (NSData * _Nullable)dataNoCopyForColumnIndex:(int)columnIdx NS_RETURNS_NOT_RETAINED;
/** Is the column @c NULL ?
@param columnIdx Zero-based index for column.
@return @c YES if column is @c NULL ; @c NO if not @c NULL .
*/
- (BOOL)columnIndexIsNull:(int)columnIdx;
/** Is the column @c NULL ?
@param columnName @c NSString value of the name of the column.
@return @c YES if column is @c NULL ; @c NO if not @c NULL .
*/
- (BOOL)columnIsNull:(NSString*)columnName;
/** Returns a dictionary of the row results mapped to case sensitive keys of the column names.
@warning The keys to the dictionary are case sensitive of the column names.
*/
@property (nonatomic, readonly, nullable) NSDictionary *resultDictionary;
/** Returns a dictionary of the row results
@see resultDictionary
@warning **Deprecated**: Please use `<resultDictionary>` instead. Also, beware that `<resultDictionary>` is case sensitive!
*/
- (NSDictionary * _Nullable)resultDict __deprecated_msg("Use resultDictionary instead");
///-----------------------------
/// @name Key value coding magic
///-----------------------------
/** Performs `setValue` to yield support for key value observing.
@param object The object for which the values will be set. This is the key-value-coding compliant object that you might, for example, observe.
*/
- (void)kvcMagic:(id)object;
///-----------------------------
/// @name Binding values
///-----------------------------
/// Bind array of values to prepared statement.
///
/// @param array Array of values to bind to SQL statement.
- (BOOL)bindWithArray:(NSArray*)array;
/// Bind dictionary of values to prepared statement.
///
/// @param dictionary Dictionary of values to bind to SQL statement.
- (BOOL)bindWithDictionary:(NSDictionary *)dictionary;
@end
NS_ASSUME_NONNULL_END

View File

@ -0,0 +1,6 @@
framework module FMDB {
umbrella header "FMDB-umbrella.h"
export *
module * { export * }
}

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