Compare commits

..

14 commits

Author SHA1 Message Date
Garrett Watson
e0dabd8557 feat: update privacy usage descriptions 2024-06-23 16:43:54 -04:00
Garrett Watson
3948757556 chore: update cocoa pods 2024-06-23 16:42:54 -04:00
Garrett Watson
a2c58359b4 chore: update AppIcons manifest 2024-06-23 16:41:08 -04:00
Garrett Watson
68c6bc04a6 chore: update gitignore to exclude ios build files 2024-06-23 16:40:35 -04:00
Garrett Watson
6413c2930f chore: update iOS app icons 2024-06-23 16:39:53 -04:00
Garrett Watson
007ec60235 chore(ios): update app entitlements 2024-03-22 16:46:13 -04:00
Garrett Watson
721ba5a268 fix(ios): remove file extension from LaunchScreen value in Info.plist 2024-03-22 16:14:00 -04:00
Garrett Watson
392bae826a chore: update associated domains 2024-03-22 16:07:05 -04:00
Garrett Watson
ae38c80f1e chore(ios): update podfile 2024-03-22 15:39:32 -04:00
Garrett Watson
67bf832470 Update iOS build config + fix appicons manifest (#29)
* chore(ios): update build config

* fix(ios): fix appicons manifest
2024-03-22 15:24:18 -04:00
Garrett Watson
7ecc3140c6 feat: add copy buttons to user id and email display fields 2024-03-08 23:03:46 -05:00
Garrett Watson
77d1ddf458 feat: make the storage indicator text more readable 2024-02-23 16:34:22 -05:00
Garrett Watson
bcff2214aa feat: overhaul My Profile dialog 2024-02-16 10:39:59 -05:00
Garrett Watson
85a3d65d23 feat: rework personal_profile model + start testing new layouts for My Profile dialog 2024-02-15 15:10:25 -05:00
158 changed files with 812 additions and 734 deletions

3
.gitignore vendored
View file

@ -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!!

View file

@ -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"

View file

@ -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/>

View file

@ -49,7 +49,7 @@ android {
}
defaultConfig {
applicationId "de.tojcklguy.opencontacts"
applicationId "me.voidspace.recon"
minSdkVersion 24
targetSdkVersion flutter.targetSdkVersion
versionCode flutterVersionCode.toInteger()

View file

@ -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.

View file

@ -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"

View file

@ -1,4 +1,4 @@
package de.tojcklguy.opencontacts
package de.voidspace.recon
import io.flutter.embedding.android.FlutterActivity

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

View file

@ -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.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 44 KiB

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 75 KiB

After

Width:  |  Height:  |  Size: 150 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

After

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

View file

@ -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

View file

@ -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

View file

@ -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";

View file

@ -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>

View file

@ -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"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 74 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 991 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 291 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 265 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 68 B

After

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 68 B

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 68 B

After

Width:  |  Height:  |  Size: 20 KiB

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -0,0 +1 @@

View file

@ -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,

View file

@ -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 {

View file

@ -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 "";

View file

@ -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,

View file

@ -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';

View file

@ -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 {

View file

@ -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 {

View file

@ -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;

View file

@ -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 {

View file

@ -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';

View file

@ -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();

View file

@ -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,

View file

@ -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;
}
}

View file

@ -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 {

View file

@ -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 {

View file

@ -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';

View file

@ -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';

View file

@ -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,

View file

@ -1,4 +1,4 @@
import 'package:OpenContacts/auxiliary.dart';
import 'package:recon/auxiliary.dart';
class CloudVariable {
final String ownerId;

View file

@ -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";

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