Compare commits
14 commits
main
...
isovel/my-
Author | SHA1 | Date | |
---|---|---|---|
|
e0dabd8557 | ||
|
3948757556 | ||
|
a2c58359b4 | ||
|
68c6bc04a6 | ||
|
6413c2930f | ||
|
007ec60235 | ||
|
721ba5a268 | ||
|
392bae826a | ||
|
ae38c80f1e | ||
|
67bf832470 | ||
|
7ecc3140c6 | ||
|
77d1ddf458 | ||
|
bcff2214aa | ||
|
85a3d65d23 |
3
.gitignore
vendored
|
@ -24,6 +24,7 @@ migrate_working_dir/
|
|||
# Flutter/Dart/Pub related
|
||||
**/doc/api/
|
||||
**/ios/Flutter/.last_build_id
|
||||
**/ios/build/
|
||||
.dart_tool/
|
||||
.flutter-plugins
|
||||
.flutter-plugins-dependencies
|
||||
|
@ -43,5 +44,3 @@ app.*.map.json
|
|||
/android/app/profile
|
||||
/android/app/release
|
||||
/android/key.properties
|
||||
|
||||
# NEVER STORE ANY KEY OR API KEYS WHEN COMMITING CODE!!
|
||||
|
|
|
@ -1,15 +0,0 @@
|
|||
when:
|
||||
- event: push
|
||||
branch: dev
|
||||
|
||||
steps:
|
||||
- name: build
|
||||
image: instrumentisto/flutter
|
||||
commands:
|
||||
- cd OpenContacts
|
||||
- echo "Starting to build..."
|
||||
- flutter build --debug
|
||||
- name: Deploy
|
||||
image: debian
|
||||
commands:
|
||||
- echo "Hello World"
|
18
README.md
|
@ -1,15 +1,10 @@
|
|||
<img src="https://raw.githubusercontent.com/Mrdabup/OpenContacts/refs/heads/dev/assets/images/logo512.png" width="200"/>
|
||||
<img src="https://github.com/Nutcake/ReCon/raw/main/assets/images/logo512.png" width="200"/>
|
||||
|
||||
# OpenContacts
|
||||
# ReCon
|
||||
|
||||
A Resonite Contacts App, based on Nutcake's Recon.
|
||||
|
||||
[Get the latest version of OpenContacts here](https://git.mrdab.vore.media/ThatOneJackalGuy/OpenContacts/releases)
|
||||
|
||||
[Available on github too!](https://github.com/Mrdabup/OpenContacts/releases)
|
||||
|
||||
[Get ReCon here](https://github.com/Nutcake/ReCon)
|
||||
A Resonite Contacts App
|
||||
|
||||
[Get it here](https://github.com/Nutcake/ReCon/releases/latest)
|
||||
|
||||
## Building
|
||||
|
||||
|
@ -20,7 +15,6 @@ Currently only Android is fully supported.
|
|||
The app works on other platforms, though not every feature will be functional.
|
||||
For example, notifications are currently not supported on non-android builds.
|
||||
|
||||
### Screenshots
|
||||
TODO: Screenshots!
|
||||
## Screenshots
|
||||
|
||||
<!--<img src="https://github.com/Nutcake/ReCon/assets/10452593/a46ccf8a-0a9f-4518-98e6-84fad2d7bf26" width=198/> <img src="https://github.com/Nutcake/ReCon/assets/10452593/5d158f58-cd27-4a68-abf3-9068e92b6a82" width=198/> <img src="https://github.com/Nutcake/ReCon/assets/10452593/f2ce95ef-e513-46cb-9654-31e74cdc7c09" width=198/> <img src="https://github.com/Nutcake/ReCon/assets/10452593/58ef5e5e-1b53-4a47-92f8-bcbcba7a1e86" width=198/>-->
|
||||
<img src="https://github.com/Nutcake/ReCon/assets/10452593/a46ccf8a-0a9f-4518-98e6-84fad2d7bf26" width=198/> <img src="https://github.com/Nutcake/ReCon/assets/10452593/5d158f58-cd27-4a68-abf3-9068e92b6a82" width=198/> <img src="https://github.com/Nutcake/ReCon/assets/10452593/f2ce95ef-e513-46cb-9654-31e74cdc7c09" width=198/> <img src="https://github.com/Nutcake/ReCon/assets/10452593/58ef5e5e-1b53-4a47-92f8-bcbcba7a1e86" width=198/>
|
||||
|
|
|
@ -49,7 +49,7 @@ android {
|
|||
}
|
||||
|
||||
defaultConfig {
|
||||
applicationId "de.tojcklguy.opencontacts"
|
||||
applicationId "me.voidspace.recon"
|
||||
minSdkVersion 24
|
||||
targetSdkVersion flutter.targetSdkVersion
|
||||
versionCode flutterVersionCode.toInteger()
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
package="de.tojcklguy.opencontacts">
|
||||
package="de.voidspace.recon">
|
||||
<!-- The INTERNET permission is required for development. Specifically,
|
||||
the Flutter tool needs it to communicate with the running application
|
||||
to allow setting breakpoints, to provide hot reload, etc.
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
package="de.tojcklguy.opencontacts">
|
||||
package="de.voidspace.recon">
|
||||
|
||||
<!-- Required to fetch data from the internet. -->
|
||||
<uses-permission android:name="android.permission.INTERNET" />
|
||||
|
@ -7,9 +7,9 @@
|
|||
<!-- Optional, you'll have to check this permission by yourself. -->
|
||||
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
|
||||
<application
|
||||
android:label="OpenContacts"
|
||||
android:label="ReCon"
|
||||
android:name="${applicationName}"
|
||||
android:icon="@mipmap/launcher_icon">
|
||||
android:icon="@mipmap/ic_launcher">
|
||||
<activity
|
||||
android:name=".MainActivity"
|
||||
android:exported="true"
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
package de.tojcklguy.opencontacts
|
||||
package de.voidspace.recon
|
||||
|
||||
import io.flutter.embedding.android.FlutterActivity
|
||||
|
||||
|
|
Before Width: | Height: | Size: 4.2 KiB |
Before Width: | Height: | Size: 2.6 KiB |
Before Width: | Height: | Size: 5.7 KiB |
Before Width: | Height: | Size: 8.9 KiB |
Before Width: | Height: | Size: 12 KiB |
|
@ -1,5 +1,5 @@
|
|||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
package="de.tojcklguy.opencontacts">
|
||||
package="de.voidspace.recon">
|
||||
<!-- The INTERNET permission is required for development. Specifically,
|
||||
the Flutter tool needs it to communicate with the running application
|
||||
to allow setting breakpoints, to provide hot reload, etc.
|
||||
|
|
Before Width: | Height: | Size: 44 KiB After Width: | Height: | Size: 28 KiB |
Before Width: | Height: | Size: 75 KiB After Width: | Height: | Size: 150 KiB |
Before Width: | Height: | Size: 34 KiB After Width: | Height: | Size: 64 KiB |
Before Width: | Height: | Size: 36 KiB |
|
@ -1,5 +1,5 @@
|
|||
# Uncomment this line to define a global platform for your project
|
||||
platform :ios, '13.0'
|
||||
platform :ios, '14.0'
|
||||
|
||||
# CocoaPods analytics sends network stats synchronously affecting flutter build latency.
|
||||
ENV['COCOAPODS_DISABLE_STATS'] = 'true'
|
||||
|
@ -41,7 +41,7 @@ post_install do |installer|
|
|||
installer.pods_project.targets.each do |target|
|
||||
flutter_additional_ios_build_settings(target)
|
||||
target.build_configurations.each do |config|
|
||||
config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '13.0'
|
||||
config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '14.0'
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -5,35 +5,35 @@ PODS:
|
|||
- Flutter
|
||||
- camera_avfoundation (0.0.1):
|
||||
- Flutter
|
||||
- DKImagePickerController/Core (4.3.4):
|
||||
- DKImagePickerController/Core (4.3.9):
|
||||
- DKImagePickerController/ImageDataManager
|
||||
- DKImagePickerController/Resource
|
||||
- DKImagePickerController/ImageDataManager (4.3.4)
|
||||
- DKImagePickerController/PhotoGallery (4.3.4):
|
||||
- DKImagePickerController/ImageDataManager (4.3.9)
|
||||
- DKImagePickerController/PhotoGallery (4.3.9):
|
||||
- DKImagePickerController/Core
|
||||
- DKPhotoGallery
|
||||
- DKImagePickerController/Resource (4.3.4)
|
||||
- DKPhotoGallery (0.0.17):
|
||||
- DKPhotoGallery/Core (= 0.0.17)
|
||||
- DKPhotoGallery/Model (= 0.0.17)
|
||||
- DKPhotoGallery/Preview (= 0.0.17)
|
||||
- DKPhotoGallery/Resource (= 0.0.17)
|
||||
- DKImagePickerController/Resource (4.3.9)
|
||||
- DKPhotoGallery (0.0.19):
|
||||
- DKPhotoGallery/Core (= 0.0.19)
|
||||
- DKPhotoGallery/Model (= 0.0.19)
|
||||
- DKPhotoGallery/Preview (= 0.0.19)
|
||||
- DKPhotoGallery/Resource (= 0.0.19)
|
||||
- SDWebImage
|
||||
- SwiftyGif
|
||||
- DKPhotoGallery/Core (0.0.17):
|
||||
- DKPhotoGallery/Core (0.0.19):
|
||||
- DKPhotoGallery/Model
|
||||
- DKPhotoGallery/Preview
|
||||
- SDWebImage
|
||||
- SwiftyGif
|
||||
- DKPhotoGallery/Model (0.0.17):
|
||||
- DKPhotoGallery/Model (0.0.19):
|
||||
- SDWebImage
|
||||
- SwiftyGif
|
||||
- DKPhotoGallery/Preview (0.0.17):
|
||||
- DKPhotoGallery/Preview (0.0.19):
|
||||
- DKPhotoGallery/Model
|
||||
- DKPhotoGallery/Resource
|
||||
- SDWebImage
|
||||
- SwiftyGif
|
||||
- DKPhotoGallery/Resource (0.0.17):
|
||||
- DKPhotoGallery/Resource (0.0.19):
|
||||
- SDWebImage
|
||||
- SwiftyGif
|
||||
- ffmpeg-kit-ios-audio (6.0)
|
||||
|
@ -51,9 +51,9 @@ PODS:
|
|||
- Flutter
|
||||
- flutter_secure_storage (6.0.0):
|
||||
- Flutter
|
||||
- FMDB (2.7.9):
|
||||
- FMDB/standard (= 2.7.9)
|
||||
- FMDB/standard (2.7.9)
|
||||
- FMDB (2.7.11):
|
||||
- FMDB/standard (= 2.7.11)
|
||||
- FMDB/standard (2.7.11)
|
||||
- image_picker_ios (0.0.1):
|
||||
- Flutter
|
||||
- just_audio (0.0.1):
|
||||
|
@ -68,15 +68,15 @@ PODS:
|
|||
- record_darwin (1.0.0):
|
||||
- Flutter
|
||||
- FlutterMacOS
|
||||
- SDWebImage (5.19.0):
|
||||
- SDWebImage/Core (= 5.19.0)
|
||||
- SDWebImage/Core (5.19.0)
|
||||
- SDWebImage (5.19.2):
|
||||
- SDWebImage/Core (= 5.19.2)
|
||||
- SDWebImage/Core (5.19.2)
|
||||
- share_plus (0.0.1):
|
||||
- Flutter
|
||||
- sqflite (0.0.3):
|
||||
- Flutter
|
||||
- FMDB (>= 2.7.5)
|
||||
- SwiftyGif (5.4.4)
|
||||
- SwiftyGif (5.4.5)
|
||||
- url_launcher_ios (0.0.1):
|
||||
- Flutter
|
||||
- workmanager (0.0.1):
|
||||
|
@ -153,28 +153,28 @@ SPEC CHECKSUMS:
|
|||
audio_session: 4f3e461722055d21515cf3261b64c973c062f345
|
||||
background_downloader: 6f55e5548875be2ad4bb91b542558b5be22f339a
|
||||
camera_avfoundation: 3125e8cd1a4387f6f31c6c63abb8a55892a9eeeb
|
||||
DKImagePickerController: b512c28220a2b8ac7419f21c491fc8534b7601ac
|
||||
DKPhotoGallery: fdfad5125a9fdda9cc57df834d49df790dbb4179
|
||||
DKImagePickerController: 946cec48c7873164274ecc4624d19e3da4c1ef3c
|
||||
DKPhotoGallery: b3834fecb755ee09a593d7c9e389d8b5d6deed60
|
||||
ffmpeg-kit-ios-audio: 9fa9953fc197280a69e59c603c7fa7690df7190c
|
||||
ffmpeg_kit_flutter_audio: 9b107d9902e16804c90637cd7f42106a5447a9e6
|
||||
file_picker: 15fd9539e4eb735dc54bae8c0534a7a9511a03de
|
||||
Flutter: f04841e97a9d0b0a8025694d0796dd46242b2854
|
||||
flutter_local_notifications: 0c0b1ae97e741e1521e4c1629a459d04b9aec743
|
||||
flutter_secure_storage: 23fc622d89d073675f2eaa109381aefbcf5a49be
|
||||
FMDB: aa44149f6fb634b1ac54f64f47064bb0d0c5a032
|
||||
FMDB: 57486c1117fd8e0e6b947b2f54c3f42bf8e57a4e
|
||||
image_picker_ios: 4a8aadfbb6dc30ad5141a2ce3832af9214a705b5
|
||||
just_audio: baa7252489dbcf47a4c7cc9ca663e9661c99aafa
|
||||
package_info_plus: 115f4ad11e0698c8c1c5d8a689390df880f47e85
|
||||
path_provider_foundation: 29f094ae23ebbca9d3d0cec13889cd9060c0e943
|
||||
permission_handler_apple: e76247795d700c14ea09e3a2d8855d41ee80a2e6
|
||||
record_darwin: 1f6619f2abac4d1ca91d3eeab038c980d76f1517
|
||||
SDWebImage: 981fd7e860af070920f249fd092420006014c3eb
|
||||
SDWebImage: dfe95b2466a9823cf9f0c6d01217c06550d7b29a
|
||||
share_plus: c3fef564749587fc939ef86ffb283ceac0baf9f5
|
||||
sqflite: 31f7eba61e3074736dff8807a9b41581e4f7f15a
|
||||
SwiftyGif: 93a1cc87bf3a51916001cf8f3d63835fb64c819f
|
||||
SwiftyGif: 706c60cf65fa2bc5ee0313beece843c8eb8194d4
|
||||
url_launcher_ios: 68d46cc9766d0c41dbdc884310529557e3cd7a86
|
||||
workmanager: 0afdcf5628bbde6924c21af7836fed07b42e30e6
|
||||
|
||||
PODFILE CHECKSUM: 0a7d5b7d0e53420cb0284f7b2f171f93843b94d2
|
||||
PODFILE CHECKSUM: de97cdd71230554f2f9175b64953d8f22054f2bf
|
||||
|
||||
COCOAPODS: 1.14.3
|
||||
COCOAPODS: 1.15.2
|
||||
|
|
|
@ -45,7 +45,7 @@
|
|||
7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = "<group>"; };
|
||||
9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = "<group>"; };
|
||||
9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = "<group>"; };
|
||||
97C146EE1CF9000F007C117D /* recon.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = recon.app; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
97C146EE1CF9000F007C117D /* ReCon.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = ReCon.app; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
97C146FB1CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = "<group>"; };
|
||||
97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
|
||||
97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
|
||||
|
@ -110,7 +110,7 @@
|
|||
97C146EF1CF9000F007C117D /* Products */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
97C146EE1CF9000F007C117D /* recon.app */,
|
||||
97C146EE1CF9000F007C117D /* ReCon.app */,
|
||||
331C8081294A63A400263BE5 /* RunnerTests.xctest */,
|
||||
);
|
||||
name = Products;
|
||||
|
@ -195,7 +195,7 @@
|
|||
);
|
||||
name = Runner;
|
||||
productName = Runner;
|
||||
productReference = 97C146EE1CF9000F007C117D /* recon.app */;
|
||||
productReference = 97C146EE1CF9000F007C117D /* ReCon.app */;
|
||||
productType = "com.apple.product-type.application";
|
||||
};
|
||||
/* End PBXNativeTarget section */
|
||||
|
@ -446,7 +446,7 @@
|
|||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
INFOPLIST_KEY_CFBundleDisplayName = recon;
|
||||
INFOPLIST_KEY_CFBundleDisplayName = ReCon;
|
||||
INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.social-networking";
|
||||
INFOPLIST_KEY_NSDownloadsFolderUsageDescription = "Downloading assets from your inventory";
|
||||
INFOPLIST_KEY_NSMicrophoneUsageDescription = "Recording voice messages";
|
||||
|
@ -474,7 +474,7 @@
|
|||
ENABLE_BITCODE = NO;
|
||||
FLUTTER_BUILD_NAME = 0.11.2;
|
||||
INFOPLIST_FILE = Runner/Info.plist;
|
||||
INFOPLIST_KEY_CFBundleDisplayName = recon;
|
||||
INFOPLIST_KEY_CFBundleDisplayName = ReCon;
|
||||
INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.social-networking";
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
|
||||
LD_RUNPATH_SEARCH_PATHS = (
|
||||
|
@ -484,7 +484,7 @@
|
|||
MACOSX_DEPLOYMENT_TARGET = 11.0;
|
||||
MARKETING_VERSION = 0.11.2;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = ch.isota.recon;
|
||||
PRODUCT_NAME = recon;
|
||||
PRODUCT_NAME = ReCon;
|
||||
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
|
||||
SWIFT_VERSION = 5.0;
|
||||
VERSIONING_SYSTEM = "apple-generic";
|
||||
|
@ -592,7 +592,7 @@
|
|||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
INFOPLIST_KEY_CFBundleDisplayName = recon;
|
||||
INFOPLIST_KEY_CFBundleDisplayName = ReCon;
|
||||
INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.social-networking";
|
||||
INFOPLIST_KEY_NSDownloadsFolderUsageDescription = "Downloading assets from your inventory";
|
||||
INFOPLIST_KEY_NSMicrophoneUsageDescription = "Recording voice messages";
|
||||
|
@ -652,7 +652,7 @@
|
|||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
INFOPLIST_KEY_CFBundleDisplayName = recon;
|
||||
INFOPLIST_KEY_CFBundleDisplayName = ReCon;
|
||||
INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.social-networking";
|
||||
INFOPLIST_KEY_NSDownloadsFolderUsageDescription = "Downloading assets from your inventory";
|
||||
INFOPLIST_KEY_NSMicrophoneUsageDescription = "Recording voice messages";
|
||||
|
@ -682,7 +682,7 @@
|
|||
ENABLE_BITCODE = NO;
|
||||
FLUTTER_BUILD_NAME = 0.11.2;
|
||||
INFOPLIST_FILE = Runner/Info.plist;
|
||||
INFOPLIST_KEY_CFBundleDisplayName = recon;
|
||||
INFOPLIST_KEY_CFBundleDisplayName = ReCon;
|
||||
INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.social-networking";
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
|
||||
LD_RUNPATH_SEARCH_PATHS = (
|
||||
|
@ -692,7 +692,7 @@
|
|||
MACOSX_DEPLOYMENT_TARGET = 11.0;
|
||||
MARKETING_VERSION = 0.11.2;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = ch.isota.recon;
|
||||
PRODUCT_NAME = recon;
|
||||
PRODUCT_NAME = ReCon;
|
||||
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
|
||||
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
|
||||
SWIFT_VERSION = 5.0;
|
||||
|
@ -712,7 +712,7 @@
|
|||
ENABLE_BITCODE = NO;
|
||||
FLUTTER_BUILD_NAME = 0.11.2;
|
||||
INFOPLIST_FILE = Runner/Info.plist;
|
||||
INFOPLIST_KEY_CFBundleDisplayName = recon;
|
||||
INFOPLIST_KEY_CFBundleDisplayName = ReCon;
|
||||
INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.social-networking";
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
|
||||
LD_RUNPATH_SEARCH_PATHS = (
|
||||
|
@ -722,7 +722,7 @@
|
|||
MACOSX_DEPLOYMENT_TARGET = 11.0;
|
||||
MARKETING_VERSION = 0.11.2;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = ch.isota.recon;
|
||||
PRODUCT_NAME = recon;
|
||||
PRODUCT_NAME = ReCon;
|
||||
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
|
||||
SWIFT_VERSION = 5.0;
|
||||
VERSIONING_SYSTEM = "apple-generic";
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "97C146ED1CF9000F007C117D"
|
||||
BuildableName = "recon.app"
|
||||
BuildableName = "ReCon.app"
|
||||
BlueprintName = "Runner"
|
||||
ReferencedContainer = "container:Runner.xcodeproj">
|
||||
</BuildableReference>
|
||||
|
@ -31,7 +31,7 @@
|
|||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "97C146ED1CF9000F007C117D"
|
||||
BuildableName = "recon.app"
|
||||
BuildableName = "ReCon.app"
|
||||
BlueprintName = "Runner"
|
||||
ReferencedContainer = "container:Runner.xcodeproj">
|
||||
</BuildableReference>
|
||||
|
@ -65,7 +65,7 @@
|
|||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "97C146ED1CF9000F007C117D"
|
||||
BuildableName = "recon.app"
|
||||
BuildableName = "ReCon.app"
|
||||
BlueprintName = "Runner"
|
||||
ReferencedContainer = "container:Runner.xcodeproj">
|
||||
</BuildableReference>
|
||||
|
@ -82,7 +82,7 @@
|
|||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "97C146ED1CF9000F007C117D"
|
||||
BuildableName = "recon.app"
|
||||
BuildableName = "ReCon.app"
|
||||
BlueprintName = "Runner"
|
||||
ReferencedContainer = "container:Runner.xcodeproj">
|
||||
</BuildableReference>
|
||||
|
@ -93,7 +93,7 @@
|
|||
</AnalyzeAction>
|
||||
<ArchiveAction
|
||||
buildConfiguration = "Release"
|
||||
customArchiveName = "recon"
|
||||
customArchiveName = "ReCon"
|
||||
revealArchiveInOrganizer = "YES">
|
||||
</ArchiveAction>
|
||||
</Scheme>
|
||||
|
|
|
@ -1,134 +1,116 @@
|
|||
{
|
||||
"images" : [
|
||||
{
|
||||
"filename" : "icon_40x40@2x.png",
|
||||
"idiom" : "iphone",
|
||||
"scale" : "2x",
|
||||
"size" : "20x20"
|
||||
"size" : "20x20",
|
||||
"idiom": "iphone",
|
||||
"filename" : "Icon-App-iTunes-20@2x.png",
|
||||
"scale": "2x"
|
||||
},
|
||||
{
|
||||
"filename" : "icon_60x60@3x.png",
|
||||
"idiom" : "iphone",
|
||||
"scale" : "3x",
|
||||
"size" : "20x20"
|
||||
"size" : "20x20",
|
||||
"idiom": "iphone",
|
||||
"filename" : "Icon-App-iTunes-20@3x.png",
|
||||
"scale": "3x"
|
||||
},
|
||||
{
|
||||
"filename" : "icon_58x58@2x.png",
|
||||
"idiom" : "iphone",
|
||||
"scale" : "2x",
|
||||
"size" : "29x29"
|
||||
"size" : "20x20",
|
||||
"idiom": "ipad",
|
||||
"filename" : "Icon-App-iTunes-20.png",
|
||||
"scale": "1x"
|
||||
},
|
||||
{
|
||||
"filename" : "icon_87x87@3x.png",
|
||||
"idiom" : "iphone",
|
||||
"scale" : "3x",
|
||||
"size" : "29x29"
|
||||
"size" : "20x20",
|
||||
"idiom": "ipad",
|
||||
"filename" : "Icon-App-iTunes-20@2x.png",
|
||||
"scale": "2x"
|
||||
},
|
||||
{
|
||||
"filename" : "icon_80x80@2x.png",
|
||||
"size" : "29x29",
|
||||
"idiom" : "iphone",
|
||||
"scale" : "2x",
|
||||
"size" : "40x40"
|
||||
"filename" : "Icon-App-iTunes-29@2x.png",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"filename" : "icon_120x120@3x.png",
|
||||
"size" : "29x29",
|
||||
"idiom" : "iphone",
|
||||
"scale" : "3x",
|
||||
"size" : "40x40"
|
||||
"filename" : "Icon-App-iTunes-29@3x.png",
|
||||
"scale" : "3x"
|
||||
},
|
||||
{
|
||||
"filename" : "icon_60x60@2x.png",
|
||||
"size" : "40x40",
|
||||
"idiom" : "iphone",
|
||||
"scale" : "2x",
|
||||
"size" : "60x60"
|
||||
"filename" : "Icon-App-iTunes-40@2x.png",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"filename" : "icon_180x180@3x.png",
|
||||
"size" : "40x40",
|
||||
"idiom" : "iphone",
|
||||
"scale" : "3x",
|
||||
"size" : "60x60"
|
||||
"filename" : "Icon-App-iTunes-40@3x.png",
|
||||
"scale" : "3x"
|
||||
},
|
||||
{
|
||||
"filename" : "icon_40x40@2x 1.png",
|
||||
"size" : "60x60",
|
||||
"idiom" : "iphone",
|
||||
"filename" : "Icon-App-iTunes-60@2x.png",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"size" : "60x60",
|
||||
"idiom" : "iphone",
|
||||
"filename" : "Icon-App-iTunes-60@3x.png",
|
||||
"scale" : "3x"
|
||||
},
|
||||
{
|
||||
"size" : "29x29",
|
||||
"idiom" : "ipad",
|
||||
"scale" : "2x",
|
||||
"size" : "20x20"
|
||||
"filename" : "Icon-App-iTunes-29.png",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"filename" : "icon_58x58@2x 1.png",
|
||||
"size" : "29x29",
|
||||
"idiom" : "ipad",
|
||||
"scale" : "2x",
|
||||
"size" : "29x29"
|
||||
"filename" : "Icon-App-iTunes-29@2x.png",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"filename" : "icon_80x80@2x 1.png",
|
||||
"size" : "40x40",
|
||||
"idiom" : "ipad",
|
||||
"scale" : "2x",
|
||||
"size" : "40x40"
|
||||
"filename" : "Icon-App-iTunes-40.png",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"filename" : "icon_76x76@2x.png",
|
||||
"size" : "40x40",
|
||||
"idiom" : "ipad",
|
||||
"scale" : "2x",
|
||||
"size" : "76x76"
|
||||
"filename" : "Icon-App-iTunes-40@2x.png",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"filename" : "icon_83.5x83.5@2x.png",
|
||||
"size" : "76x76",
|
||||
"idiom" : "ipad",
|
||||
"scale" : "2x",
|
||||
"size" : "83.5x83.5"
|
||||
"filename" : "Icon-App-iTunes-76.png",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"filename" : "icon_1024x1024.png",
|
||||
"size" : "76x76",
|
||||
"idiom" : "ipad",
|
||||
"filename" : "Icon-App-iTunes-76@2x.png",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"size" : "83.5x83.5",
|
||||
"idiom" : "ipad",
|
||||
"filename" : "Icon-App-iTunes-83.5@2x.png",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"size" : "1024x1024",
|
||||
"idiom" : "ios-marketing",
|
||||
"scale" : "1x",
|
||||
"size" : "1024x1024"
|
||||
},
|
||||
{
|
||||
"filename" : "icon_114x114@3x.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x",
|
||||
"size" : "114x114"
|
||||
},
|
||||
{
|
||||
"filename" : "icon_120x120@2x.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x",
|
||||
"size" : "120x120"
|
||||
},
|
||||
{
|
||||
"filename" : "icon_128x128@2x.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x",
|
||||
"size" : "128x128"
|
||||
},
|
||||
{
|
||||
"filename" : "icon_136x136@2x.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x",
|
||||
"size" : "136x136"
|
||||
},
|
||||
{
|
||||
"filename" : "icon_152x152@2x.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x",
|
||||
"size" : "152x152"
|
||||
},
|
||||
{
|
||||
"filename" : "icon_167x167@2x.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x",
|
||||
"size" : "167x167"
|
||||
},
|
||||
{
|
||||
"filename" : "icon_192x192@3x.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x",
|
||||
"size" : "192x192"
|
||||
"filename" : "Icon-App-iTunes-1024.png",
|
||||
"scale" : "1x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
"version" : 1,
|
||||
"author" : "xcode"
|
||||
}
|
||||
}
|
||||
|
|
Before Width: | Height: | Size: 74 KiB |
Before Width: | Height: | Size: 991 B |
Before Width: | Height: | Size: 2.2 KiB |
Before Width: | Height: | Size: 3.4 KiB |
Before Width: | Height: | Size: 1.5 KiB |
Before Width: | Height: | Size: 3.2 KiB |
Before Width: | Height: | Size: 5.1 KiB |
Before Width: | Height: | Size: 2.2 KiB |
Before Width: | Height: | Size: 4.6 KiB |
Before Width: | Height: | Size: 7.3 KiB |
Before Width: | Height: | Size: 7.3 KiB |
Before Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 4.4 KiB |
Before Width: | Height: | Size: 9.4 KiB |
Before Width: | Height: | Size: 10 KiB |
After Width: | Height: | Size: 291 KiB |
After Width: | Height: | Size: 2.2 KiB |
After Width: | Height: | Size: 3.9 KiB |
After Width: | Height: | Size: 6 KiB |
After Width: | Height: | Size: 3 KiB |
After Width: | Height: | Size: 5.6 KiB |
After Width: | Height: | Size: 8.9 KiB |
After Width: | Height: | Size: 3.9 KiB |
After Width: | Height: | Size: 8 KiB |
After Width: | Height: | Size: 13 KiB |
After Width: | Height: | Size: 13 KiB |
After Width: | Height: | Size: 23 KiB |
After Width: | Height: | Size: 7.4 KiB |
After Width: | Height: | Size: 18 KiB |
After Width: | Height: | Size: 21 KiB |
Before Width: | Height: | Size: 20 KiB |
Before Width: | Height: | Size: 265 KiB |
Before Width: | Height: | Size: 11 KiB |
Before Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 18 KiB |
Before Width: | Height: | Size: 21 KiB |
Before Width: | Height: | Size: 25 KiB |
Before Width: | Height: | Size: 3 KiB |
Before Width: | Height: | Size: 3 KiB |
Before Width: | Height: | Size: 4.9 KiB |
Before Width: | Height: | Size: 4.9 KiB |
Before Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 5.2 KiB |
Before Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 7.4 KiB |
Before Width: | Height: | Size: 7.4 KiB |
Before Width: | Height: | Size: 18 KiB |
Before Width: | Height: | Size: 8.1 KiB |
Before Width: | Height: | Size: 68 B After Width: | Height: | Size: 5.7 KiB |
Before Width: | Height: | Size: 68 B After Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 68 B After Width: | Height: | Size: 20 KiB |
|
@ -1,9 +1,10 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="32700.99.1234" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" colorMatched="YES" initialViewController="01J-lp-oVM">
|
||||
<device id="retina6_12" orientation="portrait" appearance="light"/>
|
||||
<device id="retina6_72" orientation="portrait" appearance="light"/>
|
||||
<dependencies>
|
||||
<deployment identifier="iOS"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="22684"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="22685"/>
|
||||
<capability name="System colors in document resources" minToolsVersion="11.0"/>
|
||||
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
|
||||
</dependencies>
|
||||
<scenes>
|
||||
|
@ -12,18 +13,20 @@
|
|||
<objects>
|
||||
<viewController id="01J-lp-oVM" sceneMemberID="viewController">
|
||||
<layoutGuides>
|
||||
<viewControllerLayoutGuide type="top" id="Ydg-fD-yQy"/>
|
||||
<viewControllerLayoutGuide type="bottom" id="xbc-2k-c8Z"/>
|
||||
<viewControllerLayoutGuide type="top" id="MFX-9H-jtP"/>
|
||||
<viewControllerLayoutGuide type="bottom" id="zNn-OM-I6S"/>
|
||||
</layoutGuides>
|
||||
<view key="view" contentMode="scaleToFill" id="Ze5-6b-2t3">
|
||||
<rect key="frame" x="0.0" y="0.0" width="393" height="852"/>
|
||||
<view key="view" userInteractionEnabled="NO" contentMode="scaleToFill" id="Ze5-6b-2t3">
|
||||
<rect key="frame" x="0.0" y="0.0" width="430" height="932"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<imageView opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" image="LaunchImage" translatesAutoresizingMaskIntoConstraints="NO" id="YRO-k0-Ey4">
|
||||
<rect key="frame" x="196.33333333333334" y="426" width="0.33333333333334281" height="0.33333333333331439"/>
|
||||
<imageView opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleToFill" misplaced="YES" image="LaunchImage" translatesAutoresizingMaskIntoConstraints="NO" id="YRO-k0-Ey4">
|
||||
<rect key="frame" x="155" y="406" width="120" height="120"/>
|
||||
<preferredSymbolConfiguration key="preferredSymbolConfiguration" scale="large"/>
|
||||
</imageView>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
|
||||
<color key="backgroundColor" systemColor="tertiaryLabelColor"/>
|
||||
<color key="tintColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
|
||||
<constraints>
|
||||
<constraint firstItem="YRO-k0-Ey4" firstAttribute="centerX" secondItem="Ze5-6b-2t3" secondAttribute="centerX" id="1a2-6s-vTC"/>
|
||||
<constraint firstItem="YRO-k0-Ey4" firstAttribute="centerY" secondItem="Ze5-6b-2t3" secondAttribute="centerY" id="4X2-HB-R7a"/>
|
||||
|
@ -32,10 +35,13 @@
|
|||
</viewController>
|
||||
<placeholder placeholderIdentifier="IBFirstResponder" id="iYj-Kq-Ea1" userLabel="First Responder" sceneMemberID="firstResponder"/>
|
||||
</objects>
|
||||
<point key="canvasLocation" x="80.916030534351137" y="264.08450704225356"/>
|
||||
<point key="canvasLocation" x="79.534883720930239" y="263.94849785407729"/>
|
||||
</scene>
|
||||
</scenes>
|
||||
<resources>
|
||||
<image name="LaunchImage" width="0.3333333432674408" height="0.3333333432674408"/>
|
||||
<image name="LaunchImage" width="60" height="60"/>
|
||||
<systemColor name="tertiaryLabelColor">
|
||||
<color red="0.23529411759999999" green="0.23529411759999999" blue="0.26274509800000001" alpha="0.29803921570000003" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
</systemColor>
|
||||
</resources>
|
||||
</document>
|
||||
|
|
|
@ -2,12 +2,16 @@
|
|||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>BGTaskSchedulerPermittedIdentifiers</key>
|
||||
<array>
|
||||
<string>ch.isota.recon</string>
|
||||
</array>
|
||||
<key>CADisableMinimumFrameDurationOnPhone</key>
|
||||
<true/>
|
||||
<key>CFBundleDevelopmentRegion</key>
|
||||
<string>$(DEVELOPMENT_LANGUAGE)</string>
|
||||
<key>CFBundleDisplayName</key>
|
||||
<string>recon</string>
|
||||
<string>ReCon</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>$(EXECUTABLE_NAME)</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
|
@ -15,7 +19,7 @@
|
|||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundleName</key>
|
||||
<string>recon</string>
|
||||
<string>ReCon</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>APPL</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
|
@ -26,6 +30,12 @@
|
|||
<string>$(FLUTTER_BUILD_NUMBER)</string>
|
||||
<key>LSRequiresIPhoneOS</key>
|
||||
<true/>
|
||||
<key>NSCameraUsageDescription</key>
|
||||
<string>Send photos to other users</string>
|
||||
<key>NSMicrophoneUsageDescription</key>
|
||||
<string>ReCon uses your microphone to record voice messages.</string>
|
||||
<key>NSPhotoLibraryUsageDescription</key>
|
||||
<string>ReCon uses your photo library to send images to your contacts.</string>
|
||||
<key>UIApplicationSupportsIndirectInputEvents</key>
|
||||
<true/>
|
||||
<key>UIBackgroundModes</key>
|
||||
|
@ -41,12 +51,5 @@
|
|||
<array>
|
||||
<string>UIInterfaceOrientationPortrait</string>
|
||||
</array>
|
||||
<key>UISupportedInterfaceOrientations~ipad</key>
|
||||
<array>
|
||||
<string>UIInterfaceOrientationLandscapeLeft</string>
|
||||
<string>UIInterfaceOrientationLandscapeRight</string>
|
||||
<string>UIInterfaceOrientationPortrait</string>
|
||||
<string>UIInterfaceOrientationPortraitUpsideDown</string>
|
||||
</array>
|
||||
</dict>
|
||||
</plist>
|
||||
|
|
|
@ -2,6 +2,12 @@
|
|||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>aps-environment</key>
|
||||
<string>development</string>
|
||||
<key>com.apple.developer.associated-domains</key>
|
||||
<array>
|
||||
<string>webcredentials:resonite.com</string>
|
||||
</array>
|
||||
<key>keychain-access-groups</key>
|
||||
<array>
|
||||
<string>$(AppIdentifierPrefix)ch.isota.recon</string>
|
||||
|
|
1
ios/Runner/en.lproj/LaunchScreen.strings
Normal file
|
@ -0,0 +1 @@
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
import 'dart:convert';
|
||||
|
||||
import 'package:OpenContacts/clients/api_client.dart';
|
||||
import 'package:OpenContacts/models/cloud_variable.dart';
|
||||
import 'package:recon/clients/api_client.dart';
|
||||
import 'package:recon/models/cloud_variable.dart';
|
||||
|
||||
class CloudVariableApi {
|
||||
static Future<CloudVariable> readCloudVariable(ApiClient client,
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
import 'dart:convert';
|
||||
|
||||
import 'package:OpenContacts/clients/api_client.dart';
|
||||
import 'package:OpenContacts/models/users/friend.dart';
|
||||
import 'package:OpenContacts/models/users/friend_status.dart';
|
||||
import 'package:OpenContacts/models/users/user.dart';
|
||||
import 'package:OpenContacts/models/users/user_profile.dart';
|
||||
import 'package:OpenContacts/models/users/user_status.dart';
|
||||
import 'package:recon/clients/api_client.dart';
|
||||
import 'package:recon/models/users/friend.dart';
|
||||
import 'package:recon/models/users/friend_status.dart';
|
||||
import 'package:recon/models/users/user.dart';
|
||||
import 'package:recon/models/users/user_profile.dart';
|
||||
import 'package:recon/models/users/user_status.dart';
|
||||
|
||||
class ContactApi {
|
||||
static Future<List<Friend>> getFriendsList(ApiClient client, {DateTime? lastStatusUpdate}) async {
|
||||
|
|
|
@ -3,10 +3,10 @@ import 'dart:convert';
|
|||
import 'package:http/http.dart' as http;
|
||||
|
||||
class GithubApi {
|
||||
static const baseUrl = "https://git.mrdab.vore.media/api/v1";
|
||||
static const baseUrl = "https://api.github.com";
|
||||
|
||||
static Future<String> getLatestTagName() async {
|
||||
final response = await http.get(Uri.parse("$baseUrl/repos/ThatOneJackalGuy/OpenContacts/releases?per_page=1"));
|
||||
final response = await http.get(Uri.parse("$baseUrl/repos/Nutcake/ReCon/releases?per_page=1"));
|
||||
if (response.statusCode != 200) return "";
|
||||
final body = jsonDecode(response.body) as List;
|
||||
if (body.isEmpty) return "";
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
import 'dart:convert';
|
||||
|
||||
import 'package:OpenContacts/clients/api_client.dart';
|
||||
import 'package:OpenContacts/models/message.dart';
|
||||
import 'package:recon/clients/api_client.dart';
|
||||
import 'package:recon/models/message.dart';
|
||||
|
||||
class MessageApi {
|
||||
static Future<List<Message>> getUserMessages(ApiClient client, {String userId = "", DateTime? fromTime,
|
||||
|
|
|
@ -3,16 +3,16 @@ import 'dart:io';
|
|||
import 'dart:math';
|
||||
import 'dart:typed_data';
|
||||
import 'package:collection/collection.dart';
|
||||
import 'package:OpenContacts/models/records/asset_digest.dart';
|
||||
import 'package:OpenContacts/models/records/json_template.dart';
|
||||
import 'package:recon/models/records/asset_digest.dart';
|
||||
import 'package:recon/models/records/json_template.dart';
|
||||
import 'package:http/http.dart' as http;
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
import 'package:OpenContacts/clients/api_client.dart';
|
||||
import 'package:OpenContacts/models/records/asset_upload_data.dart';
|
||||
import 'package:OpenContacts/models/records/resonite_db_asset.dart';
|
||||
import 'package:OpenContacts/models/records/preprocess_status.dart';
|
||||
import 'package:OpenContacts/models/records/record.dart';
|
||||
import 'package:recon/clients/api_client.dart';
|
||||
import 'package:recon/models/records/asset_upload_data.dart';
|
||||
import 'package:recon/models/records/resonite_db_asset.dart';
|
||||
import 'package:recon/models/records/preprocess_status.dart';
|
||||
import 'package:recon/models/records/record.dart';
|
||||
import 'package:http_parser/http_parser.dart';
|
||||
import 'package:path/path.dart';
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
import 'dart:convert';
|
||||
|
||||
import 'package:OpenContacts/clients/api_client.dart';
|
||||
import 'package:OpenContacts/models/session.dart';
|
||||
import 'package:recon/clients/api_client.dart';
|
||||
import 'package:recon/models/session.dart';
|
||||
|
||||
class SessionApi {
|
||||
static Future<Session> getSession(ApiClient client, {required String sessionId}) async {
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
import 'dart:convert';
|
||||
|
||||
import 'package:OpenContacts/clients/api_client.dart';
|
||||
import 'package:OpenContacts/models/personal_profile.dart';
|
||||
import 'package:OpenContacts/models/users/user.dart';
|
||||
import 'package:OpenContacts/models/users/user_status.dart';
|
||||
import 'package:recon/clients/api_client.dart';
|
||||
import 'package:recon/models/personal_profile.dart';
|
||||
import 'package:recon/models/users/user.dart';
|
||||
import 'package:recon/models/users/user_status.dart';
|
||||
|
||||
class UserApi {
|
||||
static Future<Iterable<User>> searchUsers(ApiClient client, {required String needle}) async {
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import 'package:OpenContacts/config.dart';
|
||||
import 'package:recon/config.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:path/path.dart' as p;
|
||||
import 'package:html/parser.dart' as htmlparser;
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
|
||||
import 'package:OpenContacts/clients/api_client.dart';
|
||||
import 'package:OpenContacts/clients/notification_client.dart';
|
||||
import 'package:OpenContacts/clients/settings_client.dart';
|
||||
import 'package:OpenContacts/models/authentication_data.dart';
|
||||
import 'package:recon/clients/api_client.dart';
|
||||
import 'package:recon/clients/notification_client.dart';
|
||||
import 'package:recon/clients/settings_client.dart';
|
||||
import 'package:recon/models/authentication_data.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
class ClientHolder extends InheritedWidget {
|
||||
|
|
|
@ -3,7 +3,7 @@ import 'dart:convert';
|
|||
import 'package:flutter/foundation.dart';
|
||||
import 'package:flutter_secure_storage/flutter_secure_storage.dart';
|
||||
import 'package:http/http.dart' as http;
|
||||
import 'package:OpenContacts/models/authentication_data.dart';
|
||||
import 'package:recon/models/authentication_data.dart';
|
||||
import 'package:logging/logging.dart';
|
||||
import 'package:uuid/uuid.dart';
|
||||
|
||||
|
|
|
@ -4,9 +4,9 @@ import 'package:ffmpeg_kit_flutter_audio/ffmpeg_kit.dart';
|
|||
import 'package:http/http.dart' as http;
|
||||
import 'package:path/path.dart';
|
||||
import 'package:path_provider/path_provider.dart';
|
||||
import 'package:OpenContacts/auxiliary.dart';
|
||||
import 'package:OpenContacts/clients/api_client.dart';
|
||||
import 'package:OpenContacts/models/message.dart';
|
||||
import 'package:recon/auxiliary.dart';
|
||||
import 'package:recon/clients/api_client.dart';
|
||||
import 'package:recon/models/message.dart';
|
||||
|
||||
class AudioCacheClient {
|
||||
final Future<Directory> _directoryFuture = getTemporaryDirectory();
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
import 'dart:async';
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:OpenContacts/apis/record_api.dart';
|
||||
import 'package:OpenContacts/clients/api_client.dart';
|
||||
import 'package:OpenContacts/models/inventory/resonite_directory.dart';
|
||||
import 'package:OpenContacts/models/records/record.dart';
|
||||
import 'package:recon/apis/record_api.dart';
|
||||
import 'package:recon/clients/api_client.dart';
|
||||
import 'package:recon/models/inventory/resonite_directory.dart';
|
||||
import 'package:recon/models/records/record.dart';
|
||||
|
||||
enum SortMode {
|
||||
name,
|
||||
|
|
|
@ -5,21 +5,21 @@ import 'package:flutter/widgets.dart';
|
|||
import 'package:hive_flutter/hive_flutter.dart';
|
||||
import 'package:logging/logging.dart';
|
||||
import 'package:package_info_plus/package_info_plus.dart';
|
||||
import 'package:OpenContacts/apis/contact_api.dart';
|
||||
import 'package:OpenContacts/apis/message_api.dart';
|
||||
import 'package:OpenContacts/apis/session_api.dart';
|
||||
import 'package:OpenContacts/apis/user_api.dart';
|
||||
import 'package:OpenContacts/clients/api_client.dart';
|
||||
import 'package:OpenContacts/clients/notification_client.dart';
|
||||
import 'package:OpenContacts/clients/settings_client.dart';
|
||||
import 'package:OpenContacts/crypto_helper.dart';
|
||||
import 'package:OpenContacts/hub_manager.dart';
|
||||
import 'package:OpenContacts/models/hub_events.dart';
|
||||
import 'package:OpenContacts/models/message.dart';
|
||||
import 'package:OpenContacts/models/session.dart';
|
||||
import 'package:OpenContacts/models/users/friend.dart';
|
||||
import 'package:OpenContacts/models/users/online_status.dart';
|
||||
import 'package:OpenContacts/models/users/user_status.dart';
|
||||
import 'package:recon/apis/contact_api.dart';
|
||||
import 'package:recon/apis/message_api.dart';
|
||||
import 'package:recon/apis/session_api.dart';
|
||||
import 'package:recon/apis/user_api.dart';
|
||||
import 'package:recon/clients/api_client.dart';
|
||||
import 'package:recon/clients/notification_client.dart';
|
||||
import 'package:recon/clients/settings_client.dart';
|
||||
import 'package:recon/crypto_helper.dart';
|
||||
import 'package:recon/hub_manager.dart';
|
||||
import 'package:recon/models/hub_events.dart';
|
||||
import 'package:recon/models/message.dart';
|
||||
import 'package:recon/models/session.dart';
|
||||
import 'package:recon/models/users/friend.dart';
|
||||
import 'package:recon/models/users/online_status.dart';
|
||||
import 'package:recon/models/users/user_status.dart';
|
||||
|
||||
class MessagingClient extends ChangeNotifier {
|
||||
static const Duration _autoRefreshDuration = Duration(seconds: 10);
|
||||
|
@ -228,19 +228,17 @@ class MessagingClient extends ChangeNotifier {
|
|||
// Adjusting values to ensure correct placement of 'headless'
|
||||
if (friend.isHeadless) return 2.5;
|
||||
switch (friend.userStatus.onlineStatus) {
|
||||
case OnlineStatus.sociable:
|
||||
return 0;
|
||||
case OnlineStatus.online:
|
||||
return 1;
|
||||
return 0;
|
||||
case OnlineStatus.away:
|
||||
return 2;
|
||||
return 1;
|
||||
case OnlineStatus.busy:
|
||||
return 3;
|
||||
return 2;
|
||||
case OnlineStatus.invisible:
|
||||
return 3.5;
|
||||
return 2.5;
|
||||
case OnlineStatus.offline:
|
||||
default:
|
||||
return 4;
|
||||
return 3;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -2,9 +2,9 @@ import 'dart:convert';
|
|||
|
||||
import 'package:collection/collection.dart';
|
||||
import 'package:flutter_local_notifications/flutter_local_notifications.dart' as fln;
|
||||
import 'package:OpenContacts/auxiliary.dart';
|
||||
import 'package:OpenContacts/models/message.dart';
|
||||
import 'package:OpenContacts/models/session.dart';
|
||||
import 'package:recon/auxiliary.dart';
|
||||
import 'package:recon/models/message.dart';
|
||||
import 'package:recon/models/session.dart';
|
||||
|
||||
class NotificationChannel {
|
||||
final String id;
|
||||
|
@ -26,7 +26,7 @@ class NotificationClient {
|
|||
android: fln.AndroidInitializationSettings("ic_notification"),
|
||||
iOS: fln.DarwinInitializationSettings(),
|
||||
macOS: fln.DarwinInitializationSettings(),
|
||||
linux: fln.LinuxInitializationSettings(defaultActionName: "Open OpenContacts"),
|
||||
linux: fln.LinuxInitializationSettings(defaultActionName: "Open ReCon"),
|
||||
));
|
||||
|
||||
Future<void> showUnreadMessagesNotification(Iterable<Message> messages) async {
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
import 'package:collection/collection.dart';
|
||||
import 'package:OpenContacts/apis/session_api.dart';
|
||||
import 'package:OpenContacts/clients/api_client.dart';
|
||||
import 'package:OpenContacts/clients/settings_client.dart';
|
||||
import 'package:OpenContacts/models/session.dart';
|
||||
import 'package:recon/apis/session_api.dart';
|
||||
import 'package:recon/clients/api_client.dart';
|
||||
import 'package:recon/clients/settings_client.dart';
|
||||
import 'package:recon/models/session.dart';
|
||||
import 'package:flutter/foundation.dart';
|
||||
|
||||
class SessionClient extends ChangeNotifier {
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
import 'dart:convert';
|
||||
|
||||
import 'package:OpenContacts/models/settings.dart';
|
||||
import 'package:recon/models/settings.dart';
|
||||
import 'package:flutter_secure_storage/flutter_secure_storage.dart';
|
||||
|
||||
|
||||
|
|
|
@ -3,8 +3,8 @@ import 'dart:io';
|
|||
|
||||
import 'package:collection/collection.dart';
|
||||
import 'package:flutter/foundation.dart';
|
||||
import 'package:OpenContacts/config.dart';
|
||||
import 'package:OpenContacts/models/hub_events.dart';
|
||||
import 'package:recon/config.dart';
|
||||
import 'package:recon/models/hub_events.dart';
|
||||
import 'package:logging/logging.dart';
|
||||
import 'package:uuid/uuid.dart';
|
||||
|
||||
|
|
|
@ -13,17 +13,17 @@ import 'package:intl/intl.dart';
|
|||
import 'package:logging/logging.dart';
|
||||
import 'package:package_info_plus/package_info_plus.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'package:OpenContacts/apis/github_api.dart';
|
||||
import 'package:OpenContacts/client_holder.dart';
|
||||
import 'package:OpenContacts/clients/api_client.dart';
|
||||
import 'package:OpenContacts/clients/inventory_client.dart';
|
||||
import 'package:OpenContacts/clients/messaging_client.dart';
|
||||
import 'package:OpenContacts/clients/session_client.dart';
|
||||
import 'package:OpenContacts/clients/settings_client.dart';
|
||||
import 'package:OpenContacts/models/sem_ver.dart';
|
||||
import 'package:OpenContacts/widgets/homepage.dart';
|
||||
import 'package:OpenContacts/widgets/login_screen.dart';
|
||||
import 'package:OpenContacts/widgets/update_notifier.dart';
|
||||
import 'package:recon/apis/github_api.dart';
|
||||
import 'package:recon/client_holder.dart';
|
||||
import 'package:recon/clients/api_client.dart';
|
||||
import 'package:recon/clients/inventory_client.dart';
|
||||
import 'package:recon/clients/messaging_client.dart';
|
||||
import 'package:recon/clients/session_client.dart';
|
||||
import 'package:recon/clients/settings_client.dart';
|
||||
import 'package:recon/models/sem_ver.dart';
|
||||
import 'package:recon/widgets/homepage.dart';
|
||||
import 'package:recon/widgets/login_screen.dart';
|
||||
import 'package:recon/widgets/update_notifier.dart';
|
||||
|
||||
import 'models/authentication_data.dart';
|
||||
|
||||
|
@ -59,20 +59,20 @@ void main() async {
|
|||
// Ignore
|
||||
}
|
||||
|
||||
runApp(recon(settingsClient: settingsClient, cachedAuthentication: cachedAuth));
|
||||
runApp(ReCon(settingsClient: settingsClient, cachedAuthentication: cachedAuth));
|
||||
}
|
||||
|
||||
class recon extends StatefulWidget {
|
||||
const recon({required this.settingsClient, required this.cachedAuthentication, super.key});
|
||||
class ReCon extends StatefulWidget {
|
||||
const ReCon({required this.settingsClient, required this.cachedAuthentication, super.key});
|
||||
|
||||
final SettingsClient settingsClient;
|
||||
final AuthenticationData cachedAuthentication;
|
||||
|
||||
@override
|
||||
State<recon> createState() => _reconState();
|
||||
State<ReCon> createState() => _ReConState();
|
||||
}
|
||||
|
||||
class _reconState extends State<recon> {
|
||||
class _ReConState extends State<ReCon> {
|
||||
final Typography _typography = Typography.material2021(platform: defaultTargetPlatform);
|
||||
final ReceivePort _port = ReceivePort();
|
||||
late AuthenticationData _authData = widget.cachedAuthentication;
|
||||
|
@ -165,7 +165,7 @@ class _reconState extends State<recon> {
|
|||
child: DynamicColorBuilder(
|
||||
builder: (ColorScheme? lightDynamic, ColorScheme? darkDynamic) => MaterialApp(
|
||||
debugShowCheckedModeBanner: true,
|
||||
title: 'OpenContacts',
|
||||
title: 'ReCon',
|
||||
theme: ThemeData(
|
||||
useMaterial3: true,
|
||||
textTheme: _typography.black,
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import 'package:OpenContacts/auxiliary.dart';
|
||||
import 'package:recon/auxiliary.dart';
|
||||
|
||||
class CloudVariable {
|
||||
final String ownerId;
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
import 'package:collection/collection.dart';
|
||||
import 'package:OpenContacts/models/records/record.dart';
|
||||
import 'package:recon/models/records/record.dart';
|
||||
|
||||
class ResoniteDirectory {
|
||||
static const rootName = "Inventory";
|
||||
|
|