Skip to content

Commit cd9634e

Browse files
committed
Merge branch 'develop'
2 parents 8b8956c + 8b2ce46 commit cd9634e

File tree

90 files changed

+5432
-4001
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

90 files changed

+5432
-4001
lines changed

.github/workflows/flatpak.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ jobs:
8686
draft: false
8787
prerelease: false
8888
title: "Latest Release"
89-
automatic_release_tag: "v5.0.141"
89+
automatic_release_tag: "v5.0.142"
9090
files: |
9191
${{ github.workspace }}/artifacts/Invoice-Ninja-Archive
9292
${{ github.workspace }}/artifacts/Invoice-Ninja-Hash

.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -82,3 +82,4 @@ google-services.json
8282
GoogleService-Info.plist
8383
android/app/build.gradle
8484
android/app/release/
85+
.fvm

README.md

+3-13
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@ Client application for [Invoice Ninja](https://github.com/invoiceninja/invoiceni
55
#### Desktop Apps
66
- [Windows](https://apps.microsoft.com/store/detail/invoice-ninja/9N3F2BBCFDR6)
77
- [macOS](https://apps.apple.com/app/id1503970375?platform=mac)
8-
- [Linux](https://snapcraft.io/invoiceninja)
8+
- [Linux - Snap](https://snapcraft.io/invoiceninja)
9+
- [Linux - Flatpak](https://flathub.org/apps/com.invoiceninja.InvoiceNinja)
910

1011
#### Mobile Apps
1112
- [iOS](https://apps.apple.com/app/id1503970375?platform=iphone)
@@ -125,21 +126,10 @@ For additional information on [Redux architecture](https://blog.logrocket.com/fl
125126
## Tests
126127
- Run `flutter drive --target=test_driver/all_it.dart` to run the tests
127128

128-
## Code Signing
129-
- Run `cp android/app/build.gradle.prod android/app/build.gradle` to support running the code signed
130-
- Run `cp android/key.properties.example android/key.properties` to create the keys file
131-
- Run `keytool -genkey -v -keystore key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias invoiceninja` to generate a key to be able to sign the android application.
132-
- Update `android/key.properties` according to the parameters you entered in previous command when you generated the key
133-
- Open a new Firebase project from your console. Firebase is used for authentication.
134-
- Inside the project go to Authentication and enable at least one method.
135-
- After go to add a new Android application. For the package name add `com.invoiceninja.flutter`
136-
- Press "Register App" button.
137-
- Download "google-services.json" and put it in `android/app` directory.
138-
139129
## Credits
140130

141131
[https://github.com/invoiceninja/invoiceninja#credits](https://github.com/invoiceninja/invoiceninja/tree/v5-develop#credits)
142132

143133
## Contributions
144134

145-
We gladly accept contributions! If you'd like to get involved with development please join our [Slack group](http://slack.invoiceninja.com/).
135+
We gladly accept contributions! If you'd like to get involved with development please join our [Slack group](http://slack.invoiceninja.com/) or [Discord Server](https://discord.gg/ZwEdtfCwXA).
Loading

flatpak/com.invoiceninja.InvoiceNinja.metainfo.xml

+1
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@
5050
</screenshots>
5151
<content_rating type="oars-1.1"/>
5252
<releases>
53+
<release version="5.0.142" date="2023-11-28"/>
5354
<release version="5.0.141" date="2023-11-17"/>
5455
<release version="5.0.140" date="2023-11-14"/>
5556
<release version="5.0.139" date="2023-11-12"/>

ios/Podfile.lock

+51-35
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,14 @@
11
PODS:
2-
- AppAuth (1.6.0):
3-
- AppAuth/Core (= 1.6.0)
4-
- AppAuth/ExternalUserAgent (= 1.6.0)
5-
- AppAuth/Core (1.6.0)
6-
- AppAuth/ExternalUserAgent (1.6.0):
2+
- AppAuth (1.6.2):
3+
- AppAuth/Core (= 1.6.2)
4+
- AppAuth/ExternalUserAgent (= 1.6.2)
5+
- AppAuth/Core (1.6.2)
6+
- AppAuth/ExternalUserAgent (1.6.2):
77
- AppAuth/Core
88
- contacts_service (0.2.2):
99
- Flutter
10+
- device_info_plus (0.0.1):
11+
- Flutter
1012
- DKImagePickerController/Core (4.3.4):
1113
- DKImagePickerController/ImageDataManager
1214
- DKImagePickerController/Resource
@@ -75,18 +77,20 @@ PODS:
7577
- path_provider_foundation (0.0.1):
7678
- Flutter
7779
- FlutterMacOS
78-
- permission_handler_apple (9.0.4):
80+
- permission_handler_apple (9.1.1):
7981
- Flutter
8082
- printing (1.0.0):
8183
- Flutter
82-
- SDWebImage (5.15.5):
83-
- SDWebImage/Core (= 5.15.5)
84-
- SDWebImage/Core (5.15.5)
85-
- Sentry/HybridSDK (7.31.5)
84+
- SDWebImage (5.18.5):
85+
- SDWebImage/Core (= 5.18.5)
86+
- SDWebImage/Core (5.18.5)
87+
- Sentry/HybridSDK (8.14.2):
88+
- SentryPrivate (= 8.14.2)
8689
- sentry_flutter (0.0.1):
8790
- Flutter
8891
- FlutterMacOS
89-
- Sentry/HybridSDK (= 7.31.5)
92+
- Sentry/HybridSDK (= 8.14.2)
93+
- SentryPrivate (8.14.2)
9094
- share_plus (0.0.1):
9195
- Flutter
9296
- shared_preferences_foundation (0.0.1):
@@ -96,7 +100,7 @@ PODS:
96100
- Flutter
97101
- smart_auth (0.0.1):
98102
- Flutter
99-
- sqflite (0.0.2):
103+
- sqflite (0.0.3):
100104
- Flutter
101105
- FMDB (>= 2.7.5)
102106
- SwiftyGif (5.4.4)
@@ -105,30 +109,34 @@ PODS:
105109
- Flutter
106110
- webview_flutter_wkwebview (0.0.1):
107111
- Flutter
112+
- widget_kit_plugin (0.0.1):
113+
- Flutter
108114

109115
DEPENDENCIES:
110116
- contacts_service (from `.symlinks/plugins/contacts_service/ios`)
117+
- device_info_plus (from `.symlinks/plugins/device_info_plus/ios`)
111118
- file_picker (from `.symlinks/plugins/file_picker/ios`)
112119
- Flutter (from `Flutter`)
113120
- google_sign_in_ios (from `.symlinks/plugins/google_sign_in_ios/ios`)
114121
- image_cropper (from `.symlinks/plugins/image_cropper/ios`)
115122
- image_picker_ios (from `.symlinks/plugins/image_picker_ios/ios`)
116-
- in_app_purchase_storekit (from `.symlinks/plugins/in_app_purchase_storekit/ios`)
123+
- in_app_purchase_storekit (from `.symlinks/plugins/in_app_purchase_storekit/darwin`)
117124
- in_app_review (from `.symlinks/plugins/in_app_review/ios`)
118125
- local_auth_ios (from `.symlinks/plugins/local_auth_ios/ios`)
119126
- package_info (from `.symlinks/plugins/package_info/ios`)
120127
- package_info_plus (from `.symlinks/plugins/package_info_plus/ios`)
121-
- path_provider_foundation (from `.symlinks/plugins/path_provider_foundation/ios`)
128+
- path_provider_foundation (from `.symlinks/plugins/path_provider_foundation/darwin`)
122129
- permission_handler_apple (from `.symlinks/plugins/permission_handler_apple/ios`)
123130
- printing (from `.symlinks/plugins/printing/ios`)
124131
- sentry_flutter (from `.symlinks/plugins/sentry_flutter/ios`)
125132
- share_plus (from `.symlinks/plugins/share_plus/ios`)
126-
- shared_preferences_foundation (from `.symlinks/plugins/shared_preferences_foundation/ios`)
133+
- shared_preferences_foundation (from `.symlinks/plugins/shared_preferences_foundation/darwin`)
127134
- sign_in_with_apple (from `.symlinks/plugins/sign_in_with_apple/ios`)
128135
- smart_auth (from `.symlinks/plugins/smart_auth/ios`)
129136
- sqflite (from `.symlinks/plugins/sqflite/ios`)
130137
- url_launcher_ios (from `.symlinks/plugins/url_launcher_ios/ios`)
131138
- webview_flutter_wkwebview (from `.symlinks/plugins/webview_flutter_wkwebview/ios`)
139+
- widget_kit_plugin (from `.symlinks/plugins/widget_kit_plugin/ios`)
132140

133141
SPEC REPOS:
134142
trunk:
@@ -141,12 +149,15 @@ SPEC REPOS:
141149
- GTMSessionFetcher
142150
- SDWebImage
143151
- Sentry
152+
- SentryPrivate
144153
- SwiftyGif
145154
- TOCropViewController
146155

147156
EXTERNAL SOURCES:
148157
contacts_service:
149158
:path: ".symlinks/plugins/contacts_service/ios"
159+
device_info_plus:
160+
:path: ".symlinks/plugins/device_info_plus/ios"
150161
file_picker:
151162
:path: ".symlinks/plugins/file_picker/ios"
152163
Flutter:
@@ -158,7 +169,7 @@ EXTERNAL SOURCES:
158169
image_picker_ios:
159170
:path: ".symlinks/plugins/image_picker_ios/ios"
160171
in_app_purchase_storekit:
161-
:path: ".symlinks/plugins/in_app_purchase_storekit/ios"
172+
:path: ".symlinks/plugins/in_app_purchase_storekit/darwin"
162173
in_app_review:
163174
:path: ".symlinks/plugins/in_app_review/ios"
164175
local_auth_ios:
@@ -168,7 +179,7 @@ EXTERNAL SOURCES:
168179
package_info_plus:
169180
:path: ".symlinks/plugins/package_info_plus/ios"
170181
path_provider_foundation:
171-
:path: ".symlinks/plugins/path_provider_foundation/ios"
182+
:path: ".symlinks/plugins/path_provider_foundation/darwin"
172183
permission_handler_apple:
173184
:path: ".symlinks/plugins/permission_handler_apple/ios"
174185
printing:
@@ -178,7 +189,7 @@ EXTERNAL SOURCES:
178189
share_plus:
179190
:path: ".symlinks/plugins/share_plus/ios"
180191
shared_preferences_foundation:
181-
:path: ".symlinks/plugins/shared_preferences_foundation/ios"
192+
:path: ".symlinks/plugins/shared_preferences_foundation/darwin"
182193
sign_in_with_apple:
183194
:path: ".symlinks/plugins/sign_in_with_apple/ios"
184195
smart_auth:
@@ -189,42 +200,47 @@ EXTERNAL SOURCES:
189200
:path: ".symlinks/plugins/url_launcher_ios/ios"
190201
webview_flutter_wkwebview:
191202
:path: ".symlinks/plugins/webview_flutter_wkwebview/ios"
203+
widget_kit_plugin:
204+
:path: ".symlinks/plugins/widget_kit_plugin/ios"
192205

193206
SPEC CHECKSUMS:
194-
AppAuth: 8fca6b5563a5baef2c04bee27538025e4ceb2add
207+
AppAuth: 3bb1d1cd9340bd09f5ed189fb00b1cc28e1e8570
195208
contacts_service: 849e1f84281804c8bfbec1b4c3eedcb23c5d3eca
209+
device_info_plus: c6fb39579d0f423935b0c9ce7ee2f44b71b9fce6
196210
DKImagePickerController: b512c28220a2b8ac7419f21c491fc8534b7601ac
197211
DKPhotoGallery: fdfad5125a9fdda9cc57df834d49df790dbb4179
198212
file_picker: ce3938a0df3cc1ef404671531facef740d03f920
199213
Flutter: f04841e97a9d0b0a8025694d0796dd46242b2854
200214
FMDB: 2ce00b547f966261cd18927a3ddb07cb6f3db82a
201-
google_sign_in_ios: 63e49658400eb806dd30054dc56f8baee3025508
215+
google_sign_in_ios: 1256ff9d941db546373826966720b0c24804bcdd
202216
GoogleSignIn: 5651ce3a61e56ca864160e79b484cd9ed3f49b7a
203217
GTMAppAuth: 0ff230db599948a9ad7470ca667337803b3fc4dd
204218
GTMSessionFetcher: 3a63d75eecd6aa32c2fc79f578064e1214dfdec2
205-
image_cropper: 60c2789d1f1a78c873235d4319ca0c34a69f2d98
206-
image_picker_ios: 58b9c4269cb176f89acea5e5d043c9358f2d25f8
219+
image_cropper: a3291c624a953049bc6a02e1f8c8ceb162a24b25
220+
image_picker_ios: 4a8aadfbb6dc30ad5141a2ce3832af9214a705b5
207221
in_app_purchase_storekit: 4fb7ee9e824b1f09107fbfbbce8c4b276366dc43
208222
in_app_review: 318597b3a06c22bb46dc454d56828c85f444f99d
209-
local_auth_ios: ceb207b594b48c075f1065f97b61e3ffa00d686b
223+
local_auth_ios: c6cf091ded637a88f24f86a8875d8b0f526e2605
210224
package_info: 873975fc26034f0b863a300ad47e7f1ac6c7ec62
211-
package_info_plus: 6c92f08e1f853dc01228d6f553146438dafcd14e
212-
path_provider_foundation: c68054786f1b4f3343858c1e1d0caaded73f0be9
213-
permission_handler_apple: 44366e37eaf29454a1e7b1b7d736c2cceaeb17ce
214-
printing: eafa00acb682c0ca029d4d98d0798f55a1e27102
215-
SDWebImage: fd7e1a22f00303e058058278639bf6196ee431fe
216-
Sentry: 4c9babff9034785067c896fd580b1f7de44da020
217-
sentry_flutter: b10ae7a5ddcbc7f04648eeb2672b5747230172f1
218-
share_plus: 056a1e8ac890df3e33cb503afffaf1e9b4fbae68
219-
shared_preferences_foundation: 986fc17f3d3251412d18b0265f9c64113a8c2472
225+
package_info_plus: 115f4ad11e0698c8c1c5d8a689390df880f47e85
226+
path_provider_foundation: 29f094ae23ebbca9d3d0cec13889cd9060c0e943
227+
permission_handler_apple: e76247795d700c14ea09e3a2d8855d41ee80a2e6
228+
printing: 233e1b73bd1f4a05615548e9b5a324c98588640b
229+
SDWebImage: 7ac2b7ddc5e8484c79aa90fc4e30b149d6a2c88f
230+
Sentry: e0ea366f95ebb68f26d6030d8c22d6b2e6d23dd0
231+
sentry_flutter: 9a04c51c373d76ee22167bf1e65bc468c0a91fed
232+
SentryPrivate: 949a21fa59872427edc73b524c3ec8456761d97f
233+
share_plus: c3fef564749587fc939ef86ffb283ceac0baf9f5
234+
shared_preferences_foundation: 5b919d13b803cadd15ed2dc053125c68730e5126
220235
sign_in_with_apple: f3bf75217ea4c2c8b91823f225d70230119b8440
221236
smart_auth: 4bedbc118723912d0e45a07e8ab34039c19e04f2
222-
sqflite: 6d358c025f5b867b29ed92fc697fd34924e11904
237+
sqflite: 31f7eba61e3074736dff8807a9b41581e4f7f15a
223238
SwiftyGif: 93a1cc87bf3a51916001cf8f3d63835fb64c819f
224239
TOCropViewController: edfd4f25713d56905ad1e0b9f5be3fbe0f59c863
225240
url_launcher_ios: 08a3dfac5fb39e8759aeb0abbd5d9480f30fc8b4
226-
webview_flutter_wkwebview: b7e70ef1ddded7e69c796c7390ee74180182971f
241+
webview_flutter_wkwebview: 2e2d318f21a5e036e2c3f26171342e95908bd60a
242+
widget_kit_plugin: a245a5248f0cd2bde580285ebe6bee5c6f1f6ce1
227243

228244
PODFILE CHECKSUM: 3005ff604479ae2d844823dff36ae514d2c44ab9
229245

230-
COCOAPODS: 1.11.3
246+
COCOAPODS: 1.14.3

ios/Runner.xcodeproj/project.pbxproj

+2-1
Original file line numberDiff line numberDiff line change
@@ -160,7 +160,7 @@
160160
97C146E61CF9000F007C117D /* Project object */ = {
161161
isa = PBXProject;
162162
attributes = {
163-
LastUpgradeCheck = 1300;
163+
LastUpgradeCheck = 1430;
164164
ORGANIZATIONNAME = "";
165165
TargetAttributes = {
166166
97C146ED1CF9000F007C117D = {
@@ -210,6 +210,7 @@
210210
files = (
211211
);
212212
inputPaths = (
213+
"${TARGET_BUILD_DIR}/${INFOPLIST_PATH}",
213214
);
214215
name = "Thin Binary";
215216
outputPaths = (

ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<?xml version="1.0" encoding="UTF-8"?>
22
<Scheme
3-
LastUpgradeVersion = "1300"
3+
LastUpgradeVersion = "1430"
44
version = "1.3">
55
<BuildAction
66
parallelizeBuildables = "YES"

lib/constants.dart

+13-2
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,18 @@ class Constants {
44
}
55

66
// TODO remove version once #46609 is fixed
7-
const String kClientVersion = '5.0.141';
7+
const String kClientVersion = '5.0.142';
88
const String kMinServerVersion = '5.0.4';
99

1010
const String kAppName = 'Invoice Ninja';
1111
const String kSiteUrl = 'https://invoiceninja.com';
1212
const String kAppProductionUrl = 'https://invoicing.co';
13+
const String kAppReactUrl = 'https://app.invoicing.co';
1314
const String kAppStagingUrl = 'https://staging.invoicing.co';
1415
const String kAppStagingNetUrl = 'https://invoiceninja.net';
1516
const String kAppLargeTestUrl = 'https://testv5.invoicing.co';
16-
const String kAppDemoUrl = 'https://demo.invoiceninja.com';
17+
const String kFlutterDemoUrl = 'https://demo.invoiceninja.com';
18+
const String kReactDemoUrl = 'https://react.invoicing.co/demo';
1719
const String kWhiteLabelUrl =
1820
'https://app.invoiceninja.com/buy_now/?account_key=AsFmBAeLXF0IKf7tmi0eiyZfmWW9hxMT&product_id=3';
1921
const String kPrivacyPolicyURL = 'https://www.invoiceninja.com/privacy-policy';
@@ -51,6 +53,11 @@ const String kFacebookUrl = 'https://www.facebook.com/invoiceninja';
5153
const String kYouTubeUrl =
5254
'https://www.youtube.com/channel/UCXAHcBvhW05PDtWYIq7WDFA/videos';
5355

56+
const String kTaskExtensionUrl =
57+
'https://chromewebstore.google.com/detail/invoice-ninja-tasks/dlfcbfdpemfnjbjlladogijcchfmmaaf';
58+
const String kTaskExtensionYouTubeUrl =
59+
'https://www.youtube.com/watch?v=UL0OklMJTEA&ab_channel=InvoiceNinja';
60+
5461
const String kAppleOAuthClientId = 'com.invoiceninja.client';
5562
const String kAppleOAuthRedirectUrl = 'https://invoicing.co/auth/apple';
5663

@@ -234,6 +241,8 @@ const kTaxClassifications = [
234241
];
235242

236243
const String kEInvoiceTypeEN16931 = 'EN16931';
244+
const String kEInvoiceTypeXInvoice_3_0 = 'XInvoice_3_0';
245+
const String kEInvoiceTypeXInvoice_2_3 = 'XInvoice_2_3';
237246
const String kEInvoiceTypeXInvoice_2_2 = 'XInvoice_2_2';
238247
const String kEInvoiceTypeXInvoice_2_1 = 'XInvoice_2_1';
239248
const String kEInvoiceTypeXInvoice_2_0 = 'XInvoice_2_0';
@@ -247,6 +256,8 @@ const String kEInvoiceTypeFacturae_3_2_2 = 'Facturae_3.2.2';
247256

248257
const kEInvoiceTypes = [
249258
kEInvoiceTypeEN16931,
259+
kEInvoiceTypeXInvoice_3_0,
260+
kEInvoiceTypeXInvoice_2_3,
250261
kEInvoiceTypeXInvoice_2_2,
251262
kEInvoiceTypeXInvoice_2_1,
252263
kEInvoiceTypeXInvoice_2_0,

0 commit comments

Comments
 (0)