Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • DanBaDo/ginkgo
  • flodef/ginkgo
  • zicmama/ginkgo
  • vjrj/ginkgo
  • pokapow/ginkgo
  • weblate/ginkgo
6 results
Show changes
Commits on Source (719)
Showing
with 268 additions and 160 deletions
...@@ -8,6 +8,9 @@ ...@@ -8,6 +8,9 @@
.buildlog/ .buildlog/
.history .history
.svn/ .svn/
.env
.env.dev
.env.*
# IntelliJ related # IntelliJ related
*.iml *.iml
...@@ -44,4 +47,4 @@ app.*.map.json ...@@ -44,4 +47,4 @@ app.*.map.json
/android/app/profile /android/app/profile
/android/app/release /android/app/release
build.sh build.sh
linux/ lib/env.g.dart
{
"printWidth": 120,
"trailingComma": "es5",
"tabWidth": 2,
"semi": true,
"singleQuote": true
}
{ {
"recommendations": ["dart-code.dart-code", "dart-code.flutter"] "recommendations": ["dart-code.dart-code", "dart-code.flutter", "esbenp.prettier-vscode"]
} }
...@@ -7,8 +7,8 @@ RUN DEBIAN_FRONTEND=noninteractive apt-get update && \ ...@@ -7,8 +7,8 @@ RUN DEBIAN_FRONTEND=noninteractive apt-get update && \
rm -rf /var/lib/apt/lists/* && \ rm -rf /var/lib/apt/lists/* && \
apt-get clean apt-get clean
ARG GINKGO_WEB_VERSION=0.2.3 ARG GINKGO_WEB_VERSION=1.1.0
ARG GINKGO_WEB_VERSION_PATH=a1b70d766b4329530e3c2620e35f6dee ARG GINKGO_WEB_VERSION_PATH=b711b00f3006b99fbc7403609f475eac
RUN curl -L https://git.duniter.org/vjrj/ginkgo/uploads/${GINKGO_WEB_VERSION_PATH}/ginkgo-web-${GINKGO_WEB_VERSION}.tgz | tar xfz - -C /usr/share/nginx/html/ --strip-components=2 RUN curl -L https://git.duniter.org/vjrj/ginkgo/uploads/${GINKGO_WEB_VERSION_PATH}/ginkgo-web-${GINKGO_WEB_VERSION}.tgz | tar xfz - -C /usr/share/nginx/html/ --strip-components=2
......
# Ğ1nkgo # Ğ1nkgo
![Ğ1nkgo logo](./assets/img/logo.png "Ğ1nkgo logo") ![Ğ1nkgo logo](./assets/img/logo.png 'Ğ1nkgo logo')
Ğ1nkgo (aka Ginkgo) is a lightweight, easy to use Ğ1 wallet for Duniter v1 written in Flutter. The app allows
users to manage their Ğ1 currency and it's focused in simplicity.
Ğ1nkgo (aka Ginkgo) is a lightweight Ğ1 wallet for Duniter v1 written in Flutter. The app allows
users to manage their Ğ1 currency on their mobile device using just a browser.
## Features ## Features
- Introduction for beginners - Introduction for beginners
- Generation of Cesium wallet and persistence (if you refresh the page, it should display the same - Generation of Cesium wallet and persistence (if you refresh the page, it should display the same
wallet address). wallet address).
- A point-of-sale device that generates a QR code for the public address and other QR codes with - A point-of-sale device that generates a QR code for the public address and other QR codes with
amounts (which lightweight wallets will understand). amounts (which lightweight wallets will understand).
- Send Ğ1 transactions - Send Ğ1 transactions
- Transactions history page and Balance with persistence to load last transactions on boot - Transactions history page and Balance with persistence to load last transactions on boot
- Contact management and cache (to avoid too much API petitions) - Contact management and cache (to avoid too much API petitions)
- Internationalization (i18n) - Internationalization (i18n)
- QR code reader - QR code reader
- Import/export of your wallet - Import/export of your wallet
- Automatic discover and selection of nodes, error recovery & retry - Automatic discover and selection of nodes, error recovery & retry
- Customizable via [env file](https://git.duniter.org/vjrj/ginkgo/-/blob/master/assets/env.production.txt) - Customizable via [env file](https://git.duniter.org/vjrj/ginkgo/-/blob/master/assets/env.production.txt)
- Inline tutorials - Inline tutorials
- Pagination of transactions - Pagination of transactions
- Some contextual help (for example, by tapping on "Validity"). - Some contextual help (for example, by tapping on "Validity").
## Screenshots
| Wallet | Terminal card |
| ---------------------------------------------------------------- | ---------------------------------------------------------------------- |
| ![Card](./assets/img/card.png 'A walled in form of credit card') | ![Terminal card](./assets/img/terminal.png 'A terminal card metaphor') |
## Demo ## Demo
...@@ -32,8 +39,8 @@ This is a demo used for testing a development, please use a production server fo ...@@ -32,8 +39,8 @@ This is a demo used for testing a development, please use a production server fo
## Ğ1nkgo in production ## Ğ1nkgo in production
- [https://g1nkgo.comunes.org](https://g1nkgo.comunes.org) - [https://g1nkgo.comunes.org](https://g1nkgo.comunes.org)
- (...) - (...)
## Translations ## Translations
...@@ -53,46 +60,75 @@ mkdir -p ~/.ginkgo/www ...@@ -53,46 +60,75 @@ mkdir -p ~/.ginkgo/www
This repository requires [Flutter](https://flutter.dev/docs/get-started/install) to be installed and This repository requires [Flutter](https://flutter.dev/docs/get-started/install) to be installed and
present in your development environment. present in your development environment.
<!-- Project runs in Dart >=2.17.1 <3.0.0, so [higest admisible Flutter version is 3.7.12](https://docs.flutter.dev/release/archive). Clone the project and enter the project folder.
```sh ```sh
flutter downgrade 3.7.12 git clone https://git.duniter.org/vjrj/ginkgo.git
cd ginkgo
``` ```
__If the above command fails__ and you installed Flutter using Snap, you can try [the following](https://stackoverflow.com/questions/66545480/flutter-downgrade-error-there-is-no-previously-recorded-version-for-channel): Get the dependencies.
```sh ```sh
cd ~/snap/flutter/common/flutter flutter pub get
git checkout 3.7.12
flutter doctor
cd -
``` ```
You will see a warning about _unknown channel_. You can ignore it.-->
Clone the project and enter the project folder. ### Launch all the tests
```sh ```sh
git clone https://git.duniter.org/vjrj/ginkgo.git flutter test
cd ginkgo
``` ```
Get the dependencies. ### Build & deploy
#### Prerequisites
Create a `.env` configuration file (and `.env-dev` for development) in the root of the project. Use the `dot.env.sample` file as template.
#### Build for web
Use first this command to enable web support:
```sh ```sh
flutter pub get flutter config --enable-web
``` ```
### Build & deploy Then, build the app:
```sh
flutter build web --no-tree-shake-icons
```
#### Launch all the tests NB: Add `--release` for a production build.
If you are using a web browser different from Chrome, you should first find your browser's executable (example for Brave):
```sh ```sh
flutter test which brave-browser
``` ```
#### Build for web (release version) Then, you should add the executable path to the environment variable `CHROME_EXECUTABLE` by typing the following command:
```sh ```sh
flutter build web --release --no-tree-shake-icons export CHROME_EXECUTABLE=/usr/bin/brave-browser
```
NB: This is a temporary solution that will be reset when you close your terminal. If you want to make it permanent, you should add this variable to your `.bashrc` or `.zshrc` file:
```sh
nano ~/.bashrc
```
Then, add the following line at the end of the file:
```sh
export CHROME_EXECUTABLE=/usr/bin/brave-browser
```
Finally, reload your terminal:
```sh
source ~/.bashrc
``` ```
#### Build and deploy to your server #### Build and deploy to your server
...@@ -103,88 +139,135 @@ rsync --progress=info2 --delete -aH build/web/ youruser@yourserver:/var/www/gink ...@@ -103,88 +139,135 @@ rsync --progress=info2 --delete -aH build/web/ youruser@yourserver:/var/www/gink
### Run dev environment ### Run dev environment
Run the app via command line or through your development environment. Run the app via command line or through your development environment. It will run the default built version.
```sh ```sh
flutter run flutter run
``` ```
NB: If there are more than one built version, there will be a prompt asking for the version you want to use (for example, web or desktop)
If you want to directly run a specific version (for example, the web version), use:
```sh
flutter run -d "chrome"
```
In order to do gva operations, you should disable cors in the flutter run config: In order to do gva operations, you should disable cors in the flutter run config:
``` ```
--web-browser-flag "--disable-web-security" --web-browser-flag "--disable-web-security"
``` ```
![cors disable](./assets/img/cors.png "CORS disabled") ![cors disable](./assets/img/cors.png 'CORS disabled')
### Pub packages used ### Easy Localization
This repository makes use of the following pub packages: To add translations, add a .json translation file in the [assets/translations](./assets/translations)
folder, by prefixing the file with the language code (for example, `en.json` for English).
The file should be in the format:
| Package | Version | Usage | ```json
| ------------------------------------------------------------------- | ------- | ----------------------------------------------------- | {
| [Durt](https://pub.dev/packages/durt) | ^0.1.6 | Duniter crypto lib | "key": "value"
| [Bloc](https://pub.dev/packages/bloc) | ^8.1.0 | State management | }
| [Flutter Bloc](https://pub.dev/packages/flutter_bloc) | ^8.1.1 | State management | ```
| [Hydrated Bloc](https://pub.dev/packages/hydrated_bloc) | ^9.0.0 | Persists Bloc state with Hive |
| [Equatable](https://pub.dev/packages/equatable) | ^2.0.5 | Easily compare custom classes, used for Bloc states\* |
| [Flutter Lints](https://pub.dev/packages/flutter_lints) | ^2.0.1 | Stricter linting rules |
| [Path Provider](https://pub.dev/packages/path_provider) | ^2.0.11 | Get the save path for Hive |
| [Flutter Displaymode](https://pub.dev/packages/flutter_displaymode) | ^0.5.0 | Support high refresh rate displays |
| [Easy Localization](https://pub.dev/packages/easy_localization) | ^3.0.1 | Makes localization easy |
| [Hive](https://pub.dev/packages/hive) | ^2.2.3 | Platform independent storage. |
| [Url Launcher](https://pub.dev/packages/url_launcher) | ^6.1.7 | Open urls in Browser |
| [Ionicons](https://pub.dev/packages/ionicons) | ^0.2.2 | Modern icon library |
### Easy Localization Then, add the language in the [main.dart](./lib/main.dart) file:
```dart
supportedLocales: const <Locale>[
Locale('en', ''),
],
```
To add translations, add it to `assets/translations` and enable it in `main.dart`. Also go Go to [ios/Runner/Info.plist](./ios/Runner/Info.plist) and update the following code adding the language:
to [ios/Runner/Info.plist](./ios/Runner/Info.plist) and update the following code:
``` ```
<key>CFBundleLocalizations</key> <key>CFBundleLocalizations</key>
<array> <array>
<string>en</string> <string>en</string>
<string>es</string>
<string>fr</string>
<string>ca</string>
</array> </array>
``` ```
`` Finally, add the language to the User Interface in the [screen](./lib/fifth_screen.dart) file:
## Screenshots ```dart
DropdownMenuItem<Locale>(
value: Locale('en'),
child: Text('English'),
),
```
| Wallet | Terminal card | ## Troubleshooting
| ---------------------------------------------------------------- | ---------------------------------------------------------------------- |
| ![Card](./assets/img/card.png "A walled in form of credit card") | ![Terminal card](./assets/img/terminal.png "A terminal card metaphor") | 1. If you cannot build the app, try to run `flutter clean` and then `flutter pub get`.
2. If it still doesn't work, try to delete the `build` folder and run `flutter pub get` again.
3. At least, you can try to run `flutter pub upgrade` to upgrade all the dependencies.
4. And in last resort, you can try to delete the `pubspec.lock` file and run `flutter pub get` again.
5. Finally, there is a troubleshooting command in flutter: `flutter doctor -v`.
## Credits ## Credits
### Translations ### Translations
- ast: dixebral - ast: dixebral
- ca: calbasi - ca: calbasi
- de: FW - da: Gerhard Pischinger
- eu: Anna Ayala Alcalá - de: Andreas Wahlen and FW
- fr: vincentux, poka, Hugo and Maaltir - eo: flodef
- gl: Vijitâtman - eu: Anna Ayala Alcalá
- it: Anna Ayala Alcalá - fr: flodef, Hugo, Maaltir, Michel du 64, italpaola, poka and vincentux
- nl: Maria Rosa Costa i Alandi - gl: Vijitâtman
- pt: Carlos Neto - it: Anna Ayala Alcalá, italpaola
- nl: Maria Rosa Costa i Alandi
- pt: Carlos Neto
Thanks! Thanks!
### Others ### Others
- Ğ1 logos from duniter.org - Ğ1 logos from duniter.org
- undraw intro images: https://undraw.co/license - undraw intro images: https://undraw.co/license
- Chipcard https://commons.wikimedia.org/wiki/File:Chipcard.svg under the Creative Commons - Chipcard https://commons.wikimedia.org/wiki/File:Chipcard.svg under the Creative Commons
Attribution-Share Alike 3.0 Unported license. Attribution-Share Alike 3.0 Unported license.
- [POS svg from wikimedia](https://commons.wikimedia.org/wiki/File:Card_Terminal_POS_Flat_Icon_Vector.svg) CC-BY-SA 4.0 - [POS svg from wikimedia](https://commons.wikimedia.org/wiki/File:Card_Terminal_POS_Flat_Icon_Vector.svg) CC-BY-SA 4.0
- Open Sans: Copyright 2020 The Open Sans Project Authors (https://github.com/googlefonts/opensans) under the SIL Open Font License, Version 1.1.
- NotoEmoji: Copyright 2013 Google LLC under the SIL Open Font License, Version 1.1.
- Dejavu are (c) Bitstream DejaVu changes are in public domain.
-----------------------------------------------------------
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
-----------------------------------------------------------
### Pub packages used
This repository makes use of the following pub packages:
| Package | Version | Usage |
| ------------------------------------------------------------------- | ------- | ----------------------------------------------------- |
| [Durt](https://pub.dev/packages/durt) | ^0.1.6 | Duniter crypto lib |
| [Bloc](https://pub.dev/packages/bloc) | ^8.1.0 | State management |
| [Flutter Bloc](https://pub.dev/packages/flutter_bloc) | ^8.1.1 | State management |
| [Hydrated Bloc](https://pub.dev/packages/hydrated_bloc) | ^9.0.0 | Persists Bloc state with Hive |
| [Equatable](https://pub.dev/packages/equatable) | ^2.0.5 | Easily compare custom classes, used for Bloc states\* |
| [Flutter Lints](https://pub.dev/packages/flutter_lints) | ^2.0.1 | Stricter linting rules |
| [Path Provider](https://pub.dev/packages/path_provider) | ^2.0.11 | Get the save path for Hive |
| [Flutter Displaymode](https://pub.dev/packages/flutter_displaymode) | ^0.5.0 | Support high refresh rate displays |
| [Easy Localization](https://pub.dev/packages/easy_localization) | ^3.0.1 | Makes localization easy |
| [Hive](https://pub.dev/packages/hive) | ^2.2.3 | Platform independent storage. |
| [Url Launcher](https://pub.dev/packages/url_launcher) | ^6.1.7 | Open urls in Browser |
| [Ionicons](https://pub.dev/packages/ionicons) | ^0.2.2 | Modern icon library |
Thanks! Thanks!
## License ## License
GNU AGPL v3 (see LICENSE) GNU AGPL v3 (see LICENSE)
```
```
...@@ -28,7 +28,7 @@ analyzer: ...@@ -28,7 +28,7 @@ analyzer:
todo: ignore todo: ignore
# allow self-reference to deprecated members (we do this because otherwise we have # allow self-reference to deprecated members (we do this because otherwise we have
# to annotate every member in every test, assert, etc, when we deprecate something) # to annotate every member in every test, assert, etc, when we deprecate something)
deprecated_member_use_from_same_package: ignore deprecated_member_use_from_same_package: warning
# Turned off until null-safe rollout is complete. # Turned off until null-safe rollout is complete.
unnecessary_null_comparison: ignore unnecessary_null_comparison: ignore
exclude: exclude:
...@@ -36,6 +36,7 @@ analyzer: ...@@ -36,6 +36,7 @@ analyzer:
# Ignore protoc generated files # Ignore protoc generated files
- "dev/conductor/lib/proto/*" - "dev/conductor/lib/proto/*"
- "lib/data/models/*g.dart" - "lib/data/models/*g.dart"
- "lib/generated/**"
linter: linter:
rules: rules:
...@@ -44,7 +45,6 @@ linter: ...@@ -44,7 +45,6 @@ linter:
- always_declare_return_types - always_declare_return_types
- always_put_control_body_on_new_line - always_put_control_body_on_new_line
# - always_put_required_named_parameters_first # we prefer having parameters in the same order as fields https://github.com/flutter/flutter/issues/10219 # - always_put_required_named_parameters_first # we prefer having parameters in the same order as fields https://github.com/flutter/flutter/issues/10219
- always_require_non_null_named_parameters
- always_specify_types - always_specify_types
# - always_use_package_imports # we do this commonly # - always_use_package_imports # we do this commonly
- annotate_overrides - annotate_overrides
...@@ -74,7 +74,6 @@ linter: ...@@ -74,7 +74,6 @@ linter:
- avoid_renaming_method_parameters - avoid_renaming_method_parameters
- avoid_return_types_on_setters - avoid_return_types_on_setters
# - avoid_returning_null # still violated by some pre-nnbd code that we haven't yet migrated # - avoid_returning_null # still violated by some pre-nnbd code that we haven't yet migrated
- avoid_returning_null_for_future
- avoid_returning_null_for_void - avoid_returning_null_for_void
# - avoid_returning_this # there are enough valid reasons to return `this` that this lint ends up with too many false positives # - avoid_returning_this # there are enough valid reasons to return `this` that this lint ends up with too many false positives
- avoid_setters_without_getters - avoid_setters_without_getters
......
def localProperties = new Properties() plugins {
def localPropertiesFile = rootProject.file('local.properties') id "com.android.application"
if (localPropertiesFile.exists()) { id "kotlin-android"
localPropertiesFile.withReader('UTF-8') { reader -> // The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins.
localProperties.load(reader) id "dev.flutter.flutter-gradle-plugin"
}
}
def flutterRoot = localProperties.getProperty('flutter.sdk')
if (flutterRoot == null) {
throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.")
}
def flutterVersionCode = localProperties.getProperty('flutter.versionCode')
if (flutterVersionCode == null) {
flutterVersionCode = '1'
}
def flutterVersionName = localProperties.getProperty('flutter.versionName')
if (flutterVersionName == null) {
flutterVersionName = '1.0'
} }
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
android { android {
compileSdkVersion 33 namespace = "org.comunes.ginkgo"
compileSdk = flutter.compileSdkVersion
ndkVersion = flutter.ndkVersion
compileOptions {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
}
sourceSets { kotlinOptions {
main.java.srcDirs += 'src/main/kotlin' jvmTarget = JavaVersion.VERSION_1_8
} }
defaultConfig { defaultConfig {
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
applicationId "org.comunes.ginkgo" applicationId "org.comunes.ginkgo"
minSdkVersion 23 // You can update the following values to match your application needs.
targetSdkVersion 33 // For more information, see: https://flutter.dev/to/review-gradle-config.
versionCode flutterVersionCode.toInteger() minSdk = 23
versionName flutterVersionName targetSdk = 33
versionCode = flutter.versionCode
versionName = flutter.versionName
} }
buildTypes { buildTypes {
release { release {
// TODO: Add your own signing config for the release build. // TODO: Add your own signing config for the release build.
// Signing with the debug keys for now, so `flutter run --release` works. // Signing with the debug keys for now, so `flutter run --release` works.
signingConfig signingConfigs.debug signingConfig = signingConfigs.debug
} }
} }
} }
flutter { flutter {
source '../..' source = "../.."
}
dependencies {
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
} }
...@@ -2,19 +2,29 @@ ...@@ -2,19 +2,29 @@
package="org.comunes.ginkgo"> package="org.comunes.ginkgo">
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission
android:name="android.permission.MANAGE_EXTERNAL_STORAGE"
android:maxSdkVersion="34" />.
<uses-permission android:name="android.permission.CAMERA" /> <uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.NFC" /> <uses-permission android:name="android.permission.NFC" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_INTERNAL_STORAGE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<!-- By awesome notifications -->
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.SCHEDULE_EXACT_ALARM" />
<uses-permission android:name="android.permission.USE_FULL_SCREEN_INTENT" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<application <application
android:requestLegacyExternalStorage="true"
android:icon="@mipmap/ic_launcher" android:icon="@mipmap/ic_launcher"
android:label="Ginkgo"> android:label="Ginkgo"
android:requestLegacyExternalStorage="true">
<activity <activity
android:name=".MainActivity" android:name=".MainActivity"
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode" android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
...@@ -23,6 +33,7 @@ ...@@ -23,6 +33,7 @@
android:launchMode="singleTop" android:launchMode="singleTop"
android:theme="@style/LaunchTheme" android:theme="@style/LaunchTheme"
android:windowSoftInputMode="adjustResize"> android:windowSoftInputMode="adjustResize">
<meta-data android:name="flutter_deeplinking_enabled" android:value="false" />
<!-- Specifies an Android theme to apply to this Activity as soon as <!-- Specifies an Android theme to apply to this Activity as soon as
the Android process has started. This theme is visible to the user the Android process has started. This theme is visible to the user
while the Flutter UI initializes. After that, this theme continues while the Flutter UI initializes. After that, this theme continues
...@@ -41,9 +52,11 @@ ...@@ -41,9 +52,11 @@
</intent-filter> </intent-filter>
<intent-filter> <intent-filter>
<action android:name="android.intent.action.VIEW" /> <action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" /> <category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="june" />
<data android:scheme="june" android:host="org.comunes.ginkgo" />
</intent-filter> </intent-filter>
</activity> </activity>
<!-- Don't delete the meta-data below. <!-- Don't delete the meta-data below.
......
buildscript {
ext.kotlin_version = '1.8.20'
repositories {
google()
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:7.2.2'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}
allprojects { allprojects {
repositories { repositories {
google() google()
...@@ -18,10 +5,12 @@ allprojects { ...@@ -18,10 +5,12 @@ allprojects {
} }
} }
rootProject.buildDir = '../build' rootProject.buildDir = "../build"
subprojects { subprojects {
project.buildDir = "${rootProject.buildDir}/${project.name}" project.buildDir = "${rootProject.buildDir}/${project.name}"
project.evaluationDependsOn(':app') }
subprojects {
project.evaluationDependsOn(":app")
} }
tasks.register("clean", Delete) { tasks.register("clean", Delete) {
......
org.gradle.jvmargs=-Xmx1536M org.gradle.jvmargs=-Xmx4G -XX:MaxMetaspaceSize=2G -XX:+HeapDumpOnOutOfMemoryError
android.useAndroidX=true android.useAndroidX=true
android.enableJetifier=true android.enableJetifier=true
#Fri Jun 23 08:50:38 CEST 2017
distributionBase=GRADLE_USER_HOME distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-all.zip distributionUrl=https\://services.gradle.org/distributions/gradle-8.3-all.zip
include ':app' pluginManagement {
def flutterSdkPath = {
def properties = new Properties()
file("local.properties").withInputStream { properties.load(it) }
def flutterSdkPath = properties.getProperty("flutter.sdk")
assert flutterSdkPath != null, "flutter.sdk not set in local.properties"
return flutterSdkPath
}()
def localPropertiesFile = new File(rootProject.projectDir, "local.properties") includeBuild("$flutterSdkPath/packages/flutter_tools/gradle")
def properties = new Properties()
assert localPropertiesFile.exists() repositories {
localPropertiesFile.withReader("UTF-8") { reader -> properties.load(reader) } google()
mavenCentral()
gradlePluginPortal()
}
}
def flutterSdkPath = properties.getProperty("flutter.sdk") plugins {
assert flutterSdkPath != null, "flutter.sdk not set in local.properties" id "dev.flutter.flutter-plugin-loader" version "1.0.0"
apply from: "$flutterSdkPath/packages/flutter_tools/gradle/app_plugin_loader.gradle" id "com.android.application" version "8.1.0" apply false
id "org.jetbrains.kotlin.android" version "1.8.22" apply false
}
include ":app"
File added
File added
File added
File added
File added
File added
File added
CURRENCY=g1-test
#SENTRY_DSN=https://306345cb87ee4e1cbbe9023fb4afc5fc@sentry.comunes.org/6
# Card customization
CARD_COLOR_LEFT="0xFFCE002D"
CARD_COLOR_RIGHT="0xFF673F1E"
# Empty for default
CARD_TEXT=Wallet in Ğ1-Test
# Nodes space-separated
# The duniter nodes are only used at boot time, later it tries to calculate periodically the nodes
# that are available with the less latency
DUNITER_NODES=https://g1-test.duniter.org
CESIUM_PLUS_NODES=https://g1.data.le-sou.org https://g1.data.e-is.pro https://g1.data.presles.fr https://g1.data.mithril.re
GVA_NODES=https://g1-test-dev.pini.fr:443/gva