Compare commits
178 Commits
Author | SHA1 | Date |
---|---|---|
Rongjian Zhang | c30895ab1e | |
Rongjian Zhang | 504ee9c863 | |
Rongjian Zhang | 0f4192f0be | |
Shreyas Thirumalai | 19a87870bb | |
Shreyas Thirumalai | 88ca58d62b | |
Rongjian Zhang | ade30dec99 | |
Rongjian Zhang | 51bd138951 | |
Rongjian Zhang | 4595f61961 | |
Rongjian Zhang | 7d70886d52 | |
Rongjian Zhang | 1edc61edef | |
Rongjian Zhang | 65e43dc633 | |
Rongjian Zhang | 06a96a14be | |
Rongjian Zhang | e2de7feec2 | |
Rongjian Zhang | 56402d789c | |
Rongjian Zhang | 29242aa45d | |
Rongjian Zhang | ad44495236 | |
Rongjian Zhang | 3d21b6c226 | |
Rongjian Zhang | fbb524a7de | |
Rongjian Zhang | 7bd412eb2b | |
Rongjian Zhang | 7ca3fe03c5 | |
Rongjian Zhang | b65ce98077 | |
Rongjian Zhang | fddf67d518 | |
Rongjian Zhang | 5a5b20eb7e | |
Rongjian Zhang | efd74ccd86 | |
Rongjian Zhang | 7b51747576 | |
Rongjian Zhang | 61d5a3e846 | |
Rongjian Zhang | 9892d87f9b | |
Rongjian Zhang | 826664e3f1 | |
Rongjian Zhang | e6298b2363 | |
Rongjian Zhang | 3953544d55 | |
Rongjian Zhang | f7eb0e6f62 | |
Rongjian Zhang | 830441ba05 | |
Rongjian Zhang | d86229e367 | |
Rongjian Zhang | a1182ed6a5 | |
Rongjian Zhang | 633b58d36f | |
Rongjian Zhang | 4c2a7177eb | |
Rongjian Zhang | 057bad71fe | |
Rongjian Zhang | 9b339c6cdf | |
Rongjian Zhang | 7a71d13f7d | |
Rongjian Zhang | 36e505d511 | |
Rongjian Zhang | 775b2cef49 | |
Rongjian Zhang | e872b4753d | |
Rongjian Zhang | df946c514a | |
Rongjian Zhang | e45b8fa134 | |
Rongjian Zhang | 2d28eb7b41 | |
Rongjian Zhang | 55f3f6a713 | |
Rongjian Zhang | 0a28311797 | |
Rongjian Zhang | b7dcf933a3 | |
Rongjian Zhang | 26b78a31a6 | |
Rongjian Zhang | 0e952a6ef7 | |
Rongjian Zhang | 9e2850558d | |
Rongjian Zhang | 206cd1244c | |
Rongjian Zhang | 4fe46b274a | |
Rongjian Zhang | 048d35112b | |
Rongjian Zhang | 3474d931ac | |
Rongjian Zhang | 706d456c46 | |
Rongjian Zhang | efc2359f27 | |
Rongjian Zhang | ba34337b07 | |
Rongjian Zhang | 89966a95e6 | |
Rongjian Zhang | 9df896a0db | |
Rongjian Zhang | 7b08f4cc07 | |
Rongjian Zhang | d5f3bd9f24 | |
Rongjian Zhang | a30385a414 | |
Rongjian Zhang | 8d1e3fa596 | |
Rongjian Zhang | d7972c4084 | |
Rongjian Zhang | 6df89e771e | |
Rongjian Zhang | 536b031655 | |
Rongjian Zhang | 15a57899fd | |
Rongjian Zhang | fee559ba9a | |
Rongjian Zhang | 073af6f492 | |
Rongjian Zhang | d8f38d34aa | |
Rongjian Zhang | 9b914ff1f1 | |
Rongjian Zhang | 20b7addf51 | |
Rongjian Zhang | 5214a404b1 | |
Rongjian Zhang | cf6871ce20 | |
Rongjian Zhang | 988cdbfe45 | |
Rongjian Zhang | e8eb860222 | |
Rongjian Zhang | 7e79da77ee | |
Rongjian Zhang | 606370a85e | |
Rongjian Zhang | e5929aa1b8 | |
Rongjian Zhang | f0b52e82ab | |
Rongjian Zhang | 5b7b465b09 | |
Rongjian Zhang | 8eda3e36c8 | |
Rongjian Zhang | b2e7a97dab | |
Rongjian Zhang | 137af2df75 | |
Rongjian Zhang | ec99de2b6d | |
Rongjian Zhang | 66e14509de | |
Rongjian Zhang | fac17a69ef | |
Rongjian Zhang | d9c50cd0a9 | |
Rongjian Zhang | 4e715d9697 | |
Rongjian Zhang | d250f1c95c | |
Rongjian Zhang | a512e41121 | |
Rongjian Zhang | 9545b26310 | |
Rongjian Zhang | 4af23c160d | |
Rongjian Zhang | 084bc3c86a | |
Rongjian Zhang | aac5fb866b | |
Rongjian Zhang | 08f70164f4 | |
Rongjian Zhang | cac6385e6e | |
Rongjian Zhang | 9207d52cf3 | |
Rongjian Zhang | 3261db8fee | |
Rongjian Zhang | dc40206576 | |
Rongjian Zhang | f14e274d24 | |
Rongjian Zhang | c5ea37f9bd | |
Rongjian Zhang | 5635238921 | |
Rongjian Zhang | 081acbeda8 | |
Rongjian Zhang | b688dc155a | |
Rongjian Zhang | e8f3d956c3 | |
Rongjian Zhang | 854a1c9506 | |
Rongjian Zhang | f52fee752d | |
Rongjian Zhang | ff7eadc5c9 | |
Rongjian Zhang | fc7dd512e8 | |
Rongjian Zhang | 8114cff317 | |
Rongjian Zhang | bad5327928 | |
Rongjian Zhang | 126fadac76 | |
Rongjian Zhang | 594c5de972 | |
Rongjian Zhang | 7247c05817 | |
Rongjian Zhang | 112a97f0eb | |
Rongjian Zhang | d48ac1e484 | |
Shreyas Thirumalai | d6a24c257a | |
Shreyas Thirumalai | 68253e071e | |
Shreyas Thirumalai | ddfa9e469e | |
Rongjian Zhang | 64178db3db | |
Rongjian Zhang | 1f4f034c40 | |
Rongjian Zhang | 105eed467b | |
Rongjian Zhang | 36930eb8aa | |
Rongjian Zhang | b488b90f97 | |
Rongjian Zhang | 5b3bc45db5 | |
Rongjian Zhang | 442d910dbd | |
Rongjian Zhang | 97bd998491 | |
Rongjian Zhang | 242dd1200d | |
Rongjian Zhang | 70e19e9b72 | |
Rongjian Zhang | b320a8e6dd | |
Rongjian Zhang | 17df5d634c | |
Rongjian Zhang | 917a8018f3 | |
Rongjian Zhang | ac02fd705a | |
Rongjian Zhang | 17b6fd5d78 | |
Rongjian Zhang | af52d55af9 | |
Rongjian Zhang | 14369c2002 | |
Rongjian Zhang | 87dbe87095 | |
Rongjian Zhang | 9b3a6fce07 | |
Rongjian Zhang | e2f103a807 | |
Rongjian Zhang | 841a5d13cf | |
Rongjian Zhang | 445925584b | |
峡州仙士 | e2721f8877 | |
V | db86c0aee2 | |
ssantos | f2d32f89ff | |
qwerty287 | 09058db773 | |
SoftwareByRedline | cc653f8052 | |
Oliver Lew | e6e46d30ab | |
Heimen Stoffels | 9c72645e8c | |
Tealk | 031af33f37 | |
Adolfo Jayme Barrientos | 7209cd2b56 | |
kak mi | 65a604768e | |
HelaBasa | c4fc788630 | |
Rongjian Zhang | ef014c3054 | |
Rongjian Zhang | efe0126bdb | |
Rongjian Zhang | 420eca980a | |
Rongjian Zhang | c257c74b59 | |
Rongjian Zhang | 6d6e5bf195 | |
Rongjian Zhang | fa932b53ea | |
gyro永不抽风 | a5277965f1 | |
Rongjian Zhang | 4242b494b2 | |
Rongjian Zhang | 72f709f076 | |
Rongjian Zhang | 11fc186091 | |
Rongjian Zhang | 7521c40ee8 | |
Rongjian Zhang | f64c02b10b | |
Rongjian Zhang | 36a161cc3b | |
Rongjian Zhang | a90d7ddb43 | |
Rongjian Zhang | de9830af43 | |
Rongjian Zhang | 2a4e9a9dca | |
Rongjian Zhang | 702567e43a | |
Rongjian Zhang | 4dd1ddf8f9 | |
Rongjian Zhang | e413677523 | |
Rongjian Zhang | 5d799b31ac | |
Sultan Iskandar Maulana | acf088d860 | |
Sultan Iskandar Maulana | f7eea5ba70 | |
Rongjian Zhang | 2d19710f27 | |
Rongjian Zhang | 74e731af5e |
|
@ -1,22 +0,0 @@
|
|||
name: deploy
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: subosito/flutter-action@v1
|
||||
with:
|
||||
channel: dev
|
||||
- run: |
|
||||
flutter config --enable-web
|
||||
flutter pub get
|
||||
flutter build web
|
||||
- uses: peaceiris/actions-gh-pages@v3
|
||||
with:
|
||||
personal_token: ${{ secrets.PERSONAL_TOKEN }}
|
||||
publish_dir: ./build/web/
|
||||
external_repository: git-touch/git-touch.github.io
|
|
@ -1,14 +1,18 @@
|
|||
name: lint
|
||||
on:
|
||||
push:
|
||||
branches: [main]
|
||||
branches:
|
||||
- main
|
||||
pull_request:
|
||||
branches: [main]
|
||||
branches:
|
||||
- main
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
container:
|
||||
image: google/dart:latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- run: dartfmt --dry-run --set-exit-if-changed lib/*.dart lib/models/*.dart lib/scaffolds/*.dart lib/screens/*.dart lib/utils/*.dart lib/widgets/*.dart
|
||||
- uses: subosito/flutter-action@v1
|
||||
with:
|
||||
channel: stable
|
||||
- run: flutter analyze
|
||||
- run: flutter format --dry-run --set-exit-if-changed lib/**/*.dart
|
||||
|
|
|
@ -8,6 +8,7 @@
|
|||
.buildlog/
|
||||
.history
|
||||
.svn/
|
||||
migrate_working_dir/
|
||||
|
||||
# IntelliJ related
|
||||
*.iml
|
||||
|
@ -39,3 +40,10 @@ app.*.symbols
|
|||
|
||||
# Obfuscation related
|
||||
app.*.map.json
|
||||
|
||||
# Android Studio will place build artifacts here
|
||||
/android/app/debug
|
||||
/android/app/profile
|
||||
/android/app/release
|
||||
|
||||
packages/*/pubspec.lock
|
||||
|
|
39
.metadata
39
.metadata
|
@ -1,10 +1,45 @@
|
|||
# This file tracks properties of this Flutter project.
|
||||
# Used by Flutter tool to assess capabilities and perform upgrades etc.
|
||||
#
|
||||
# This file should be version controlled and should not be manually edited.
|
||||
# This file should be version controlled.
|
||||
|
||||
version:
|
||||
revision: d408d302e22179d598f467e11da5dd968dbdc9ec
|
||||
revision: 676cefaaff197f27424942307668886253e1ec35
|
||||
channel: stable
|
||||
|
||||
project_type: app
|
||||
|
||||
# Tracks metadata for the flutter migrate command
|
||||
migration:
|
||||
platforms:
|
||||
- platform: root
|
||||
create_revision: 676cefaaff197f27424942307668886253e1ec35
|
||||
base_revision: 676cefaaff197f27424942307668886253e1ec35
|
||||
- platform: android
|
||||
create_revision: 676cefaaff197f27424942307668886253e1ec35
|
||||
base_revision: 676cefaaff197f27424942307668886253e1ec35
|
||||
- platform: ios
|
||||
create_revision: 676cefaaff197f27424942307668886253e1ec35
|
||||
base_revision: 676cefaaff197f27424942307668886253e1ec35
|
||||
- platform: linux
|
||||
create_revision: 676cefaaff197f27424942307668886253e1ec35
|
||||
base_revision: 676cefaaff197f27424942307668886253e1ec35
|
||||
- platform: macos
|
||||
create_revision: 676cefaaff197f27424942307668886253e1ec35
|
||||
base_revision: 676cefaaff197f27424942307668886253e1ec35
|
||||
- platform: web
|
||||
create_revision: 676cefaaff197f27424942307668886253e1ec35
|
||||
base_revision: 676cefaaff197f27424942307668886253e1ec35
|
||||
- platform: windows
|
||||
create_revision: 676cefaaff197f27424942307668886253e1ec35
|
||||
base_revision: 676cefaaff197f27424942307668886253e1ec35
|
||||
|
||||
# User provided section
|
||||
|
||||
# List of Local paths (relative to this file) that should be
|
||||
# ignored by the migrate tool.
|
||||
#
|
||||
# Files that are not part of the templates will be ignored by default.
|
||||
unmanaged_files:
|
||||
- 'lib/main.dart'
|
||||
- 'ios/Runner.xcodeproj/project.pbxproj'
|
||||
|
|
|
@ -0,0 +1,36 @@
|
|||
{
|
||||
"version": "2.0.0",
|
||||
"tasks": [
|
||||
{
|
||||
"label": "all",
|
||||
"dependsOn": ["root", "gql_github", "gql_gitlab", "github_trending"]
|
||||
},
|
||||
{
|
||||
"label": "root",
|
||||
"type": "dart",
|
||||
"command": "dart",
|
||||
"args": ["run", "build_runner", "watch"]
|
||||
},
|
||||
{
|
||||
"label": "gql_github",
|
||||
"type": "dart",
|
||||
"command": "dart",
|
||||
"cwd": "packages/gql_github",
|
||||
"args": ["run", "build_runner", "watch"]
|
||||
},
|
||||
{
|
||||
"label": "gql_gitlab",
|
||||
"type": "dart",
|
||||
"command": "dart",
|
||||
"cwd": "packages/gql_gitlab",
|
||||
"args": ["run", "build_runner", "watch"]
|
||||
},
|
||||
{
|
||||
"label": "github_trending",
|
||||
"type": "dart",
|
||||
"command": "dart",
|
||||
"cwd": "packages/github_trending",
|
||||
"args": ["run", "build_runner", "watch"]
|
||||
}
|
||||
]
|
||||
}
|
731
CHANGELOG.md
731
CHANGELOG.md
|
@ -1,16 +1,721 @@
|
|||
## 1.1.0
|
||||
# [](https://github.com/git-touch/git-touch/compare/v1.13.0...v) (2021-06-14)
|
||||
|
||||
|
||||
|
||||
# [1.13.0](https://github.com/git-touch/git-touch/compare/v1.12.4...v1.13.0) (2021-06-14)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* avatar url error fallback ([70e19e9](https://github.com/git-touch/git-touch/commit/70e19e9b7204100d5c72ec9dc14991d245c70b07))
|
||||
* bitbucket and gitlab files length ([242dd12](https://github.com/git-touch/git-touch/commit/242dd1200de034b4bf2bfbf30ea94c1a3dcd6153)), closes [#224](https://github.com/git-touch/git-touch/issues/224)
|
||||
* long list scaffold ([17b6fd5](https://github.com/git-touch/git-touch/commit/17b6fd5d783e6dbc80b00e57423c2876ac862306))
|
||||
* types ([97bd998](https://github.com/git-touch/git-touch/commit/97bd99849104bebfc3633b3c5bd96de6db35d3a1))
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* check update after opening app ([36930eb](https://github.com/git-touch/git-touch/commit/36930eb8aad7ab78566324fcd1347c4e0c48166f))
|
||||
* crash report ([442d910](https://github.com/git-touch/git-touch/commit/442d910dbdcdc9d1dae519c6e44085874ddf2f76)), closes [#114](https://github.com/git-touch/git-touch/issues/114)
|
||||
|
||||
|
||||
|
||||
## [1.12.4](https://github.com/git-touch/git-touch/compare/v1.12.3...v1.12.4) (2021-05-30)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* empty accounts ([e2f103a](https://github.com/git-touch/git-touch/commit/e2f103a807291fd0cec12dcca641c70e66f3fa18))
|
||||
* nullable types ([841a5d1](https://github.com/git-touch/git-touch/commit/841a5d13cf76d7f5e0a62ad90471ab241fe06fef))
|
||||
* pagination null ([87dbe87](https://github.com/git-touch/git-touch/commit/87dbe870954139196c318698e47a90d26eb92586))
|
||||
* set locale null ([9b3a6fc](https://github.com/git-touch/git-touch/commit/9b3a6fce078690bc7474aed5b91c7d8dbe6d84b2))
|
||||
|
||||
|
||||
|
||||
## [1.12.3](https://github.com/git-touch/git-touch/compare/v1.12.2...v1.12.3) (2021-02-27)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **github:** issue screen pagination ([7521c40](https://github.com/git-touch/git-touch/commit/7521c40ee8b7e4805e6a5acdd354c7700839f150)), closes [#198](https://github.com/git-touch/git-touch/issues/198)
|
||||
* locale resolve ([74e731a](https://github.com/git-touch/git-touch/commit/74e731af5ed5242c0852c12f859d0cd16a6c3c94))
|
||||
|
||||
|
||||
|
||||
## [1.12.2](https://github.com/git-touch/git-touch/compare/v1.12.1...v1.12.2) (2021-02-19)
|
||||
|
||||
|
||||
|
||||
## [1.12.1](https://github.com/git-touch/git-touch/compare/v1.12.0...v1.12.1) (2021-02-19)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* locale fallback ([c80ca3e](https://github.com/git-touch/git-touch/commit/c80ca3e86034979ade2fb170be9a047def016395)), closes [#199](https://github.com/git-touch/git-touch/issues/199)
|
||||
* **bitbucket:** pull requests url ([#197](https://github.com/git-touch/git-touch/issues/197)) ([4a7028f](https://github.com/git-touch/git-touch/commit/4a7028f5256fde36a951f09b6c88e2f420e77e79))
|
||||
|
||||
|
||||
|
||||
# [1.12.0](https://github.com/git-touch/git-touch/compare/v1.11.1...v1.12.0) (2021-02-14)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **github:** commits screen ref ([07d3910](https://github.com/git-touch/git-touch/commit/07d39100d71ebb32c28e74a2d70a031fc0178f6b)), closes [#196](https://github.com/git-touch/git-touch/issues/196)
|
||||
* files screen error ([#184](https://github.com/git-touch/git-touch/issues/184)) ([4f3d472](https://github.com/git-touch/git-touch/commit/4f3d47200e81f8f77898004d44f8f8006b41d20d))
|
||||
* html view disposed before set state ([f4e5df4](https://github.com/git-touch/git-touch/commit/f4e5df4068847c0033c6cfed4a94128e2cee8354))
|
||||
* set locale and reload ([d488d4b](https://github.com/git-touch/git-touch/commit/d488d4b8269b2df5e9b54dace2da21262f368633))
|
||||
* **github:** comment emoji reaction ([dd6fe2b](https://github.com/git-touch/git-touch/commit/dd6fe2b96148aa25afced4b28da555289b70867c))
|
||||
* **github:** comment of deleted user ([09edf5f](https://github.com/git-touch/git-touch/commit/09edf5f04b31b36c202f2f6d76bf376f95c76d2a)), closes [#161](https://github.com/git-touch/git-touch/issues/161)
|
||||
* **github:** release screen error ([#183](https://github.com/git-touch/git-touch/issues/183)) ([af3c165](https://github.com/git-touch/git-touch/commit/af3c1655e42d4d2057e1996fc57945a46bc49709))
|
||||
* **github:** repo and user mutations ([10477a7](https://github.com/git-touch/git-touch/commit/10477a707115eb11ababb20a684b2b56b84c6e84))
|
||||
* hide contribution graph scrollbar ([#177](https://github.com/git-touch/git-touch/issues/177)) ([b0193a5](https://github.com/git-touch/git-touch/commit/b0193a5deff73b6d9efc263b89431c02a95a2455)), closes [#37](https://github.com/git-touch/git-touch/issues/37)
|
||||
* typo ([7a21961](https://github.com/git-touch/git-touch/commit/7a2196170eeacc2428d3ea8f7c2e0c01d98d3605)), closes [#172](https://github.com/git-touch/git-touch/issues/172)
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* choose locale in settings ([#189](https://github.com/git-touch/git-touch/issues/189)) ([717b7cd](https://github.com/git-touch/git-touch/commit/717b7cd3369e8fddca0699b5732726cde37066d7))
|
||||
* skip login screen when logged in ([#191](https://github.com/git-touch/git-touch/issues/191)) ([3b88ad0](https://github.com/git-touch/git-touch/commit/3b88ad01f7af1c7763084d3df2c6b9de27fe602e))
|
||||
* **gitee:** watch, star a repo ([#157](https://github.com/git-touch/git-touch/issues/157)) ([c75288e](https://github.com/git-touch/git-touch/commit/c75288ef977ae84123afc6ed7a1efd2527cc859a))
|
||||
* **github:** add public repos only login option ([31c43ee](https://github.com/git-touch/git-touch/commit/31c43eebc8e3b11a60da92926b94b4c052029e9a)), closes [#133](https://github.com/git-touch/git-touch/issues/133)
|
||||
* **github:** releases, gists(graphql) ([#179](https://github.com/git-touch/git-touch/issues/179)) ([fba6e4c](https://github.com/git-touch/git-touch/commit/fba6e4cb724957357f3ab0410619e6a29d93acb9)), closes [#174](https://github.com/git-touch/git-touch/issues/174)
|
||||
* dark mode avatar placeholder ([c1b3d33](https://github.com/git-touch/git-touch/commit/c1b3d330e009fc3001793d0f1e3aa35d8ba47eb8))
|
||||
* **gitlab:** branches, issueAdd, router path fix ([#165](https://github.com/git-touch/git-touch/issues/165)) ([d826107](https://github.com/git-touch/git-touch/commit/d826107621286cf3e93e870233f070bb4ed9d797))
|
||||
* **gogs:** setup ([#170](https://github.com/git-touch/git-touch/issues/170)) ([4f1e044](https://github.com/git-touch/git-touch/commit/4f1e0441d2e16042482cdc0235a81dd7981c604e)), closes [#117](https://github.com/git-touch/git-touch/issues/117)
|
||||
|
||||
|
||||
|
||||
## [1.11.1](https://github.com/git-touch/git-touch/compare/v1.11.0...v1.11.1) (2021-01-11)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* drop app review dep to fit f-droid ([f1956db](https://github.com/git-touch/git-touch/commit/f1956dbdc31f89fc3b8fdd59404ffbcd3435ebd9))
|
||||
|
||||
|
||||
|
||||
# [1.11.0](https://github.com/git-touch/git-touch/compare/v1.10.1...v1.11.0) (2021-01-10)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* new issue link ([09ed700](https://github.com/git-touch/git-touch/commit/09ed70024ce38bf72084797884534233567eaaec))
|
||||
* **github:** proper spacing in branch creation/deletion events ([#149](https://github.com/git-touch/git-touch/issues/149)) ([efe882a](https://github.com/git-touch/git-touch/commit/efe882a0dfdc4b824fd3265464f5e92e9557ba96))
|
||||
* fallback language ([#141](https://github.com/git-touch/git-touch/issues/141)) ([8aa6604](https://github.com/git-touch/git-touch/commit/8aa660437fa3ed098ecd1fb1462a80e87a36d1fc)), closes [#140](https://github.com/git-touch/git-touch/issues/140)
|
||||
* gitee typo ([#145](https://github.com/git-touch/git-touch/issues/145)) ([4679ca1](https://github.com/git-touch/git-touch/commit/4679ca10ee1898a10798c10091445f09bfa26617))
|
||||
* UserItem assertion failure ([#135](https://github.com/git-touch/git-touch/issues/135)) ([c6757c1](https://github.com/git-touch/git-touch/commit/c6757c154890b9120848d985229f80c7c842fbfd))
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* **bitbucket:** update ([#147](https://github.com/git-touch/git-touch/issues/147)) ([76f9999](https://github.com/git-touch/git-touch/commit/76f999953496fa1828795fa22cf1e05148a9ea9b))
|
||||
* **gitea:** issue, issueComment, labels, refactor(GeIssueComment) ([#155](https://github.com/git-touch/git-touch/issues/155)) ([d74b141](https://github.com/git-touch/git-touch/commit/d74b1412791cf94af2ad570eb645ee19f7b9db17))
|
||||
* **gitee:** branches, labels, contributors, refactor(RouterScreen) ([#153](https://github.com/git-touch/git-touch/issues/153)) ([f723eef](https://github.com/git-touch/git-touch/commit/f723eef83af655f383f4da01c41735608777ffec))
|
||||
* **gitee:** comment actions (issue/PR) ([#150](https://github.com/git-touch/git-touch/issues/150)) ([e9454c3](https://github.com/git-touch/git-touch/commit/e9454c3dce9137931856da2775347578b45212f3))
|
||||
* **gitee:** issues, issue, pullRequests screens ([#144](https://github.com/git-touch/git-touch/issues/144)) ([1ac27f4](https://github.com/git-touch/git-touch/commit/1ac27f4853dfe8a8c9aa801bcffac57c7fce2c72))
|
||||
* **gitee:** search screen ([#146](https://github.com/git-touch/git-touch/issues/146)) ([8415a67](https://github.com/git-touch/git-touch/commit/8415a677c0425a5130b6c409a69139c98103b231))
|
||||
* **gitee:** updates ([#148](https://github.com/git-touch/git-touch/issues/148)) ([92bcdaa](https://github.com/git-touch/git-touch/commit/92bcdaa4b0924dfff3fb1b50886d510df93b9fbf))
|
||||
* add generated runner for Linux ([#134](https://github.com/git-touch/git-touch/issues/134)) ([f152c9a](https://github.com/git-touch/git-touch/commit/f152c9afdc2d27d6f3559470370cde649e0c33cc))
|
||||
* localization ([#137](https://github.com/git-touch/git-touch/issues/137)) ([0a1da29](https://github.com/git-touch/git-touch/commit/0a1da29c3eac6aa1785f7722f8da376281bb9865)), closes [#119](https://github.com/git-touch/git-touch/issues/119)
|
||||
|
||||
|
||||
|
||||
## [1.10.1](https://github.com/git-touch/git-touch/compare/v1.10.0...v1.10.1) (2020-12-13)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* android markdown webview render ([fb3ed14](https://github.com/git-touch/git-touch/commit/fb3ed14b4f9ed2752f96e119bd59ee783bdb5f68)), closes [#123](https://github.com/git-touch/git-touch/issues/123)
|
||||
* remove in-app review ([c6a8b42](https://github.com/git-touch/git-touch/commit/c6a8b42ef1c95f57d2e9439987f4546a6ea3f7c7)), closes [#129](https://github.com/git-touch/git-touch/issues/129)
|
||||
* update android launch image ([378d406](https://github.com/git-touch/git-touch/commit/378d406d379487860649bcad0ff818246ac1b4c1)), closes [#128](https://github.com/git-touch/git-touch/issues/128)
|
||||
|
||||
|
||||
|
||||
# [1.10.0](https://github.com/git-touch/git-touch/compare/v1.9.0...v1.10.0) (2020-12-12)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* launch image icon size ([15fe6db](https://github.com/git-touch/git-touch/commit/15fe6dbdb648b254e39cefbaa7f87c1787e38062))
|
||||
* **github:** trending api encoding ([9dd02e0](https://github.com/git-touch/git-touch/commit/9dd02e081672b0acc6619bff0195ba013f52c6c4)), closes [#120](https://github.com/git-touch/git-touch/issues/120)
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* macos integration ([e41445c](https://github.com/git-touch/git-touch/commit/e41445cc8c4d7a40e78f9a9886d6e6113a697cd9))
|
||||
* request in-app review ([08511fb](https://github.com/git-touch/git-touch/commit/08511fb8fb854af0817eae9814e16f23c67183e1)), closes [#127](https://github.com/git-touch/git-touch/issues/127)
|
||||
* tweak dark mode contribution color ([6036849](https://github.com/git-touch/git-touch/commit/6036849e9b7a3caec51405a6cf2ece96803d64c0))
|
||||
* web deployment ([72d4d2d](https://github.com/git-touch/git-touch/commit/72d4d2d2b90edd56edfb910d95072bdc36f0dded))
|
||||
|
||||
|
||||
|
||||
# [1.9.0](https://github.com/git-touch/git-touch/compare/v1.8.0...v1.9.0) (2020-11-08)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **github:** actor link ([ee03b52](https://github.com/git-touch/git-touch/commit/ee03b52461591ad38711b2e2a31e501c4204abb4))
|
||||
* markdown webview dark mode ([979e913](https://github.com/git-touch/git-touch/commit/979e91378b2488f5db82b7e4b1bb833fcb340892))
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* **bitbucket:** clarify app password ([53897f6](https://github.com/git-touch/git-touch/commit/53897f6fb32633659b3a2d4b46b1b688e1af556f)), closes [#125](https://github.com/git-touch/git-touch/issues/125)
|
||||
* add markdown render engine setting ([5795413](https://github.com/git-touch/git-touch/commit/5795413f25d40febfc9bbe3d699c61f7464fac50)), closes [#124](https://github.com/git-touch/git-touch/issues/124)
|
||||
|
||||
|
||||
|
||||
# [1.8.0](https://github.com/git-touch/git-touch/compare/v1.7.0...v1.8.0) (2020-11-01)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **github:** contribution heatmap ([895f479](https://github.com/git-touch/git-touch/commit/895f4792d648d433b0a75b58a71cac59064307fb)), closes [#122](https://github.com/git-touch/git-touch/issues/122)
|
||||
* avoid hex color parse error ([5f45a54](https://github.com/git-touch/git-touch/commit/5f45a54f95e5386523f33f08a8f7d648e4120ada))
|
||||
* handle navigation in webview ([d940f3b](https://github.com/git-touch/git-touch/commit/d940f3b3e9a7d6e9f25b23064841698244925f8a))
|
||||
* **gitee:** platform type saved ([5534f96](https://github.com/git-touch/git-touch/commit/5534f96f8abbffd5cf0aba057ce00dea801f2345))
|
||||
* hide avatar of commit item if not exist ([d37a5c1](https://github.com/git-touch/git-touch/commit/d37a5c1981bb5a3b117b79128f2bfa1b61db2224))
|
||||
* **github:** head ref name ([1d1804f](https://github.com/git-touch/git-touch/commit/1d1804fa86f2e8eb572c478bd4abbd33cdffc41c)), closes [#116](https://github.com/git-touch/git-touch/issues/116)
|
||||
* **gitlab:** user and group link ([02e8d66](https://github.com/git-touch/git-touch/commit/02e8d66ae2d9271b50ad54f682703f56bb582c26)), closes [#115](https://github.com/git-touch/git-touch/issues/115)
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* **gitee:** add blob screen ([2bdfb3d](https://github.com/git-touch/git-touch/commit/2bdfb3dfe1295b2a40b8090f5902a7801144b042))
|
||||
* **gitee:** add token login step ([f480dc0](https://github.com/git-touch/git-touch/commit/f480dc048e8a7a6d1ec057009e19b0cf0389ca9c))
|
||||
* **gitee:** add tree screen ([6870aa6](https://github.com/git-touch/git-touch/commit/6870aa6ff1d3d42e9f8f3c482b4bad6c55b70fea))
|
||||
* **gitee:** commits screen ([d9ca01b](https://github.com/git-touch/git-touch/commit/d9ca01b99d515eb7815ba17b610714e6f25f5b58))
|
||||
* **gitee:** empty search screen ([db03560](https://github.com/git-touch/git-touch/commit/db035601de266637dd3641d2007dd24b46184887))
|
||||
* **gitee:** repo screen ([66ab665](https://github.com/git-touch/git-touch/commit/66ab665f31d41ea9c48336668787b7e828efefee))
|
||||
* **gitee:** repos screen ([2e1d869](https://github.com/git-touch/git-touch/commit/2e1d869aa18fd5e2adc890203c3c0519b94ed31a))
|
||||
* **gitee:** user screen ([b5a1948](https://github.com/git-touch/git-touch/commit/b5a19486dd9f7d637cad11dce4516ec5d91b1838))
|
||||
* **gitee:** users screen ([a5d64fd](https://github.com/git-touch/git-touch/commit/a5d64fdb866336f823caad1252af00bb0f7b58ab))
|
||||
* replace io library for web adaptation ([a4f1daa](https://github.com/git-touch/git-touch/commit/a4f1daab31b3b0b7e39ade0f07003f77ba9d5667))
|
||||
|
||||
|
||||
|
||||
# [1.7.0](https://github.com/git-touch/git-touch/compare/v1.6.0...v1.7.0) (2020-10-08)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* drop svg support to avoid readme screen frozen ([968019b](https://github.com/git-touch/git-touch/commit/968019b932188b1714ba6eae84198462b9ddcfbc)), closes [#112](https://github.com/git-touch/git-touch/issues/112)
|
||||
* use container to fix expansion of tab ([0ab0564](https://github.com/git-touch/git-touch/commit/0ab05646f083aeac177a7ffca8c52d19d783549d))
|
||||
* user item text overflow ([168dcd1](https://github.com/git-touch/git-touch/commit/168dcd1d2ea7605dddd8a6308935ac75d9773bc1))
|
||||
* **github:** cross reference event ([0d722f0](https://github.com/git-touch/git-touch/commit/0d722f062e714de105d228a6ea2683b36d6e616b))
|
||||
* **github:** issue/pr timeline assign event ([85d5cad](https://github.com/git-touch/git-touch/commit/85d5cadbeb8cfcc82ffd9a08053e9814f4c049e3)), closes [#113](https://github.com/git-touch/git-touch/issues/113)
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* add button to quickly switch accounts ([#36](https://github.com/git-touch/git-touch/issues/36)) ([62b02ed](https://github.com/git-touch/git-touch/commit/62b02ed5040b1b6c7aafdbfd6fcd19ca79fd26d3))
|
||||
* add name to user list item ([70b2dd4](https://github.com/git-touch/git-touch/commit/70b2dd4bb049416be9ddee6793464840b993dfae))
|
||||
|
||||
|
||||
|
||||
# [1.6.0](https://github.com/git-touch/git-touch/compare/v1.5.1...v1.6.0) (2020-10-06)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **github:** readme loading in repo screen ([ff0104e](https://github.com/git-touch/git-touch/commit/ff0104e9bbb58c30bf4aff1d6f7851382589d0be))
|
||||
* **github:** update trending api ([36de5ec](https://github.com/git-touch/git-touch/commit/36de5ec8a207175ebbe112274d840efe2a2d9142)), closes [#110](https://github.com/git-touch/git-touch/issues/110)
|
||||
* markdown code background color ([9af1900](https://github.com/git-touch/git-touch/commit/9af190000b414f35b96dc8a77f71cb9ad409ff3e)), closes [#108](https://github.com/git-touch/git-touch/issues/108)
|
||||
* **gitea:** keep original query params as is ([aa62524](https://github.com/git-touch/git-touch/commit/aa62524c23d799b572bc54fd0778175b91baa4f9))
|
||||
* **gitea:** pagination has more and cursor ([d47ea5a](https://github.com/git-touch/git-touch/commit/d47ea5a092cbc41eaa0920affae2dc5267f436df))
|
||||
* **github:** empty repo (no ref) ([3002c07](https://github.com/git-touch/git-touch/commit/3002c0736772790d204b845e1540573764271346)), closes [#99](https://github.com/git-touch/git-touch/issues/99)
|
||||
* **github:** timeline item avatar link ([4ae8f52](https://github.com/git-touch/git-touch/commit/4ae8f52991989c05bf56e8b464c4ef9fc20d74ab)), closes [#107](https://github.com/git-touch/git-touch/issues/107)
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* add status for github and gitlab ([2b68d95](https://github.com/git-touch/git-touch/commit/2b68d95a4af67c62fd8d201b690508f57f972e58))
|
||||
* avoid reloading widget on material bottom tab switch ([11d61e1](https://github.com/git-touch/git-touch/commit/11d61e163fafbf5d222a5dd4489cd5c2c2e999b9)), closes [#42](https://github.com/git-touch/git-touch/issues/42)
|
||||
* **gitea:** add orgs in user screen ([99b2b79](https://github.com/git-touch/git-touch/commit/99b2b795d12c9373b7ca7784d8cb89dfee4537bd))
|
||||
* **gitea:** add repo count in org screen ([f935153](https://github.com/git-touch/git-touch/commit/f9351533c7029ce38290acda2f8509e6870a8701))
|
||||
* **gitea:** add repo count in user screen ([2a1b9fe](https://github.com/git-touch/git-touch/commit/2a1b9fe08dc13b139286d79b0082f68d491371ab))
|
||||
* **gitea:** add status screen ([e3a4b2c](https://github.com/git-touch/git-touch/commit/e3a4b2c0917eb2e0d880ff681d36c7deaa0758ca))
|
||||
|
||||
|
||||
|
||||
## [1.5.1](https://github.com/git-touch/git-touch/compare/v1.5.0...v1.5.1) (2020-10-05)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **gt:** me screen login ([890c44c](https://github.com/git-touch/git-touch/commit/890c44c4c558649dcbade4a8c7322688a9a0d7ec))
|
||||
|
||||
|
||||
|
||||
# [1.5.0](https://github.com/git-touch/git-touch/compare/v1.4.0...v1.5.0) (2020-10-05)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* entry item count ([7d3e916](https://github.com/git-touch/git-touch/commit/7d3e916af7abc78bcf9a30abc27c606c36a9ce74))
|
||||
* **gh:** contributions data ([c950559](https://github.com/git-touch/git-touch/commit/c95055904392a9e3b89d4b6ce0bd7b457c1aa6dd))
|
||||
* **gh:** orgs screen description null ([2d96101](https://github.com/git-touch/git-touch/commit/2d9610170b9875a54c047ae5350bab30b49b42eb))
|
||||
* **gh:** text with at notation ([2248415](https://github.com/git-touch/git-touch/commit/2248415574d1499de32be116c1eed5a933f490af))
|
||||
* align contribution graph center for ipad ([#41](https://github.com/git-touch/git-touch/issues/41)) ([b3f56ad](https://github.com/git-touch/git-touch/commit/b3f56adbe988093706be48f1a4207f72eebb559e))
|
||||
* api change user to accountID ([#85](https://github.com/git-touch/git-touch/issues/85)) ([8a1180d](https://github.com/git-touch/git-touch/commit/8a1180dae8b915f8fcd3c3f02e5b74a0e5eeff65)), closes [#79](https://github.com/git-touch/git-touch/issues/79)
|
||||
* back button android, return home on tap ([#59](https://github.com/git-touch/git-touch/issues/59)) ([98f102f](https://github.com/git-touch/git-touch/commit/98f102faec38f318d38a429471a016d99e540a1b))
|
||||
* broken links ([8c4a9ee](https://github.com/git-touch/git-touch/commit/8c4a9ee3a12f90f92d991547989c7b030cde00c6))
|
||||
* commit author color ([57f2ab7](https://github.com/git-touch/git-touch/commit/57f2ab7967efb0b6d491260737884ace264ad4cc))
|
||||
* downgrade provider for compatibility ([74a175f](https://github.com/git-touch/git-touch/commit/74a175f384ef50f3b25732c6ca7636a483cf722b))
|
||||
* lint problems ([1269b66](https://github.com/git-touch/git-touch/commit/1269b66eb41930db286f6c430c0518cd1cd45ba5))
|
||||
* **gh:** subscribe permissions ([8076481](https://github.com/git-touch/git-touch/commit/80764817caae85f0143397645e91e4a62c1c2856)), closes [#47](https://github.com/git-touch/git-touch/issues/47)
|
||||
* **gh:** trending user has no repo ([a3619ba](https://github.com/git-touch/git-touch/commit/a3619ba340cfcd356906eec58ad7929a4d56e4e4))
|
||||
* commit comment event render error ([#93](https://github.com/git-touch/git-touch/issues/93)) ([db62424](https://github.com/git-touch/git-touch/commit/db624247ec0cd7d243ad4f24e3a4179b33754ecd))
|
||||
* error using same token ([#83](https://github.com/git-touch/git-touch/issues/83)) ([e173713](https://github.com/git-touch/git-touch/commit/e17371386143824f2c108942d6fb09102f4616d9)), closes [#82](https://github.com/git-touch/git-touch/issues/82)
|
||||
* event payload ref in create,delete events ([#71](https://github.com/git-touch/git-touch/issues/71)) ([561970a](https://github.com/git-touch/git-touch/commit/561970ab59b2cdb537461bbde010177996db6e2e))
|
||||
* namespace conflicts ([2ef1c0b](https://github.com/git-touch/git-touch/commit/2ef1c0b9829865961f3bcb8d6268a800396ca890))
|
||||
* transparent status bar ([#73](https://github.com/git-touch/git-touch/issues/73)) ([0063e99](https://github.com/git-touch/git-touch/commit/0063e99bbcfef81fbe0e0388289ceb40afeab40d))
|
||||
* yellow underline ([#65](https://github.com/git-touch/git-touch/issues/65)) ([d6a321d](https://github.com/git-touch/git-touch/commit/d6a321d6ca1a1958e878b9b04c4f41bf91e209a9))
|
||||
* **gh:** change branch on close ([ce4f7a1](https://github.com/git-touch/git-touch/commit/ce4f7a180995641c5eee0a0814d7f172ae175dfb))
|
||||
* **gh:** org repos language color ([c2be166](https://github.com/git-touch/git-touch/commit/c2be166a055d2547ebf87bd71008ad6a1acdfe7e))
|
||||
* **gh:** user description overflow ([a5c1d0f](https://github.com/git-touch/git-touch/commit/a5c1d0f5baee6d1c74ffafdb89a5772b340b89a1))
|
||||
* **gl:** handle statistics null ([a198430](https://github.com/git-touch/git-touch/commit/a1984309a9e11b3a1d78bb39bb2de27049634aec))
|
||||
* **gl:** project commits ([60904d7](https://github.com/git-touch/git-touch/commit/60904d763de5e728e70192ffcb72e01409d38edb))
|
||||
* replace transition ([b134bd8](https://github.com/git-touch/git-touch/commit/b134bd87d27333073873584f4dfd4dfd9f8e991a))
|
||||
* **gt:** organizations pagination ([8ee57fd](https://github.com/git-touch/git-touch/commit/8ee57fdc35613ac9c31f5ba710e01cbf28e236d3))
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* **gh:** add events screen ([5101b25](https://github.com/git-touch/git-touch/commit/5101b2554f0f8a6d5e5a1bfd0a6ff099eef619d4))
|
||||
* **gt:** add contribution heatmap ([d2bb3c4](https://github.com/git-touch/git-touch/commit/d2bb3c4a5ce3e0f1463e59d011a0bb5d295ad446)), closes [#104](https://github.com/git-touch/git-touch/issues/104)
|
||||
* **gt:** followers and following ([3f324b4](https://github.com/git-touch/git-touch/commit/3f324b43fd160de9afae95139e50c7fdd18277be))
|
||||
* **gt:** org members screen ([a87a504](https://github.com/git-touch/git-touch/commit/a87a504cea589d11e96863f7562cff2367e532b5))
|
||||
* **gt:** org repos ([1da8076](https://github.com/git-touch/git-touch/commit/1da807632bbb08c097210a9123958647d3f045df))
|
||||
* **gt:** stargazers, watchers and forks ([61ad3eb](https://github.com/git-touch/git-touch/commit/61ad3ebb164475ab89e5babc4adad14e3a052da7))
|
||||
* **gt:** user repos and stars ([25633b4](https://github.com/git-touch/git-touch/commit/25633b44d98a28233b69298ef043ed849bdeeb01))
|
||||
* add diff view ([aa52263](https://github.com/git-touch/git-touch/commit/aa52263fc04cd2536f8852036a794072b380a49c))
|
||||
* add material app zoom transition ([#98](https://github.com/git-touch/git-touch/issues/98)) ([34e6af2](https://github.com/git-touch/git-touch/commit/34e6af2dab954534999050b99c4f4cf177d6584a)), closes [#94](https://github.com/git-touch/git-touch/issues/94)
|
||||
* bitbucket issues, prs screens ([#91](https://github.com/git-touch/git-touch/issues/91)) ([7a97bc2](https://github.com/git-touch/git-touch/commit/7a97bc22abdef9afaf6d27bfb6fabf5408d0afec))
|
||||
* contributor screen ([#64](https://github.com/git-touch/git-touch/issues/64)) ([be30bcb](https://github.com/git-touch/git-touch/commit/be30bcb7d8ea29ca96c30b5d24e2ce87d8caad2e)), closes [#53](https://github.com/git-touch/git-touch/issues/53)
|
||||
* files screen ([#75](https://github.com/git-touch/git-touch/issues/75)) ([0749a69](https://github.com/git-touch/git-touch/commit/0749a699862bd7030bddf48d6c717b2691bbaa5f)), closes [#74](https://github.com/git-touch/git-touch/issues/74)
|
||||
* gists screen ([#80](https://github.com/git-touch/git-touch/issues/80)) ([094ad4b](https://github.com/git-touch/git-touch/commit/094ad4b1bb25ad21c1bf9d1c2ddce2aade73aa0c)), closes [#66](https://github.com/git-touch/git-touch/issues/66)
|
||||
* github compare screen ([#86](https://github.com/git-touch/git-touch/issues/86)) ([8f5dafd](https://github.com/git-touch/git-touch/commit/8f5dafd2d04c8de7a5ce1b813b73c67fb09913f1))
|
||||
* gitlab search screen ([#81](https://github.com/git-touch/git-touch/issues/81)) ([bc3a204](https://github.com/git-touch/git-touch/commit/bc3a204c2bddbc1aaee35e3540c70595077d6f3c))
|
||||
* handle svg images ([8a490ab](https://github.com/git-touch/git-touch/commit/8a490abb1050797329f455ec0bd1115d0ba88db8))
|
||||
* use cupertino loading again ([8258232](https://github.com/git-touch/git-touch/commit/8258232d48c7981fa03209e4c45f764454d6fb41))
|
||||
* user organizations, fix: create,delete event ([#72](https://github.com/git-touch/git-touch/issues/72)) ([bf5ed23](https://github.com/git-touch/git-touch/commit/bf5ed239716ae9fd29bcae24ecc3741771401f99)), closes [#58](https://github.com/git-touch/git-touch/issues/58)
|
||||
* **gl:** add starrers screen ([f8f436a](https://github.com/git-touch/git-touch/commit/f8f436a38280815e6e3b47a41f45ce645f10f885)), closes [#48](https://github.com/git-touch/git-touch/issues/48)
|
||||
* **gl:** commit screen ([4ea30d0](https://github.com/git-touch/git-touch/commit/4ea30d0132a2d54082aeb70f8ecf78c1354495fe))
|
||||
|
||||
|
||||
|
||||
# [1.4.0](https://github.com/git-touch/git-touch/compare/v1.3.0...v1.4.0) (2020-02-09)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* hide accounts info in production ([1716714](https://github.com/git-touch/git-touch/commit/171671498165524687b52c0eb93c4ad7fc1502b9))
|
||||
* **gh:** reaction active color ([97a524e](https://github.com/git-touch/git-touch/commit/97a524ecf9a956f173cf0fafd1e0018a24757eab))
|
||||
* code view tab size ([cbb3310](https://github.com/git-touch/git-touch/commit/cbb33108906791950fb74bebab85cbd9182726dc)), closes [#24](https://github.com/git-touch/git-touch/issues/24)
|
||||
* **bb:** commit url ([29902bb](https://github.com/git-touch/git-touch/commit/29902bb711680141423d2272f50ccf1fafd2a538))
|
||||
* avatar size ([12bb22b](https://github.com/git-touch/git-touch/commit/12bb22bda9f27e90415545a6d8d28046d395eca0))
|
||||
* **bb:** download url ([f9fa142](https://github.com/git-touch/git-touch/commit/f9fa142702162c17baee083effa876eb5519ed6e))
|
||||
* **bb:** username get ([376b872](https://github.com/git-touch/git-touch/commit/376b8724a48be12a913a66f3f1561a863024704f))
|
||||
* **bb:** utf8 decode text ([8f9ed54](https://github.com/git-touch/git-touch/commit/8f9ed5469d60806828d7e9daa0d60230cc6216e3))
|
||||
* avatar url null ([76a2f4b](https://github.com/git-touch/git-touch/commit/76a2f4b960eb9adfce597ac864b9d4c645a473b9))
|
||||
* **gitlab:** use default branch instead of master ([79fe174](https://github.com/git-touch/git-touch/commit/79fe174b1052dbeac5f4053bc6f4d44e9f5a2842)), closes [#28](https://github.com/git-touch/git-touch/issues/28)
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* **bb:** commits screen ([f856a1b](https://github.com/git-touch/git-touch/commit/f856a1bfeee99b15a7d1e106d0583b39916ff92f))
|
||||
* **bb:** explore screen ([6d35703](https://github.com/git-touch/git-touch/commit/6d3570355432ac535034ee9607d448cc5d40a8b8))
|
||||
* **bb:** object screen ([a9f9b95](https://github.com/git-touch/git-touch/commit/a9f9b957936978e702e8ded8f5ad85197c5f577b))
|
||||
* **bb:** repo screen ([7f2649c](https://github.com/git-touch/git-touch/commit/7f2649c691c662d11fbdbd16831f0d1c36890f34))
|
||||
* **bb:** team screen ([dfb74ce](https://github.com/git-touch/git-touch/commit/dfb74ce43dc09266383c9fe5eddf975ad848f5e8))
|
||||
* **bb:** teams screen ([3542c36](https://github.com/git-touch/git-touch/commit/3542c36dcce758e98dbc8bc8b667a2e8a0734e64))
|
||||
* **bb:** user screen ([830bcea](https://github.com/git-touch/git-touch/commit/830bceaa367a0f64d89204d7e183b8fb54fc8553))
|
||||
* **bitbucket:** app password login ([53ecb32](https://github.com/git-touch/git-touch/commit/53ecb3242ff3879cd3c5697194ede8a506a76abe))
|
||||
* **gh:** add watch state and action ([940ea5c](https://github.com/git-touch/git-touch/commit/940ea5c1bfc62da1b1b81711d6561c68ea466099))
|
||||
* **gh:** org repos screen ([a105eb6](https://github.com/git-touch/git-touch/commit/a105eb6e5736ccd5962cabd0e35da87b6d9d4991)), closes [#25](https://github.com/git-touch/git-touch/issues/25)
|
||||
|
||||
|
||||
|
||||
# [1.3.0](https://github.com/git-touch/git-touch/compare/v1.2.0...v1.3.0) (2020-02-01)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* cupertino picker text color ([7c7dc32](https://github.com/git-touch/git-touch/commit/7c7dc32db6345a1d1260a24b3772479a13707d26)), closes [#22](https://github.com/git-touch/git-touch/issues/22)
|
||||
* material dark mode text ([a4284d0](https://github.com/git-touch/git-touch/commit/a4284d00fb3977b87a77f1cea8d3fefa4b8e87ce))
|
||||
* reload app on account switch ([084aec4](https://github.com/git-touch/git-touch/commit/084aec4453a9951f6478bfa7a9dca9d56d1140bf))
|
||||
* repo header avatar link ([3cde09b](https://github.com/git-touch/git-touch/commit/3cde09bf237fdb25fa0f9cd06ea411583b816bc9))
|
||||
* **github:** binary files ([89c311c](https://github.com/git-touch/git-touch/commit/89c311c410dab58cbd5442bb4b08e446f6871045)), closes [#21](https://github.com/git-touch/git-touch/issues/21)
|
||||
* **github:** encode url ([16925f8](https://github.com/git-touch/git-touch/commit/16925f8e1a548ad1017e9b75619716f9dcb3fdbc))
|
||||
* **github:** pull screen router ([c3cf25b](https://github.com/git-touch/git-touch/commit/c3cf25bcf35db750104c0de771dfd42f1d5a8994))
|
||||
* **github:** throw on error ([fe8bf0a](https://github.com/git-touch/git-touch/commit/fe8bf0a800c0f7b62bc88b53f1313f923b3f139a))
|
||||
* query params already decoded in fluro ([a425902](https://github.com/git-touch/git-touch/commit/a425902756a075468610df29f38a49524ae01374)), closes [#23](https://github.com/git-touch/git-touch/issues/23)
|
||||
* **gitlab:** api pagination ([9aec397](https://github.com/git-touch/git-touch/commit/9aec397a602b895724eddad244f88f1b64f8d6b5))
|
||||
* **gitlab:** binary blob view ([d17b6a0](https://github.com/git-touch/git-touch/commit/d17b6a02a16c92ca3a78da9b955bc2160be533ac))
|
||||
* **gitlab:** error catch ([f3e5988](https://github.com/git-touch/git-touch/commit/f3e5988413771bf7dad310f340a9b88b981dbc33))
|
||||
* **gitlab:** issue and user ([92a33e8](https://github.com/git-touch/git-touch/commit/92a33e8fb81455c9f3086402dd58768fe1351fab))
|
||||
* **gitlab:** issue router ([e2e0f6b](https://github.com/git-touch/git-touch/commit/e2e0f6ba2527cd0348844774b5cd223d12954122))
|
||||
* avatar link ([9121316](https://github.com/git-touch/git-touch/commit/9121316acd3ba9b43acafe87b851b46842e0e512))
|
||||
* limit commit message to one line ([5f502ae](https://github.com/git-touch/git-touch/commit/5f502ae29e606128c49a0d12997a31a07dfeb475))
|
||||
* refresh scaffold catch error ([f5ad1ac](https://github.com/git-touch/git-touch/commit/f5ad1acd25d8f9bc74f50dc1827abf4deae723f7))
|
||||
* repo item link ([bc436d2](https://github.com/git-touch/git-touch/commit/bc436d2f9e41978f194d55c322c54cf2f9a3e807))
|
||||
* **gitlab:** mr data ([1d90a39](https://github.com/git-touch/git-touch/commit/1d90a3959ce989877e597f97d8db4ada794287a7))
|
||||
* **gitlab:** project router ([c1df100](https://github.com/git-touch/git-touch/commit/c1df10025378c07d60d1e44c8cbcb0d9e36abd2c))
|
||||
* **gitlab:** syntax highlight in dark mode ([df09ee4](https://github.com/git-touch/git-touch/commit/df09ee4c177f36022330acb9845b02796c3db9b6))
|
||||
* **gitlab:** tree and blob router ([00d6778](https://github.com/git-touch/git-touch/commit/00d67784af5186deb9998b2f64e3a19fabd25787))
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* **gitea:** org screen ([f0e447f](https://github.com/git-touch/git-touch/commit/f0e447fd842f34e1cc316a5a089c14a16681a290))
|
||||
* **gitea:** orgs screen ([336ff49](https://github.com/git-touch/git-touch/commit/336ff4960e7bf6a5b2796ecd7fa2592459db7755))
|
||||
* remove account ([5aa7483](https://github.com/git-touch/git-touch/commit/5aa7483c906e67777d233554f17cd5e6e4544d97))
|
||||
* **gitea:** blob screen ([9d6985c](https://github.com/git-touch/git-touch/commit/9d6985c3913237d826c6d5fb9ac41abbabbbc13c))
|
||||
* **gitea:** commits screen ([7d1065e](https://github.com/git-touch/git-touch/commit/7d1065eaaeead8fb12bf4a025514a784d0f03e5c))
|
||||
* **gitea:** issue and pr screen ([a7af4cd](https://github.com/git-touch/git-touch/commit/a7af4cdcd01aa1a3642e87cf84a6b7e5675c3e64))
|
||||
* **gitea:** main screen ([76c6948](https://github.com/git-touch/git-touch/commit/76c6948b05dd7d361b59cc031da8bc3692b140cd))
|
||||
* **gitea:** repo screen ([1aa7f0d](https://github.com/git-touch/git-touch/commit/1aa7f0d130ae0edee5ab3ce694ed776cf2c9c426))
|
||||
* **gitea:** user screen ([7039a89](https://github.com/git-touch/git-touch/commit/7039a8905f1cde2eff5348b4c85c58863db5ae88))
|
||||
* **gitlab:** commits screen ([5d453cc](https://github.com/git-touch/git-touch/commit/5d453ccbd5607c83da84ea8b78b7074ae54bdcef))
|
||||
* **gitlab:** explore screen ([62c4c38](https://github.com/git-touch/git-touch/commit/62c4c380f882c62b125512561661657b2d865105))
|
||||
* **gitlab:** group screen ([d7d05bc](https://github.com/git-touch/git-touch/commit/d7d05bc72ba374ecb0737341738969ac0f7a1bcd))
|
||||
* **gitlab:** groups screen ([1c35b0b](https://github.com/git-touch/git-touch/commit/1c35b0b4cd29aa779599f0437915136d0064866c))
|
||||
* **gitlab:** issues screen ([2c9951b](https://github.com/git-touch/git-touch/commit/2c9951be7bbf7d8c4653fa8d555bdbcd0b646908))
|
||||
* **gitlab:** members screen ([d1d2e9e](https://github.com/git-touch/git-touch/commit/d1d2e9e0fbe60d6ba5894cc26fac141a3ec11562))
|
||||
* **gitlab:** project and group members ([b56111d](https://github.com/git-touch/git-touch/commit/b56111db6ffa3983562379d169b16c42920535b8))
|
||||
* object tree item size ([39c360f](https://github.com/git-touch/git-touch/commit/39c360f28118991a68ea629e41377fc6c19046de))
|
||||
* **gitlab:** mrs screen ([4bf049a](https://github.com/git-touch/git-touch/commit/4bf049a2e4a71695932cb304acd5d3d22e612821))
|
||||
* **gitlab:** project badges ([a021f75](https://github.com/git-touch/git-touch/commit/a021f755f343f4bae823a254c98f19bfa8c0435a))
|
||||
* **gitlab:** repo size and commits ([248212c](https://github.com/git-touch/git-touch/commit/248212c95c702432b392a971173a020649a8a761))
|
||||
* **gitlab:** settings entry ([65e45f6](https://github.com/git-touch/git-touch/commit/65e45f6b7f4fb097999764e2d7f352a8eae95316))
|
||||
|
||||
|
||||
|
||||
# [1.2.0](https://github.com/git-touch/git-touch/compare/v1.1.0...v1.2.0) (2020-01-28)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* account switch ([7bc11e0](https://github.com/git-touch/git-touch/commit/7bc11e0c84dedc814ef5148ac079e54b4bf3803d))
|
||||
* add typename for correctly resolving ([991d563](https://github.com/git-touch/git-touch/commit/991d563b2995165fc2324485576c1f14f32b826f))
|
||||
* after cursor ([172faf5](https://github.com/git-touch/git-touch/commit/172faf53f495584ba6c5d9b9857de2186d24862f))
|
||||
* analysis problems ([7c665e7](https://github.com/git-touch/git-touch/commit/7c665e7f1ab903c16b913011a8926368608c05de))
|
||||
* avatar click ([cd38d96](https://github.com/git-touch/git-touch/commit/cd38d96a91d2a2c835adff1d253f90437bbc54fd))
|
||||
* branch switch ([867f617](https://github.com/git-touch/git-touch/commit/867f617276ccdc0529544b155b892120b4bcb3b7))
|
||||
* check if issue or pull request ([980bbf9](https://github.com/git-touch/git-touch/commit/980bbf9f30f50c76e8687886e2c582d495960928))
|
||||
* code theme settings ([a9265c3](https://github.com/git-touch/git-touch/commit/a9265c3367ec6335834d57a636f0ed14c291557e))
|
||||
* commit history count ([50cfd48](https://github.com/git-touch/git-touch/commit/50cfd48e5107223c67e7b3af9194fd8f4ae2100b))
|
||||
* commit status ([bd9703e](https://github.com/git-touch/git-touch/commit/bd9703e44344746cb80e35ffe2bd68cbc80618b0))
|
||||
* contribution background ([19faf20](https://github.com/git-touch/git-touch/commit/19faf20fb126d5a464cd83449943608962ebf37f))
|
||||
* cupertino button padding ([b1181ff](https://github.com/git-touch/git-touch/commit/b1181ffc6ffe842be86c4b0e12942e72ae4a1e26))
|
||||
* dark mode for notification screen ([743d359](https://github.com/git-touch/git-touch/commit/743d359665a6949d703332fb9dd51cde17ba7e11))
|
||||
* do not wait tap callback ([4b0dae9](https://github.com/git-touch/git-touch/commit/4b0dae95911fe681f9339adc08c72ceb09b22a12))
|
||||
* empty query error ([1ef1a51](https://github.com/git-touch/git-touch/commit/1ef1a5182e4e13369b8f64b66fa031ec2a2722b4))
|
||||
* follow system brightness ([fccb79b](https://github.com/git-touch/git-touch/commit/fccb79b2cc1ab58328fcd475a0772eddb5fce2be))
|
||||
* forks url ([4f65321](https://github.com/git-touch/git-touch/commit/4f65321ef550b66924584105d7b0ed8b3850dd3f))
|
||||
* generic type ([103f05b](https://github.com/git-touch/git-touch/commit/103f05b01ce3eb0ac81af8fa2f8eb0760a976233))
|
||||
* import path ([b91db22](https://github.com/git-touch/git-touch/commit/b91db22eb4c4692778f37e25d832487842283e92))
|
||||
* issue add router ([857e49f](https://github.com/git-touch/git-touch/commit/857e49f220ad400efaadfbd9f7507afe17743598))
|
||||
* link url null ([d2ae236](https://github.com/git-touch/git-touch/commit/d2ae2363568b2440d3077c6b76f4eaec07c0a585))
|
||||
* login screen theme ([0b334f3](https://github.com/git-touch/git-touch/commit/0b334f341ef5935cfe0e2261bfa69fec97820fdd))
|
||||
* markdown dark mode ([3be1a92](https://github.com/git-touch/git-touch/commit/3be1a92ea2cb959d89e755dcb80a92f43e91bcae))
|
||||
* markdown style ([9cac22e](https://github.com/git-touch/git-touch/commit/9cac22e61639e81c6dc7ea31a0821dbfb826e879))
|
||||
* material dark mode ([80ab94d](https://github.com/git-touch/git-touch/commit/80ab94df53d2b6cb1675a9114841983a815ec186))
|
||||
* material style ([91d7a93](https://github.com/git-touch/git-touch/commit/91d7a93575a78d2796bea41f555739c377b47603))
|
||||
* minor fixes ([da48561](https://github.com/git-touch/git-touch/commit/da48561b62516344ad96b2cf97b9038d1c3f8d57))
|
||||
* organization extract ([0c315c3](https://github.com/git-touch/git-touch/commit/0c315c354c355ddcb0ab9ed178d41bbd9f37aaa5))
|
||||
* organization members query ([3586ee5](https://github.com/git-touch/git-touch/commit/3586ee5230bab0ee36635d5a00055e2f818341e3))
|
||||
* path url encode ([7b688ef](https://github.com/git-touch/git-touch/commit/7b688efcb2e77ed118c6932b39b0c512967dcd92))
|
||||
* physical pixel border ([42f67c3](https://github.com/git-touch/git-touch/commit/42f67c3ed198e2d6338bcc9be448b148af4deb40))
|
||||
* pin json_serializable version to fix build error ([21093a6](https://github.com/git-touch/git-touch/commit/21093a6ab978db4344ac3988367d4bbe02534d0c))
|
||||
* pinnable item ([e989ad9](https://github.com/git-touch/git-touch/commit/e989ad9715e7fcb29b867263c261632166f18a79))
|
||||
* pull request comment ([76cfa7a](https://github.com/git-touch/git-touch/commit/76cfa7a7726749c4bbf6985119af0abfb3a88e76))
|
||||
* refresh only if branch changes ([9c0b0f6](https://github.com/git-touch/git-touch/commit/9c0b0f64c455101d5ce826a69e122a8429554990))
|
||||
* remove duplicated users ([4bc2319](https://github.com/git-touch/git-touch/commit/4bc2319ec66a1823858fd7be86875b8b8bea5ea2))
|
||||
* remove operation name ([6b095e8](https://github.com/git-touch/git-touch/commit/6b095e8a3bc34589a7eb7c2769bc1490fd41a9c4))
|
||||
* reset gql client on change ([7b78e66](https://github.com/git-touch/git-touch/commit/7b78e660cb17fc2cd6158675448b6bb7cff89b6d))
|
||||
* review event actor ([eadac28](https://github.com/git-touch/git-touch/commit/eadac28db7da997e9d609bccdd499d2092d54472))
|
||||
* sort files ([1055517](https://github.com/git-touch/git-touch/commit/1055517650ff84c2df14c630e01681c77deaeaa4))
|
||||
* table view icon style ([ffa3ef7](https://github.com/git-touch/git-touch/commit/ffa3ef79d9a2587108ca71dd5d92bfbcf84ea51b))
|
||||
* text overflow ([765bc23](https://github.com/git-touch/git-touch/commit/765bc23b5b6dcdee606b2e46d97a5c3542cc6062))
|
||||
* text overflow ([d40b877](https://github.com/git-touch/git-touch/commit/d40b87750432502421633f5c775f0aa58f190842))
|
||||
* theme select ([20ca296](https://github.com/git-touch/git-touch/commit/20ca29657bea09b9a240c1e1f8833e54ef5d5164))
|
||||
* totalcount ([0b743ff](https://github.com/git-touch/git-touch/commit/0b743ffddb1c5141cd3cad499b69ff86142ec0d4))
|
||||
* trending data compatibale ([a9787d3](https://github.com/git-touch/git-touch/commit/a9787d38a3645b28a9b92e983e302714d4dc1377))
|
||||
* trending user data ([396fe55](https://github.com/git-touch/git-touch/commit/396fe550c40375f9eb3d10f1ff58a11946670662))
|
||||
* user name color ([46ecf2f](https://github.com/git-touch/git-touch/commit/46ecf2ff4aa997db56432bdbb87d235b77f94e5b))
|
||||
* user screen tab null ([b32a0e7](https://github.com/git-touch/git-touch/commit/b32a0e77392dc95d1153fda5391d637398b6b11c))
|
||||
* x build ([91d94a5](https://github.com/git-touch/git-touch/commit/91d94a5180a575fcb4c96e284ba0fb66b72bbd53))
|
||||
* **gitlab:** encode path ([a8faf76](https://github.com/git-touch/git-touch/commit/a8faf7622768ce9d4e41d557a4a4a07e809fe75c))
|
||||
* **gitlab:** full path ([c694b99](https://github.com/git-touch/git-touch/commit/c694b99bc7628308643dddefb804deb42ae9afc3))
|
||||
* user screen login ([f2799ca](https://github.com/git-touch/git-touch/commit/f2799cacc4df9aef5b564cb5f92ee25b32cc77d1))
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* about screen ([6441f24](https://github.com/git-touch/git-touch/commit/6441f24c1cee14cec373a54851d7c0e070c37dd7))
|
||||
* add artemis ([716924d](https://github.com/git-touch/git-touch/commit/716924d27d9ff263074b1dc8eb9ad9e7b5a7406b))
|
||||
* add gitlab todos and issue ([810e1eb](https://github.com/git-touch/git-touch/commit/810e1eb4def80bc5e6c10ff0de23691373966319))
|
||||
* add graphql types for user screen ([b11d6be](https://github.com/git-touch/git-touch/commit/b11d6be74b56266f333493c6eca07e7979717f7b))
|
||||
* add web assets ([bfc41cd](https://github.com/git-touch/git-touch/commit/bfc41cd79bec9f9bffecc358301c7b0072d6736a))
|
||||
* brightness toggle button ([a7a05ba](https://github.com/git-touch/git-touch/commit/a7a05bab884db8c91ac1af08ff5e22e4f58f29c4))
|
||||
* cupertino dark mode ([1b7578f](https://github.com/git-touch/git-touch/commit/1b7578f4b48918f22a51e4b1ef9c387b95b6115c))
|
||||
* dark contributions widget ([d4efab4](https://github.com/git-touch/git-touch/commit/d4efab4af2e0a3bd22890ce55e18a18a643ab5c5))
|
||||
* dart theme style tweak ([6a872fc](https://github.com/git-touch/git-touch/commit/6a872fc977d46c4149b4598eb36ae63e98f15709))
|
||||
* event item long press ([9cd38bc](https://github.com/git-touch/git-touch/commit/9cd38bc6403c1ba2316b3a6fbe174924a922c042))
|
||||
* follow button ([6a94d55](https://github.com/git-touch/git-touch/commit/6a94d552e1bf486dd31677d9053d64def7554d67))
|
||||
* follow system option ([baf3e43](https://github.com/git-touch/git-touch/commit/baf3e4304552ead1be262e4c47af125d9646e49b))
|
||||
* force pushed event ([9f1eb49](https://github.com/git-touch/git-touch/commit/9f1eb490890c8a24727bcd2559dc78759d3a6b40))
|
||||
* gitea api ([405cc03](https://github.com/git-touch/git-touch/commit/405cc03a30bb5494799fea694d2c3ea7e995596c))
|
||||
* gitlab domain ([05ff1e4](https://github.com/git-touch/git-touch/commit/05ff1e413b7bebdfd9bb27db6ac90b6e718b9a26))
|
||||
* gitlab login by token ([2b6d45c](https://github.com/git-touch/git-touch/commit/2b6d45c457b24570dfa554fc16b9509b64e49f2b))
|
||||
* gitlab screen routers ([6bff2b4](https://github.com/git-touch/git-touch/commit/6bff2b44b6050a043dc684e909981d7f1ee8d3bf))
|
||||
* gitlab user screen ([c6c5465](https://github.com/git-touch/git-touch/commit/c6c5465ad35e77767ab5ca45d9d7099f18446866))
|
||||
* handle create event ([bb0d9d5](https://github.com/git-touch/git-touch/commit/bb0d9d5d01e0e586d7180297b555c9f4319c5ef9))
|
||||
* handle release event ([5f340e4](https://github.com/git-touch/git-touch/commit/5f340e45028c7a83ea48bc87771cfd47375d02b8))
|
||||
* languages chart ([23983fb](https://github.com/git-touch/git-touch/commit/23983fb556083c1a1aa6c8d05ebdb01c3238260c))
|
||||
* markdown view dark mode ([eac8418](https://github.com/git-touch/git-touch/commit/eac84184af62ccec910feb4dd7263ba68eae19e3))
|
||||
* open and close issue ([1b7bcdb](https://github.com/git-touch/git-touch/commit/1b7bcdb7bbc503af8fd0750a1eb8234bcf4101b0))
|
||||
* repo watch ([42c733f](https://github.com/git-touch/git-touch/commit/42c733fe4c7ae2fa6e98f89d8be6095a0e57e2ac))
|
||||
* review permissiosn ([f757c74](https://github.com/git-touch/git-touch/commit/f757c748ea691c8c1d2f65c2c3402a33a36c18c8))
|
||||
* save brightness settings ([dd093bc](https://github.com/git-touch/git-touch/commit/dd093bc7f7ee4e4f965d0d2f0628f3d7e2bd7ea0))
|
||||
* **gitlab:** blob screen ([d91ae0a](https://github.com/git-touch/git-touch/commit/d91ae0a21325330c5dd3de15aeb6ee72a1adaa85))
|
||||
* **gitlab:** project activity screen ([cb82b48](https://github.com/git-touch/git-touch/commit/cb82b48ed0d29e78a7adf59bccf0352b85e49da9))
|
||||
* **gitlab:** project icons ([956b57e](https://github.com/git-touch/git-touch/commit/956b57e869f1b80f88b753ad41d1f93a65edb0dc))
|
||||
* **gitlab:** project screen ([2636e90](https://github.com/git-touch/git-touch/commit/2636e902f29564a92ce5edc41141bfb3791fbad2))
|
||||
* **gitlab:** repository tree screen ([edd3a8d](https://github.com/git-touch/git-touch/commit/edd3a8d02efc70dcacb8a92d327ba959fa172f51))
|
||||
* handle svg files ([1b00a0a](https://github.com/git-touch/git-touch/commit/1b00a0ae693d1303215d7b1af2a349dfc1d757bf))
|
||||
* long press repo item ([e35d5df](https://github.com/git-touch/git-touch/commit/e35d5dfb3aad238fba020a7643f6b3ab7a785e24))
|
||||
* markdown view base path ([003263d](https://github.com/git-touch/git-touch/commit/003263d955b9cf5b8f1ba0110a7a0749467a2d0a))
|
||||
* open image view on avatar tap ([ed07ff0](https://github.com/git-touch/git-touch/commit/ed07ff086f9e24477587140c7beeeea7d9ca7167))
|
||||
* review comment ([c84a503](https://github.com/git-touch/git-touch/commit/c84a503299964e6e2b936a16eae8458771f94d4d))
|
||||
* use image view in object screen ([3e3e3d1](https://github.com/git-touch/git-touch/commit/3e3e3d1251cfce0c8680ef82c5b3c833805ca8f8))
|
||||
* use sliding control for cupertino ([5a35cbf](https://github.com/git-touch/git-touch/commit/5a35cbfe39112aae907992b196b2bb94498b1b0c))
|
||||
|
||||
|
||||
|
||||
# [1.1.0](https://github.com/git-touch/git-touch/compare/v1.0.0...v1.1.0) (2019-10-03)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* add gaps between languages ([7056d51](https://github.com/git-touch/git-touch/commit/7056d512374c863a9e40afcc4aea2ea6d889ebfb))
|
||||
* add missing files, remove legacy imports ([c4399a9](https://github.com/git-touch/git-touch/commit/c4399a9a72002385a8e917c24d8ef2e9454c4d85))
|
||||
* add missing links ([814b255](https://github.com/git-touch/git-touch/commit/814b255f3a250f1d6a32c9ba68d4f4c6b9cd008e))
|
||||
* add white background ([cce67cc](https://github.com/git-touch/git-touch/commit/cce67cccda1a1d02a4729ab7f3767fa37e44380b))
|
||||
* always show trailing widgets ([0fe8fc5](https://github.com/git-touch/git-touch/commit/0fe8fc59822637796595a2cbb8f3897ae7419b7c))
|
||||
* branch selection ([ac4fe0b](https://github.com/git-touch/git-touch/commit/ac4fe0b2ed39a7a56d773001d7e1f5b31ac0f1a2))
|
||||
* commit without related user ([b2b6ef4](https://github.com/git-touch/git-touch/commit/b2b6ef47958c58de5f70f2da569d9bdf65e4163a))
|
||||
* contributions initial position ([7606f6e](https://github.com/git-touch/git-touch/commit/7606f6ec1256a5ff5d1e6095cb7cfb94dde5bb27))
|
||||
* correct disk usage ([c3af4e7](https://github.com/git-touch/git-touch/commit/c3af4e7d91f1cd14ae725ffd17eb698f67a7276f))
|
||||
* current branch name ([89786c3](https://github.com/git-touch/git-touch/commit/89786c307ec3c4e543a8e0ce6f77b8a4faefed3b))
|
||||
* deleted user ([356a7f5](https://github.com/git-touch/git-touch/commit/356a7f5e18a108d5022e6f970437c36476ebe7c7))
|
||||
* disable animation on replacement ([ae7b124](https://github.com/git-touch/git-touch/commit/ae7b1247b417a2b1cbcee39023fa407f2797a236))
|
||||
* disable branch selection if less than 2 ([04f483a](https://github.com/git-touch/git-touch/commit/04f483aafea4bba25976888031a2290470d4342d))
|
||||
* disable sub module click ([8e088ef](https://github.com/git-touch/git-touch/commit/8e088ef701fad325398b6dfdf3815485a616b099))
|
||||
* disable tab switch if loading ([a1fe2df](https://github.com/git-touch/git-touch/commit/a1fe2df552bf4bec8ae881b87267d38cbce5bb34))
|
||||
* dispose ([966fa82](https://github.com/git-touch/git-touch/commit/966fa824ed99c06516f5a50708b2fed7a7246c26))
|
||||
* domain comparison ([b958ddf](https://github.com/git-touch/git-touch/commit/b958ddf0cfde2d23ba586870df56f1e3b85ece79))
|
||||
* duplicated class name ([af25486](https://github.com/git-touch/git-touch/commit/af25486a9c140dd38176ed357f7298e16b2c2b2b))
|
||||
* fetch 2x items if filter applied ([f580d4b](https://github.com/git-touch/git-touch/commit/f580d4b96c0e89e0655f0cd3021353c9401ce041))
|
||||
* folders first ([814ac92](https://github.com/git-touch/git-touch/commit/814ac926a13ff32fe4d25f7839ab2acf7d2ba175))
|
||||
* handle commit user null ([cc8ea1d](https://github.com/git-touch/git-touch/commit/cc8ea1d39a8298801b20267629d0f4d2f2cb2e34))
|
||||
* handle default branch ref null case ([cbfa622](https://github.com/git-touch/git-touch/commit/cbfa6221e47a0649c13c437958ba34d9c662ad13))
|
||||
* handle emoji characters ([c06179e](https://github.com/git-touch/git-touch/commit/c06179e1096cfb1b992c8d5e595096a637aebfb4))
|
||||
* handle language color null ([b083c4f](https://github.com/git-touch/git-touch/commit/b083c4fadd1a886e6d116416baaf9ccbf2ad750e))
|
||||
* handle README content null ([6539eb6](https://github.com/git-touch/git-touch/commit/6539eb6ef409961f375e21bab7cfd3354e417604))
|
||||
* hide GitLab account login entry ([003a8e9](https://github.com/git-touch/git-touch/commit/003a8e9fbe5ecdd164bcd43a4ef5800c6cf7ee0c))
|
||||
* hide language bar if no data ([7562f39](https://github.com/git-touch/git-touch/commit/7562f391cc4329ccfefbf1d33fce6d5064f275f1))
|
||||
* horizontal scroll ([9b1921a](https://github.com/git-touch/git-touch/commit/9b1921adda3a56ca157fc938066b1bf897930d04))
|
||||
* issues load more ([94cd4ec](https://github.com/git-touch/git-touch/commit/94cd4ec9459b64d7c958bdf33bfee473704f0f07))
|
||||
* items not fill in list view ([04edb92](https://github.com/git-touch/git-touch/commit/04edb9247af066edee6c08ae6646acc50373cf7c))
|
||||
* label color ([eb9de95](https://github.com/git-touch/git-touch/commit/eb9de95efc493285d68b91ac357a3c44c070ff46))
|
||||
* language color at trending screen ([411a4b9](https://github.com/git-touch/git-touch/commit/411a4b981ef5a138750977dcd196fd76114b95d9))
|
||||
* limit to ascii ([ee61509](https://github.com/git-touch/git-touch/commit/ee615097e7665fb3b72d226e24a89a8f48bc99c3))
|
||||
* link tap highlight ([27f4bbc](https://github.com/git-touch/git-touch/commit/27f4bbc690b5cdcf1d4e96589521b7eb2fb83717))
|
||||
* list scaffold refresh feature ([0c54611](https://github.com/git-touch/git-touch/commit/0c54611345ddfb01819f82fc68736441bbf0b3f8))
|
||||
* mark all as read ([0d16490](https://github.com/git-touch/git-touch/commit/0d164904f1357c484529e75a2c4d8d64fb726107))
|
||||
* material actions style ([eadef89](https://github.com/git-touch/git-touch/commit/eadef899d5989251b1fd9619b0408a3025b545bd))
|
||||
* multi line body ([bac4ab4](https://github.com/git-touch/git-touch/commit/bac4ab4c62f43e823a50564b8017c46d864259b9))
|
||||
* notification item state query ([49902f2](https://github.com/git-touch/git-touch/commit/49902f2999099cf88170283e13f24f2d4eae5e21))
|
||||
* object screen ([87bb4d5](https://github.com/git-touch/git-touch/commit/87bb4d5513563aa78b2735a6836853b2f7cefd64))
|
||||
* physical pixel border ([9487cc1](https://github.com/git-touch/git-touch/commit/9487cc1bc60e7c5025ae459e48f36c85aa0fdcfc))
|
||||
* refresh scaffold when trailing builder null ([e6d6835](https://github.com/git-touch/git-touch/commit/e6d68356615317e399db519233b266867bb249e7))
|
||||
* release notification item tap ([a4d00e5](https://github.com/git-touch/git-touch/commit/a4d00e5a81ff5fe412015d8d0d44efda756d5d54))
|
||||
* remove background color for ink effect ([ddcd39c](https://github.com/git-touch/git-touch/commit/ddcd39c438a871e05afae3c2f7c26be3bf5059a5))
|
||||
* remove previous account if duplicated ([f2e3120](https://github.com/git-touch/git-touch/commit/f2e312079b20011b8f0c1c76c86f49d274745995))
|
||||
* replace deprecated pinned api ([4db467d](https://github.com/git-touch/git-touch/commit/4db467d212a34c41b1281fc6be75b9ba9b054b26))
|
||||
* repo item link ([b610af4](https://github.com/git-touch/git-touch/commit/b610af44a128b5be318a4591b837555087f2b63c))
|
||||
* repo name containing dot at notification screen ([e5e3831](https://github.com/git-touch/git-touch/commit/e5e38315bea0d6fa04c7e1b7ab4b60b4688cac92))
|
||||
* show repo owner at user stars screen ([0b57a59](https://github.com/git-touch/git-touch/commit/0b57a59392df9a341a67edb811f9dd57b5b2a724))
|
||||
* star and fork count 0 case ([ec1d995](https://github.com/git-touch/git-touch/commit/ec1d9956607cf66b06fc2ff508e0d570ee9b8c03))
|
||||
* started -> starred ([2914d0c](https://github.com/git-touch/git-touch/commit/2914d0c629e2deffc7f4b3dad126316dd20e04af))
|
||||
* table view style ([9bc5c2b](https://github.com/git-touch/git-touch/commit/9bc5c2b96a69c6ddec32119c04bf3dfc01f3fc31))
|
||||
* trending api ([cac2c66](https://github.com/git-touch/git-touch/commit/cac2c664ccf923bb00ddbf2925025ffa0635e0d5))
|
||||
* update data after action ([206e533](https://github.com/git-touch/git-touch/commit/206e53346318f1f42afd623949b290b242f8580b))
|
||||
* use common push route method for span link ([200b250](https://github.com/git-touch/git-touch/commit/200b2509268aa6ed1844aacda65a4750d3d574ae))
|
||||
* use default branch ([a2cb2fb](https://github.com/git-touch/git-touch/commit/a2cb2fb9e979d7ef751ffd0bb081e61e43fbecb5))
|
||||
* use readme api ([b07b25f](https://github.com/git-touch/git-touch/commit/b07b25fca0a56057a0f108366ef254fdcb7df69b))
|
||||
* use spdx id of license ([1a9f708](https://github.com/git-touch/git-touch/commit/1a9f7083ee2a6ba49be22de842a3b1b45d35d684))
|
||||
* user type ([755aba7](https://github.com/git-touch/git-touch/commit/755aba7727939a74a66516469b48cd6c71881617))
|
||||
* users screen title ([bd4ed63](https://github.com/git-touch/git-touch/commit/bd4ed6382cca9b8d4e35033f6de75f824344f2e2))
|
||||
* users star or watch repo ([df485ed](https://github.com/git-touch/git-touch/commit/df485edcd4ca19624fcf070ffa7cc8d6ab09b54a))
|
||||
* widget list contains null ([cb8a879](https://github.com/git-touch/git-touch/commit/cb8a8799ab979e0cdb062684ed28986e9df55b00))
|
||||
* widget span for branch name ([ca11d0f](https://github.com/git-touch/git-touch/commit/ca11d0f0d5d5c38876b510136ce23370413a4229))
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* adapter picker for material theme ([fb4c12d](https://github.com/git-touch/git-touch/commit/fb4c12d1a5a29dc51f49496f543fd6676c327839))
|
||||
* add and remove reactions ([3bc1e7e](https://github.com/git-touch/git-touch/commit/3bc1e7edcd97988b347a1a406d67a662acd42846))
|
||||
* add avatar placeholder ([c300113](https://github.com/git-touch/git-touch/commit/c300113b8a0f7fbddf494d3b537ffcd3f53b8acf))
|
||||
* add commit build status ([a48a35e](https://github.com/git-touch/git-touch/commit/a48a35ec4fce035a9e722c864249eb6784591b6a))
|
||||
* add contributions graph to user screen ([c6d9b06](https://github.com/git-touch/git-touch/commit/c6d9b067b1bf6c969b546f78831a35e914523761))
|
||||
* add credits of fonts ([0d5fef8](https://github.com/git-touch/git-touch/commit/0d5fef8dd770425795a2dd4c43139d6319349945))
|
||||
* add credits screen ([00cbac4](https://github.com/git-touch/git-touch/commit/00cbac48585a33e9ea4c68ca41199a331a9ac299))
|
||||
* add feedback entry ([c54df10](https://github.com/git-touch/git-touch/commit/c54df1023405af023f83c07c4c1f69eb97ee9d1c))
|
||||
* add go to review entry ([f4dd41e](https://github.com/git-touch/git-touch/commit/f4dd41e3ff9e8ed54d5eb3632bd3de001e9b7718))
|
||||
* add issue, pull request and commit entry ([08e7c99](https://github.com/git-touch/git-touch/commit/08e7c99c6431f0152ccb7dbe6b0239e2b8757c42))
|
||||
* add more information for users screen ([f3b5476](https://github.com/git-touch/git-touch/commit/f3b547668c84586484b1db20d8fdd5b638891f01))
|
||||
* add news filter ([049f44b](https://github.com/git-touch/git-touch/commit/049f44b5f45fcbc5a70835f4347b820f9ee6744f))
|
||||
* add organization screen ([7182268](https://github.com/git-touch/git-touch/commit/718226860edb3bef09807518d8876e0269c10ff0))
|
||||
* add popular monospace fonts ([7a9fb0f](https://github.com/git-touch/git-touch/commit/7a9fb0ffeec76e288216434d4120db3817bf8d10))
|
||||
* add project entry ([01d7fd2](https://github.com/git-touch/git-touch/commit/01d7fd2fc11ffa32714f7faf1ee8154f9983d63c))
|
||||
* add reaction emoji to issue screen ([af79d33](https://github.com/git-touch/git-touch/commit/af79d33a7f36d242706aa39e03d3d5b526d41456))
|
||||
* add releases ([f9fcf42](https://github.com/git-touch/git-touch/commit/f9fcf42c98a7c9006e03cc4056dff4622c4d532e))
|
||||
* add scrollbar ([5089ac6](https://github.com/git-touch/git-touch/commit/5089ac6bb078f349d9e98f380662e701cba0c1ba))
|
||||
* add topics to repo screen ([3f2b9ed](https://github.com/git-touch/git-touch/commit/3f2b9ed56621bf14ec55d6e65ccc302d12f8ed0e))
|
||||
* add trending developers ([91d6a4b](https://github.com/git-touch/git-touch/commit/91d6a4b2a3ba72738885ff8f5032c6c8fd6ed728))
|
||||
* add trending screen ([c06ef90](https://github.com/git-touch/git-touch/commit/c06ef90618b3a58100f747b4475bcb88f386238b))
|
||||
* add users and issues search ([cefd0bc](https://github.com/git-touch/git-touch/commit/cefd0bcb5c5f05f6b71999c5b2bed8902410b71e))
|
||||
* add view owner action at repo screen ([83c22bd](https://github.com/git-touch/git-touch/commit/83c22bda9acb9f113d4e4f1829721a39d7a2e705))
|
||||
* apply github markdown style ([68dacab](https://github.com/git-touch/git-touch/commit/68dacabfbddbed5e7df5a70dd6832ae3d199b279))
|
||||
* border left padding ([3506609](https://github.com/git-touch/git-touch/commit/3506609024f70968f3e1834d144a37735f1e7777))
|
||||
* bottom navigation style ([68c1be4](https://github.com/git-touch/git-touch/commit/68c1be406d1d80fd3aa3acb2245742825631be57))
|
||||
* code settings ([a47d84a](https://github.com/git-touch/git-touch/commit/a47d84a6cc83df490366e50a14f8b576356ad307))
|
||||
* commits list screen ([a7155d4](https://github.com/git-touch/git-touch/commit/a7155d4def99e3be6aa71595aca5386f0cb8d812))
|
||||
* create issue ([4b8807e](https://github.com/git-touch/git-touch/commit/4b8807e2f19a44e7aafea0f335642caf01e1751e))
|
||||
* disable link to self of repo screen ([932a107](https://github.com/git-touch/git-touch/commit/932a10797e21c1ddd1ead85235d7c861150606fe))
|
||||
* disable refresh on tab switch ([09c1ded](https://github.com/git-touch/git-touch/commit/09c1ded405d7605951085f84f1703d2cdb612a23))
|
||||
* extract markdown view, add basic style ([70f83df](https://github.com/git-touch/git-touch/commit/70f83df1fe07ab55186f0ef8355caf6f60230443))
|
||||
* format numbers with group seperator ([ede2d06](https://github.com/git-touch/git-touch/commit/ede2d064f10e361c4d60142600c05ef4f2698abc))
|
||||
* gitlab account login ([beb8974](https://github.com/git-touch/git-touch/commit/beb8974caa82f4679898f9f53f3c6abca0b5f765))
|
||||
* handle markdown link tap ([b119a42](https://github.com/git-touch/git-touch/commit/b119a425cd75c7ceb69c5e2a12801218241690b7))
|
||||
* hide issue entry if not enabled ([9c5ef59](https://github.com/git-touch/git-touch/commit/9c5ef590131467f10d9f2b32c5eb829bfcda9b79))
|
||||
* hide owner of user page repos if same ([9bdb01e](https://github.com/git-touch/git-touch/commit/9bdb01e04ce1ed50b7db9437f731b844907ca813))
|
||||
* issue screen style ([1108346](https://github.com/git-touch/git-touch/commit/110834616352bb87e11ef85f3847c7742d4722e8))
|
||||
* issues screen info ([bf3f077](https://github.com/git-touch/git-touch/commit/bf3f077efa416220e486c20ea138f741a506320f))
|
||||
* issues screen style ([2c6a3d0](https://github.com/git-touch/git-touch/commit/2c6a3d097c96a4da092ef1ea3178b6aaa2983817))
|
||||
* launch google maps for location ([58ee485](https://github.com/git-touch/git-touch/commit/58ee48527f38328b3a549902d408336f0d9504db))
|
||||
* list group style ([3055c29](https://github.com/git-touch/git-touch/commit/3055c29e7b8d15f8c8cb50a28397ee2ed289c193))
|
||||
* login by access token ([8869c6b](https://github.com/git-touch/git-touch/commit/8869c6b456180cf4f31493030fe680b595178710))
|
||||
* news screen style ([321ab0a](https://github.com/git-touch/git-touch/commit/321ab0a60a2a340f41404a440e69f8b7a65ca87d))
|
||||
* news screen time, style tweaks ([46e380c](https://github.com/git-touch/git-touch/commit/46e380c10d07f61b25d232ea11725e371f8259a0))
|
||||
* notification badge color, remove unnecessary keyword new ([ae1536b](https://github.com/git-touch/git-touch/commit/ae1536b34892026c0f98e082ac3ed950c1f14b53))
|
||||
* notification style ([1eafcff](https://github.com/git-touch/git-touch/commit/1eafcff12498cd664e6b72f8d74313e2bb70b628))
|
||||
* organization members ([1c5b624](https://github.com/git-touch/git-touch/commit/1c5b62430ecaf32c4cd3f4dba77495d8d93066d8))
|
||||
* organization screen ([45687a4](https://github.com/git-touch/git-touch/commit/45687a48a6c3b226a95ecd11f26cf97de9b70711))
|
||||
* pushEvent: show commits, click to launch code compare page ([76d8138](https://github.com/git-touch/git-touch/commit/76d8138716dfea115d55e344a59ce7cd53526c35))
|
||||
* remove news filter ([0e87278](https://github.com/git-touch/git-touch/commit/0e8727891e0efe3f79adfb6cc6fe4f36646caa00))
|
||||
* repo item style ([354520d](https://github.com/git-touch/git-touch/commit/354520d9c11c79912d334115af6807d564f670d7))
|
||||
* repo language ratio bar ([029beba](https://github.com/git-touch/git-touch/commit/029bebaf0dce8f05c1328c3e0fb926155763b122))
|
||||
* repository count ([42debe9](https://github.com/git-touch/git-touch/commit/42debe9bf3887c47d9983e172d9b733a8448b603))
|
||||
* repository forks screen ([250b520](https://github.com/git-touch/git-touch/commit/250b5206625457e464a534fae8522385d2d63b2e))
|
||||
* select branch with picker ([ce00adf](https://github.com/git-touch/git-touch/commit/ce00adf54c2e7a2463619080edcefd83c7356144))
|
||||
* settings style ([c24fd46](https://github.com/git-touch/git-touch/commit/c24fd4600c52024a6c215d68c3c7328626102fee))
|
||||
* settings table view style ([7f9669e](https://github.com/git-touch/git-touch/commit/7f9669eaeaebe3425ba8e934721bbcfd8d39cd23))
|
||||
* show branches count ([4fb32fa](https://github.com/git-touch/git-touch/commit/4fb32fa818f00d83cdc85114231fcbdd3bb1f7d9))
|
||||
* show code blob ([3f59d56](https://github.com/git-touch/git-touch/commit/3f59d5694dd5b6a045b0ad642e5167a9f4e0faf6))
|
||||
* show notification status on load ([80e6332](https://github.com/git-touch/git-touch/commit/80e63324325cab6b1f8e588f1b9928b7d5ca8fb0))
|
||||
* show pinned items ([8cd1d9f](https://github.com/git-touch/git-touch/commit/8cd1d9f1a5125681e08c37d4db5f0d84fa460684))
|
||||
* show repository directory ([09f91f7](https://github.com/git-touch/git-touch/commit/09f91f77ae9fe359ecbec0946cdd677df9e26939))
|
||||
* specify branch of commits screen ([8bc2024](https://github.com/git-touch/git-touch/commit/8bc2024e4142610f55f59396ccb0bfc989a43816))
|
||||
* style tweak ([7d6d1ec](https://github.com/git-touch/git-touch/commit/7d6d1ecd46083190546f19204f078db8c68c86f8))
|
||||
* style tweaks ([2acf857](https://github.com/git-touch/git-touch/commit/2acf85742bf2dfb82a14a786f881b83b31dc0078))
|
||||
* style tweaks ([9fe6639](https://github.com/git-touch/git-touch/commit/9fe6639f6619b3065fdbb89ec498c6423a9d0595))
|
||||
* style tweaks ([6312da8](https://github.com/git-touch/git-touch/commit/6312da876a44b93afa037091c8ed366d5759dac7))
|
||||
* style tweaks ([e3cba91](https://github.com/git-touch/git-touch/commit/e3cba91b9c508322b01ac5b73978cc443fd1cb67))
|
||||
* text contains organization ([562c67d](https://github.com/git-touch/git-touch/commit/562c67dac004de2c7765fbf9198328e0f0f842b2))
|
||||
* text field placeholder ([cb87c32](https://github.com/git-touch/git-touch/commit/cb87c32de7482bac8d718102e5ecf5adc8a44eed))
|
||||
* use popup menu button for material ([951c50c](https://github.com/git-touch/git-touch/commit/951c50c2a983cef1425842090004bca3aaa8b744))
|
||||
* use seti icons ([8b580e2](https://github.com/git-touch/git-touch/commit/8b580e2376517729bf398ebd1672e40b5654b94b))
|
||||
* user screen repos title ([3354ac4](https://github.com/git-touch/git-touch/commit/3354ac4e6bc14ae6646260e0eb66fc14bf64de54))
|
||||
* user screen style ([a589e51](https://github.com/git-touch/git-touch/commit/a589e518bbd926fcdab156320c7d5b7addca8849))
|
||||
* user screen style tweaks ([c78c010](https://github.com/git-touch/git-touch/commit/c78c010fab7055fd14bdc1779e9590d185ba94fc))
|
||||
* user screen style tweaks ([2575576](https://github.com/git-touch/git-touch/commit/2575576e332c5185763e4577d9c8965e3aca49e8))
|
||||
* view image files ([83f3fbb](https://github.com/git-touch/git-touch/commit/83f3fbbdcfab63392e663010ad676fa1aebb12fe))
|
||||
* watch repository ([488f5fc](https://github.com/git-touch/git-touch/commit/488f5fc8f01acf2d73f23155854a4559de115ae2))
|
||||
|
||||
|
||||
|
||||
# [1.0.0](https://github.com/git-touch/git-touch/compare/a051a54549f70a8ba7be33a5b9b04ae5ff5d98a0...v1.0.0) (2019-02-12)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* add missing internet permission to android manifest ([56f598e](https://github.com/git-touch/git-touch/commit/56f598e73228ffa6256cec4ca0ff519e70209002))
|
||||
* check mounted before setState ([ddb9497](https://github.com/git-touch/git-touch/commit/ddb9497ab835e950fd2a4df7e59e37eae81602b8))
|
||||
* checkout code of closeWebView fix PR ([d25b979](https://github.com/git-touch/git-touch/commit/d25b9791382b2fd24def5923a89fe01155b1cbe6))
|
||||
* event item tap screen ([d476018](https://github.com/git-touch/git-touch/commit/d476018092e5110689cafe397fff15e6090e0954))
|
||||
* event item tapable revert ([5b4ff92](https://github.com/git-touch/git-touch/commit/5b4ff92138864b6f39e0cbe8942413c1ef5022e8))
|
||||
* handle notification item type: Commit ([84596d3](https://github.com/git-touch/git-touch/commit/84596d3fcf698c9cf9364cd6b77860c5d5753467))
|
||||
* long list at material theme ([ce11da3](https://github.com/git-touch/git-touch/commit/ce11da379a3f209f7af030f0ce7e5397f56c2276))
|
||||
* move fetch to next tick to get context ([73907f5](https://github.com/git-touch/git-touch/commit/73907f51b4462a811aa4c5b7f3449a852a773296))
|
||||
* refresh scaffold, dash graphql syntax error ([5c4d29c](https://github.com/git-touch/git-touch/commit/5c4d29c5227855302e689ca254159057abb7244d))
|
||||
* remove loading when reach to end ([6933c04](https://github.com/git-touch/git-touch/commit/6933c044723b533672de627c0546be863ac845eb))
|
||||
* replace hard code ([c7a16f6](https://github.com/git-touch/git-touch/commit/c7a16f67a0ca8d6df3340fbcdbff468f03b8e6ca))
|
||||
* style and dependency ([b4c21a1](https://github.com/git-touch/git-touch/commit/b4c21a13724983e4a64b2fe579ce0a28c1936542))
|
||||
* style of pull request and issue screens ([c9d4f4c](https://github.com/git-touch/git-touch/commit/c9d4f4c999404421c3fbeb07a41685abebaccf3e))
|
||||
* styles ([9ce9589](https://github.com/git-touch/git-touch/commit/9ce9589b2ce005a0f1cee0a2dd1d815e8d5a67dd))
|
||||
* test files ([5f94c0f](https://github.com/git-touch/git-touch/commit/5f94c0f80f97f98bb3a81560a3ed93596705bc9a))
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* add actions to repo, user and issue screen ([d9bec75](https://github.com/git-touch/git-touch/commit/d9bec759e3bcc2715878c29f907520ac5c19da8b))
|
||||
* add all timeline item types ([7a229d0](https://github.com/git-touch/git-touch/commit/7a229d079786b1e6e51a66dc5e7aea8b75839ba9))
|
||||
* add android deep link ([5c0870a](https://github.com/git-touch/git-touch/commit/5c0870a80bc6c098aa167fc8bc8ba5ef32db45cf))
|
||||
* add android notification screen ([b07aee5](https://github.com/git-touch/git-touch/commit/b07aee5aad6cd5117c41d82d033e8bca9dc4a896))
|
||||
* add error screen to handle network and other errors ([0a26509](https://github.com/git-touch/git-touch/commit/0a26509cddb852c8c714539bcd5c63ac6fb87889))
|
||||
* add files and commits links for repo screen ([925472f](https://github.com/git-touch/git-touch/commit/925472f151ce1ef1ab2dafb9c61b2c4ee7e36d7f))
|
||||
* add iOS icons, add display name ([3a254bd](https://github.com/git-touch/git-touch/commit/3a254bd0aa0c6339e66c207e41078cf7e7e07f98))
|
||||
* add issue and pull request state ([fb9fd4c](https://github.com/git-touch/git-touch/commit/fb9fd4cb3a5fdc1b528900e4fb791cb10705031a))
|
||||
* add loading widget when receiving url scheme ([e1170d4](https://github.com/git-touch/git-touch/commit/e1170d411cff0169299c389ad61d1ec2165062ec))
|
||||
* add more event type ([9ae00df](https://github.com/git-touch/git-touch/commit/9ae00dff6d591cf20e76cebe4892d78dedacfc30))
|
||||
* add notification page ([a051a54](https://github.com/git-touch/git-touch/commit/a051a54549f70a8ba7be33a5b9b04ae5ff5d98a0))
|
||||
* add Octicons ([d86c2c3](https://github.com/git-touch/git-touch/commit/d86c2c3b4999826869c46a9c41df29c1ba2336c9))
|
||||
* add placeholder for empty list ([5298c87](https://github.com/git-touch/git-touch/commit/5298c8736f8f6787ad43145cac50d8d31fcf9eee))
|
||||
* add repo item, extract list group widget ([f141405](https://github.com/git-touch/git-touch/commit/f1414057e0a10803f00dc9aa8c8ea531e8a2633d))
|
||||
* add repo's issues and pull requests screen ([5535631](https://github.com/git-touch/git-touch/commit/55356315c437143ab2c3f06d254539fa6e1e2ebb))
|
||||
* add search screen ([8e86e85](https://github.com/git-touch/git-touch/commit/8e86e85b553b21269e2eab965d130bafaeb93e36))
|
||||
* add search screen ([992c7e0](https://github.com/git-touch/git-touch/commit/992c7e0cc6c7cd3782df00eab77b231af141bd1f))
|
||||
* add tips for unimplemented event types ([374a39c](https://github.com/git-touch/git-touch/commit/374a39c4205b5ff29a5dda951856c91920561d21))
|
||||
* add user screen ([3c83804](https://github.com/git-touch/git-touch/commit/3c83804b3d962f919985b57f8d99c2464ff29835))
|
||||
* add users screen: following and followers ([66c040e](https://github.com/git-touch/git-touch/commit/66c040e5239c9a45fd55cfa5a0acfe8fd676c6e7))
|
||||
* add users' repo screen ([ab75500](https://github.com/git-touch/git-touch/commit/ab755005b79d0ef09ffd75c9887bb3b302daa95a))
|
||||
* android icons and display name ([282d29f](https://github.com/git-touch/git-touch/commit/282d29f68f4745efab7b3ff6a6152abe446e4683))
|
||||
* custom event payload type ([6aa65b8](https://github.com/git-touch/git-touch/commit/6aa65b857ff9faa805f7be931eb404814bed7c39))
|
||||
* extract issue and pull request common widget, add more type ([7c6c211](https://github.com/git-touch/git-touch/commit/7c6c211d1c3a2121193f43135ee01c3f3add226c))
|
||||
* extract provider, add android news screen ([908d6df](https://github.com/git-touch/git-touch/commit/908d6df478cc4a38f3af4fcfa7a2cda5153c9e15))
|
||||
* github oauth login ([543f8c8](https://github.com/git-touch/git-touch/commit/543f8c82ea421b0129fbb529daeb0f914c45d309))
|
||||
* home screen style, add pull request screen ([1624027](https://github.com/git-touch/git-touch/commit/16240278f67a2f5fb3c5ba9152bf39b5d31b0b92))
|
||||
* inbox screen ([8e678a3](https://github.com/git-touch/git-touch/commit/8e678a37d4a98c54989ba1d206bffef1173166a0))
|
||||
* iOS URL scheme config ([ef03caa](https://github.com/git-touch/git-touch/commit/ef03caa135c536e04a121686a27308da9a359224))
|
||||
* login screen style, add settings screen, extract simple scaffold ([434781a](https://github.com/git-touch/git-touch/commit/434781a27e9d99aecb201c488a1f0a8d951c51bd))
|
||||
* notification filters ([e16d6c2](https://github.com/git-touch/git-touch/commit/e16d6c24680bba0d29809bd2652db233621efd2e))
|
||||
* notification icon badge ([c047aae](https://github.com/git-touch/git-touch/commit/c047aae099c1c71e2a7c1aeaa02fec29aa161d8f))
|
||||
* notification mark as read ([c0629c5](https://github.com/git-touch/git-touch/commit/c0629c5739109459556b2ef2b35176df590287a4))
|
||||
* notification page style ([2458c63](https://github.com/git-touch/git-touch/commit/2458c63a0c12bdb5985416faa3a042176241a042))
|
||||
* notification screen ([9043322](https://github.com/git-touch/git-touch/commit/90433222012ae6af7c79df82a2f00e49ee3dd7e5))
|
||||
* notification screen filter ([7c35bb7](https://github.com/git-touch/git-touch/commit/7c35bb7ffb4d2144d78ff8b2a29816b46258e2e5))
|
||||
* repo screen ([5664591](https://github.com/git-touch/git-touch/commit/56645910e4aa85f089a53025d7fb8713040923f8))
|
||||
* settings screen ([0a1de91](https://github.com/git-touch/git-touch/commit/0a1de9156993d2d6a3c970d5b4d12c7212e9ba0e))
|
||||
* style of home and notification screen ([4e28608](https://github.com/git-touch/git-touch/commit/4e2860871402a4e0cfa6c076c6260b75780ff8d6))
|
||||
* user screen ([a374a57](https://github.com/git-touch/git-touch/commit/a374a57f8f7d0129e264c0a7021eec9192a992e0))
|
||||
* user screen style ([7a18277](https://github.com/git-touch/git-touch/commit/7a18277ac2130d867ac592b0555aeb441ea0fd28))
|
||||
* users' star repos ([813a956](https://github.com/git-touch/git-touch/commit/813a95666ed26171953b42abe242db7fd35920c4))
|
||||
|
||||
- View GitHub trending repositories and users
|
||||
- View code with syntax highlighting
|
||||
- Search users and issues
|
||||
- Login by access token
|
||||
- Style tweaks
|
||||
|
||||
## 1.0.0
|
||||
|
||||
- View GitHub repositories
|
||||
- View GitHub users
|
||||
- View pull requests and issues
|
||||
- View notifications
|
||||
- Star and unstar repositories
|
||||
- Follow and unfollow users
|
||||
|
|
|
@ -51,7 +51,9 @@ See [CONTRIBUTING.md](./CONTRIBUTING.md).
|
|||
|
||||
## Contributors
|
||||
|
||||
[![](https://sourcerer.io/fame/pd4d10/pd4d10/git-touch/images/0)![](https://sourcerer.io/fame/pd4d10/pd4d10/git-touch/images/1)![](https://sourcerer.io/fame/pd4d10/pd4d10/git-touch/images/2)![](https://sourcerer.io/fame/pd4d10/pd4d10/git-touch/images/3)![](https://sourcerer.io/fame/pd4d10/pd4d10/git-touch/images/4)![](https://sourcerer.io/fame/pd4d10/pd4d10/git-touch/images/5)![](https://sourcerer.io/fame/pd4d10/pd4d10/git-touch/images/6)![](https://sourcerer.io/fame/pd4d10/pd4d10/git-touch/images/7)](https://github.com/pd4d10/git-touch/graphs/contributors)
|
||||
<a href="https://github.com/git-touch/git-touch/graphs/contributors">
|
||||
<img src="https://contrib.rocks/image?repo=git-touch/git-touch" />
|
||||
</a>
|
||||
|
||||
## License
|
||||
|
||||
|
|
21
SECURITY.md
21
SECURITY.md
|
@ -1,21 +0,0 @@
|
|||
# Security Policy
|
||||
|
||||
## Supported Versions
|
||||
|
||||
Use this section to tell people about which versions of your project are
|
||||
currently being supported with security updates.
|
||||
|
||||
| Version | Supported |
|
||||
| ------- | ------------------ |
|
||||
| 5.1.x | :white_check_mark: |
|
||||
| 5.0.x | :x: |
|
||||
| 4.0.x | :white_check_mark: |
|
||||
| < 4.0 | :x: |
|
||||
|
||||
## Reporting a Vulnerability
|
||||
|
||||
This follows contributing guidelines, as well as the follimg ones.
|
||||
1. Title the vunerablilty
|
||||
2. Describe the vunerablity in as much detail as possible
|
||||
3. Give steps on how to reproduce the vunerablilty
|
||||
4. Add media on the vunerablity, if possible
|
|
@ -1,3 +1,50 @@
|
|||
# This file configures the analyzer, which statically analyzes Dart code to
|
||||
# check for errors, warnings, and lints.
|
||||
#
|
||||
# The issues identified by the analyzer are surfaced in the UI of Dart-enabled
|
||||
# IDEs (https://dart.dev/tools#ides-and-editors). The analyzer can also be
|
||||
# invoked from the command line by running `flutter analyze`.
|
||||
|
||||
# The following line activates a set of recommended lints for Flutter apps,
|
||||
# packages, and plugins designed to encourage good coding practices.
|
||||
include: package:flutter_lints/flutter.yaml
|
||||
|
||||
linter:
|
||||
# The lint rules applied to this project can be customized in the
|
||||
# section below to disable rules from the `package:flutter_lints/flutter.yaml`
|
||||
# included above or to enable additional rules. A list of all available lints
|
||||
# and their documentation is published at
|
||||
# https://dart-lang.github.io/linter/lints/index.html.
|
||||
#
|
||||
# Instead of disabling a lint rule for the entire project in the
|
||||
# section below, it can also be suppressed for a single line of code
|
||||
# or a specific dart file by using the `// ignore: name_of_lint` and
|
||||
# `// ignore_for_file: name_of_lint` syntax on the line or in the file
|
||||
# producing the lint.
|
||||
rules:
|
||||
prefer_single_quotes: true
|
||||
always_use_package_imports: true
|
||||
sort_constructors_first: true
|
||||
sort_unnamed_constructors_first: true
|
||||
avoid_types_on_closure_parameters: true
|
||||
omit_local_variable_types: true
|
||||
prefer_final_in_for_each: true
|
||||
prefer_final_locals: true
|
||||
use_super_parameters: true
|
||||
use_key_in_widget_constructors: false # waiting for auto fix: https://github.com/dart-lang/sdk/issues/50056
|
||||
|
||||
# TODO:
|
||||
avoid_print: false
|
||||
use_build_context_synchronously: false
|
||||
non_constant_identifier_names: false
|
||||
|
||||
analyzer:
|
||||
exclude:
|
||||
- lib/**/*.g.dart
|
||||
errors:
|
||||
todo: ignore
|
||||
fixme: ignore
|
||||
invalid_annotation_target: ignore # https://github.com/rrousselGit/freezed#disabling-invalid_annotation_target-warning-and-warning-in-generates-files
|
||||
# TODO:
|
||||
unused_element: false
|
||||
override_on_non_overriding_member: false
|
||||
# Additional information about this file can be found at
|
||||
# https://dart.dev/guides/language/analysis-options
|
||||
|
|
|
@ -9,3 +9,5 @@ GeneratedPluginRegistrant.java
|
|||
# Remember to never publicly share your keystore.
|
||||
# See https://flutter.dev/docs/deployment/android#reference-the-keystore-from-the-app
|
||||
key.properties
|
||||
**/*.keystore
|
||||
**/*.jks
|
||||
|
|
|
@ -26,21 +26,29 @@ apply plugin: 'kotlin-android'
|
|||
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
|
||||
|
||||
android {
|
||||
compileSdkVersion 29
|
||||
compileSdkVersion 32 // flutter.compileSdkVersion
|
||||
ndkVersion flutter.ndkVersion
|
||||
|
||||
compileOptions {
|
||||
sourceCompatibility JavaVersion.VERSION_1_8
|
||||
targetCompatibility JavaVersion.VERSION_1_8
|
||||
}
|
||||
|
||||
kotlinOptions {
|
||||
jvmTarget = '1.8'
|
||||
}
|
||||
|
||||
sourceSets {
|
||||
main.java.srcDirs += 'src/main/kotlin'
|
||||
}
|
||||
|
||||
lintOptions {
|
||||
disable 'InvalidPackage'
|
||||
}
|
||||
|
||||
defaultConfig {
|
||||
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
|
||||
applicationId "io.github.pd4d10.gittouch"
|
||||
minSdkVersion 16
|
||||
targetSdkVersion 29
|
||||
// You can update the following values to match your application needs.
|
||||
// For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-build-configuration.
|
||||
minSdkVersion 19 // flutter.minSdkVersion
|
||||
targetSdkVersion flutter.targetSdkVersion
|
||||
versionCode flutterVersionCode.toInteger()
|
||||
versionName flutterVersionName
|
||||
}
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
package="io.github.pd4d10.gittouch">
|
||||
<!-- Flutter needs it to communicate with the running application
|
||||
<!-- 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.
|
||||
-->
|
||||
<uses-permission android:name="android.permission.INTERNET"/>
|
||||
|
|
|
@ -1,18 +1,12 @@
|
|||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
package="io.github.pd4d10.gittouch">
|
||||
<uses-permission android:name="android.permission.INTERNET"/>
|
||||
|
||||
<!-- io.flutter.app.FlutterApplication is an android.app.Application that
|
||||
calls FlutterMain.startInitialization(this); in its onCreate method.
|
||||
In most cases you can leave this as-is, but you if you want to provide
|
||||
additional functionality it is fine to subclass or reimplement
|
||||
FlutterApplication and put your custom class here. -->
|
||||
<application
|
||||
android:name="io.flutter.app.FlutterApplication"
|
||||
<application
|
||||
android:label="GitTouch"
|
||||
android:name="${applicationName}"
|
||||
android:icon="@mipmap/ic_launcher">
|
||||
<activity
|
||||
android:name=".MainActivity"
|
||||
android:exported="true"
|
||||
android:launchMode="singleTop"
|
||||
android:theme="@style/LaunchTheme"
|
||||
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
|
||||
|
@ -26,15 +20,6 @@
|
|||
android:name="io.flutter.embedding.android.NormalTheme"
|
||||
android:resource="@style/NormalTheme"
|
||||
/>
|
||||
<!-- Displays an Android View that continues showing the launch screen
|
||||
Drawable until Flutter paints its first frame, then this splash
|
||||
screen fades out. A splash screen is useful to avoid any visual
|
||||
gap between the end of Android's launch screen and the painting of
|
||||
Flutter's first frame. -->
|
||||
<meta-data
|
||||
android:name="io.flutter.embedding.android.SplashScreenDrawable"
|
||||
android:resource="@drawable/launch_background"
|
||||
/>
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MAIN"/>
|
||||
<category android:name="android.intent.category.LAUNCHER"/>
|
||||
|
|
|
@ -0,0 +1,12 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Modify this file to customize your launch splash screen -->
|
||||
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item android:drawable="?android:colorBackground" />
|
||||
|
||||
<!-- You can insert your own image assets here -->
|
||||
<!-- <item>
|
||||
<bitmap
|
||||
android:gravity="center"
|
||||
android:src="@mipmap/launch_image" />
|
||||
</item> -->
|
||||
</layer-list>
|
|
@ -0,0 +1,18 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<!-- Theme applied to the Android Window while the process is starting when the OS's Dark Mode setting is on -->
|
||||
<style name="LaunchTheme" parent="@android:style/Theme.Black.NoTitleBar">
|
||||
<!-- Show a splash screen on the activity. Automatically removed when
|
||||
the Flutter engine draws its first frame -->
|
||||
<item name="android:windowBackground">@drawable/launch_background</item>
|
||||
</style>
|
||||
<!-- Theme applied to the Android Window as soon as the process has started.
|
||||
This theme determines the color of the Android Window while your
|
||||
Flutter UI initializes, as well as behind your Flutter UI while its
|
||||
running.
|
||||
|
||||
This Theme is only used starting with V2 of Flutter's Android embedding. -->
|
||||
<style name="NormalTheme" parent="@android:style/Theme.Black.NoTitleBar">
|
||||
<item name="android:windowBackground">?android:colorBackground</item>
|
||||
</style>
|
||||
</resources>
|
|
@ -1,18 +1,18 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<!-- Theme applied to the Android Window while the process is starting -->
|
||||
<style name="LaunchTheme" parent="@android:style/Theme.Black.NoTitleBar">
|
||||
<!-- Theme applied to the Android Window while the process is starting when the OS's Dark Mode setting is off -->
|
||||
<style name="LaunchTheme" parent="@android:style/Theme.Light.NoTitleBar">
|
||||
<!-- Show a splash screen on the activity. Automatically removed when
|
||||
Flutter draws its first frame -->
|
||||
the Flutter engine draws its first frame -->
|
||||
<item name="android:windowBackground">@drawable/launch_background</item>
|
||||
</style>
|
||||
<!-- Theme applied to the Android Window as soon as the process has started.
|
||||
This theme determines the color of the Android Window while your
|
||||
Flutter UI initializes, as well as behind your Flutter UI while its
|
||||
running.
|
||||
|
||||
|
||||
This Theme is only used starting with V2 of Flutter's Android embedding. -->
|
||||
<style name="NormalTheme" parent="@android:style/Theme.Black.NoTitleBar">
|
||||
<item name="android:windowBackground">@android:color/white</item>
|
||||
<style name="NormalTheme" parent="@android:style/Theme.Light.NoTitleBar">
|
||||
<item name="android:windowBackground">?android:colorBackground</item>
|
||||
</style>
|
||||
</resources>
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
package="io.github.pd4d10.gittouch">
|
||||
<!-- Flutter needs it to communicate with the running application
|
||||
<!-- 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.
|
||||
-->
|
||||
<uses-permission android:name="android.permission.INTERNET"/>
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
buildscript {
|
||||
ext.kotlin_version = '1.3.50'
|
||||
ext.kotlin_version = '1.6.10'
|
||||
repositories {
|
||||
google()
|
||||
jcenter()
|
||||
mavenCentral()
|
||||
}
|
||||
|
||||
dependencies {
|
||||
classpath 'com.android.tools.build:gradle:3.5.0'
|
||||
classpath 'com.android.tools.build:gradle:7.1.2'
|
||||
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
|
||||
}
|
||||
}
|
||||
|
@ -14,7 +14,7 @@ buildscript {
|
|||
allprojects {
|
||||
repositories {
|
||||
google()
|
||||
jcenter()
|
||||
mavenCentral()
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME
|
|||
distributionPath=wrapper/dists
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
zipStorePath=wrapper/dists
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.2-all.zip
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-all.zip
|
||||
|
|
56
build.yaml
56
build.yaml
|
@ -1,56 +0,0 @@
|
|||
targets:
|
||||
$default:
|
||||
builders:
|
||||
gql_build|ast_builder:
|
||||
enabled: true
|
||||
gql_build|schema_builder:
|
||||
enabled: true
|
||||
options:
|
||||
schema: git_touch|lib/graphql/schema.graphql
|
||||
type_overrides:
|
||||
DateTime:
|
||||
name: DateTime
|
||||
URI:
|
||||
name: String
|
||||
GitObjectID:
|
||||
name: String
|
||||
gql_build|data_builder:
|
||||
enabled: true
|
||||
options:
|
||||
schema: git_touch|lib/graphql/schema.graphql
|
||||
type_overrides:
|
||||
DateTime:
|
||||
name: DateTime
|
||||
URI:
|
||||
name: String
|
||||
GitObjectID:
|
||||
name: String
|
||||
gql_build|var_builder:
|
||||
enabled: true
|
||||
options:
|
||||
schema: git_touch|lib/graphql/schema.graphql
|
||||
type_overrides:
|
||||
DateTime:
|
||||
name: DateTime
|
||||
URI:
|
||||
name: String
|
||||
GitObjectID:
|
||||
name: String
|
||||
gql_build|serializer_builder:
|
||||
enabled: true
|
||||
options:
|
||||
schema: git_touch|lib/graphql/schema.graphql
|
||||
custom_serializers:
|
||||
- import: package:git_touch/utils/date_time_serializer.dart
|
||||
name: DateTimeSerializer
|
||||
ferry_generator|req_builder:
|
||||
enabled: true
|
||||
options:
|
||||
schema: git_touch|lib/graphql/schema.graphql
|
||||
type_overrides:
|
||||
DateTime:
|
||||
name: DateTime
|
||||
URI:
|
||||
name: String
|
||||
GitObjectID:
|
||||
name: String
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -1,3 +1,4 @@
|
|||
**/dgph
|
||||
*.mode1v3
|
||||
*.mode2v3
|
||||
*.moved-aside
|
||||
|
@ -18,6 +19,7 @@ Flutter/App.framework
|
|||
Flutter/Flutter.framework
|
||||
Flutter/Flutter.podspec
|
||||
Flutter/Generated.xcconfig
|
||||
Flutter/ephemeral/
|
||||
Flutter/app.flx
|
||||
Flutter/app.zip
|
||||
Flutter/flutter_assets/
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>CFBundleDevelopmentRegion</key>
|
||||
<string>$(DEVELOPMENT_LANGUAGE)</string>
|
||||
<string>en</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>App</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
|
@ -21,6 +21,6 @@
|
|||
<key>CFBundleVersion</key>
|
||||
<string>1.0</string>
|
||||
<key>MinimumOSVersion</key>
|
||||
<string>9.0</string>
|
||||
<string>11.0</string>
|
||||
</dict>
|
||||
</plist>
|
||||
|
|
|
@ -1,2 +1,2 @@
|
|||
#include "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"
|
||||
#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"
|
||||
#include "Generated.xcconfig"
|
||||
|
|
|
@ -1,2 +1,2 @@
|
|||
#include "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"
|
||||
#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"
|
||||
#include "Generated.xcconfig"
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# Uncomment this line to define a global platform for your project
|
||||
# platform :ios, '9.0'
|
||||
# platform :ios, '11.0'
|
||||
|
||||
# CocoaPods analytics sends network stats synchronously affecting flutter build latency.
|
||||
ENV['COCOAPODS_DISABLE_STATS'] = 'true'
|
||||
|
|
|
@ -2,57 +2,85 @@ PODS:
|
|||
- Flutter (1.0.0)
|
||||
- launch_review (0.0.1):
|
||||
- Flutter
|
||||
- package_info (0.0.1):
|
||||
- maps_launcher (0.0.1):
|
||||
- Flutter
|
||||
- share (0.0.1):
|
||||
- package_info_plus (0.4.5):
|
||||
- Flutter
|
||||
- shared_preferences (0.0.1):
|
||||
- path_provider_ios (0.0.1):
|
||||
- Flutter
|
||||
- Sentry (7.27.1):
|
||||
- Sentry/Core (= 7.27.1)
|
||||
- Sentry/Core (7.27.1)
|
||||
- sentry_flutter (0.0.1):
|
||||
- Flutter
|
||||
- FlutterMacOS
|
||||
- Sentry (~> 7.27.1)
|
||||
- share_plus (0.0.1):
|
||||
- Flutter
|
||||
- shared_preferences_ios (0.0.1):
|
||||
- Flutter
|
||||
- uni_links (0.0.1):
|
||||
- Flutter
|
||||
- url_launcher (0.0.1):
|
||||
- url_launcher_ios (0.0.1):
|
||||
- Flutter
|
||||
- webview_flutter (0.0.1):
|
||||
- webview_flutter_wkwebview (0.0.1):
|
||||
- Flutter
|
||||
|
||||
DEPENDENCIES:
|
||||
- Flutter (from `Flutter`)
|
||||
- launch_review (from `.symlinks/plugins/launch_review/ios`)
|
||||
- package_info (from `.symlinks/plugins/package_info/ios`)
|
||||
- share (from `.symlinks/plugins/share/ios`)
|
||||
- shared_preferences (from `.symlinks/plugins/shared_preferences/ios`)
|
||||
- maps_launcher (from `.symlinks/plugins/maps_launcher/ios`)
|
||||
- package_info_plus (from `.symlinks/plugins/package_info_plus/ios`)
|
||||
- path_provider_ios (from `.symlinks/plugins/path_provider_ios/ios`)
|
||||
- sentry_flutter (from `.symlinks/plugins/sentry_flutter/ios`)
|
||||
- share_plus (from `.symlinks/plugins/share_plus/ios`)
|
||||
- shared_preferences_ios (from `.symlinks/plugins/shared_preferences_ios/ios`)
|
||||
- uni_links (from `.symlinks/plugins/uni_links/ios`)
|
||||
- url_launcher (from `.symlinks/plugins/url_launcher/ios`)
|
||||
- webview_flutter (from `.symlinks/plugins/webview_flutter/ios`)
|
||||
- url_launcher_ios (from `.symlinks/plugins/url_launcher_ios/ios`)
|
||||
- webview_flutter_wkwebview (from `.symlinks/plugins/webview_flutter_wkwebview/ios`)
|
||||
|
||||
SPEC REPOS:
|
||||
trunk:
|
||||
- Sentry
|
||||
|
||||
EXTERNAL SOURCES:
|
||||
Flutter:
|
||||
:path: Flutter
|
||||
launch_review:
|
||||
:path: ".symlinks/plugins/launch_review/ios"
|
||||
package_info:
|
||||
:path: ".symlinks/plugins/package_info/ios"
|
||||
share:
|
||||
:path: ".symlinks/plugins/share/ios"
|
||||
shared_preferences:
|
||||
:path: ".symlinks/plugins/shared_preferences/ios"
|
||||
maps_launcher:
|
||||
:path: ".symlinks/plugins/maps_launcher/ios"
|
||||
package_info_plus:
|
||||
:path: ".symlinks/plugins/package_info_plus/ios"
|
||||
path_provider_ios:
|
||||
:path: ".symlinks/plugins/path_provider_ios/ios"
|
||||
sentry_flutter:
|
||||
:path: ".symlinks/plugins/sentry_flutter/ios"
|
||||
share_plus:
|
||||
:path: ".symlinks/plugins/share_plus/ios"
|
||||
shared_preferences_ios:
|
||||
:path: ".symlinks/plugins/shared_preferences_ios/ios"
|
||||
uni_links:
|
||||
:path: ".symlinks/plugins/uni_links/ios"
|
||||
url_launcher:
|
||||
:path: ".symlinks/plugins/url_launcher/ios"
|
||||
webview_flutter:
|
||||
:path: ".symlinks/plugins/webview_flutter/ios"
|
||||
url_launcher_ios:
|
||||
:path: ".symlinks/plugins/url_launcher_ios/ios"
|
||||
webview_flutter_wkwebview:
|
||||
:path: ".symlinks/plugins/webview_flutter_wkwebview/ios"
|
||||
|
||||
SPEC CHECKSUMS:
|
||||
Flutter: 0e3d915762c693b495b44d77113d4970485de6ec
|
||||
Flutter: f04841e97a9d0b0a8025694d0796dd46242b2854
|
||||
launch_review: 75d5a956ba8eaa493e9c9d4bf4c05e505e8d5ed0
|
||||
package_info: 873975fc26034f0b863a300ad47e7f1ac6c7ec62
|
||||
share: 0b2c3e82132f5888bccca3351c504d0003b3b410
|
||||
shared_preferences: af6bfa751691cdc24be3045c43ec037377ada40d
|
||||
maps_launcher: 2e5b6a2d664ec6c27f82ffa81b74228d770ab203
|
||||
package_info_plus: 6c92f08e1f853dc01228d6f553146438dafcd14e
|
||||
path_provider_ios: 14f3d2fd28c4fdb42f44e0f751d12861c43cee02
|
||||
Sentry: bc644307e2eb6a4c9c55cf117a80b895bb2a25a7
|
||||
sentry_flutter: 649559f0512e00d3f6fc92cf51f74bc2fe68d1d3
|
||||
share_plus: 056a1e8ac890df3e33cb503afffaf1e9b4fbae68
|
||||
shared_preferences_ios: 548a61f8053b9b8a49ac19c1ffbc8b92c50d68ad
|
||||
uni_links: d97da20c7701486ba192624d99bffaaffcfc298a
|
||||
url_launcher: 6fef411d543ceb26efce54b05a0a40bfd74cbbef
|
||||
webview_flutter: d2b4d6c66968ad042ad94cbb791f5b72b4678a96
|
||||
url_launcher_ios: 839c58cdb4279282219f5e248c3321761ff3c4de
|
||||
webview_flutter_wkwebview: b7e70ef1ddded7e69c796c7390ee74180182971f
|
||||
|
||||
PODFILE CHECKSUM: aafe91acc616949ddb318b77800a7f51bffa2a4c
|
||||
PODFILE CHECKSUM: ef19549a9bc3046e7bb7d2fab4d021637c0c58a3
|
||||
|
||||
COCOAPODS: 1.10.1
|
||||
COCOAPODS: 1.11.3
|
||||
|
|
|
@ -3,17 +3,17 @@
|
|||
archiveVersion = 1;
|
||||
classes = {
|
||||
};
|
||||
objectVersion = 46;
|
||||
objectVersion = 50;
|
||||
objects = {
|
||||
|
||||
/* Begin PBXBuildFile section */
|
||||
1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; };
|
||||
37EE18F57BCDEA525EB92F36 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B20C9E04554129631AB8EE78 /* Pods_Runner.framework */; };
|
||||
3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; };
|
||||
74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; };
|
||||
97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; };
|
||||
97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; };
|
||||
97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; };
|
||||
FA131E1B3A78EEDD359ED551 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 75205C87EE834F576A3F9103 /* Pods_Runner.framework */; };
|
||||
/* End PBXBuildFile section */
|
||||
|
||||
/* Begin PBXCopyFilesBuildPhase section */
|
||||
|
@ -30,14 +30,15 @@
|
|||
/* End PBXCopyFilesBuildPhase section */
|
||||
|
||||
/* Begin PBXFileReference section */
|
||||
03BC239D24FE0B4D9A1D2D83 /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = "<group>"; };
|
||||
1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = "<group>"; };
|
||||
1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = "<group>"; };
|
||||
346CC1AE8457DF6B48B85A03 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = "<group>"; };
|
||||
2F67270DBA3C43464E2F44EE /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = "<group>"; };
|
||||
3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = "<group>"; };
|
||||
74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = "<group>"; };
|
||||
74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
|
||||
75205C87EE834F576A3F9103 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = "<group>"; };
|
||||
9220593D71312B73EFB9B261 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.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 /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
|
@ -45,8 +46,7 @@
|
|||
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>"; };
|
||||
97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
|
||||
AE6CD52BC7D64064E7B512FF /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = "<group>"; };
|
||||
B20C9E04554129631AB8EE78 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
B984CAF4E26B4FACF6C11EC5 /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = "<group>"; };
|
||||
/* End PBXFileReference section */
|
||||
|
||||
/* Begin PBXFrameworksBuildPhase section */
|
||||
|
@ -54,24 +54,13 @@
|
|||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
37EE18F57BCDEA525EB92F36 /* Pods_Runner.framework in Frameworks */,
|
||||
FA131E1B3A78EEDD359ED551 /* Pods_Runner.framework in Frameworks */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXFrameworksBuildPhase section */
|
||||
|
||||
/* Begin PBXGroup section */
|
||||
2E2AB605F70DF2344A2B9E92 /* Pods */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
AE6CD52BC7D64064E7B512FF /* Pods-Runner.debug.xcconfig */,
|
||||
346CC1AE8457DF6B48B85A03 /* Pods-Runner.release.xcconfig */,
|
||||
03BC239D24FE0B4D9A1D2D83 /* Pods-Runner.profile.xcconfig */,
|
||||
);
|
||||
name = Pods;
|
||||
path = Pods;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
9740EEB11CF90186004384FC /* Flutter */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
|
@ -89,8 +78,8 @@
|
|||
9740EEB11CF90186004384FC /* Flutter */,
|
||||
97C146F01CF9000F007C117D /* Runner */,
|
||||
97C146EF1CF9000F007C117D /* Products */,
|
||||
2E2AB605F70DF2344A2B9E92 /* Pods */,
|
||||
A3B00A29EAF11D6D1B02DEAB /* Frameworks */,
|
||||
A28BA2DF970A8F973E2CD5D0 /* Pods */,
|
||||
B48C5EFD064AE0D1E1B42C23 /* Frameworks */,
|
||||
);
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
|
@ -117,10 +106,21 @@
|
|||
path = Runner;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
A3B00A29EAF11D6D1B02DEAB /* Frameworks */ = {
|
||||
A28BA2DF970A8F973E2CD5D0 /* Pods */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
B20C9E04554129631AB8EE78 /* Pods_Runner.framework */,
|
||||
2F67270DBA3C43464E2F44EE /* Pods-Runner.debug.xcconfig */,
|
||||
9220593D71312B73EFB9B261 /* Pods-Runner.release.xcconfig */,
|
||||
B984CAF4E26B4FACF6C11EC5 /* Pods-Runner.profile.xcconfig */,
|
||||
);
|
||||
name = Pods;
|
||||
path = Pods;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
B48C5EFD064AE0D1E1B42C23 /* Frameworks */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
75205C87EE834F576A3F9103 /* Pods_Runner.framework */,
|
||||
);
|
||||
name = Frameworks;
|
||||
sourceTree = "<group>";
|
||||
|
@ -132,14 +132,14 @@
|
|||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */;
|
||||
buildPhases = (
|
||||
CB11531C1F26F7678F621EA7 /* [CP] Check Pods Manifest.lock */,
|
||||
2B6DD7B668196BD9756C3725 /* [CP] Check Pods Manifest.lock */,
|
||||
9740EEB61CF901F6004384FC /* Run Script */,
|
||||
97C146EA1CF9000F007C117D /* Sources */,
|
||||
97C146EB1CF9000F007C117D /* Frameworks */,
|
||||
97C146EC1CF9000F007C117D /* Resources */,
|
||||
9705A1C41CF9048500538489 /* Embed Frameworks */,
|
||||
3B06AD1E1E4923F5004D2608 /* Thin Binary */,
|
||||
58A5FDDED951DFF2FCF219F9 /* [CP] Embed Pods Frameworks */,
|
||||
C34908B9EA82FDA61F8BDAA0 /* [CP] Embed Pods Frameworks */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
|
@ -156,7 +156,7 @@
|
|||
97C146E61CF9000F007C117D /* Project object */ = {
|
||||
isa = PBXProject;
|
||||
attributes = {
|
||||
LastUpgradeCheck = 1020;
|
||||
LastUpgradeCheck = 1300;
|
||||
ORGANIZATIONNAME = "";
|
||||
TargetAttributes = {
|
||||
97C146ED1CF9000F007C117D = {
|
||||
|
@ -198,52 +198,7 @@
|
|||
/* End PBXResourcesBuildPhase section */
|
||||
|
||||
/* Begin PBXShellScriptBuildPhase section */
|
||||
3B06AD1E1E4923F5004D2608 /* Thin Binary */ = {
|
||||
isa = PBXShellScriptBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
inputPaths = (
|
||||
);
|
||||
name = "Thin Binary";
|
||||
outputPaths = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
shellPath = /bin/sh;
|
||||
shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin";
|
||||
};
|
||||
58A5FDDED951DFF2FCF219F9 /* [CP] Embed Pods Frameworks */ = {
|
||||
isa = PBXShellScriptBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
inputFileListPaths = (
|
||||
"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-input-files.xcfilelist",
|
||||
);
|
||||
name = "[CP] Embed Pods Frameworks";
|
||||
outputFileListPaths = (
|
||||
"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-output-files.xcfilelist",
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
shellPath = /bin/sh;
|
||||
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n";
|
||||
showEnvVarsInLog = 0;
|
||||
};
|
||||
9740EEB61CF901F6004384FC /* Run Script */ = {
|
||||
isa = PBXShellScriptBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
inputPaths = (
|
||||
);
|
||||
name = "Run Script";
|
||||
outputPaths = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
shellPath = /bin/sh;
|
||||
shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build";
|
||||
};
|
||||
CB11531C1F26F7678F621EA7 /* [CP] Check Pods Manifest.lock */ = {
|
||||
2B6DD7B668196BD9756C3725 /* [CP] Check Pods Manifest.lock */ = {
|
||||
isa = PBXShellScriptBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
|
@ -265,6 +220,51 @@
|
|||
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
|
||||
showEnvVarsInLog = 0;
|
||||
};
|
||||
3B06AD1E1E4923F5004D2608 /* Thin Binary */ = {
|
||||
isa = PBXShellScriptBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
inputPaths = (
|
||||
);
|
||||
name = "Thin Binary";
|
||||
outputPaths = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
shellPath = /bin/sh;
|
||||
shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin";
|
||||
};
|
||||
9740EEB61CF901F6004384FC /* Run Script */ = {
|
||||
isa = PBXShellScriptBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
inputPaths = (
|
||||
);
|
||||
name = "Run Script";
|
||||
outputPaths = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
shellPath = /bin/sh;
|
||||
shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build";
|
||||
};
|
||||
C34908B9EA82FDA61F8BDAA0 /* [CP] Embed Pods Frameworks */ = {
|
||||
isa = PBXShellScriptBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
inputFileListPaths = (
|
||||
"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-input-files.xcfilelist",
|
||||
);
|
||||
name = "[CP] Embed Pods Frameworks";
|
||||
outputFileListPaths = (
|
||||
"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-output-files.xcfilelist",
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
shellPath = /bin/sh;
|
||||
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n";
|
||||
showEnvVarsInLog = 0;
|
||||
};
|
||||
/* End PBXShellScriptBuildPhase section */
|
||||
|
||||
/* Begin PBXSourcesBuildPhase section */
|
||||
|
@ -340,7 +340,7 @@
|
|||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 11.0;
|
||||
MTL_ENABLE_DEBUG_INFO = NO;
|
||||
SDKROOT = iphoneos;
|
||||
SUPPORTED_PLATFORMS = iphoneos;
|
||||
|
@ -357,15 +357,10 @@
|
|||
CLANG_ENABLE_MODULES = YES;
|
||||
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
|
||||
ENABLE_BITCODE = NO;
|
||||
FRAMEWORK_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"$(PROJECT_DIR)/Flutter",
|
||||
);
|
||||
INFOPLIST_FILE = Runner/Info.plist;
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
|
||||
LIBRARY_SEARCH_PATHS = (
|
||||
LD_RUNPATH_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"$(PROJECT_DIR)/Flutter",
|
||||
"@executable_path/Frameworks",
|
||||
);
|
||||
PRODUCT_BUNDLE_IDENTIFIER = io.github.pd4d10.gitTouch;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
|
@ -422,7 +417,7 @@
|
|||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 11.0;
|
||||
MTL_ENABLE_DEBUG_INFO = YES;
|
||||
ONLY_ACTIVE_ARCH = YES;
|
||||
SDKROOT = iphoneos;
|
||||
|
@ -471,11 +466,12 @@
|
|||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 11.0;
|
||||
MTL_ENABLE_DEBUG_INFO = NO;
|
||||
SDKROOT = iphoneos;
|
||||
SUPPORTED_PLATFORMS = iphoneos;
|
||||
SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
|
||||
SWIFT_COMPILATION_MODE = wholemodule;
|
||||
SWIFT_OPTIMIZATION_LEVEL = "-O";
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
VALIDATE_PRODUCT = YES;
|
||||
};
|
||||
|
@ -489,15 +485,10 @@
|
|||
CLANG_ENABLE_MODULES = YES;
|
||||
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
|
||||
ENABLE_BITCODE = NO;
|
||||
FRAMEWORK_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"$(PROJECT_DIR)/Flutter",
|
||||
);
|
||||
INFOPLIST_FILE = Runner/Info.plist;
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
|
||||
LIBRARY_SEARCH_PATHS = (
|
||||
LD_RUNPATH_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"$(PROJECT_DIR)/Flutter",
|
||||
"@executable_path/Frameworks",
|
||||
);
|
||||
PRODUCT_BUNDLE_IDENTIFIER = io.github.pd4d10.gitTouch;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
|
@ -516,15 +507,10 @@
|
|||
CLANG_ENABLE_MODULES = YES;
|
||||
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
|
||||
ENABLE_BITCODE = NO;
|
||||
FRAMEWORK_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"$(PROJECT_DIR)/Flutter",
|
||||
);
|
||||
INFOPLIST_FILE = Runner/Info.plist;
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
|
||||
LIBRARY_SEARCH_PATHS = (
|
||||
LD_RUNPATH_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"$(PROJECT_DIR)/Flutter",
|
||||
"@executable_path/Frameworks",
|
||||
);
|
||||
PRODUCT_BUNDLE_IDENTIFIER = io.github.pd4d10.gitTouch;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
|
|
|
@ -2,6 +2,6 @@
|
|||
<Workspace
|
||||
version = "1.0">
|
||||
<FileRef
|
||||
location = "group:Runner.xcodeproj">
|
||||
location = "self:">
|
||||
</FileRef>
|
||||
</Workspace>
|
||||
|
|
|
@ -0,0 +1,8 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>IDEDidComputeMac32BitWarning</key>
|
||||
<true/>
|
||||
</dict>
|
||||
</plist>
|
|
@ -0,0 +1,8 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>PreviewsEnabled</key>
|
||||
<false/>
|
||||
</dict>
|
||||
</plist>
|
|
@ -1,6 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "1020"
|
||||
LastUpgradeVersion = "1300"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
|
@ -27,8 +27,6 @@
|
|||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES">
|
||||
<Testables>
|
||||
</Testables>
|
||||
<MacroExpansion>
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
|
@ -38,8 +36,8 @@
|
|||
ReferencedContainer = "container:Runner.xcodeproj">
|
||||
</BuildableReference>
|
||||
</MacroExpansion>
|
||||
<AdditionalOptions>
|
||||
</AdditionalOptions>
|
||||
<Testables>
|
||||
</Testables>
|
||||
</TestAction>
|
||||
<LaunchAction
|
||||
buildConfiguration = "Debug"
|
||||
|
@ -61,8 +59,6 @@
|
|||
ReferencedContainer = "container:Runner.xcodeproj">
|
||||
</BuildableReference>
|
||||
</BuildableProductRunnable>
|
||||
<AdditionalOptions>
|
||||
</AdditionalOptions>
|
||||
</LaunchAction>
|
||||
<ProfileAction
|
||||
buildConfiguration = "Profile"
|
||||
|
|
|
@ -0,0 +1,8 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>PreviewsEnabled</key>
|
||||
<false/>
|
||||
</dict>
|
||||
</plist>
|
|
@ -4,11 +4,6 @@
|
|||
<dict>
|
||||
<key>CFBundleDevelopmentRegion</key>
|
||||
<string>$(DEVELOPMENT_LANGUAGE)</string>
|
||||
<key>CFBundleLocalizations</key>
|
||||
<array>
|
||||
<string>en</string>
|
||||
<string>hi</string>
|
||||
</array>
|
||||
<key>CFBundleDisplayName</key>
|
||||
<string>GitTouch</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
|
@ -63,5 +58,7 @@
|
|||
</array>
|
||||
<key>UIViewControllerBasedStatusBarAppearance</key>
|
||||
<false/>
|
||||
<key>CADisableMinimumFrameDurationOnPhone</key>
|
||||
<true/>
|
||||
</dict>
|
||||
</plist>
|
||||
|
|
91
lib/app.dart
91
lib/app.dart
|
@ -1,50 +1,77 @@
|
|||
import 'package:flutter/material.dart';
|
||||
import 'package:antd_mobile/antd_mobile.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:git_touch/home.dart';
|
||||
import 'package:flutter_gen/gen_l10n/S.dart';
|
||||
import 'package:git_touch/models/auth.dart';
|
||||
import 'package:git_touch/models/theme.dart';
|
||||
import 'package:git_touch/router.dart';
|
||||
import 'package:intl/locale.dart' as l;
|
||||
import 'package:provider/provider.dart';
|
||||
import 'package:flutter_gen/gen_l10n/S.dart';
|
||||
|
||||
class MyApp extends StatelessWidget {
|
||||
const MyApp({super.key});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final auth = Provider.of<AuthModel>(context);
|
||||
final theme = Provider.of<ThemeModel>(context);
|
||||
|
||||
final LocaleListResolutionCallback localeListResolutionCallback =
|
||||
(locales, supportedLocales) {
|
||||
return theme.userSetLocale ?? supportedLocales.first;
|
||||
};
|
||||
|
||||
return Container(
|
||||
return AntTheme(
|
||||
key: auth.rootKey,
|
||||
child: theme.theme == AppThemeType.cupertino
|
||||
? CupertinoApp(
|
||||
theme: CupertinoThemeData(brightness: theme.brightness),
|
||||
home: Home(),
|
||||
localizationsDelegates: AppLocalizations.localizationsDelegates,
|
||||
supportedLocales: AppLocalizations.supportedLocales,
|
||||
localeListResolutionCallback: localeListResolutionCallback,
|
||||
)
|
||||
: MaterialApp(
|
||||
theme: ThemeData(
|
||||
brightness: theme.brightness,
|
||||
primaryColor:
|
||||
theme.brightness == Brightness.dark ? null : Colors.white,
|
||||
accentColor: theme.palette.primary,
|
||||
scaffoldBackgroundColor: theme.palette.background,
|
||||
pageTransitionsTheme: PageTransitionsTheme(
|
||||
builders: {
|
||||
TargetPlatform.android: ZoomPageTransitionsBuilder(),
|
||||
},
|
||||
data: AntThemeData(brightness: theme.brightness),
|
||||
child: Builder(
|
||||
builder: (context) {
|
||||
final antTheme = AntTheme.of(context);
|
||||
|
||||
return CupertinoApp.router(
|
||||
routeInformationProvider: router.routeInformationProvider,
|
||||
routeInformationParser: router.routeInformationParser,
|
||||
routerDelegate: router.routerDelegate,
|
||||
theme: CupertinoThemeData(
|
||||
brightness: theme.brightness,
|
||||
primaryColor: antTheme.colorPrimary,
|
||||
scaffoldBackgroundColor: antTheme.colorBox,
|
||||
textTheme: CupertinoTextThemeData(
|
||||
textStyle: TextStyle(
|
||||
fontSize: antTheme.fontSizeMain,
|
||||
color: antTheme.colorText,
|
||||
),
|
||||
),
|
||||
home: Home(),
|
||||
localizationsDelegates: AppLocalizations.localizationsDelegates,
|
||||
supportedLocales: AppLocalizations.supportedLocales,
|
||||
localeListResolutionCallback: localeListResolutionCallback,
|
||||
),
|
||||
localizationsDelegates: AppLocalizations.localizationsDelegates,
|
||||
supportedLocales: AppLocalizations.supportedLocales,
|
||||
localeListResolutionCallback: (locales, supportedLocales) {
|
||||
// 1. user set locale
|
||||
// 2. system locale
|
||||
try {
|
||||
if (theme.locale != null) {
|
||||
final intlLocale = l.Locale.parse(theme.locale!);
|
||||
locales = [
|
||||
Locale.fromSubtags(
|
||||
languageCode: intlLocale.languageCode,
|
||||
countryCode: intlLocale.countryCode,
|
||||
scriptCode: intlLocale.scriptCode,
|
||||
),
|
||||
...locales!
|
||||
];
|
||||
}
|
||||
} catch (err) {
|
||||
print(err);
|
||||
}
|
||||
|
||||
for (final locale in locales!) {
|
||||
// this is necessary because Flutter only handles zh_Hans -> zh
|
||||
// and would not handle non-exist language code
|
||||
if (AppLocalizations.delegate.isSupported(locale)) {
|
||||
return locale;
|
||||
}
|
||||
}
|
||||
|
||||
// 3. if none match, use the default
|
||||
return supportedLocales.firstWhere((l) => l.languageCode == 'en');
|
||||
},
|
||||
);
|
||||
},
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
207
lib/home.dart
207
lib/home.dart
|
@ -1,34 +1,40 @@
|
|||
import 'package:flutter/material.dart';
|
||||
import 'package:antd_mobile/antd_mobile.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter_gen/gen_l10n/S.dart';
|
||||
import 'package:flutter_vector_icons/flutter_vector_icons.dart';
|
||||
import 'package:git_touch/models/auth.dart';
|
||||
import 'package:git_touch/models/notification.dart';
|
||||
import 'package:git_touch/models/theme.dart';
|
||||
import 'package:git_touch/screens/bb_explore.dart';
|
||||
import 'package:git_touch/screens/bb_teams.dart';
|
||||
import 'package:git_touch/screens/bb_user.dart';
|
||||
import 'package:git_touch/screens/ge_search.dart';
|
||||
import 'package:git_touch/screens/ge_user.dart';
|
||||
import 'package:git_touch/screens/gh_news.dart';
|
||||
import 'package:git_touch/screens/gh_notification.dart';
|
||||
import 'package:git_touch/screens/gh_search.dart';
|
||||
import 'package:git_touch/screens/gh_trending.dart';
|
||||
import 'package:git_touch/screens/gh_user.dart';
|
||||
import 'package:git_touch/screens/gl_explore.dart';
|
||||
import 'package:git_touch/screens/gl_groups.dart';
|
||||
import 'package:git_touch/screens/gl_search.dart';
|
||||
import 'package:git_touch/screens/gl_user.dart';
|
||||
import 'package:git_touch/screens/go_search.dart';
|
||||
import 'package:git_touch/screens/go_user.dart';
|
||||
import 'package:git_touch/screens/gt_orgs.dart';
|
||||
import 'package:git_touch/screens/gt_user.dart';
|
||||
import 'package:git_touch/screens/gl_explore.dart';
|
||||
import 'package:git_touch/screens/gl_groups.dart';
|
||||
import 'package:git_touch/screens/gl_user.dart';
|
||||
import 'package:git_touch/screens/login.dart';
|
||||
import 'package:git_touch/screens/gh_notification.dart';
|
||||
import 'package:git_touch/screens/gh_user.dart';
|
||||
import 'package:git_touch/utils/utils.dart';
|
||||
import 'package:github/github.dart';
|
||||
import 'package:launch_review/launch_review.dart';
|
||||
import 'package:package_info_plus/package_info_plus.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'package:git_touch/screens/gh_news.dart';
|
||||
import 'package:git_touch/screens/gh_search.dart';
|
||||
import 'package:git_touch/screens/gh_trending.dart';
|
||||
import 'package:git_touch/screens/ge_search.dart';
|
||||
import 'package:flutter_gen/gen_l10n/S.dart';
|
||||
import 'package:pub_semver/pub_semver.dart';
|
||||
import 'package:universal_io/io.dart';
|
||||
|
||||
class Home extends StatefulWidget {
|
||||
@override
|
||||
_HomeState createState() => _HomeState();
|
||||
State<Home> createState() => _HomeState();
|
||||
}
|
||||
|
||||
class _HomeState extends State<Home> {
|
||||
|
@ -39,6 +45,32 @@ class _HomeState extends State<Home> {
|
|||
final GlobalKey<NavigatorState> tab4 = GlobalKey<NavigatorState>();
|
||||
final GlobalKey<NavigatorState> tab5 = GlobalKey<NavigatorState>();
|
||||
|
||||
@override
|
||||
initState() {
|
||||
super.initState();
|
||||
Future.delayed(const Duration(seconds: 5), () async {
|
||||
final latest = await GitHub()
|
||||
.repositories
|
||||
.getLatestRelease(RepositorySlug.full('git-touch/git-touch'));
|
||||
final current =
|
||||
await PackageInfo.fromPlatform().then((value) => value.version);
|
||||
if (Version.parse(latest.tagName!.substring(1))
|
||||
.compareTo(Version.parse(current)) ==
|
||||
1) {
|
||||
final res = await context.read<ThemeModel>().showConfirm(context,
|
||||
const Text('New version released. Would you like to download it?'));
|
||||
if (res == true) {
|
||||
if (Platform.isIOS) {
|
||||
// go to app store
|
||||
LaunchReview.launch(writeReview: false);
|
||||
} else {
|
||||
context.pushUrl(latest.htmlUrl!);
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
_buildScreen(int index) {
|
||||
// print(Localizations.localeOf(context).toString());
|
||||
// return GlProjectScreen(32221);
|
||||
|
@ -48,7 +80,7 @@ class _HomeState extends State<Home> {
|
|||
// return Image.asset('images/spinner.webp', width: 32, height: 32);
|
||||
// return GhRepoScreen('shreyas1599', 'test');
|
||||
final auth = Provider.of<AuthModel>(context);
|
||||
switch (auth.activeAccount.platform) {
|
||||
switch (auth.activeAccount!.platform) {
|
||||
case PlatformType.github:
|
||||
switch (index) {
|
||||
case 0:
|
||||
|
@ -60,7 +92,7 @@ class _HomeState extends State<Home> {
|
|||
case 3:
|
||||
return GhSearchScreen();
|
||||
case 4:
|
||||
return GhViewer();
|
||||
return const GhViewerScreen();
|
||||
}
|
||||
break;
|
||||
case PlatformType.gitlab:
|
||||
|
@ -72,7 +104,7 @@ class _HomeState extends State<Home> {
|
|||
case 2:
|
||||
return GlSearchScreen();
|
||||
case 3:
|
||||
return GlUserScreen(null);
|
||||
return const GlUserScreen(null);
|
||||
}
|
||||
break;
|
||||
case PlatformType.bitbucket:
|
||||
|
@ -82,15 +114,15 @@ class _HomeState extends State<Home> {
|
|||
case 1:
|
||||
return BbTeamsScreen();
|
||||
case 2:
|
||||
return BbUserScreen(null);
|
||||
return const BbUserScreen(null);
|
||||
}
|
||||
break;
|
||||
case PlatformType.gitea:
|
||||
switch (index) {
|
||||
case 0:
|
||||
return GtOrgsScreen();
|
||||
return const GtOrgsScreen();
|
||||
case 1:
|
||||
return GtUserScreen(auth.activeAccount.login, isViewer: true);
|
||||
return GtUserScreen(auth.activeAccount!.login, isViewer: true);
|
||||
}
|
||||
break;
|
||||
case PlatformType.gitee:
|
||||
|
@ -98,7 +130,7 @@ class _HomeState extends State<Home> {
|
|||
case 0:
|
||||
return GeSearchScreen();
|
||||
case 1:
|
||||
return GeUserScreen(auth.activeAccount.login, isViewer: true);
|
||||
return GeUserScreen(auth.activeAccount!.login, isViewer: true);
|
||||
}
|
||||
break;
|
||||
case PlatformType.gogs:
|
||||
|
@ -106,14 +138,13 @@ class _HomeState extends State<Home> {
|
|||
case 0:
|
||||
return GoSearchScreen();
|
||||
case 1:
|
||||
return GoUserScreen(auth.activeAccount.login, isViewer: true);
|
||||
return GoUserScreen(auth.activeAccount!.login, isViewer: true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Widget _buildNotificationIcon(BuildContext context, IconData iconData) {
|
||||
final theme = Provider.of<ThemeModel>(context);
|
||||
int count = Provider.of<NotificationModel>(context).count;
|
||||
final count = Provider.of<NotificationModel>(context).count;
|
||||
if (count == 0) {
|
||||
return Icon(iconData);
|
||||
}
|
||||
|
@ -123,10 +154,11 @@ class _HomeState extends State<Home> {
|
|||
children: <Widget>[
|
||||
Icon(iconData),
|
||||
Positioned(
|
||||
right: -2,
|
||||
top: -2,
|
||||
child: Icon(Octicons.primitive_dot,
|
||||
color: theme.palette.primary, size: 14))
|
||||
right: -2,
|
||||
top: -2,
|
||||
child: Icon(Octicons.dot_fill,
|
||||
color: AntTheme.of(context).colorPrimary, size: 14),
|
||||
)
|
||||
],
|
||||
);
|
||||
}
|
||||
|
@ -149,62 +181,57 @@ class _HomeState extends State<Home> {
|
|||
|
||||
List<BottomNavigationBarItem> _buildNavigationItems(String platform) {
|
||||
final search = BottomNavigationBarItem(
|
||||
icon: Icon(Ionicons.search_outline),
|
||||
activeIcon: Icon(Ionicons.search),
|
||||
label: AppLocalizations.of(context).search,
|
||||
icon: const Icon(Ionicons.search_outline),
|
||||
activeIcon: const Icon(Ionicons.search),
|
||||
label: AppLocalizations.of(context)!.search,
|
||||
);
|
||||
final group = BottomNavigationBarItem(
|
||||
icon: Icon(Ionicons.people_outline),
|
||||
activeIcon: Icon(Ionicons.people),
|
||||
label: AppLocalizations.of(context).organizations,
|
||||
icon: const Icon(Ionicons.people_outline),
|
||||
activeIcon: const Icon(Ionicons.people),
|
||||
label: AppLocalizations.of(context)!.organizations,
|
||||
);
|
||||
final me = BottomNavigationBarItem(
|
||||
icon: Icon(Ionicons.person_outline),
|
||||
activeIcon: Icon(Ionicons.person),
|
||||
label: AppLocalizations.of(context).me,
|
||||
icon: const Icon(Ionicons.person_outline),
|
||||
activeIcon: const Icon(Ionicons.person),
|
||||
label: AppLocalizations.of(context)!.me,
|
||||
);
|
||||
final explore = BottomNavigationBarItem(
|
||||
icon: Icon(Ionicons.compass_outline),
|
||||
activeIcon: Icon(Ionicons.compass),
|
||||
label: AppLocalizations.of(context).explore,
|
||||
icon: const Icon(Ionicons.compass_outline),
|
||||
activeIcon: const Icon(Ionicons.compass),
|
||||
label: AppLocalizations.of(context)!.explore,
|
||||
);
|
||||
|
||||
switch (platform) {
|
||||
case PlatformType.github:
|
||||
return [
|
||||
BottomNavigationBarItem(
|
||||
icon: Icon(Ionicons.newspaper_outline),
|
||||
activeIcon: Icon(Ionicons.newspaper),
|
||||
label: AppLocalizations.of(context).news,
|
||||
icon: const Icon(Ionicons.newspaper_outline),
|
||||
activeIcon: const Icon(Ionicons.newspaper),
|
||||
label: AppLocalizations.of(context)!.news,
|
||||
),
|
||||
BottomNavigationBarItem(
|
||||
icon:
|
||||
_buildNotificationIcon(context, Ionicons.notifications_outline),
|
||||
activeIcon: _buildNotificationIcon(context, Ionicons.notifications),
|
||||
label: AppLocalizations.of(context).notification,
|
||||
label: AppLocalizations.of(context)!.notification,
|
||||
),
|
||||
BottomNavigationBarItem(
|
||||
icon: Icon(Ionicons.flame_outline),
|
||||
activeIcon: Icon(Ionicons.flame),
|
||||
label: AppLocalizations.of(context).trending,
|
||||
icon: const Icon(Ionicons.flame_outline),
|
||||
activeIcon: const Icon(Ionicons.flame),
|
||||
label: AppLocalizations.of(context)!.trending,
|
||||
),
|
||||
search,
|
||||
me,
|
||||
];
|
||||
break;
|
||||
case PlatformType.gitlab:
|
||||
return [explore, group, search, me];
|
||||
break;
|
||||
case PlatformType.bitbucket:
|
||||
return [explore, group, me];
|
||||
break;
|
||||
case PlatformType.gitea:
|
||||
return [group, me];
|
||||
break;
|
||||
case PlatformType.gitee:
|
||||
case PlatformType.gogs:
|
||||
return [search, me];
|
||||
break;
|
||||
default:
|
||||
return [];
|
||||
}
|
||||
|
@ -212,65 +239,43 @@ class _HomeState extends State<Home> {
|
|||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final theme = Provider.of<ThemeModel>(context);
|
||||
final auth = Provider.of<AuthModel>(context);
|
||||
|
||||
if (auth.activeAccount == null) {
|
||||
return LoginScreen();
|
||||
}
|
||||
|
||||
final navigationItems = _buildNavigationItems(auth.activeAccount.platform);
|
||||
final navigationItems = _buildNavigationItems(auth.activeAccount!.platform);
|
||||
|
||||
switch (theme.theme) {
|
||||
case AppThemeType.cupertino:
|
||||
return WillPopScope(
|
||||
onWillPop: () async {
|
||||
return !await getNavigatorKey(auth.activeTab)
|
||||
.currentState
|
||||
?.maybePop();
|
||||
},
|
||||
child: CupertinoTabScaffold(
|
||||
tabBuilder: (context, index) {
|
||||
return CupertinoTabView(
|
||||
navigatorKey: getNavigatorKey(index),
|
||||
builder: (context) {
|
||||
return _buildScreen(index);
|
||||
},
|
||||
);
|
||||
return WillPopScope(
|
||||
onWillPop: () async {
|
||||
return !(await getNavigatorKey(auth.activeTab)
|
||||
.currentState
|
||||
?.maybePop())!;
|
||||
},
|
||||
child: CupertinoTabScaffold(
|
||||
tabBuilder: (context, index) {
|
||||
return CupertinoTabView(
|
||||
navigatorKey: getNavigatorKey(index),
|
||||
builder: (context) {
|
||||
return _buildScreen(index);
|
||||
},
|
||||
tabBar: CupertinoTabBar(
|
||||
items: navigationItems,
|
||||
currentIndex: auth.activeTab,
|
||||
onTap: (index) {
|
||||
if (auth.activeTab == index) {
|
||||
getNavigatorKey(index)
|
||||
.currentState
|
||||
?.popUntil((route) => route.isFirst);
|
||||
} else {
|
||||
auth.setActiveTab(index);
|
||||
}
|
||||
},
|
||||
),
|
||||
),
|
||||
);
|
||||
default:
|
||||
return Scaffold(
|
||||
body: IndexedStack(
|
||||
index: auth.activeTab,
|
||||
children: [
|
||||
for (var i = 0; i < navigationItems.length; i++) _buildScreen(i)
|
||||
],
|
||||
),
|
||||
bottomNavigationBar: BottomNavigationBar(
|
||||
selectedItemColor: theme.palette.primary,
|
||||
items: navigationItems,
|
||||
currentIndex: auth.activeTab,
|
||||
type: BottomNavigationBarType.fixed,
|
||||
onTap: (int index) {
|
||||
);
|
||||
},
|
||||
tabBar: CupertinoTabBar(
|
||||
items: navigationItems,
|
||||
currentIndex: auth.activeTab,
|
||||
onTap: (index) {
|
||||
if (auth.activeTab == index) {
|
||||
getNavigatorKey(index)
|
||||
.currentState
|
||||
?.popUntil((route) => route.isFirst);
|
||||
} else {
|
||||
auth.setActiveTab(index);
|
||||
},
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
},
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,334 @@
|
|||
{
|
||||
"somethingBadHappens": "Ha ocorregut un problema:",
|
||||
"@somethingBadHappens": {
|
||||
"description": "error message"
|
||||
},
|
||||
"following": "Seguint",
|
||||
"@following": {
|
||||
"description": "people followed by a person"
|
||||
},
|
||||
"fontStyle": "ESTIL DE LLETRA",
|
||||
"@fontStyle": {
|
||||
"description": "font style"
|
||||
},
|
||||
"fontSize": "Mida de la lletra",
|
||||
"@fontSize": {
|
||||
"description": "font size"
|
||||
},
|
||||
"fontFamily": "Lletra tipogràfica",
|
||||
"@fontFamily": {
|
||||
"description": "Font Family"
|
||||
},
|
||||
"notFoundMessage": "No s’ha trobat",
|
||||
"@notFoundMessage": {
|
||||
"description": "Not found page header"
|
||||
},
|
||||
"permissionRequiredMessage": "El GitTouch necessita aquests permisos",
|
||||
"@permissionRequiredMessage": {
|
||||
"description": "Permission Required Message"
|
||||
},
|
||||
"githubAccount": "Compte del GitHub",
|
||||
"@githubAccount": {
|
||||
"description": "Gitea Account"
|
||||
},
|
||||
"removeAccount": "Suprimeix el compte",
|
||||
"@removeAccount": {
|
||||
"description": "remove account"
|
||||
},
|
||||
"selectAccount": "Selecció del compte",
|
||||
"@selectAccount": {
|
||||
"description": "select account message"
|
||||
},
|
||||
"activity": "Activitat",
|
||||
"@activity": {
|
||||
"description": "activity"
|
||||
},
|
||||
"forks": "Bifurcacions",
|
||||
"@forks": {
|
||||
"description": "forks"
|
||||
},
|
||||
"codeTheme": "Tema per al codi",
|
||||
"@codeTheme": {
|
||||
"description": "code theme"
|
||||
},
|
||||
"material": "Material",
|
||||
"@material": {
|
||||
"description": "Material scaffold theme"
|
||||
},
|
||||
"cupertino": "Cupertino",
|
||||
"@cupertino": {
|
||||
"description": "Cupertino scaffold theme"
|
||||
},
|
||||
"notFoundTextDisplay": "Encara no s’ha implementat aquesta pàgina.",
|
||||
"@notFoundTextDisplay": {
|
||||
"description": "Not found error message"
|
||||
},
|
||||
"dark": "Fosc",
|
||||
"@dark": {
|
||||
"description": "dark mode"
|
||||
},
|
||||
"light": "Clar",
|
||||
"@light": {
|
||||
"description": "light mode"
|
||||
},
|
||||
"about": "quant a",
|
||||
"@about": {
|
||||
"description": "about section"
|
||||
},
|
||||
"email": "Adreça electrònica",
|
||||
"@email": {
|
||||
"description": "Email to report issues"
|
||||
},
|
||||
"rateThisApp": "Valoreu aquesta aplicació",
|
||||
"@rateThisApp": {
|
||||
"description": "rate the app"
|
||||
},
|
||||
"submitAnIssue": "Envia un informe",
|
||||
"@submitAnIssue": {
|
||||
"description": "submit issue for app"
|
||||
},
|
||||
"feedback": "comentaris",
|
||||
"@feedback": {
|
||||
"description": "provide feedback"
|
||||
},
|
||||
"issues": "Informes",
|
||||
"@issues": {
|
||||
"description": "issues"
|
||||
},
|
||||
"projects": "Projectes",
|
||||
"@projects": {
|
||||
"description": "projects"
|
||||
},
|
||||
"repositoryActions": "Accions del dipòsit",
|
||||
"@repositoryActions": {
|
||||
"description": "Repository Actions"
|
||||
},
|
||||
"repository": "Dipòsit",
|
||||
"@repository": {
|
||||
"description": "Repository screen title"
|
||||
},
|
||||
"sourceCode": "Codi font",
|
||||
"@sourceCode": {
|
||||
"description": "source code for app"
|
||||
},
|
||||
"version": "Versió",
|
||||
"@version": {
|
||||
"description": "app version"
|
||||
},
|
||||
"all": "Tot",
|
||||
"@all": {
|
||||
"description": "all"
|
||||
},
|
||||
"unread": "Sense llegir",
|
||||
"@unread": {
|
||||
"description": "unread"
|
||||
},
|
||||
"contributors": "Contribuïdors",
|
||||
"@contributors": {
|
||||
"description": "contributors"
|
||||
},
|
||||
"branches": "Branques",
|
||||
"@branches": {
|
||||
"description": "branches"
|
||||
},
|
||||
"developers": "Desenvolupadors",
|
||||
"@developers": {
|
||||
"description": "developers"
|
||||
},
|
||||
"files": "Fitxers",
|
||||
"@files": {
|
||||
"description": "file plural"
|
||||
},
|
||||
"file": "Fitxer",
|
||||
"@file": {
|
||||
"description": "file"
|
||||
},
|
||||
"teams": "Equips",
|
||||
"@teams": {
|
||||
"description": "teams"
|
||||
},
|
||||
"groups": "Grups",
|
||||
"@groups": {
|
||||
"description": "groups"
|
||||
},
|
||||
"actions": "Accions",
|
||||
"@actions": {
|
||||
"description": "actions"
|
||||
},
|
||||
"project": "Projecte",
|
||||
"@project": {
|
||||
"description": "project"
|
||||
},
|
||||
"bitbucketAccount": "Compte del Bitbucket",
|
||||
"@bitbucketAccount": {
|
||||
"description": "Bitbucket Account"
|
||||
},
|
||||
"gitlabAccount": "Compte del GitLab",
|
||||
"@gitlabAccount": {
|
||||
"description": "Gitlab Account"
|
||||
},
|
||||
"giteeAccount": "Compte del Gitee",
|
||||
"@giteeAccount": {
|
||||
"description": "Gitee Account"
|
||||
},
|
||||
"giteaAccount": "Compte del Gitea",
|
||||
"@giteaAccount": {
|
||||
"description": "Gitea Account"
|
||||
},
|
||||
"issue": "Informe",
|
||||
"@issue": {
|
||||
"description": "issue"
|
||||
},
|
||||
"group": "Grup",
|
||||
"@group": {
|
||||
"description": "group"
|
||||
},
|
||||
"user": "Usuari",
|
||||
"@user": {
|
||||
"description": "user"
|
||||
},
|
||||
"projectActions": "Accions del projecte",
|
||||
"@projectActions": {
|
||||
"description": "Project Actions"
|
||||
},
|
||||
"code": "Codi",
|
||||
"@code": {
|
||||
"description": "Code"
|
||||
},
|
||||
"brightness": "Brillantor",
|
||||
"@brightness": {
|
||||
"description": "brightness"
|
||||
},
|
||||
"switchAccounts": "Canvia de compte",
|
||||
"@switchAccounts": {
|
||||
"description": "Switch accounts"
|
||||
},
|
||||
"giteaStatus": "Estat del Gitea",
|
||||
"@giteaStatus": {
|
||||
"description": "Gitea status"
|
||||
},
|
||||
"gitlabStatus": "Estat del GitLab",
|
||||
"@gitlabStatus": {
|
||||
"description": "GitLab status"
|
||||
},
|
||||
"githubStatus": "Estat del GitHub",
|
||||
"@githubStatus": {
|
||||
"description": "github status"
|
||||
},
|
||||
"system": "sistema",
|
||||
"@system": {
|
||||
"description": "system"
|
||||
},
|
||||
"settings": "Paràmetres",
|
||||
"@settings": {
|
||||
"description": "settings"
|
||||
},
|
||||
"pinnedRepositories": "dipòsits ancorats",
|
||||
"@pinnedRepositories": {
|
||||
"description": "pinned repositories"
|
||||
},
|
||||
"popularRepositories": "dipòsits populars",
|
||||
"@popularRepositories": {
|
||||
"description": "popular repositories"
|
||||
},
|
||||
"members": "Membres",
|
||||
"@members": {
|
||||
"description": "members of an organization"
|
||||
},
|
||||
"organizations": "Organitzacions",
|
||||
"@organizations": {
|
||||
"description": "organizations for a user"
|
||||
},
|
||||
"events": "Esdeveniments",
|
||||
"@events": {
|
||||
"description": "events for a user"
|
||||
},
|
||||
"followers": "Seguidors",
|
||||
"@followers": {
|
||||
"description": "followers for a person"
|
||||
},
|
||||
"stars": "Estrelles",
|
||||
"@stars": {
|
||||
"description": "stars on a repo"
|
||||
},
|
||||
"follow": "Segueix",
|
||||
"@follow": {
|
||||
"description": "follow someone"
|
||||
},
|
||||
"unfollow": "Deixa de seguir",
|
||||
"@unfollow": {
|
||||
"description": "unfollow someone"
|
||||
},
|
||||
"repositories": "Dipòsits",
|
||||
"@repositories": {
|
||||
"description": "repository text"
|
||||
},
|
||||
"participating": "Participacions",
|
||||
"@participating": {
|
||||
"description": "The participating Tab"
|
||||
},
|
||||
"me": "Jo",
|
||||
"@me": {
|
||||
"description": "The Me tab"
|
||||
},
|
||||
"search": "Cerca",
|
||||
"@search": {
|
||||
"description": "The Search tab"
|
||||
},
|
||||
"trending": "En tendència",
|
||||
"@trending": {
|
||||
"description": "Trending"
|
||||
},
|
||||
"notification": "Notificació",
|
||||
"@notification": {
|
||||
"description": "The Notification tab"
|
||||
},
|
||||
"news": "Notícies",
|
||||
"@news": {
|
||||
"description": "The News tab"
|
||||
},
|
||||
"markdownRenderEngine": "Motor de processament del Markdown",
|
||||
"@markdownRenderEngine": {
|
||||
"description": "flutter or webview rendering for markdown"
|
||||
},
|
||||
"webview": "WebView",
|
||||
"@webview": {
|
||||
"description": "render webview for markdown"
|
||||
},
|
||||
"flutter": "Flutter",
|
||||
"@flutter": {
|
||||
"description": "render flutter for markdown"
|
||||
},
|
||||
"scaffoldTheme": "Tema de l’entorn",
|
||||
"@scaffoldTheme": {
|
||||
"description": "Kind of theme - cupertino or material"
|
||||
},
|
||||
"followSystem": "Segueix el sistema",
|
||||
"@followSystem": {
|
||||
"description": "follow systems setting"
|
||||
},
|
||||
"syntaxHighlighting": "REALÇAMENT DE LA SINTAXI",
|
||||
"@syntaxHighlighting": {
|
||||
"description": "Syntax Highlighting"
|
||||
},
|
||||
"explore": "Explora",
|
||||
"@explore": {
|
||||
"description": "explore"
|
||||
},
|
||||
"pullRequests": "Peticions d’extracció",
|
||||
"@pullRequests": {
|
||||
"description": "Pull Requests"
|
||||
},
|
||||
"watchers": "Vigilants",
|
||||
"@watchers": {
|
||||
"description": "watchers"
|
||||
},
|
||||
"reviewPermissions": "Revisa els permissos",
|
||||
"@reviewPermissions": {
|
||||
"description": "review Permissions"
|
||||
},
|
||||
"mergeRequests": "Peticions de fusió",
|
||||
"@mergeRequests": {
|
||||
"description": "Merge request"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,350 @@
|
|||
{
|
||||
"followers": "Follower",
|
||||
"@followers": {
|
||||
"description": "followers for a person"
|
||||
},
|
||||
"me": "Konto",
|
||||
"@me": {
|
||||
"description": "The Me tab"
|
||||
},
|
||||
"trending": "Beliebt",
|
||||
"@trending": {
|
||||
"description": "Trending"
|
||||
},
|
||||
"fontStyle": "Schriftstyle",
|
||||
"@fontStyle": {
|
||||
"description": "font style"
|
||||
},
|
||||
"fontSize": "Schriftgröße",
|
||||
"@fontSize": {
|
||||
"description": "font size"
|
||||
},
|
||||
"fontFamily": "Schriftart",
|
||||
"@fontFamily": {
|
||||
"description": "Font Family"
|
||||
},
|
||||
"syntaxHighlighting": "SYNTAX HERVORHEBUNG",
|
||||
"@syntaxHighlighting": {
|
||||
"description": "Syntax Highlighting"
|
||||
},
|
||||
"projectActions": "Projekt Aktionen",
|
||||
"@projectActions": {
|
||||
"description": "Project Actions"
|
||||
},
|
||||
"code": "Code",
|
||||
"@code": {
|
||||
"description": "Code"
|
||||
},
|
||||
"issue": "Ticket",
|
||||
"@issue": {
|
||||
"description": "issue"
|
||||
},
|
||||
"group": "Gruppe",
|
||||
"@group": {
|
||||
"description": "group"
|
||||
},
|
||||
"user": "Benutzer",
|
||||
"@user": {
|
||||
"description": "user"
|
||||
},
|
||||
"longPressToRemoveAccount": "Langer Druck zum Entfernen des Kontos",
|
||||
"@longPressToRemoveAccount": {
|
||||
"description": "Long Press to remove account"
|
||||
},
|
||||
"giteeAccount": "Gitee Konto",
|
||||
"@giteeAccount": {
|
||||
"description": "Gitee Account"
|
||||
},
|
||||
"giteaAccount": "Gitea Konto",
|
||||
"@giteaAccount": {
|
||||
"description": "Gitea Account"
|
||||
},
|
||||
"githubAccount": "GitHub Konto",
|
||||
"@githubAccount": {
|
||||
"description": "Gitea Account"
|
||||
},
|
||||
"gitlabAccount": "GitLab Konto",
|
||||
"@gitlabAccount": {
|
||||
"description": "Gitlab Account"
|
||||
},
|
||||
"bitbucketAccount": "Bitbucket Konto",
|
||||
"@bitbucketAccount": {
|
||||
"description": "Bitbucket Account"
|
||||
},
|
||||
"notFoundTextDisplay": "Ups, diese Seite ist noch nicht eingebaut.",
|
||||
"@notFoundTextDisplay": {
|
||||
"description": "Not found error message"
|
||||
},
|
||||
"notFoundMessage": "Nicht gefunden",
|
||||
"@notFoundMessage": {
|
||||
"description": "Not found page header"
|
||||
},
|
||||
"permissionRequiredMessage": "GitTouch benötigt diese Berechtigungen",
|
||||
"@permissionRequiredMessage": {
|
||||
"description": "Permission Required Message"
|
||||
},
|
||||
"somethingBadHappens": "Etwas schlechtes ist passiert:",
|
||||
"@somethingBadHappens": {
|
||||
"description": "error message"
|
||||
},
|
||||
"removeAccount": "Konto löschen",
|
||||
"@removeAccount": {
|
||||
"description": "remove account"
|
||||
},
|
||||
"selectAccount": "Konto auswählen",
|
||||
"@selectAccount": {
|
||||
"description": "select account message"
|
||||
},
|
||||
"project": "Projekt",
|
||||
"@project": {
|
||||
"description": "project"
|
||||
},
|
||||
"activity": "Aktivität",
|
||||
"@activity": {
|
||||
"description": "activity"
|
||||
},
|
||||
"mergeRequests": "Merge Requests",
|
||||
"@mergeRequests": {
|
||||
"description": "Merge request"
|
||||
},
|
||||
"groups": "Gruppen",
|
||||
"@groups": {
|
||||
"description": "groups"
|
||||
},
|
||||
"actions": "Aktionen",
|
||||
"@actions": {
|
||||
"description": "actions"
|
||||
},
|
||||
"files": "Dateien",
|
||||
"@files": {
|
||||
"description": "file plural"
|
||||
},
|
||||
"file": "Datei",
|
||||
"@file": {
|
||||
"description": "file"
|
||||
},
|
||||
"teams": "Teams",
|
||||
"@teams": {
|
||||
"description": "teams"
|
||||
},
|
||||
"explore": "Erkunden",
|
||||
"@explore": {
|
||||
"description": "explore"
|
||||
},
|
||||
"developers": "Entwickler",
|
||||
"@developers": {
|
||||
"description": "developers"
|
||||
},
|
||||
"all": "Alle",
|
||||
"@all": {
|
||||
"description": "all"
|
||||
},
|
||||
"unread": "Ungelesen",
|
||||
"@unread": {
|
||||
"description": "unread"
|
||||
},
|
||||
"contributors": "Mitwirkende",
|
||||
"@contributors": {
|
||||
"description": "contributors"
|
||||
},
|
||||
"branches": "Branches",
|
||||
"@branches": {
|
||||
"description": "branches"
|
||||
},
|
||||
"commits": "Commits",
|
||||
"@commits": {
|
||||
"description": "Commits"
|
||||
},
|
||||
"pullRequests": "Pull Requests",
|
||||
"@pullRequests": {
|
||||
"description": "Pull Requests"
|
||||
},
|
||||
"issues": "Tickets",
|
||||
"@issues": {
|
||||
"description": "issues"
|
||||
},
|
||||
"forks": "Forks",
|
||||
"@forks": {
|
||||
"description": "forks"
|
||||
},
|
||||
"watchers": "Beobachter",
|
||||
"@watchers": {
|
||||
"description": "watchers"
|
||||
},
|
||||
"releases": "Releases",
|
||||
"@releases": {
|
||||
"description": "releases"
|
||||
},
|
||||
"projects": "Projekte",
|
||||
"@projects": {
|
||||
"description": "projects"
|
||||
},
|
||||
"repositoryActions": "Repository Aktionen",
|
||||
"@repositoryActions": {
|
||||
"description": "Repository Actions"
|
||||
},
|
||||
"repository": "Repository",
|
||||
"@repository": {
|
||||
"description": "Repository screen title"
|
||||
},
|
||||
"sourceCode": "Quellcode",
|
||||
"@sourceCode": {
|
||||
"description": "source code for app"
|
||||
},
|
||||
"version": "Version",
|
||||
"@version": {
|
||||
"description": "app version"
|
||||
},
|
||||
"about": "Informationen",
|
||||
"@about": {
|
||||
"description": "about section"
|
||||
},
|
||||
"email": "E-Mail",
|
||||
"@email": {
|
||||
"description": "Email to report issues"
|
||||
},
|
||||
"rateThisApp": "App bewerten",
|
||||
"@rateThisApp": {
|
||||
"description": "rate the app"
|
||||
},
|
||||
"submitAnIssue": "Fehler melden",
|
||||
"@submitAnIssue": {
|
||||
"description": "submit issue for app"
|
||||
},
|
||||
"feedback": "Feedback",
|
||||
"@feedback": {
|
||||
"description": "provide feedback"
|
||||
},
|
||||
"webview": "WebView",
|
||||
"@webview": {
|
||||
"description": "render webview for markdown"
|
||||
},
|
||||
"flutter": "Flutter",
|
||||
"@flutter": {
|
||||
"description": "render flutter for markdown"
|
||||
},
|
||||
"markdownRenderEngine": "Markdown Rendering-Engine",
|
||||
"@markdownRenderEngine": {
|
||||
"description": "flutter or webview rendering for markdown"
|
||||
},
|
||||
"codeTheme": "Code Design",
|
||||
"@codeTheme": {
|
||||
"description": "code theme"
|
||||
},
|
||||
"material": "Material",
|
||||
"@material": {
|
||||
"description": "Material scaffold theme"
|
||||
},
|
||||
"cupertino": "Cupertino",
|
||||
"@cupertino": {
|
||||
"description": "Cupertino scaffold theme"
|
||||
},
|
||||
"scaffoldTheme": "Menü Design",
|
||||
"@scaffoldTheme": {
|
||||
"description": "Kind of theme - cupertino or material"
|
||||
},
|
||||
"dark": "Dunkel",
|
||||
"@dark": {
|
||||
"description": "dark mode"
|
||||
},
|
||||
"light": "Hell",
|
||||
"@light": {
|
||||
"description": "light mode"
|
||||
},
|
||||
"brightness": "Helligkeit",
|
||||
"@brightness": {
|
||||
"description": "brightness"
|
||||
},
|
||||
"switchAccounts": "Konten wechseln",
|
||||
"@switchAccounts": {
|
||||
"description": "Switch accounts"
|
||||
},
|
||||
"giteaStatus": "Gitea-Status",
|
||||
"@giteaStatus": {
|
||||
"description": "Gitea status"
|
||||
},
|
||||
"gitlabStatus": "GitLab-Status",
|
||||
"@gitlabStatus": {
|
||||
"description": "GitLab status"
|
||||
},
|
||||
"reviewPermissions": "Berechtigungen überprüfen",
|
||||
"@reviewPermissions": {
|
||||
"description": "review Permissions"
|
||||
},
|
||||
"githubStatus": "GitHub-Status",
|
||||
"@githubStatus": {
|
||||
"description": "github status"
|
||||
},
|
||||
"system": "System",
|
||||
"@system": {
|
||||
"description": "system"
|
||||
},
|
||||
"settings": "Einstellungen",
|
||||
"@settings": {
|
||||
"description": "settings"
|
||||
},
|
||||
"pinnedRepositories": "angeheftete Repositories",
|
||||
"@pinnedRepositories": {
|
||||
"description": "pinned repositories"
|
||||
},
|
||||
"popularRepositories": "beliebte Repositories",
|
||||
"@popularRepositories": {
|
||||
"description": "popular repositories"
|
||||
},
|
||||
"members": "Mitglieder",
|
||||
"@members": {
|
||||
"description": "members of an organization"
|
||||
},
|
||||
"organizations": "Organisationen",
|
||||
"@organizations": {
|
||||
"description": "organizations for a user"
|
||||
},
|
||||
"repositories": "Repositories",
|
||||
"@repositories": {
|
||||
"description": "repository text"
|
||||
},
|
||||
"gists": "Gists",
|
||||
"@gists": {
|
||||
"description": "gists for a user"
|
||||
},
|
||||
"events": "Events",
|
||||
"@events": {
|
||||
"description": "events for a user"
|
||||
},
|
||||
"following": "folgen",
|
||||
"@following": {
|
||||
"description": "people followed by a person"
|
||||
},
|
||||
"stars": "markieren",
|
||||
"@stars": {
|
||||
"description": "stars on a repo"
|
||||
},
|
||||
"follow": "folgen",
|
||||
"@follow": {
|
||||
"description": "follow someone"
|
||||
},
|
||||
"unfollow": "entfolgen",
|
||||
"@unfollow": {
|
||||
"description": "unfollow someone"
|
||||
},
|
||||
"participating": "Teilnehmer",
|
||||
"@participating": {
|
||||
"description": "The participating Tab"
|
||||
},
|
||||
"search": "Suchen",
|
||||
"@search": {
|
||||
"description": "The Search tab"
|
||||
},
|
||||
"notification": "Benachrichtigung",
|
||||
"@notification": {
|
||||
"description": "The Notification tab"
|
||||
},
|
||||
"news": "Neuigkeiten",
|
||||
"@news": {
|
||||
"description": "The News tab"
|
||||
},
|
||||
"followSystem": "System folgen",
|
||||
"@followSystem": {
|
||||
"description": "follow systems setting"
|
||||
}
|
||||
}
|
|
@ -63,11 +63,11 @@
|
|||
"@members": {
|
||||
"description": "members of an organization"
|
||||
},
|
||||
"popularRepositories": "popular repositories",
|
||||
"popularRepositories": "Popular Repositories",
|
||||
"@popularRepositories": {
|
||||
"description": "popular repositories"
|
||||
},
|
||||
"pinnedRepositories": "pinned repositories",
|
||||
"pinnedRepositories": "Pinned Repositories",
|
||||
"@pinnedRepositories": {
|
||||
"description": "pinned repositories"
|
||||
},
|
||||
|
@ -75,11 +75,11 @@
|
|||
"@settings": {
|
||||
"description": "settings"
|
||||
},
|
||||
"system": "system",
|
||||
"system": "System",
|
||||
"@system": {
|
||||
"description": "system"
|
||||
},
|
||||
"githubStatus": "GitHub status",
|
||||
"githubStatus": "GitHub Status",
|
||||
"@githubStatus": {
|
||||
"description": "github status"
|
||||
},
|
||||
|
@ -87,15 +87,15 @@
|
|||
"@reviewPermissions": {
|
||||
"description": "review Permissions"
|
||||
},
|
||||
"gitlabStatus": "GitLab status",
|
||||
"gitlabStatus": "GitLab Status",
|
||||
"@gitlabStatus": {
|
||||
"description": "GitLab status"
|
||||
},
|
||||
"giteaStatus": "Gitea status",
|
||||
"giteaStatus": "Gitea Status",
|
||||
"@giteaStatus": {
|
||||
"description": "Gitea status"
|
||||
},
|
||||
"switchAccounts": "Switch accounts",
|
||||
"switchAccounts": "Switch Accounts",
|
||||
"@switchAccounts": {
|
||||
"description": "Switch accounts"
|
||||
},
|
||||
|
@ -115,18 +115,6 @@
|
|||
"@dark": {
|
||||
"description": "dark mode"
|
||||
},
|
||||
"scaffoldTheme": "Scaffold Theme",
|
||||
"@scaffoldTheme": {
|
||||
"description": "Kind of theme - cupertino or material"
|
||||
},
|
||||
"cupertino": "Cupertino",
|
||||
"@cupertino": {
|
||||
"description": "Cupertino scaffold theme"
|
||||
},
|
||||
"material": "Material",
|
||||
"@material": {
|
||||
"description": "Material scaffold theme"
|
||||
},
|
||||
"codeTheme": "Code Theme",
|
||||
"@codeTheme": {
|
||||
"description": "code theme"
|
||||
|
@ -147,10 +135,14 @@
|
|||
"@feedback": {
|
||||
"description": "provide feedback"
|
||||
},
|
||||
"submitAnIssue": "Submit an issue",
|
||||
"submitAnIssue": "Submit An Issue",
|
||||
"@submitAnIssue": {
|
||||
"description": "submit issue for app"
|
||||
},
|
||||
"submit": "Submit",
|
||||
"@submit": {
|
||||
"description": "submit button text"
|
||||
},
|
||||
"rateThisApp": "Rate This App",
|
||||
"@rateThisApp": {
|
||||
"description": "rate the app"
|
||||
|
@ -159,7 +151,7 @@
|
|||
"@email": {
|
||||
"description": "Email to report issues"
|
||||
},
|
||||
"about": "about",
|
||||
"about": "About",
|
||||
"@about": {
|
||||
"description": "about section"
|
||||
},
|
||||
|
@ -187,6 +179,10 @@
|
|||
"@releases": {
|
||||
"description": "releases"
|
||||
},
|
||||
"released": "released",
|
||||
"@released": {
|
||||
"description": "released"
|
||||
},
|
||||
"watchers": "Watchers",
|
||||
"@watchers": {
|
||||
"description": "watchers"
|
||||
|
@ -199,7 +195,7 @@
|
|||
"@issues": {
|
||||
"description": "issues"
|
||||
},
|
||||
"pullRequests": "Pull requests",
|
||||
"pullRequests": "Pull Requests",
|
||||
"@pullRequests": {
|
||||
"description": "Pull Requests"
|
||||
},
|
||||
|
@ -207,6 +203,10 @@
|
|||
"@commits": {
|
||||
"description": "Commits"
|
||||
},
|
||||
"commit": "Commit",
|
||||
"@commit": {
|
||||
"description": "Commit"
|
||||
},
|
||||
"branches": "Branches",
|
||||
"@branches": {
|
||||
"description": "branches"
|
||||
|
@ -263,15 +263,15 @@
|
|||
"@project": {
|
||||
"description": "project"
|
||||
},
|
||||
"selectAccount": "Select account",
|
||||
"selectAccount": "Select Account",
|
||||
"@selectAccount": {
|
||||
"description": "select account message"
|
||||
},
|
||||
"removeAccount": "Remove account",
|
||||
"removeAccount": "Remove Account",
|
||||
"@removeAccount": {
|
||||
"description": "remove account"
|
||||
},
|
||||
"somethingBadHappens": "Something bad happens:",
|
||||
"somethingBadHappens": "Something Bad Happens:",
|
||||
"@somethingBadHappens": {
|
||||
"description": "error message"
|
||||
},
|
||||
|
@ -346,5 +346,507 @@
|
|||
"fontStyle": "FONT STYLE",
|
||||
"@fontStyle": {
|
||||
"description": "font style"
|
||||
},
|
||||
"appLanguage": "App Language",
|
||||
"@appLanguage": {
|
||||
"description": "The app's language"
|
||||
},
|
||||
"reloadMessage": "The app will reload to make the language setting take effect",
|
||||
"@reloadMessage": {
|
||||
"description": "Reload message"
|
||||
},
|
||||
"theme": "Theme",
|
||||
"@theme": {
|
||||
"description": "Theme header text"
|
||||
},
|
||||
"title": "Title",
|
||||
"@title": {
|
||||
"description": "title"
|
||||
},
|
||||
"body": "Body",
|
||||
"@body": {
|
||||
"description": "body"
|
||||
},
|
||||
"timelineTypeNotImplemented": "Type not implemented yet",
|
||||
"@timelineTypeNotImplemented": {
|
||||
"description": "Timeline type not implemented"
|
||||
},
|
||||
"pullRequestCommitMessage": "added commit {commit}",
|
||||
"@pullRequestCommitMessage": {
|
||||
"description": "pull request commit message",
|
||||
"placeholders": {
|
||||
"commit": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"crossReferencedEventMessage": "references this on",
|
||||
"@crossReferencedEventMessage": {
|
||||
"description": "cross referenced event"
|
||||
},
|
||||
"closedEventMessage": "closed this",
|
||||
"@closedEventMessage": {
|
||||
"description": "closed event"
|
||||
},
|
||||
"reopenedEventMessage": "reopened this",
|
||||
"@reopenedEventMessage": {
|
||||
"description": "reopened event"
|
||||
},
|
||||
"subscribedEventMessage": "subscribed to this issue",
|
||||
"@subscribedEventMessage": {
|
||||
"description": "subscribed event"
|
||||
},
|
||||
"unsubscribedEventMessage": "unsubscribed from this issue",
|
||||
"@unsubscribedEventMessage": {
|
||||
"description": "unsubscribed event"
|
||||
},
|
||||
"referencedEventMessage": "referenced this pull request from commit {commit} from {repoName}",
|
||||
"@referencedEventMessage": {
|
||||
"description": "referenced event",
|
||||
"placeholders": {
|
||||
"commit": {
|
||||
"type": "String"
|
||||
},
|
||||
"repoName": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"assignedEventMessage": "assigned this to",
|
||||
"@assignedEventMessage": {
|
||||
"description": "assigned event"
|
||||
},
|
||||
"unassignedEventMessage": "unassigned this from",
|
||||
"@unassignedEventMessage": {
|
||||
"description": "unassigned event"
|
||||
},
|
||||
"added": "added",
|
||||
"@added": {
|
||||
"description": "added"
|
||||
},
|
||||
"removed": "removed",
|
||||
"@removed": {
|
||||
"description": "removed"
|
||||
},
|
||||
"label": "label",
|
||||
"@label": {
|
||||
"description": "label"
|
||||
},
|
||||
"milestonedEventMessage": "added this to {milestone} milestone",
|
||||
"@milestonedEventMessage": {
|
||||
"description": "milestone event",
|
||||
"placeholders": {
|
||||
"milestone": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"demilestonedEventMessage": "removed this from {milestone} milestone",
|
||||
"@demilestonedEventMessage": {
|
||||
"description": "demilestoned event",
|
||||
"placeholders": {
|
||||
"milestone": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"renamedTitleEventMessage": "changed the title to {title} from",
|
||||
"@renamedTitleEventMessage": {
|
||||
"description": "changed title event",
|
||||
"placeholders": {
|
||||
"title": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"lockedConversationEventMessage": "locked this conversation",
|
||||
"@lockedConversationEventMessage": {
|
||||
"description": "locked this conversation"
|
||||
},
|
||||
"unlockedConversationEventMessage": "unlocked this conversation",
|
||||
"@unlockedConversationEventMessage": {
|
||||
"description": "unlocked this conversation"
|
||||
},
|
||||
"transferredEventMessage": "transferred this issue from {repoName}",
|
||||
"@transferredEventMessage": {
|
||||
"description": "transferred event",
|
||||
"placeholders": {
|
||||
"repoName": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"approvedChanges": "approved these changes",
|
||||
"@approvedChanges": {
|
||||
"description": "approved these changes"
|
||||
},
|
||||
"reviewed": "reviewed",
|
||||
"@reviewed": {
|
||||
"description": "reviewed"
|
||||
},
|
||||
"mergedEventMessage": "merged commit {commit} into {mergeRefName}",
|
||||
"@mergedEventMessage": {
|
||||
"description": "merged event message",
|
||||
"placeholders": {
|
||||
"commit": {
|
||||
"type": "String"
|
||||
},
|
||||
"mergeRefName": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"mentionedEventMessage": "was mentioned",
|
||||
"@mentionedEventMessage": {
|
||||
"description": "was mentioned"
|
||||
},
|
||||
"pinnedEventMessage": "pinned this issue",
|
||||
"@pinnedEventMessage": {
|
||||
"description": "pinned this issue"
|
||||
},
|
||||
"deployedPR": "deployed the pull request {headRefName}",
|
||||
"@deployedPR": {
|
||||
"description": "deployed the pull request",
|
||||
"placeholders": {
|
||||
"headRefName": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"deploymentEnvironmentChangedEventMessage": "changed the development environment to {devEnv}",
|
||||
"@deploymentEnvironmentChangedEventMessage": {
|
||||
"description": "deployment environment changed event",
|
||||
"placeholders": {
|
||||
"devEnv": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"headRefDeletedEventMessage": "deleted the {headRefName} branch",
|
||||
"@headRefDeletedEventMessage": {
|
||||
"description": "head ref deleted event",
|
||||
"placeholders": {
|
||||
"headRefName": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"headRefRestoredEventMessage": "restored the {headRefName} branch",
|
||||
"@headRefRestoredEventMessage": {
|
||||
"description": "head ref restored event",
|
||||
"placeholders": {
|
||||
"headRefName": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"headRefForcedPushedEventFirstMessage": "force-pushed the",
|
||||
"@headRefForcedPushedEventFirstMessage": {
|
||||
"description": "head ref forced pushed event message first half"
|
||||
},
|
||||
"headRefForcedPushedEventSecondMessage": "branch from",
|
||||
"@headRefForcedPushedEventSecondMessage": {
|
||||
"description": "head ref forced pushed event message second half"
|
||||
},
|
||||
"reviewRequestEventMessage": "requested a review from",
|
||||
"@reviewRequestEventMessage": {
|
||||
"description": "requested a review from"
|
||||
},
|
||||
"fromReviewRequest": "from the review request",
|
||||
"@fromReviewRequest": {
|
||||
"description": "from the review request"
|
||||
},
|
||||
"reviewDismissedEventMessage": "dismissed the pull request review requested by",
|
||||
"@reviewDismissedEventMessage": {
|
||||
"description": "dismissed the pull request review requested by"
|
||||
},
|
||||
"nCommitsTo": "{count,plural, =1{{count} commit to} other{{count} commits to}}",
|
||||
"@nCommitsTo": {
|
||||
"description": "no. of commits to a branch",
|
||||
"placeholders": {
|
||||
"count": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"checkRunEventMessage": "{action} a check run for {name}",
|
||||
"@checkRunEventMessage": {
|
||||
"description": "check run event",
|
||||
"placeholders": {
|
||||
"action": {
|
||||
"type": "String"
|
||||
},
|
||||
"name": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"checkSuiteEventConclusionMessage": "it is a {conclusion}",
|
||||
"@checkSuiteEventConclusionMessage": {
|
||||
"description": "check suite event conclusion",
|
||||
"placeholders": {
|
||||
"conclusion": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"actionRequiredConclusion": "it requires more action",
|
||||
"@actionRequiredConclusion": {
|
||||
"description": "it requires more action"
|
||||
},
|
||||
"checkSuiteEventMessage": "{action} the check suite and the conclusion is that",
|
||||
"@checkSuiteEventMessage": {
|
||||
"description": "check suite event message conclusion",
|
||||
"placeholders": {
|
||||
"action": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"commitCommentEventMessage": "commented on a commit at",
|
||||
"@commitCommentEventMessage": {
|
||||
"description": "commit comment event message"
|
||||
},
|
||||
"contentReferenceEventMessage": "{action} a content reference at",
|
||||
"@contentReferenceEventMessage": {
|
||||
"description": "content reference event",
|
||||
"placeholders": {
|
||||
"action": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"createdEventMessage": "created a {refType} {ref} at",
|
||||
"@createdEventMessage": {
|
||||
"description": "created event message",
|
||||
"placeholders": {
|
||||
"refType": {
|
||||
"type": "String"
|
||||
},
|
||||
"ref": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"deletedEventMessage": "deleted the {refType} {ref} at",
|
||||
"@deletedEventMessage": {
|
||||
"description": "deleted event message",
|
||||
"placeholders": {
|
||||
"refType": {
|
||||
"type": "String"
|
||||
},
|
||||
"ref": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"forked": "forked",
|
||||
"@forked": {
|
||||
"description": "forked"
|
||||
},
|
||||
"createdPages": "created the pages: {pageNames}",
|
||||
"@createdPages": {
|
||||
"description": "created pages",
|
||||
"placeholders": {
|
||||
"pageNames": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"editedPages": "edited the pages: {pageNames}",
|
||||
"@editedPages": {
|
||||
"description": "edited pages",
|
||||
"placeholders": {
|
||||
"pageAction": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"newPermissionsAccepted": "new permissions were accepted for action ",
|
||||
"@newPermissionsAccepted": {
|
||||
"description": "new permissions were accepted for"
|
||||
},
|
||||
"forGithubAppWithId": "for the Github App with id {id}",
|
||||
"@forGithubAppWithId": {
|
||||
"description": "for the Github App with id",
|
||||
"placeholders": {
|
||||
"id": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"wereAddedTo": "{repos} were added to the installation id {id}",
|
||||
"@wereAddedTo": {
|
||||
"description": "example: repo1,repo2 were added to the installation id ID",
|
||||
"placeholders": {
|
||||
"repos": {
|
||||
"type": "String"
|
||||
},
|
||||
"id": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"wereRemovedFrom": "{repos} were removed from the installation id {id}",
|
||||
"@wereRemovedFrom": {
|
||||
"description": "example: repo1,repo2 were removed from the installation id ID",
|
||||
"placeholders": {
|
||||
"repos": {
|
||||
"type": "String"
|
||||
},
|
||||
"id": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"commentedOn": "commented on",
|
||||
"@commentedOn": {
|
||||
"description": "commented on"
|
||||
},
|
||||
"at": "at",
|
||||
"@at": {
|
||||
"description": "at"
|
||||
},
|
||||
"to": "to",
|
||||
"@to": {
|
||||
"description": "to"
|
||||
},
|
||||
"from": "from",
|
||||
"@from": {
|
||||
"description": "from"
|
||||
},
|
||||
"purchasedMarketplacePlan": "purchased a Marketplace Plan",
|
||||
"@purchasedMarketplacePlan": {
|
||||
"description": "purchased a Marketplace Plan"
|
||||
},
|
||||
"cancelledMarketplacePlan": "cancelled their Marketplace Plan",
|
||||
"@cancelledMarketplacePlan": {
|
||||
"description": "cancelled their Marketplace Plan"
|
||||
},
|
||||
"pendingMarketplacePlan": "Marketplace Plan is pending change",
|
||||
"@pendingMarketplacePlan": {
|
||||
"description": "Marketplace Plan is pending change"
|
||||
},
|
||||
"pendingChangeCancelled": "Pending Marketplace Plan was cancelled",
|
||||
"@pendingChangeCancelled": {
|
||||
"description": "Pending Marketplace Plan was cancelled"
|
||||
},
|
||||
"changedMarketplacePlan": "changed their Marketplace Plan",
|
||||
"@changedMarketplacePlan": {
|
||||
"description": "changed their Marketplace Plan"
|
||||
},
|
||||
"was": "was",
|
||||
"@was": {
|
||||
"description": "was"
|
||||
},
|
||||
"convertProjectCard": "converted the project card into an issue",
|
||||
"@convertProjectCard": {
|
||||
"description": "converted the project card into an issue"
|
||||
},
|
||||
"theProjectCard": "the project card",
|
||||
"@theProjectCard": {
|
||||
"description": "the project card"
|
||||
},
|
||||
"projectColumnEventMessage": "{action} the project column {projectColumnName} at ",
|
||||
"@projectColumnEventMessage": {
|
||||
"description": "the project column",
|
||||
"placeholders": {
|
||||
"action": {
|
||||
"type": "String"
|
||||
},
|
||||
"projectColumnName": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"projectEventMessage": "{action} the project {projectName}",
|
||||
"@projectEventMessage": {
|
||||
"description": "the project",
|
||||
"placeholders": {
|
||||
"action" : {
|
||||
"type": "String"
|
||||
},
|
||||
"projectName": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"made": "made",
|
||||
"@made": {
|
||||
"description": "made"
|
||||
},
|
||||
"public": "public",
|
||||
"@public": {
|
||||
"description": "public"
|
||||
},
|
||||
"pullRequestEventMessage": "{action} pull request",
|
||||
"@pullRequestEventMessage": {
|
||||
"description": "pull request event",
|
||||
"placeholders": {
|
||||
"action": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"pullRequestReviewEventMessage": "{action} the pull request review",
|
||||
"@pullRequestReviewEventMessage": {
|
||||
"description": "pull request review event message",
|
||||
"placeholders": {
|
||||
"action": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"pullRequestReviewCommentEventMessage": "reviewed pull request",
|
||||
"@pullRequestReviewCommentEventMessage": {
|
||||
"description": "pull request review comment event"
|
||||
},
|
||||
"pushedTo": "pushed to",
|
||||
"@pushedTo": {
|
||||
"description": "pushed to"
|
||||
},
|
||||
"securityAlertInvolvingPackage": "Security alert involving the package {affectedPackageName} between versions {affectedRange} was {action}ed",
|
||||
"@securityAlertInvolvingPackage": {
|
||||
"description": "Security alert involving package",
|
||||
"placeholders": {
|
||||
"affectedPackageName": {
|
||||
"type": "String"
|
||||
},
|
||||
"affectedRange": {
|
||||
"type": "String"
|
||||
},
|
||||
"action": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"securityAdvisory": "Security advisory regarding {summary} was {action}",
|
||||
"@securityAdvisory": {
|
||||
"description": "Security advisory",
|
||||
"placeholders": {
|
||||
"summary": {
|
||||
"type": "String"
|
||||
},
|
||||
"action": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"starred": "starred",
|
||||
"@starred": {
|
||||
"description": "starred"
|
||||
},
|
||||
"filesChanged": "{count,plural, =1{{count} file changed} other{{count} files changed}}",
|
||||
"@filesChanged": {
|
||||
"description": "no. of files changed",
|
||||
"placeholders": {
|
||||
"count": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"blankDiff": "No text to be shown here",
|
||||
"@blankDiff": {
|
||||
"description": "text to show for a blank diff"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
{
|
||||
"fontFamily": "Nombre de fuente",
|
||||
"fontFamily": "Familia tipográfica",
|
||||
"@fontFamily": {
|
||||
"description": "Font Family"
|
||||
},
|
||||
"syntaxHighlighting": "RESALTADO DE SINTAXIS",
|
||||
"syntaxHighlighting": "COLORACIÓN SINTÁCTICA",
|
||||
"@syntaxHighlighting": {
|
||||
"description": "Syntax Highlighting"
|
||||
},
|
||||
|
@ -11,7 +11,7 @@
|
|||
"@somethingBadHappens": {
|
||||
"description": "error message"
|
||||
},
|
||||
"issues": "Issues",
|
||||
"issues": "Informes",
|
||||
"@issues": {
|
||||
"description": "issues"
|
||||
},
|
||||
|
@ -23,7 +23,7 @@
|
|||
"@releases": {
|
||||
"description": "releases"
|
||||
},
|
||||
"codeTheme": "Tema de Código",
|
||||
"codeTheme": "Tema de código",
|
||||
"@codeTheme": {
|
||||
"description": "code theme"
|
||||
},
|
||||
|
@ -31,15 +31,15 @@
|
|||
"@cupertino": {
|
||||
"description": "Cupertino scaffold theme"
|
||||
},
|
||||
"scaffoldTheme": "Tema de Scaffold",
|
||||
"scaffoldTheme": "Tema de andamiaje",
|
||||
"@scaffoldTheme": {
|
||||
"description": "Kind of theme - cupertino or material"
|
||||
},
|
||||
"fontStyle": "ESTILO DE FUENTE",
|
||||
"fontStyle": "ESTILO DE LETRA",
|
||||
"@fontStyle": {
|
||||
"description": "font style"
|
||||
},
|
||||
"fontSize": "Tamaño de la fuente",
|
||||
"fontSize": "Tamaño de letra",
|
||||
"@fontSize": {
|
||||
"description": "font size"
|
||||
},
|
||||
|
@ -51,7 +51,7 @@
|
|||
"@code": {
|
||||
"description": "Code"
|
||||
},
|
||||
"issue": "Issue",
|
||||
"issue": "Informe",
|
||||
"@issue": {
|
||||
"description": "issue"
|
||||
},
|
||||
|
@ -63,7 +63,7 @@
|
|||
"@user": {
|
||||
"description": "user"
|
||||
},
|
||||
"giteeAccount": "Cuenta de Gitea",
|
||||
"giteeAccount": "Cuenta de Gitee",
|
||||
"@giteeAccount": {
|
||||
"description": "Gitee Account"
|
||||
},
|
||||
|
@ -83,7 +83,7 @@
|
|||
"@gitlabAccount": {
|
||||
"description": "Gitlab Account"
|
||||
},
|
||||
"notFoundTextDisplay": "Oops, esta página aún no está implementada.",
|
||||
"notFoundTextDisplay": "Esta página aún no está implementada.",
|
||||
"@notFoundTextDisplay": {
|
||||
"description": "Not found error message"
|
||||
},
|
||||
|
@ -115,7 +115,7 @@
|
|||
"@activity": {
|
||||
"description": "activity"
|
||||
},
|
||||
"mergeRequests": "Merge Requests",
|
||||
"mergeRequests": "Solicitudes de incorporación",
|
||||
"@mergeRequests": {
|
||||
"description": "Merge request"
|
||||
},
|
||||
|
@ -159,19 +159,19 @@
|
|||
"@contributors": {
|
||||
"description": "contributors"
|
||||
},
|
||||
"branches": "Branches",
|
||||
"branches": "Ramas",
|
||||
"@branches": {
|
||||
"description": "branches"
|
||||
},
|
||||
"commits": "Commits",
|
||||
"commits": "Consignas",
|
||||
"@commits": {
|
||||
"description": "Commits"
|
||||
},
|
||||
"pullRequests": "Pull requests",
|
||||
"pullRequests": "Solicitudes de incorporación",
|
||||
"@pullRequests": {
|
||||
"description": "Pull Requests"
|
||||
},
|
||||
"forks": "Bifurcaciones (Forks)",
|
||||
"forks": "Bifurcaciones",
|
||||
"@forks": {
|
||||
"description": "forks"
|
||||
},
|
||||
|
@ -203,11 +203,11 @@
|
|||
"@email": {
|
||||
"description": "Email to report issues"
|
||||
},
|
||||
"rateThisApp": "Valora esta aplicación",
|
||||
"rateThisApp": "Valorar esta aplicación",
|
||||
"@rateThisApp": {
|
||||
"description": "rate the app"
|
||||
},
|
||||
"submitAnIssue": "Enviar un problema",
|
||||
"submitAnIssue": "Informar de un problema",
|
||||
"@submitAnIssue": {
|
||||
"description": "submit issue for app"
|
||||
},
|
||||
|
@ -223,7 +223,7 @@
|
|||
"@flutter": {
|
||||
"description": "render flutter for markdown"
|
||||
},
|
||||
"markdownRenderEngine": "Motor de renderizado Markdown",
|
||||
"markdownRenderEngine": "Motor de representación de Markdown",
|
||||
"@markdownRenderEngine": {
|
||||
"description": "flutter or webview rendering for markdown"
|
||||
},
|
||||
|
@ -235,7 +235,7 @@
|
|||
"@dark": {
|
||||
"description": "dark mode"
|
||||
},
|
||||
"light": "Luz",
|
||||
"light": "Claro",
|
||||
"@light": {
|
||||
"description": "light mode"
|
||||
},
|
||||
|
@ -271,7 +271,7 @@
|
|||
"@system": {
|
||||
"description": "system"
|
||||
},
|
||||
"settings": "Configuraciones",
|
||||
"settings": "Configuración",
|
||||
"@settings": {
|
||||
"description": "settings"
|
||||
},
|
||||
|
@ -323,7 +323,7 @@
|
|||
"@repositories": {
|
||||
"description": "repository text"
|
||||
},
|
||||
"participating": "Participando",
|
||||
"participating": "Participación",
|
||||
"@participating": {
|
||||
"description": "The participating Tab"
|
||||
},
|
||||
|
|
|
@ -0,0 +1,350 @@
|
|||
{
|
||||
"fontStyle": "STYLE DE LA POLICE",
|
||||
"@fontStyle": {
|
||||
"description": "font style"
|
||||
},
|
||||
"fontSize": "Taille de la police",
|
||||
"@fontSize": {
|
||||
"description": "font size"
|
||||
},
|
||||
"fontFamily": "Famille de polices",
|
||||
"@fontFamily": {
|
||||
"description": "Font Family"
|
||||
},
|
||||
"syntaxHighlighting": "MISE EN ÉVIDENCE DE LA SYNTAXE",
|
||||
"@syntaxHighlighting": {
|
||||
"description": "Syntax Highlighting"
|
||||
},
|
||||
"projectActions": "Actions du projet",
|
||||
"@projectActions": {
|
||||
"description": "Project Actions"
|
||||
},
|
||||
"code": "Code",
|
||||
"@code": {
|
||||
"description": "Code"
|
||||
},
|
||||
"issue": "Problème",
|
||||
"@issue": {
|
||||
"description": "issue"
|
||||
},
|
||||
"group": "Groupe",
|
||||
"@group": {
|
||||
"description": "group"
|
||||
},
|
||||
"user": "Utilisateur",
|
||||
"@user": {
|
||||
"description": "user"
|
||||
},
|
||||
"giteeAccount": "Compte Gitee",
|
||||
"@giteeAccount": {
|
||||
"description": "Gitee Account"
|
||||
},
|
||||
"giteaAccount": "Compte Gitea",
|
||||
"@giteaAccount": {
|
||||
"description": "Gitea Account"
|
||||
},
|
||||
"longPressToRemoveAccount": "Longue pression pour supprimer un compte",
|
||||
"@longPressToRemoveAccount": {
|
||||
"description": "Long Press to remove account"
|
||||
},
|
||||
"bitbucketAccount": "Compte Bitbucket",
|
||||
"@bitbucketAccount": {
|
||||
"description": "Bitbucket Account"
|
||||
},
|
||||
"gitlabAccount": "Compte GitLab",
|
||||
"@gitlabAccount": {
|
||||
"description": "Gitlab Account"
|
||||
},
|
||||
"notFoundTextDisplay": "Oups, cette page n'est pas encore implémentée.",
|
||||
"@notFoundTextDisplay": {
|
||||
"description": "Not found error message"
|
||||
},
|
||||
"notFoundMessage": "Non trouvé",
|
||||
"@notFoundMessage": {
|
||||
"description": "Not found page header"
|
||||
},
|
||||
"permissionRequiredMessage": "GitTouch a besoin de ces autorisations",
|
||||
"@permissionRequiredMessage": {
|
||||
"description": "Permission Required Message"
|
||||
},
|
||||
"githubAccount": "Compte GitHub",
|
||||
"@githubAccount": {
|
||||
"description": "Gitea Account"
|
||||
},
|
||||
"somethingBadHappens": "Quelque chose de mal se passe :",
|
||||
"@somethingBadHappens": {
|
||||
"description": "error message"
|
||||
},
|
||||
"removeAccount": "Supprimer le compte",
|
||||
"@removeAccount": {
|
||||
"description": "remove account"
|
||||
},
|
||||
"selectAccount": "Sélectionner un compte",
|
||||
"@selectAccount": {
|
||||
"description": "select account message"
|
||||
},
|
||||
"project": "Projet",
|
||||
"@project": {
|
||||
"description": "project"
|
||||
},
|
||||
"activity": "Activité",
|
||||
"@activity": {
|
||||
"description": "activity"
|
||||
},
|
||||
"mergeRequests": "Fusionner les demandes",
|
||||
"@mergeRequests": {
|
||||
"description": "Merge request"
|
||||
},
|
||||
"groups": "Groupes",
|
||||
"@groups": {
|
||||
"description": "groups"
|
||||
},
|
||||
"actions": "Actions",
|
||||
"@actions": {
|
||||
"description": "actions"
|
||||
},
|
||||
"files": "Fichiers",
|
||||
"@files": {
|
||||
"description": "file plural"
|
||||
},
|
||||
"file": "Dossier",
|
||||
"@file": {
|
||||
"description": "file"
|
||||
},
|
||||
"teams": "Équipes",
|
||||
"@teams": {
|
||||
"description": "teams"
|
||||
},
|
||||
"explore": "Explorez",
|
||||
"@explore": {
|
||||
"description": "explore"
|
||||
},
|
||||
"developers": "Développeurs",
|
||||
"@developers": {
|
||||
"description": "developers"
|
||||
},
|
||||
"all": "Tous",
|
||||
"@all": {
|
||||
"description": "all"
|
||||
},
|
||||
"unread": "Non lu",
|
||||
"@unread": {
|
||||
"description": "unread"
|
||||
},
|
||||
"contributors": "Contributeurs",
|
||||
"@contributors": {
|
||||
"description": "contributors"
|
||||
},
|
||||
"branches": "Branches",
|
||||
"@branches": {
|
||||
"description": "branches"
|
||||
},
|
||||
"commits": "Engage",
|
||||
"@commits": {
|
||||
"description": "Commits"
|
||||
},
|
||||
"pullRequests": "Demandes de retrait",
|
||||
"@pullRequests": {
|
||||
"description": "Pull Requests"
|
||||
},
|
||||
"issues": "Problèmes",
|
||||
"@issues": {
|
||||
"description": "issues"
|
||||
},
|
||||
"forks": "Duplications",
|
||||
"@forks": {
|
||||
"description": "forks"
|
||||
},
|
||||
"watchers": "Observateurs",
|
||||
"@watchers": {
|
||||
"description": "watchers"
|
||||
},
|
||||
"releases": "Versions finales",
|
||||
"@releases": {
|
||||
"description": "releases"
|
||||
},
|
||||
"projects": "Projets",
|
||||
"@projects": {
|
||||
"description": "projects"
|
||||
},
|
||||
"repositoryActions": "Actions de dépôt",
|
||||
"@repositoryActions": {
|
||||
"description": "Repository Actions"
|
||||
},
|
||||
"repository": "Dépôt",
|
||||
"@repository": {
|
||||
"description": "Repository screen title"
|
||||
},
|
||||
"sourceCode": "Code source",
|
||||
"@sourceCode": {
|
||||
"description": "source code for app"
|
||||
},
|
||||
"version": "Version",
|
||||
"@version": {
|
||||
"description": "app version"
|
||||
},
|
||||
"about": "à propos de",
|
||||
"@about": {
|
||||
"description": "about section"
|
||||
},
|
||||
"email": "Courriel",
|
||||
"@email": {
|
||||
"description": "Email to report issues"
|
||||
},
|
||||
"rateThisApp": "Evaluez cette application",
|
||||
"@rateThisApp": {
|
||||
"description": "rate the app"
|
||||
},
|
||||
"submitAnIssue": "Soumettre une question",
|
||||
"@submitAnIssue": {
|
||||
"description": "submit issue for app"
|
||||
},
|
||||
"feedback": "retour d'information",
|
||||
"@feedback": {
|
||||
"description": "provide feedback"
|
||||
},
|
||||
"webview": "WebView",
|
||||
"@webview": {
|
||||
"description": "render webview for markdown"
|
||||
},
|
||||
"flutter": "Flutter",
|
||||
"@flutter": {
|
||||
"description": "render flutter for markdown"
|
||||
},
|
||||
"markdownRenderEngine": "Moteur de rendu Markdown",
|
||||
"@markdownRenderEngine": {
|
||||
"description": "flutter or webview rendering for markdown"
|
||||
},
|
||||
"codeTheme": "Thème du code",
|
||||
"@codeTheme": {
|
||||
"description": "code theme"
|
||||
},
|
||||
"material": "Matériel",
|
||||
"@material": {
|
||||
"description": "Material scaffold theme"
|
||||
},
|
||||
"cupertino": "Cupertino",
|
||||
"@cupertino": {
|
||||
"description": "Cupertino scaffold theme"
|
||||
},
|
||||
"scaffoldTheme": "Thème de l'échafaudage",
|
||||
"@scaffoldTheme": {
|
||||
"description": "Kind of theme - cupertino or material"
|
||||
},
|
||||
"dark": "Foncé",
|
||||
"@dark": {
|
||||
"description": "dark mode"
|
||||
},
|
||||
"light": "Clair",
|
||||
"@light": {
|
||||
"description": "light mode"
|
||||
},
|
||||
"followSystem": "Suivre le système",
|
||||
"@followSystem": {
|
||||
"description": "follow systems setting"
|
||||
},
|
||||
"brightness": "Luminosité",
|
||||
"@brightness": {
|
||||
"description": "brightness"
|
||||
},
|
||||
"switchAccounts": "Changer de compte",
|
||||
"@switchAccounts": {
|
||||
"description": "Switch accounts"
|
||||
},
|
||||
"giteaStatus": "Statut de Gitea",
|
||||
"@giteaStatus": {
|
||||
"description": "Gitea status"
|
||||
},
|
||||
"gitlabStatus": "Statut du GitLab",
|
||||
"@gitlabStatus": {
|
||||
"description": "GitLab status"
|
||||
},
|
||||
"reviewPermissions": "Examiner les autorisations",
|
||||
"@reviewPermissions": {
|
||||
"description": "review Permissions"
|
||||
},
|
||||
"githubStatus": "Statut de GitHub",
|
||||
"@githubStatus": {
|
||||
"description": "github status"
|
||||
},
|
||||
"system": "système",
|
||||
"@system": {
|
||||
"description": "system"
|
||||
},
|
||||
"settings": "Paramètres",
|
||||
"@settings": {
|
||||
"description": "settings"
|
||||
},
|
||||
"pinnedRepositories": "dépôts épinglés",
|
||||
"@pinnedRepositories": {
|
||||
"description": "pinned repositories"
|
||||
},
|
||||
"popularRepositories": "les dépôts populaires",
|
||||
"@popularRepositories": {
|
||||
"description": "popular repositories"
|
||||
},
|
||||
"members": "Membres",
|
||||
"@members": {
|
||||
"description": "members of an organization"
|
||||
},
|
||||
"organizations": "Organisations",
|
||||
"@organizations": {
|
||||
"description": "organizations for a user"
|
||||
},
|
||||
"gists": "Gists",
|
||||
"@gists": {
|
||||
"description": "gists for a user"
|
||||
},
|
||||
"events": "Événements",
|
||||
"@events": {
|
||||
"description": "events for a user"
|
||||
},
|
||||
"following": "Suivant",
|
||||
"@following": {
|
||||
"description": "people followed by a person"
|
||||
},
|
||||
"followers": "Suivants",
|
||||
"@followers": {
|
||||
"description": "followers for a person"
|
||||
},
|
||||
"stars": "Étoiles",
|
||||
"@stars": {
|
||||
"description": "stars on a repo"
|
||||
},
|
||||
"follow": "Suivre",
|
||||
"@follow": {
|
||||
"description": "follow someone"
|
||||
},
|
||||
"unfollow": "Ne plus suivre",
|
||||
"@unfollow": {
|
||||
"description": "unfollow someone"
|
||||
},
|
||||
"repositories": "Dépôts",
|
||||
"@repositories": {
|
||||
"description": "repository text"
|
||||
},
|
||||
"participating": "Participer",
|
||||
"@participating": {
|
||||
"description": "The participating Tab"
|
||||
},
|
||||
"me": "Moi",
|
||||
"@me": {
|
||||
"description": "The Me tab"
|
||||
},
|
||||
"search": "Recherchez",
|
||||
"@search": {
|
||||
"description": "The Search tab"
|
||||
},
|
||||
"trending": "Tendance",
|
||||
"@trending": {
|
||||
"description": "Trending"
|
||||
},
|
||||
"notification": "Notification",
|
||||
"@notification": {
|
||||
"description": "The Notification tab"
|
||||
},
|
||||
"news": "Nouvelles",
|
||||
"@news": {
|
||||
"description": "The News tab"
|
||||
}
|
||||
}
|
|
@ -1,90 +1,178 @@
|
|||
{
|
||||
"news": "समाचार",
|
||||
"@news": {},
|
||||
"notification": "अधिसूचना",
|
||||
"@notification": {},
|
||||
"trending": "ट्रेंडिंग",
|
||||
"@trending": {},
|
||||
"search": "खोज",
|
||||
"@search": {},
|
||||
"me": "मैं",
|
||||
"@me": {},
|
||||
"participating": "भाग लेने वाले",
|
||||
"@participating": {},
|
||||
"repositories": "रेपोसिटोरिएस",
|
||||
"@repositories": {},
|
||||
"unfollow": "अनफ़ॉलो",
|
||||
"@unfollow": {},
|
||||
"follow": "फ़ोल्लोव",
|
||||
"@follow": {},
|
||||
"stars": "स्टार्स",
|
||||
"@stars": {},
|
||||
"followers": "अनुयायियों",
|
||||
"@followers": {},
|
||||
"following": "फोल्लोविंग",
|
||||
"@following": {},
|
||||
"events": "इवेंट्स",
|
||||
"@events": {},
|
||||
"gists": "गिस्ट्स",
|
||||
"@gists": {},
|
||||
"organizations": "संगठन",
|
||||
"@organizations": {},
|
||||
"members": "संगठन",
|
||||
"@members": {},
|
||||
"popularRepositories": "प्रसिद्ध रेपोसिटोरिएस",
|
||||
"@popularRepositories": {},
|
||||
"pinnedRepositories": "पिन्नेद रेपोसिटोरिएस",
|
||||
"@pinnedRepositories": {},
|
||||
"settings": "सेटिंग्स",
|
||||
"@settings": {},
|
||||
"system": "सिस्टम",
|
||||
"@system": {},
|
||||
"githubStatus": "गिटहब स्टेटस",
|
||||
"@githubStatus": {},
|
||||
"reviewPermissions": "अनुमति की समीक्षा करें",
|
||||
"@reviewPermissions": {},
|
||||
"gitlabStatus": "गितलब स्टेटस",
|
||||
"@gitlabStatus": {},
|
||||
"giteaStatus": "गीते स्टेटस",
|
||||
"@giteaStatus": {},
|
||||
"switchAccounts": "खाते बदलें",
|
||||
"@switchAccounts": {},
|
||||
"brightness": "द्य्रुति",
|
||||
"@brightness": {},
|
||||
"followSystem": "सिस्टम का पालन करें",
|
||||
"@followSystem": {},
|
||||
"light": "प्रकाश मोड",
|
||||
"@light": {},
|
||||
"dark": "अंधेरा मोड",
|
||||
"@dark": {},
|
||||
"scaffoldTheme": "स्कैफफोल्ड थीम",
|
||||
"@scaffoldTheme": {},
|
||||
"cupertino": "क्यूपर्टिनो थीम",
|
||||
"@cupertino": {},
|
||||
"material": "मटेरियल थीम",
|
||||
"@material": {},
|
||||
"codeTheme": "कोड थीम",
|
||||
"@codeTheme": {},
|
||||
"markdownRenderEngine": "मार्कडौं रेंडर इंजन",
|
||||
"@markdownRenderEngine": {},
|
||||
"flutter": "फ्लटर",
|
||||
"@flutter": {},
|
||||
"webview": "वेब्वयेव",
|
||||
"@webview": {},
|
||||
"feedback": "फीडबैक",
|
||||
"@feedback": {},
|
||||
"submitAnIssue": "एक मुद्दा प्रस्तुत करें",
|
||||
"@submitAnIssue": {},
|
||||
"rateThisApp": "इस ऐप्लिकेशन को रेट करे",
|
||||
"@rateThisApp": {},
|
||||
"email": "ईमेल",
|
||||
"@email": {},
|
||||
"about": "एप्लिकेशन के बारे में",
|
||||
"@about": {},
|
||||
"version": "एप्लिकेशन वेरीज़न",
|
||||
"@version": {},
|
||||
"sourceCode": "एप्लिकेशन स्रोत कोड",
|
||||
"@sourceCode": {},
|
||||
"ignoringWatchState": "अनदेखी",
|
||||
"@ignoringWatchState": {},
|
||||
"repository": "रिपॉजिटरी",
|
||||
"@repository": {},
|
||||
"repositoryActions": "रिपॉजिटरी कार्रवाई",
|
||||
"@repositoryActions": {},
|
||||
"projects": "परियोजनाओं",
|
||||
"@projects": {},
|
||||
"releases": "रेलसेस",
|
||||
"@releases": {},
|
||||
"watchers": "नजर रखने वालों",
|
||||
"@watchers": {},
|
||||
"forks": "फोर्क्स",
|
||||
"@forks": {},
|
||||
"issues": "मुद्दे",
|
||||
"@issues": {},
|
||||
"pullRequests": "पुल्ल रिक्वेस्ट्स",
|
||||
"@pullRequests": {},
|
||||
"commits": "कमिटस",
|
||||
"@commits": {},
|
||||
"branches": "ब्रांच",
|
||||
"@branches": {},
|
||||
"contributors": "योगदानकर्ताओं",
|
||||
"@contributors": {},
|
||||
"unread": "अपठित",
|
||||
"@unread": {},
|
||||
"all": "सब",
|
||||
"@all": {},
|
||||
"developers": "डेवेलपर्स",
|
||||
"@developers": {},
|
||||
"explore": "अन्वेषण",
|
||||
"@explore": {},
|
||||
"teams": "टीमों",
|
||||
"@teams": {},
|
||||
"file": "फ़ाइल",
|
||||
"@file": {},
|
||||
"files": "फ़ाइलें",
|
||||
"@files": {},
|
||||
"actions": "कार्रवाई",
|
||||
"@actions": {},
|
||||
"groups": "समूहों",
|
||||
"@groups": {},
|
||||
"mergeRequests": "मर्ज निवेदन",
|
||||
"@mergeRequests": {},
|
||||
"activity": "गतिविधि",
|
||||
"@activity": {},
|
||||
"project": "परियोजना",
|
||||
"@project": {},
|
||||
"selectAccount": "खाता चुनें",
|
||||
"@selectAccount": {},
|
||||
"removeAccount": "खाता हटाएं",
|
||||
"somethingBadHappens": "त्रुटि हुई है: ",
|
||||
"@removeAccount": {},
|
||||
"somethingBadHappens": "त्रुटि हुई है:",
|
||||
"@somethingBadHappens": {},
|
||||
"githubAccount": "गिटहब खाता",
|
||||
"permissionRequiredMessage": "गिट्टूच के लीये इन अनुमतियों की आवश्यकता है",
|
||||
"@githubAccount": {},
|
||||
"permissionRequiredMessage": "गिट्टूच को इन अनुमतियों की आवश्यकता है",
|
||||
"@permissionRequiredMessage": {},
|
||||
"notFoundMessage": "नहीं मिला",
|
||||
"notFoundTextDisplay": "यह पृष्ठ कार्यान्वित नहीं है",
|
||||
"gitlabAccount": "गितलब खाता",
|
||||
"@notFoundMessage": {},
|
||||
"notFoundTextDisplay": "ओह, यह पेज अभी तक लागू नहीं किया गया है।",
|
||||
"@notFoundTextDisplay": {},
|
||||
"gitlabAccount": "गितलैब खाता",
|
||||
"@gitlabAccount": {},
|
||||
"bitbucketAccount": "बीटबुकेत खाता",
|
||||
"@bitbucketAccount": {},
|
||||
"giteaAccount": "गीते खाता",
|
||||
"longPressToRemoveAccount": "खाता हटाने के लिए लंबी प्रेस",
|
||||
"giteeAccount": "जीती खाता",
|
||||
"@giteaAccount": {},
|
||||
"longPressToRemoveAccount": "खाता हटाने के लिए लंबा प्रेस",
|
||||
"@longPressToRemoveAccount": {},
|
||||
"giteeAccount": "जीटी खाता",
|
||||
"@giteeAccount": {},
|
||||
"user": "उपयोगकर्ता",
|
||||
"@user": {},
|
||||
"group": "समूह",
|
||||
"@group": {},
|
||||
"issue": "मुद्दा",
|
||||
"@issue": {},
|
||||
"code": "कोड",
|
||||
"@code": {},
|
||||
"projectActions": "परियोजना की कार्रवाई",
|
||||
"@projectActions": {},
|
||||
"syntaxHighlighting": "सिंटेक्स हाइलाइटिंग",
|
||||
"@syntaxHighlighting": {},
|
||||
"fontFamily": "फॉण्ट परिवार",
|
||||
"@fontFamily": {},
|
||||
"fontSize": "फॉण्ट आकार",
|
||||
"fontStyle": "फॉण्ट प्रकार"
|
||||
"@fontSize": {},
|
||||
"fontStyle": "फॉण्ट प्रकार",
|
||||
"@fontStyle": {}
|
||||
}
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
{}
|
|
@ -0,0 +1,350 @@
|
|||
{
|
||||
"fontStyle": "GAYA FONT",
|
||||
"@fontStyle": {
|
||||
"description": "font style"
|
||||
},
|
||||
"fontSize": "Ukutan Font",
|
||||
"@fontSize": {
|
||||
"description": "font size"
|
||||
},
|
||||
"fontFamily": "Keluarga Font",
|
||||
"@fontFamily": {
|
||||
"description": "Font Family"
|
||||
},
|
||||
"syntaxHighlighting": "PENYOROTAN SINTAKS",
|
||||
"@syntaxHighlighting": {
|
||||
"description": "Syntax Highlighting"
|
||||
},
|
||||
"code": "Kode",
|
||||
"@code": {
|
||||
"description": "Code"
|
||||
},
|
||||
"issue": "Isu",
|
||||
"@issue": {
|
||||
"description": "issue"
|
||||
},
|
||||
"group": "Grup",
|
||||
"@group": {
|
||||
"description": "group"
|
||||
},
|
||||
"user": "Pengguna",
|
||||
"@user": {
|
||||
"description": "user"
|
||||
},
|
||||
"giteeAccount": "Akun Gitee",
|
||||
"@giteeAccount": {
|
||||
"description": "Gitee Account"
|
||||
},
|
||||
"giteaAccount": "Akun Gitea",
|
||||
"@giteaAccount": {
|
||||
"description": "Gitea Account"
|
||||
},
|
||||
"longPressToRemoveAccount": "Tekan dan tahan untuk menghapus akun",
|
||||
"@longPressToRemoveAccount": {
|
||||
"description": "Long Press to remove account"
|
||||
},
|
||||
"bitbucketAccount": "Akun Bitbucket",
|
||||
"@bitbucketAccount": {
|
||||
"description": "Bitbucket Account"
|
||||
},
|
||||
"gitlabAccount": "Akun GitLab",
|
||||
"@gitlabAccount": {
|
||||
"description": "Gitlab Account"
|
||||
},
|
||||
"notFoundTextDisplay": "Ups, halaman ini belum diimplementasikan.",
|
||||
"@notFoundTextDisplay": {
|
||||
"description": "Not found error message"
|
||||
},
|
||||
"notFoundMessage": "Tak Ditemukan",
|
||||
"@notFoundMessage": {
|
||||
"description": "Not found page header"
|
||||
},
|
||||
"permissionRequiredMessage": "GitTouch membutuhkan izin berikut",
|
||||
"@permissionRequiredMessage": {
|
||||
"description": "Permission Required Message"
|
||||
},
|
||||
"githubAccount": "Akun GitHub",
|
||||
"@githubAccount": {
|
||||
"description": "Gitea Account"
|
||||
},
|
||||
"somethingBadHappens": "Sesuatu yang buruk terjadi:",
|
||||
"@somethingBadHappens": {
|
||||
"description": "error message"
|
||||
},
|
||||
"removeAccount": "Hapus akun",
|
||||
"@removeAccount": {
|
||||
"description": "remove account"
|
||||
},
|
||||
"selectAccount": "Pilih akun",
|
||||
"@selectAccount": {
|
||||
"description": "select account message"
|
||||
},
|
||||
"project": "Proyek",
|
||||
"@project": {
|
||||
"description": "project"
|
||||
},
|
||||
"activity": "Aktivitas",
|
||||
"@activity": {
|
||||
"description": "activity"
|
||||
},
|
||||
"mergeRequests": "Merge Request",
|
||||
"@mergeRequests": {
|
||||
"description": "Merge request"
|
||||
},
|
||||
"groups": "Grup",
|
||||
"@groups": {
|
||||
"description": "groups"
|
||||
},
|
||||
"actions": "Aksi",
|
||||
"@actions": {
|
||||
"description": "actions"
|
||||
},
|
||||
"files": "Berkas",
|
||||
"@files": {
|
||||
"description": "file plural"
|
||||
},
|
||||
"file": "Berkas",
|
||||
"@file": {
|
||||
"description": "file"
|
||||
},
|
||||
"teams": "Tim",
|
||||
"@teams": {
|
||||
"description": "teams"
|
||||
},
|
||||
"explore": "Jelajah",
|
||||
"@explore": {
|
||||
"description": "explore"
|
||||
},
|
||||
"developers": "Pengembang",
|
||||
"@developers": {
|
||||
"description": "developers"
|
||||
},
|
||||
"all": "Semua",
|
||||
"@all": {
|
||||
"description": "all"
|
||||
},
|
||||
"unread": "Belum dibaca",
|
||||
"@unread": {
|
||||
"description": "unread"
|
||||
},
|
||||
"contributors": "Kontributor",
|
||||
"@contributors": {
|
||||
"description": "contributors"
|
||||
},
|
||||
"projectActions": "Aksi Proyek",
|
||||
"@projectActions": {
|
||||
"description": "Project Actions"
|
||||
},
|
||||
"commits": "Commit",
|
||||
"@commits": {
|
||||
"description": "Commits"
|
||||
},
|
||||
"branches": "Branch",
|
||||
"@branches": {
|
||||
"description": "branches"
|
||||
},
|
||||
"pullRequests": "Pull request",
|
||||
"@pullRequests": {
|
||||
"description": "Pull Requests"
|
||||
},
|
||||
"issues": "Isu",
|
||||
"@issues": {
|
||||
"description": "issues"
|
||||
},
|
||||
"forks": "Fork",
|
||||
"@forks": {
|
||||
"description": "forks"
|
||||
},
|
||||
"watchers": "Pengamat",
|
||||
"@watchers": {
|
||||
"description": "watchers"
|
||||
},
|
||||
"releases": "Rilisan",
|
||||
"@releases": {
|
||||
"description": "releases"
|
||||
},
|
||||
"projects": "Proyek",
|
||||
"@projects": {
|
||||
"description": "projects"
|
||||
},
|
||||
"repositoryActions": "Aksi Repositori",
|
||||
"@repositoryActions": {
|
||||
"description": "Repository Actions"
|
||||
},
|
||||
"repository": "Repositori",
|
||||
"@repository": {
|
||||
"description": "Repository screen title"
|
||||
},
|
||||
"sourceCode": "Kode Sumber",
|
||||
"@sourceCode": {
|
||||
"description": "source code for app"
|
||||
},
|
||||
"version": "Versi",
|
||||
"@version": {
|
||||
"description": "app version"
|
||||
},
|
||||
"about": "tentang",
|
||||
"@about": {
|
||||
"description": "about section"
|
||||
},
|
||||
"email": "Surel",
|
||||
"@email": {
|
||||
"description": "Email to report issues"
|
||||
},
|
||||
"rateThisApp": "Nilai Aplikasi Ini",
|
||||
"@rateThisApp": {
|
||||
"description": "rate the app"
|
||||
},
|
||||
"submitAnIssue": "Kirimkan isu",
|
||||
"@submitAnIssue": {
|
||||
"description": "submit issue for app"
|
||||
},
|
||||
"feedback": "umpan balik",
|
||||
"@feedback": {
|
||||
"description": "provide feedback"
|
||||
},
|
||||
"webview": "WebView",
|
||||
"@webview": {
|
||||
"description": "render webview for markdown"
|
||||
},
|
||||
"flutter": "Flutter",
|
||||
"@flutter": {
|
||||
"description": "render flutter for markdown"
|
||||
},
|
||||
"markdownRenderEngine": "Mesin Render Markdown",
|
||||
"@markdownRenderEngine": {
|
||||
"description": "flutter or webview rendering for markdown"
|
||||
},
|
||||
"codeTheme": "Tema Kode",
|
||||
"@codeTheme": {
|
||||
"description": "code theme"
|
||||
},
|
||||
"material": "Material",
|
||||
"@material": {
|
||||
"description": "Material scaffold theme"
|
||||
},
|
||||
"cupertino": "Cupertino",
|
||||
"@cupertino": {
|
||||
"description": "Cupertino scaffold theme"
|
||||
},
|
||||
"scaffoldTheme": "Tema Scaffold",
|
||||
"@scaffoldTheme": {
|
||||
"description": "Kind of theme - cupertino or material"
|
||||
},
|
||||
"dark": "Gelap",
|
||||
"@dark": {
|
||||
"description": "dark mode"
|
||||
},
|
||||
"light": "Terang",
|
||||
"@light": {
|
||||
"description": "light mode"
|
||||
},
|
||||
"followSystem": "Ikuti Sistem",
|
||||
"@followSystem": {
|
||||
"description": "follow systems setting"
|
||||
},
|
||||
"brightness": "Kecerahan",
|
||||
"@brightness": {
|
||||
"description": "brightness"
|
||||
},
|
||||
"switchAccounts": "Ganti akun",
|
||||
"@switchAccounts": {
|
||||
"description": "Switch accounts"
|
||||
},
|
||||
"giteaStatus": "Status Gitea",
|
||||
"@giteaStatus": {
|
||||
"description": "Gitea status"
|
||||
},
|
||||
"reviewPermissions": "Tinjau Izin",
|
||||
"@reviewPermissions": {
|
||||
"description": "review Permissions"
|
||||
},
|
||||
"trending": "Trending",
|
||||
"@trending": {
|
||||
"description": "Trending"
|
||||
},
|
||||
"gitlabStatus": "Status GitLab",
|
||||
"@gitlabStatus": {
|
||||
"description": "GitLab status"
|
||||
},
|
||||
"githubStatus": "Status GitHub",
|
||||
"@githubStatus": {
|
||||
"description": "github status"
|
||||
},
|
||||
"system": "sistem",
|
||||
"@system": {
|
||||
"description": "system"
|
||||
},
|
||||
"settings": "Pengaturan",
|
||||
"@settings": {
|
||||
"description": "settings"
|
||||
},
|
||||
"pinnedRepositories": "repositori yang disematkan",
|
||||
"@pinnedRepositories": {
|
||||
"description": "pinned repositories"
|
||||
},
|
||||
"popularRepositories": "repositori populer",
|
||||
"@popularRepositories": {
|
||||
"description": "popular repositories"
|
||||
},
|
||||
"members": "Anggota",
|
||||
"@members": {
|
||||
"description": "members of an organization"
|
||||
},
|
||||
"organizations": "Organisasi",
|
||||
"@organizations": {
|
||||
"description": "organizations for a user"
|
||||
},
|
||||
"gists": "Gist",
|
||||
"@gists": {
|
||||
"description": "gists for a user"
|
||||
},
|
||||
"events": "Event",
|
||||
"@events": {
|
||||
"description": "events for a user"
|
||||
},
|
||||
"following": "Mengikuti",
|
||||
"@following": {
|
||||
"description": "people followed by a person"
|
||||
},
|
||||
"followers": "Pengikut",
|
||||
"@followers": {
|
||||
"description": "followers for a person"
|
||||
},
|
||||
"stars": "Bintang",
|
||||
"@stars": {
|
||||
"description": "stars on a repo"
|
||||
},
|
||||
"follow": "Ikuti",
|
||||
"@follow": {
|
||||
"description": "follow someone"
|
||||
},
|
||||
"unfollow": "Batal mengikuti",
|
||||
"@unfollow": {
|
||||
"description": "unfollow someone"
|
||||
},
|
||||
"repositories": "Repositori",
|
||||
"@repositories": {
|
||||
"description": "repository text"
|
||||
},
|
||||
"participating": "Partisipasi",
|
||||
"@participating": {
|
||||
"description": "The participating Tab"
|
||||
},
|
||||
"me": "Saya",
|
||||
"@me": {
|
||||
"description": "The Me tab"
|
||||
},
|
||||
"search": "Cari",
|
||||
"@search": {
|
||||
"description": "The Search tab"
|
||||
},
|
||||
"notification": "Notifikasi",
|
||||
"@notification": {
|
||||
"description": "The Notification tab"
|
||||
},
|
||||
"news": "Berita",
|
||||
"@news": {
|
||||
"description": "The News tab"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,350 @@
|
|||
{
|
||||
"fontStyle": "フォントスタイル",
|
||||
"@fontStyle": {
|
||||
"description": "font style"
|
||||
},
|
||||
"fontSize": "文字サイズ",
|
||||
"@fontSize": {
|
||||
"description": "font size"
|
||||
},
|
||||
"fontFamily": "フォントファミリ",
|
||||
"@fontFamily": {
|
||||
"description": "Font Family"
|
||||
},
|
||||
"syntaxHighlighting": "シンタックスハイライト",
|
||||
"@syntaxHighlighting": {
|
||||
"description": "Syntax Highlighting"
|
||||
},
|
||||
"projectActions": "プロジェクトアクション",
|
||||
"@projectActions": {
|
||||
"description": "Project Actions"
|
||||
},
|
||||
"code": "コード",
|
||||
"@code": {
|
||||
"description": "Code"
|
||||
},
|
||||
"issue": "問題",
|
||||
"@issue": {
|
||||
"description": "issue"
|
||||
},
|
||||
"group": "グループ",
|
||||
"@group": {
|
||||
"description": "group"
|
||||
},
|
||||
"user": "ユーザー",
|
||||
"@user": {
|
||||
"description": "user"
|
||||
},
|
||||
"giteeAccount": "ギティーアカウント",
|
||||
"@giteeAccount": {
|
||||
"description": "Gitee Account"
|
||||
},
|
||||
"giteaAccount": "Giteaアカウント",
|
||||
"@giteaAccount": {
|
||||
"description": "Gitea Account"
|
||||
},
|
||||
"longPressToRemoveAccount": "長押しでアカウントを削除",
|
||||
"@longPressToRemoveAccount": {
|
||||
"description": "Long Press to remove account"
|
||||
},
|
||||
"bitbucketAccount": "ビットバケットアカウント",
|
||||
"@bitbucketAccount": {
|
||||
"description": "Bitbucket Account"
|
||||
},
|
||||
"gitlabAccount": "GitLab アカウント",
|
||||
"@gitlabAccount": {
|
||||
"description": "Gitlab Account"
|
||||
},
|
||||
"notFoundTextDisplay": "おっと、このページはまだ実装されていません。",
|
||||
"@notFoundTextDisplay": {
|
||||
"description": "Not found error message"
|
||||
},
|
||||
"notFoundMessage": "見つかりません",
|
||||
"@notFoundMessage": {
|
||||
"description": "Not found page header"
|
||||
},
|
||||
"permissionRequiredMessage": "GitTouch には以下のような権限が必要です。",
|
||||
"@permissionRequiredMessage": {
|
||||
"description": "Permission Required Message"
|
||||
},
|
||||
"githubAccount": "GitHub アカウント",
|
||||
"@githubAccount": {
|
||||
"description": "Gitea Account"
|
||||
},
|
||||
"somethingBadHappens": "何か悪いことが起こる。",
|
||||
"@somethingBadHappens": {
|
||||
"description": "error message"
|
||||
},
|
||||
"removeAccount": "アカウントの削除",
|
||||
"@removeAccount": {
|
||||
"description": "remove account"
|
||||
},
|
||||
"selectAccount": "アカウントを選択",
|
||||
"@selectAccount": {
|
||||
"description": "select account message"
|
||||
},
|
||||
"project": "プロジェクト",
|
||||
"@project": {
|
||||
"description": "project"
|
||||
},
|
||||
"activity": "活動内容",
|
||||
"@activity": {
|
||||
"description": "activity"
|
||||
},
|
||||
"mergeRequests": "マージ要求",
|
||||
"@mergeRequests": {
|
||||
"description": "Merge request"
|
||||
},
|
||||
"groups": "グループ",
|
||||
"@groups": {
|
||||
"description": "groups"
|
||||
},
|
||||
"actions": "アクション",
|
||||
"@actions": {
|
||||
"description": "actions"
|
||||
},
|
||||
"files": "ファイル",
|
||||
"@files": {
|
||||
"description": "file plural"
|
||||
},
|
||||
"file": "ファイル",
|
||||
"@file": {
|
||||
"description": "file"
|
||||
},
|
||||
"teams": "チーム紹介",
|
||||
"@teams": {
|
||||
"description": "teams"
|
||||
},
|
||||
"explore": "探索",
|
||||
"@explore": {
|
||||
"description": "explore"
|
||||
},
|
||||
"developers": "開発者",
|
||||
"@developers": {
|
||||
"description": "developers"
|
||||
},
|
||||
"all": "すべての",
|
||||
"@all": {
|
||||
"description": "all"
|
||||
},
|
||||
"unread": "未読",
|
||||
"@unread": {
|
||||
"description": "unread"
|
||||
},
|
||||
"contributors": "投稿者",
|
||||
"@contributors": {
|
||||
"description": "contributors"
|
||||
},
|
||||
"branches": "枝",
|
||||
"@branches": {
|
||||
"description": "branches"
|
||||
},
|
||||
"commits": "コミット",
|
||||
"@commits": {
|
||||
"description": "Commits"
|
||||
},
|
||||
"pullRequests": "プルリクエスト",
|
||||
"@pullRequests": {
|
||||
"description": "Pull Requests"
|
||||
},
|
||||
"issues": "問題点",
|
||||
"@issues": {
|
||||
"description": "issues"
|
||||
},
|
||||
"forks": "フォーク",
|
||||
"@forks": {
|
||||
"description": "forks"
|
||||
},
|
||||
"watchers": "ウォッチャー",
|
||||
"@watchers": {
|
||||
"description": "watchers"
|
||||
},
|
||||
"releases": "リリース",
|
||||
"@releases": {
|
||||
"description": "releases"
|
||||
},
|
||||
"projects": "プロジェクト",
|
||||
"@projects": {
|
||||
"description": "projects"
|
||||
},
|
||||
"repositoryActions": "リポジトリの操作",
|
||||
"@repositoryActions": {
|
||||
"description": "Repository Actions"
|
||||
},
|
||||
"repository": "リポジトリ",
|
||||
"@repository": {
|
||||
"description": "Repository screen title"
|
||||
},
|
||||
"sourceCode": "ソースコード",
|
||||
"@sourceCode": {
|
||||
"description": "source code for app"
|
||||
},
|
||||
"version": "バージョン",
|
||||
"@version": {
|
||||
"description": "app version"
|
||||
},
|
||||
"about": "ぐらい",
|
||||
"@about": {
|
||||
"description": "about section"
|
||||
},
|
||||
"email": "電子メール",
|
||||
"@email": {
|
||||
"description": "Email to report issues"
|
||||
},
|
||||
"rateThisApp": "このアプリを評価する",
|
||||
"@rateThisApp": {
|
||||
"description": "rate the app"
|
||||
},
|
||||
"submitAnIssue": "課題を提出する",
|
||||
"@submitAnIssue": {
|
||||
"description": "submit issue for app"
|
||||
},
|
||||
"feedback": "フィードバック",
|
||||
"@feedback": {
|
||||
"description": "provide feedback"
|
||||
},
|
||||
"webview": "ウェブビュー",
|
||||
"@webview": {
|
||||
"description": "render webview for markdown"
|
||||
},
|
||||
"flutter": "ひらひらと",
|
||||
"@flutter": {
|
||||
"description": "render flutter for markdown"
|
||||
},
|
||||
"markdownRenderEngine": "マークダウンレンダリングエンジン",
|
||||
"@markdownRenderEngine": {
|
||||
"description": "flutter or webview rendering for markdown"
|
||||
},
|
||||
"codeTheme": "コードテーマ",
|
||||
"@codeTheme": {
|
||||
"description": "code theme"
|
||||
},
|
||||
"material": "材料",
|
||||
"@material": {
|
||||
"description": "Material scaffold theme"
|
||||
},
|
||||
"cupertino": "クパチーノ",
|
||||
"@cupertino": {
|
||||
"description": "Cupertino scaffold theme"
|
||||
},
|
||||
"scaffoldTheme": "足場のテーマ",
|
||||
"@scaffoldTheme": {
|
||||
"description": "Kind of theme - cupertino or material"
|
||||
},
|
||||
"dark": "暗い",
|
||||
"@dark": {
|
||||
"description": "dark mode"
|
||||
},
|
||||
"light": "灯り",
|
||||
"@light": {
|
||||
"description": "light mode"
|
||||
},
|
||||
"followSystem": "フォローシステム",
|
||||
"@followSystem": {
|
||||
"description": "follow systems setting"
|
||||
},
|
||||
"brightness": "明るさ",
|
||||
"@brightness": {
|
||||
"description": "brightness"
|
||||
},
|
||||
"switchAccounts": "アカウントの切り替え",
|
||||
"@switchAccounts": {
|
||||
"description": "Switch accounts"
|
||||
},
|
||||
"giteaStatus": "ギテアステータス",
|
||||
"@giteaStatus": {
|
||||
"description": "Gitea status"
|
||||
},
|
||||
"gitlabStatus": "GitLab のステータス",
|
||||
"@gitlabStatus": {
|
||||
"description": "GitLab status"
|
||||
},
|
||||
"reviewPermissions": "許可を確認する",
|
||||
"@reviewPermissions": {
|
||||
"description": "review Permissions"
|
||||
},
|
||||
"githubStatus": "GitHubのステータス",
|
||||
"@githubStatus": {
|
||||
"description": "github status"
|
||||
},
|
||||
"system": "系統",
|
||||
"@system": {
|
||||
"description": "system"
|
||||
},
|
||||
"settings": "設定",
|
||||
"@settings": {
|
||||
"description": "settings"
|
||||
},
|
||||
"pinnedRepositories": "ピン留めリポジトリ",
|
||||
"@pinnedRepositories": {
|
||||
"description": "pinned repositories"
|
||||
},
|
||||
"popularRepositories": "ポピュラーリポジトリ",
|
||||
"@popularRepositories": {
|
||||
"description": "popular repositories"
|
||||
},
|
||||
"members": "メンバー",
|
||||
"@members": {
|
||||
"description": "members of an organization"
|
||||
},
|
||||
"organizations": "組織",
|
||||
"@organizations": {
|
||||
"description": "organizations for a user"
|
||||
},
|
||||
"gists": "ジスト",
|
||||
"@gists": {
|
||||
"description": "gists for a user"
|
||||
},
|
||||
"events": "イベント情報",
|
||||
"@events": {
|
||||
"description": "events for a user"
|
||||
},
|
||||
"following": "続いて",
|
||||
"@following": {
|
||||
"description": "people followed by a person"
|
||||
},
|
||||
"followers": "フォロワー数",
|
||||
"@followers": {
|
||||
"description": "followers for a person"
|
||||
},
|
||||
"stars": "星",
|
||||
"@stars": {
|
||||
"description": "stars on a repo"
|
||||
},
|
||||
"follow": "フォロー",
|
||||
"@follow": {
|
||||
"description": "follow someone"
|
||||
},
|
||||
"unfollow": "アンフォロー",
|
||||
"@unfollow": {
|
||||
"description": "unfollow someone"
|
||||
},
|
||||
"repositories": "リポジトリ",
|
||||
"@repositories": {
|
||||
"description": "repository text"
|
||||
},
|
||||
"participating": "参加している",
|
||||
"@participating": {
|
||||
"description": "The participating Tab"
|
||||
},
|
||||
"me": "吾輩",
|
||||
"@me": {
|
||||
"description": "The Me tab"
|
||||
},
|
||||
"search": "検索",
|
||||
"@search": {
|
||||
"description": "The Search tab"
|
||||
},
|
||||
"trending": "トレンド",
|
||||
"@trending": {
|
||||
"description": "Trending"
|
||||
},
|
||||
"notification": "お知らせ",
|
||||
"@notification": {
|
||||
"description": "The Notification tab"
|
||||
},
|
||||
"news": "ニュース",
|
||||
"@news": {
|
||||
"description": "The News tab"
|
||||
}
|
||||
}
|
|
@ -1 +0,0 @@
|
|||
{}
|
|
@ -0,0 +1 @@
|
|||
intl_nb_NO.arb
|
|
@ -0,0 +1,350 @@
|
|||
{
|
||||
"projectActions": "Projectacties",
|
||||
"@projectActions": {
|
||||
"description": "Project Actions"
|
||||
},
|
||||
"code": "Code",
|
||||
"@code": {
|
||||
"description": "Code"
|
||||
},
|
||||
"issue": "Issue",
|
||||
"@issue": {
|
||||
"description": "issue"
|
||||
},
|
||||
"group": "Groep",
|
||||
"@group": {
|
||||
"description": "group"
|
||||
},
|
||||
"user": "Gebruiker",
|
||||
"@user": {
|
||||
"description": "user"
|
||||
},
|
||||
"giteeAccount": "Gitee-account",
|
||||
"@giteeAccount": {
|
||||
"description": "Gitee Account"
|
||||
},
|
||||
"giteaAccount": "Gitea-account",
|
||||
"@giteaAccount": {
|
||||
"description": "Gitea Account"
|
||||
},
|
||||
"longPressToRemoveAccount": "Houd ingedrukt om account te verwijderen",
|
||||
"@longPressToRemoveAccount": {
|
||||
"description": "Long Press to remove account"
|
||||
},
|
||||
"bitbucketAccount": "Bitbucket-account",
|
||||
"@bitbucketAccount": {
|
||||
"description": "Bitbucket Account"
|
||||
},
|
||||
"gitlabAccount": "GitLab-account",
|
||||
"@gitlabAccount": {
|
||||
"description": "Gitlab Account"
|
||||
},
|
||||
"notFoundTextDisplay": "Opes, deze pagina is nog niet geïmplementeerd.",
|
||||
"@notFoundTextDisplay": {
|
||||
"description": "Not found error message"
|
||||
},
|
||||
"notFoundMessage": "NIet gevonden",
|
||||
"@notFoundMessage": {
|
||||
"description": "Not found page header"
|
||||
},
|
||||
"permissionRequiredMessage": "GitTouch vereist de volgende rechten",
|
||||
"@permissionRequiredMessage": {
|
||||
"description": "Permission Required Message"
|
||||
},
|
||||
"githubAccount": "GitHub-account",
|
||||
"@githubAccount": {
|
||||
"description": "Gitea Account"
|
||||
},
|
||||
"somethingBadHappens": "Er iets ergs gebeurd:",
|
||||
"@somethingBadHappens": {
|
||||
"description": "error message"
|
||||
},
|
||||
"removeAccount": "Account verwijderen",
|
||||
"@removeAccount": {
|
||||
"description": "remove account"
|
||||
},
|
||||
"selectAccount": "Kies een account",
|
||||
"@selectAccount": {
|
||||
"description": "select account message"
|
||||
},
|
||||
"project": "Project",
|
||||
"@project": {
|
||||
"description": "project"
|
||||
},
|
||||
"activity": "Activiteit",
|
||||
"@activity": {
|
||||
"description": "activity"
|
||||
},
|
||||
"mergeRequests": "Samenvoegverzoeken",
|
||||
"@mergeRequests": {
|
||||
"description": "Merge request"
|
||||
},
|
||||
"groups": "Groepen",
|
||||
"@groups": {
|
||||
"description": "groups"
|
||||
},
|
||||
"actions": "Acties",
|
||||
"@actions": {
|
||||
"description": "actions"
|
||||
},
|
||||
"files": "Bestanden",
|
||||
"@files": {
|
||||
"description": "file plural"
|
||||
},
|
||||
"file": "Bestand",
|
||||
"@file": {
|
||||
"description": "file"
|
||||
},
|
||||
"teams": "Teams",
|
||||
"@teams": {
|
||||
"description": "teams"
|
||||
},
|
||||
"explore": "Verkennen",
|
||||
"@explore": {
|
||||
"description": "explore"
|
||||
},
|
||||
"developers": "Ontwikkelaars",
|
||||
"@developers": {
|
||||
"description": "developers"
|
||||
},
|
||||
"all": "Alles",
|
||||
"@all": {
|
||||
"description": "all"
|
||||
},
|
||||
"unread": "Ongelezen",
|
||||
"@unread": {
|
||||
"description": "unread"
|
||||
},
|
||||
"contributors": "Bijdragers",
|
||||
"@contributors": {
|
||||
"description": "contributors"
|
||||
},
|
||||
"branches": "Takken",
|
||||
"@branches": {
|
||||
"description": "branches"
|
||||
},
|
||||
"commits": "Commits",
|
||||
"@commits": {
|
||||
"description": "Commits"
|
||||
},
|
||||
"pullRequests": "Pull requests",
|
||||
"@pullRequests": {
|
||||
"description": "Pull Requests"
|
||||
},
|
||||
"issues": "Issues",
|
||||
"@issues": {
|
||||
"description": "issues"
|
||||
},
|
||||
"forks": "Afsplitsingen",
|
||||
"@forks": {
|
||||
"description": "forks"
|
||||
},
|
||||
"watchers": "Volgers",
|
||||
"@watchers": {
|
||||
"description": "watchers"
|
||||
},
|
||||
"releases": "Uitgaven",
|
||||
"@releases": {
|
||||
"description": "releases"
|
||||
},
|
||||
"projects": "Projecten",
|
||||
"@projects": {
|
||||
"description": "projects"
|
||||
},
|
||||
"repositoryActions": "Repo-acties",
|
||||
"@repositoryActions": {
|
||||
"description": "Repository Actions"
|
||||
},
|
||||
"repository": "Repo",
|
||||
"@repository": {
|
||||
"description": "Repository screen title"
|
||||
},
|
||||
"sourceCode": "Broncode",
|
||||
"@sourceCode": {
|
||||
"description": "source code for app"
|
||||
},
|
||||
"version": "Versie",
|
||||
"@version": {
|
||||
"description": "app version"
|
||||
},
|
||||
"fontStyle": "LETTERTYPESTIJL",
|
||||
"@fontStyle": {
|
||||
"description": "font style"
|
||||
},
|
||||
"fontSize": "Lettergrootte",
|
||||
"@fontSize": {
|
||||
"description": "font size"
|
||||
},
|
||||
"fontFamily": "Lettertype",
|
||||
"@fontFamily": {
|
||||
"description": "Font Family"
|
||||
},
|
||||
"syntaxHighlighting": "SYNTAXMARKERING",
|
||||
"@syntaxHighlighting": {
|
||||
"description": "Syntax Highlighting"
|
||||
},
|
||||
"about": "over",
|
||||
"@about": {
|
||||
"description": "about section"
|
||||
},
|
||||
"email": "E-mailadres",
|
||||
"@email": {
|
||||
"description": "Email to report issues"
|
||||
},
|
||||
"rateThisApp": "Beoordeel deze app",
|
||||
"@rateThisApp": {
|
||||
"description": "rate the app"
|
||||
},
|
||||
"submitAnIssue": "Issue openen",
|
||||
"@submitAnIssue": {
|
||||
"description": "submit issue for app"
|
||||
},
|
||||
"feedback": "feedback",
|
||||
"@feedback": {
|
||||
"description": "provide feedback"
|
||||
},
|
||||
"webview": "WebView",
|
||||
"@webview": {
|
||||
"description": "render webview for markdown"
|
||||
},
|
||||
"flutter": "Flutter",
|
||||
"@flutter": {
|
||||
"description": "render flutter for markdown"
|
||||
},
|
||||
"markdownRenderEngine": "Markdown-renderaandrijving",
|
||||
"@markdownRenderEngine": {
|
||||
"description": "flutter or webview rendering for markdown"
|
||||
},
|
||||
"codeTheme": "Codethema",
|
||||
"@codeTheme": {
|
||||
"description": "code theme"
|
||||
},
|
||||
"material": "Material",
|
||||
"@material": {
|
||||
"description": "Material scaffold theme"
|
||||
},
|
||||
"cupertino": "Cupertino",
|
||||
"@cupertino": {
|
||||
"description": "Cupertino scaffold theme"
|
||||
},
|
||||
"scaffoldTheme": "Scaffold-thema",
|
||||
"@scaffoldTheme": {
|
||||
"description": "Kind of theme - cupertino or material"
|
||||
},
|
||||
"dark": "Donker",
|
||||
"@dark": {
|
||||
"description": "dark mode"
|
||||
},
|
||||
"light": "Licht",
|
||||
"@light": {
|
||||
"description": "light mode"
|
||||
},
|
||||
"followSystem": "Systeemthema",
|
||||
"@followSystem": {
|
||||
"description": "follow systems setting"
|
||||
},
|
||||
"brightness": "Helherheid",
|
||||
"@brightness": {
|
||||
"description": "brightness"
|
||||
},
|
||||
"switchAccounts": "Ander account kiezen",
|
||||
"@switchAccounts": {
|
||||
"description": "Switch accounts"
|
||||
},
|
||||
"giteaStatus": "Gitea-status",
|
||||
"@giteaStatus": {
|
||||
"description": "Gitea status"
|
||||
},
|
||||
"gitlabStatus": "GitLab-status",
|
||||
"@gitlabStatus": {
|
||||
"description": "GitLab status"
|
||||
},
|
||||
"reviewPermissions": "Rechten bekijken",
|
||||
"@reviewPermissions": {
|
||||
"description": "review Permissions"
|
||||
},
|
||||
"githubStatus": "GitHub-status",
|
||||
"@githubStatus": {
|
||||
"description": "github status"
|
||||
},
|
||||
"system": "systeem",
|
||||
"@system": {
|
||||
"description": "system"
|
||||
},
|
||||
"settings": "Instellingen",
|
||||
"@settings": {
|
||||
"description": "settings"
|
||||
},
|
||||
"pinnedRepositories": "vastgemaakte repo's",
|
||||
"@pinnedRepositories": {
|
||||
"description": "pinned repositories"
|
||||
},
|
||||
"popularRepositories": "populaire repo's",
|
||||
"@popularRepositories": {
|
||||
"description": "popular repositories"
|
||||
},
|
||||
"members": "Leden",
|
||||
"@members": {
|
||||
"description": "members of an organization"
|
||||
},
|
||||
"organizations": "Organisaties",
|
||||
"@organizations": {
|
||||
"description": "organizations for a user"
|
||||
},
|
||||
"gists": "Gists",
|
||||
"@gists": {
|
||||
"description": "gists for a user"
|
||||
},
|
||||
"events": "Gebeurtenissen",
|
||||
"@events": {
|
||||
"description": "events for a user"
|
||||
},
|
||||
"following": "Volgend",
|
||||
"@following": {
|
||||
"description": "people followed by a person"
|
||||
},
|
||||
"followers": "Volgers",
|
||||
"@followers": {
|
||||
"description": "followers for a person"
|
||||
},
|
||||
"stars": "Favorieten",
|
||||
"@stars": {
|
||||
"description": "stars on a repo"
|
||||
},
|
||||
"follow": "Volgen",
|
||||
"@follow": {
|
||||
"description": "follow someone"
|
||||
},
|
||||
"unfollow": "Ontvolgen",
|
||||
"@unfollow": {
|
||||
"description": "unfollow someone"
|
||||
},
|
||||
"repositories": "Repo's",
|
||||
"@repositories": {
|
||||
"description": "repository text"
|
||||
},
|
||||
"participating": "Lid van",
|
||||
"@participating": {
|
||||
"description": "The participating Tab"
|
||||
},
|
||||
"me": "Ik",
|
||||
"@me": {
|
||||
"description": "The Me tab"
|
||||
},
|
||||
"search": "Zoeken",
|
||||
"@search": {
|
||||
"description": "The Search tab"
|
||||
},
|
||||
"trending": "Populair",
|
||||
"@trending": {
|
||||
"description": "Trending"
|
||||
},
|
||||
"notification": "Melding",
|
||||
"@notification": {
|
||||
"description": "The Notification tab"
|
||||
},
|
||||
"news": "Nieuws",
|
||||
"@news": {
|
||||
"description": "The News tab"
|
||||
}
|
||||
}
|
|
@ -1 +1,350 @@
|
|||
{}
|
||||
{
|
||||
"fontStyle": "FONT STYLE",
|
||||
"@fontStyle": {
|
||||
"description": "font style"
|
||||
},
|
||||
"fontSize": "Tamanho de letra",
|
||||
"@fontSize": {
|
||||
"description": "font size"
|
||||
},
|
||||
"fontFamily": "Família da Fonte",
|
||||
"@fontFamily": {
|
||||
"description": "Font Family"
|
||||
},
|
||||
"syntaxHighlighting": "REALCE DE SINTAXE",
|
||||
"@syntaxHighlighting": {
|
||||
"description": "Syntax Highlighting"
|
||||
},
|
||||
"projectActions": "Ações do Projeto",
|
||||
"@projectActions": {
|
||||
"description": "Project Actions"
|
||||
},
|
||||
"code": "Código",
|
||||
"@code": {
|
||||
"description": "Code"
|
||||
},
|
||||
"issue": "Edição",
|
||||
"@issue": {
|
||||
"description": "issue"
|
||||
},
|
||||
"group": "Grupo",
|
||||
"@group": {
|
||||
"description": "group"
|
||||
},
|
||||
"user": "Utilizador",
|
||||
"@user": {
|
||||
"description": "user"
|
||||
},
|
||||
"giteeAccount": "Conta Gitee",
|
||||
"@giteeAccount": {
|
||||
"description": "Gitee Account"
|
||||
},
|
||||
"giteaAccount": "Conta Gitea",
|
||||
"@giteaAccount": {
|
||||
"description": "Gitea Account"
|
||||
},
|
||||
"longPressToRemoveAccount": "Long Press para remover conta",
|
||||
"@longPressToRemoveAccount": {
|
||||
"description": "Long Press to remove account"
|
||||
},
|
||||
"bitbucketAccount": "Conta Bitbucket",
|
||||
"@bitbucketAccount": {
|
||||
"description": "Bitbucket Account"
|
||||
},
|
||||
"gitlabAccount": "Conta no GitLab",
|
||||
"@gitlabAccount": {
|
||||
"description": "Gitlab Account"
|
||||
},
|
||||
"notFoundTextDisplay": "Oops, esta página ainda não está implementada.",
|
||||
"@notFoundTextDisplay": {
|
||||
"description": "Not found error message"
|
||||
},
|
||||
"notFoundMessage": "Não Encontrado",
|
||||
"@notFoundMessage": {
|
||||
"description": "Not found page header"
|
||||
},
|
||||
"permissionRequiredMessage": "GitTouch precisa destas permissões",
|
||||
"@permissionRequiredMessage": {
|
||||
"description": "Permission Required Message"
|
||||
},
|
||||
"githubAccount": "Conta GitHub",
|
||||
"@githubAccount": {
|
||||
"description": "Gitea Account"
|
||||
},
|
||||
"somethingBadHappens": "Algo de mau acontece:",
|
||||
"@somethingBadHappens": {
|
||||
"description": "error message"
|
||||
},
|
||||
"removeAccount": "Remover conta",
|
||||
"@removeAccount": {
|
||||
"description": "remove account"
|
||||
},
|
||||
"selectAccount": "Selecione a conta",
|
||||
"@selectAccount": {
|
||||
"description": "select account message"
|
||||
},
|
||||
"project": "Projeto",
|
||||
"@project": {
|
||||
"description": "project"
|
||||
},
|
||||
"activity": "Atividade",
|
||||
"@activity": {
|
||||
"description": "activity"
|
||||
},
|
||||
"mergeRequests": "Pedidos de fusão",
|
||||
"@mergeRequests": {
|
||||
"description": "Merge request"
|
||||
},
|
||||
"groups": "Grupos",
|
||||
"@groups": {
|
||||
"description": "groups"
|
||||
},
|
||||
"actions": "Ações",
|
||||
"@actions": {
|
||||
"description": "actions"
|
||||
},
|
||||
"files": "Arquivos",
|
||||
"@files": {
|
||||
"description": "file plural"
|
||||
},
|
||||
"file": "Arquivo",
|
||||
"@file": {
|
||||
"description": "file"
|
||||
},
|
||||
"teams": "Equipes",
|
||||
"@teams": {
|
||||
"description": "teams"
|
||||
},
|
||||
"explore": "Explore",
|
||||
"@explore": {
|
||||
"description": "explore"
|
||||
},
|
||||
"developers": "Desenvolvedores",
|
||||
"@developers": {
|
||||
"description": "developers"
|
||||
},
|
||||
"all": "Todos",
|
||||
"@all": {
|
||||
"description": "all"
|
||||
},
|
||||
"unread": "Não lido",
|
||||
"@unread": {
|
||||
"description": "unread"
|
||||
},
|
||||
"contributors": "Contribuintes",
|
||||
"@contributors": {
|
||||
"description": "contributors"
|
||||
},
|
||||
"branches": "Filiais",
|
||||
"@branches": {
|
||||
"description": "branches"
|
||||
},
|
||||
"commits": "Compromissos",
|
||||
"@commits": {
|
||||
"description": "Commits"
|
||||
},
|
||||
"pullRequests": "Pedidos de retirada",
|
||||
"@pullRequests": {
|
||||
"description": "Pull Requests"
|
||||
},
|
||||
"issues": "Edições",
|
||||
"@issues": {
|
||||
"description": "issues"
|
||||
},
|
||||
"forks": "Garfos",
|
||||
"@forks": {
|
||||
"description": "forks"
|
||||
},
|
||||
"watchers": "Observadores",
|
||||
"@watchers": {
|
||||
"description": "watchers"
|
||||
},
|
||||
"releases": "Lançamentos",
|
||||
"@releases": {
|
||||
"description": "releases"
|
||||
},
|
||||
"projects": "Projetos",
|
||||
"@projects": {
|
||||
"description": "projects"
|
||||
},
|
||||
"repositoryActions": "Ações Repositórias",
|
||||
"@repositoryActions": {
|
||||
"description": "Repository Actions"
|
||||
},
|
||||
"repository": "Repositório",
|
||||
"@repository": {
|
||||
"description": "Repository screen title"
|
||||
},
|
||||
"sourceCode": "Código fonte",
|
||||
"@sourceCode": {
|
||||
"description": "source code for app"
|
||||
},
|
||||
"version": "Versão",
|
||||
"@version": {
|
||||
"description": "app version"
|
||||
},
|
||||
"about": "sobre",
|
||||
"@about": {
|
||||
"description": "about section"
|
||||
},
|
||||
"email": "Email",
|
||||
"@email": {
|
||||
"description": "Email to report issues"
|
||||
},
|
||||
"rateThisApp": "Avalie este aplicativo",
|
||||
"@rateThisApp": {
|
||||
"description": "rate the app"
|
||||
},
|
||||
"submitAnIssue": "Submeter um problema",
|
||||
"@submitAnIssue": {
|
||||
"description": "submit issue for app"
|
||||
},
|
||||
"feedback": "comentários",
|
||||
"@feedback": {
|
||||
"description": "provide feedback"
|
||||
},
|
||||
"webview": "WebView",
|
||||
"@webview": {
|
||||
"description": "render webview for markdown"
|
||||
},
|
||||
"flutter": "Flutter",
|
||||
"@flutter": {
|
||||
"description": "render flutter for markdown"
|
||||
},
|
||||
"markdownRenderEngine": "Motor Markdown Render",
|
||||
"@markdownRenderEngine": {
|
||||
"description": "flutter or webview rendering for markdown"
|
||||
},
|
||||
"codeTheme": "Tema do Código",
|
||||
"@codeTheme": {
|
||||
"description": "code theme"
|
||||
},
|
||||
"material": "Material",
|
||||
"@material": {
|
||||
"description": "Material scaffold theme"
|
||||
},
|
||||
"cupertino": "Cupertino",
|
||||
"@cupertino": {
|
||||
"description": "Cupertino scaffold theme"
|
||||
},
|
||||
"scaffoldTheme": "Tema do Andaime",
|
||||
"@scaffoldTheme": {
|
||||
"description": "Kind of theme - cupertino or material"
|
||||
},
|
||||
"dark": "Escuro",
|
||||
"@dark": {
|
||||
"description": "dark mode"
|
||||
},
|
||||
"light": "Luz",
|
||||
"@light": {
|
||||
"description": "light mode"
|
||||
},
|
||||
"followSystem": "Sistema de acompanhamento",
|
||||
"@followSystem": {
|
||||
"description": "follow systems setting"
|
||||
},
|
||||
"brightness": "Brilho",
|
||||
"@brightness": {
|
||||
"description": "brightness"
|
||||
},
|
||||
"switchAccounts": "mudar de conta",
|
||||
"@switchAccounts": {
|
||||
"description": "Switch accounts"
|
||||
},
|
||||
"giteaStatus": "estatuto de Gitea",
|
||||
"@giteaStatus": {
|
||||
"description": "Gitea status"
|
||||
},
|
||||
"gitlabStatus": "Estado do GitLab",
|
||||
"@gitlabStatus": {
|
||||
"description": "GitLab status"
|
||||
},
|
||||
"reviewPermissions": "Permissões de revisão",
|
||||
"@reviewPermissions": {
|
||||
"description": "review Permissions"
|
||||
},
|
||||
"githubStatus": "Estado do GitHub",
|
||||
"@githubStatus": {
|
||||
"description": "github status"
|
||||
},
|
||||
"system": "sistema",
|
||||
"@system": {
|
||||
"description": "system"
|
||||
},
|
||||
"settings": "Configurações",
|
||||
"@settings": {
|
||||
"description": "settings"
|
||||
},
|
||||
"pinnedRepositories": "repositórios afixados",
|
||||
"@pinnedRepositories": {
|
||||
"description": "pinned repositories"
|
||||
},
|
||||
"popularRepositories": "repositórios populares",
|
||||
"@popularRepositories": {
|
||||
"description": "popular repositories"
|
||||
},
|
||||
"members": "Membros",
|
||||
"@members": {
|
||||
"description": "members of an organization"
|
||||
},
|
||||
"organizations": "Organizações",
|
||||
"@organizations": {
|
||||
"description": "organizations for a user"
|
||||
},
|
||||
"gists": "Síntese",
|
||||
"@gists": {
|
||||
"description": "gists for a user"
|
||||
},
|
||||
"events": "Eventos",
|
||||
"@events": {
|
||||
"description": "events for a user"
|
||||
},
|
||||
"following": "A seguir",
|
||||
"@following": {
|
||||
"description": "people followed by a person"
|
||||
},
|
||||
"followers": "Seguidores",
|
||||
"@followers": {
|
||||
"description": "followers for a person"
|
||||
},
|
||||
"stars": "Estrelas",
|
||||
"@stars": {
|
||||
"description": "stars on a repo"
|
||||
},
|
||||
"follow": "Siga",
|
||||
"@follow": {
|
||||
"description": "follow someone"
|
||||
},
|
||||
"unfollow": "Unfollow",
|
||||
"@unfollow": {
|
||||
"description": "unfollow someone"
|
||||
},
|
||||
"repositories": "Repositórios",
|
||||
"@repositories": {
|
||||
"description": "repository text"
|
||||
},
|
||||
"participating": "Participando",
|
||||
"@participating": {
|
||||
"description": "The participating Tab"
|
||||
},
|
||||
"me": "Eu",
|
||||
"@me": {
|
||||
"description": "The Me tab"
|
||||
},
|
||||
"search": "Pesquisa",
|
||||
"@search": {
|
||||
"description": "The Search tab"
|
||||
},
|
||||
"trending": "Tendência",
|
||||
"@trending": {
|
||||
"description": "Trending"
|
||||
},
|
||||
"notification": "Notificação",
|
||||
"@notification": {
|
||||
"description": "The Notification tab"
|
||||
},
|
||||
"news": "Notícias",
|
||||
"@news": {
|
||||
"description": "The News tab"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,10 @@
|
|||
{
|
||||
"notification": "දැනුම්දීම",
|
||||
"@notification": {
|
||||
"description": "The Notification tab"
|
||||
},
|
||||
"news": "පුවත්",
|
||||
"@news": {
|
||||
"description": "The News tab"
|
||||
}
|
||||
}
|
|
@ -1 +0,0 @@
|
|||
{}
|
|
@ -0,0 +1 @@
|
|||
intl_zh_Hans.arb
|
|
@ -123,7 +123,7 @@
|
|||
"@watchers": {
|
||||
"description": "watchers"
|
||||
},
|
||||
"projects": "",
|
||||
"projects": "项目介绍",
|
||||
"@projects": {
|
||||
"description": "projects"
|
||||
},
|
||||
|
@ -183,7 +183,7 @@
|
|||
"@followSystem": {
|
||||
"description": "follow systems setting"
|
||||
},
|
||||
"brightness": "外观",
|
||||
"brightness": "亮度",
|
||||
"@brightness": {
|
||||
"description": "brightness"
|
||||
},
|
||||
|
@ -199,7 +199,7 @@
|
|||
"@gitlabStatus": {
|
||||
"description": "GitLab status"
|
||||
},
|
||||
"githubStatus": "GitHub 服务状态",
|
||||
"githubStatus": "GitHub 系统状态",
|
||||
"@githubStatus": {
|
||||
"description": "github status"
|
||||
},
|
||||
|
@ -247,7 +247,7 @@
|
|||
"@repositories": {
|
||||
"description": "repository text"
|
||||
},
|
||||
"participating": "参与的",
|
||||
"participating": "参与",
|
||||
"@participating": {
|
||||
"description": "The participating Tab"
|
||||
},
|
||||
|
@ -266,5 +266,85 @@
|
|||
"notification": "通知",
|
||||
"@notification": {
|
||||
"description": "The Notification tab"
|
||||
},
|
||||
"projectActions": "项目操作",
|
||||
"@projectActions": {
|
||||
"description": "Project Actions"
|
||||
},
|
||||
"issue": "问题",
|
||||
"@issue": {
|
||||
"description": "issue"
|
||||
},
|
||||
"somethingBadHappens": "糟糕的事情发生了:",
|
||||
"@somethingBadHappens": {
|
||||
"description": "error message"
|
||||
},
|
||||
"mergeRequests": "合并请求",
|
||||
"@mergeRequests": {
|
||||
"description": "Merge request"
|
||||
},
|
||||
"branches": "分支",
|
||||
"@branches": {
|
||||
"description": "branches"
|
||||
},
|
||||
"commits": "提交",
|
||||
"@commits": {
|
||||
"description": "Commits"
|
||||
},
|
||||
"pullRequests": "拉取请求",
|
||||
"@pullRequests": {
|
||||
"description": "Pull Requests"
|
||||
},
|
||||
"issues": "问题",
|
||||
"@issues": {
|
||||
"description": "issues"
|
||||
},
|
||||
"forks": "分叉",
|
||||
"@forks": {
|
||||
"description": "forks"
|
||||
},
|
||||
"releases": "发布",
|
||||
"@releases": {
|
||||
"description": "releases"
|
||||
},
|
||||
"webview": "WebView",
|
||||
"@webview": {
|
||||
"description": "render webview for markdown"
|
||||
},
|
||||
"flutter": "Flutter",
|
||||
"@flutter": {
|
||||
"description": "render flutter for markdown"
|
||||
},
|
||||
"material": "材质设计",
|
||||
"@material": {
|
||||
"description": "Material scaffold theme"
|
||||
},
|
||||
"cupertino": "Cupertino",
|
||||
"@cupertino": {
|
||||
"description": "Cupertino scaffold theme"
|
||||
},
|
||||
"scaffoldTheme": "Scaffold主题",
|
||||
"@scaffoldTheme": {
|
||||
"description": "Kind of theme - cupertino or material"
|
||||
},
|
||||
"reviewPermissions": "审查权限",
|
||||
"@reviewPermissions": {
|
||||
"description": "review Permissions"
|
||||
},
|
||||
"pinnedRepositories": "置顶仓库",
|
||||
"@pinnedRepositories": {
|
||||
"description": "pinned repositories"
|
||||
},
|
||||
"popularRepositories": "热门库",
|
||||
"@popularRepositories": {
|
||||
"description": "popular repositories"
|
||||
},
|
||||
"gists": "代码片段",
|
||||
"@gists": {
|
||||
"description": "gists for a user"
|
||||
},
|
||||
"news": "新闻",
|
||||
"@news": {
|
||||
"description": "The News tab"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1 +1,350 @@
|
|||
{}
|
||||
{
|
||||
"fontStyle": "字体样式",
|
||||
"@fontStyle": {
|
||||
"description": "font style"
|
||||
},
|
||||
"fontSize": "字体大小",
|
||||
"@fontSize": {
|
||||
"description": "font size"
|
||||
},
|
||||
"fontFamily": "字体家族",
|
||||
"@fontFamily": {
|
||||
"description": "Font Family"
|
||||
},
|
||||
"syntaxHighlighting": "同义词高亮",
|
||||
"@syntaxHighlighting": {
|
||||
"description": "Syntax Highlighting"
|
||||
},
|
||||
"projectActions": "项目行动",
|
||||
"@projectActions": {
|
||||
"description": "Project Actions"
|
||||
},
|
||||
"code": "编码",
|
||||
"@code": {
|
||||
"description": "Code"
|
||||
},
|
||||
"issue": "问题",
|
||||
"@issue": {
|
||||
"description": "issue"
|
||||
},
|
||||
"group": "集团",
|
||||
"@group": {
|
||||
"description": "group"
|
||||
},
|
||||
"user": "用户",
|
||||
"@user": {
|
||||
"description": "user"
|
||||
},
|
||||
"giteeAccount": "Gitee账户",
|
||||
"@giteeAccount": {
|
||||
"description": "Gitee Account"
|
||||
},
|
||||
"giteaAccount": "Gitea账户",
|
||||
"@giteaAccount": {
|
||||
"description": "Gitea Account"
|
||||
},
|
||||
"longPressToRemoveAccount": "长按删除账户",
|
||||
"@longPressToRemoveAccount": {
|
||||
"description": "Long Press to remove account"
|
||||
},
|
||||
"bitbucketAccount": "Bitbucket账户",
|
||||
"@bitbucketAccount": {
|
||||
"description": "Bitbucket Account"
|
||||
},
|
||||
"gitlabAccount": "GitLab账户",
|
||||
"@gitlabAccount": {
|
||||
"description": "Gitlab Account"
|
||||
},
|
||||
"notFoundTextDisplay": "哎呀,这个页面还没有实现。",
|
||||
"@notFoundTextDisplay": {
|
||||
"description": "Not found error message"
|
||||
},
|
||||
"notFoundMessage": "未找到",
|
||||
"@notFoundMessage": {
|
||||
"description": "Not found page header"
|
||||
},
|
||||
"permissionRequiredMessage": "GitTouch需要以下权限",
|
||||
"@permissionRequiredMessage": {
|
||||
"description": "Permission Required Message"
|
||||
},
|
||||
"githubAccount": "GitHub账户",
|
||||
"@githubAccount": {
|
||||
"description": "Gitea Account"
|
||||
},
|
||||
"somethingBadHappens": "糟糕的事情发生了:",
|
||||
"@somethingBadHappens": {
|
||||
"description": "error message"
|
||||
},
|
||||
"removeAccount": "删除账户",
|
||||
"@removeAccount": {
|
||||
"description": "remove account"
|
||||
},
|
||||
"selectAccount": "选择账户",
|
||||
"@selectAccount": {
|
||||
"description": "select account message"
|
||||
},
|
||||
"project": "项目介绍",
|
||||
"@project": {
|
||||
"description": "project"
|
||||
},
|
||||
"activity": "活动",
|
||||
"@activity": {
|
||||
"description": "activity"
|
||||
},
|
||||
"mergeRequests": "合并请求",
|
||||
"@mergeRequests": {
|
||||
"description": "Merge request"
|
||||
},
|
||||
"groups": "群体",
|
||||
"@groups": {
|
||||
"description": "groups"
|
||||
},
|
||||
"actions": "行动",
|
||||
"@actions": {
|
||||
"description": "actions"
|
||||
},
|
||||
"files": "文件",
|
||||
"@files": {
|
||||
"description": "file plural"
|
||||
},
|
||||
"file": "文件",
|
||||
"@file": {
|
||||
"description": "file"
|
||||
},
|
||||
"teams": "队伍",
|
||||
"@teams": {
|
||||
"description": "teams"
|
||||
},
|
||||
"explore": "探索",
|
||||
"@explore": {
|
||||
"description": "explore"
|
||||
},
|
||||
"developers": "开发商",
|
||||
"@developers": {
|
||||
"description": "developers"
|
||||
},
|
||||
"all": "全部",
|
||||
"@all": {
|
||||
"description": "all"
|
||||
},
|
||||
"unread": "未读",
|
||||
"@unread": {
|
||||
"description": "unread"
|
||||
},
|
||||
"contributors": "贡献者",
|
||||
"@contributors": {
|
||||
"description": "contributors"
|
||||
},
|
||||
"branches": "分支机构",
|
||||
"@branches": {
|
||||
"description": "branches"
|
||||
},
|
||||
"commits": "承诺",
|
||||
"@commits": {
|
||||
"description": "Commits"
|
||||
},
|
||||
"pullRequests": "拉动请求",
|
||||
"@pullRequests": {
|
||||
"description": "Pull Requests"
|
||||
},
|
||||
"issues": "问题",
|
||||
"@issues": {
|
||||
"description": "issues"
|
||||
},
|
||||
"forks": "叉子",
|
||||
"@forks": {
|
||||
"description": "forks"
|
||||
},
|
||||
"watchers": "守望者",
|
||||
"@watchers": {
|
||||
"description": "watchers"
|
||||
},
|
||||
"releases": "发布",
|
||||
"@releases": {
|
||||
"description": "releases"
|
||||
},
|
||||
"projects": "项目介绍",
|
||||
"@projects": {
|
||||
"description": "projects"
|
||||
},
|
||||
"repositoryActions": "存储库行动",
|
||||
"@repositoryActions": {
|
||||
"description": "Repository Actions"
|
||||
},
|
||||
"repository": "储存库",
|
||||
"@repository": {
|
||||
"description": "Repository screen title"
|
||||
},
|
||||
"sourceCode": "源代码",
|
||||
"@sourceCode": {
|
||||
"description": "source code for app"
|
||||
},
|
||||
"version": "版本",
|
||||
"@version": {
|
||||
"description": "app version"
|
||||
},
|
||||
"about": "关于",
|
||||
"@about": {
|
||||
"description": "about section"
|
||||
},
|
||||
"email": "电子邮件",
|
||||
"@email": {
|
||||
"description": "Email to report issues"
|
||||
},
|
||||
"rateThisApp": "给这个应用程序评分",
|
||||
"@rateThisApp": {
|
||||
"description": "rate the app"
|
||||
},
|
||||
"submitAnIssue": "提交问题",
|
||||
"@submitAnIssue": {
|
||||
"description": "submit issue for app"
|
||||
},
|
||||
"feedback": "反馈",
|
||||
"@feedback": {
|
||||
"description": "provide feedback"
|
||||
},
|
||||
"webview": "WebView",
|
||||
"@webview": {
|
||||
"description": "render webview for markdown"
|
||||
},
|
||||
"flutter": "翩翩",
|
||||
"@flutter": {
|
||||
"description": "render flutter for markdown"
|
||||
},
|
||||
"markdownRenderEngine": "Markdown 渲染引擎",
|
||||
"@markdownRenderEngine": {
|
||||
"description": "flutter or webview rendering for markdown"
|
||||
},
|
||||
"codeTheme": "代码主题",
|
||||
"@codeTheme": {
|
||||
"description": "code theme"
|
||||
},
|
||||
"material": "材质",
|
||||
"@material": {
|
||||
"description": "Material scaffold theme"
|
||||
},
|
||||
"cupertino": "库柏蒂诺",
|
||||
"@cupertino": {
|
||||
"description": "Cupertino scaffold theme"
|
||||
},
|
||||
"scaffoldTheme": "脚手架主题",
|
||||
"@scaffoldTheme": {
|
||||
"description": "Kind of theme - cupertino or material"
|
||||
},
|
||||
"dark": "黑暗",
|
||||
"@dark": {
|
||||
"description": "dark mode"
|
||||
},
|
||||
"light": "灯光",
|
||||
"@light": {
|
||||
"description": "light mode"
|
||||
},
|
||||
"followSystem": "遵循系统",
|
||||
"@followSystem": {
|
||||
"description": "follow systems setting"
|
||||
},
|
||||
"brightness": "亮度",
|
||||
"@brightness": {
|
||||
"description": "brightness"
|
||||
},
|
||||
"switchAccounts": "转换账户",
|
||||
"@switchAccounts": {
|
||||
"description": "Switch accounts"
|
||||
},
|
||||
"giteaStatus": "基特阿地位",
|
||||
"@giteaStatus": {
|
||||
"description": "Gitea status"
|
||||
},
|
||||
"gitlabStatus": "GitLab状态",
|
||||
"@gitlabStatus": {
|
||||
"description": "GitLab status"
|
||||
},
|
||||
"reviewPermissions": "审查权限",
|
||||
"@reviewPermissions": {
|
||||
"description": "review Permissions"
|
||||
},
|
||||
"githubStatus": "GitHub状态",
|
||||
"@githubStatus": {
|
||||
"description": "github status"
|
||||
},
|
||||
"system": "制度",
|
||||
"@system": {
|
||||
"description": "system"
|
||||
},
|
||||
"settings": "设置",
|
||||
"@settings": {
|
||||
"description": "settings"
|
||||
},
|
||||
"pinnedRepositories": "钉住的存储库",
|
||||
"@pinnedRepositories": {
|
||||
"description": "pinned repositories"
|
||||
},
|
||||
"popularRepositories": "热门库",
|
||||
"@popularRepositories": {
|
||||
"description": "popular repositories"
|
||||
},
|
||||
"members": "成员",
|
||||
"@members": {
|
||||
"description": "members of an organization"
|
||||
},
|
||||
"organizations": "组织机构",
|
||||
"@organizations": {
|
||||
"description": "organizations for a user"
|
||||
},
|
||||
"gists": "Gists",
|
||||
"@gists": {
|
||||
"description": "gists for a user"
|
||||
},
|
||||
"events": "事件",
|
||||
"@events": {
|
||||
"description": "events for a user"
|
||||
},
|
||||
"following": "以下",
|
||||
"@following": {
|
||||
"description": "people followed by a person"
|
||||
},
|
||||
"followers": "追随者",
|
||||
"@followers": {
|
||||
"description": "followers for a person"
|
||||
},
|
||||
"stars": "明星",
|
||||
"@stars": {
|
||||
"description": "stars on a repo"
|
||||
},
|
||||
"follow": "遵循",
|
||||
"@follow": {
|
||||
"description": "follow someone"
|
||||
},
|
||||
"unfollow": "取消关注",
|
||||
"@unfollow": {
|
||||
"description": "unfollow someone"
|
||||
},
|
||||
"repositories": "储存库",
|
||||
"@repositories": {
|
||||
"description": "repository text"
|
||||
},
|
||||
"participating": "参与",
|
||||
"@participating": {
|
||||
"description": "The participating Tab"
|
||||
},
|
||||
"me": "我",
|
||||
"@me": {
|
||||
"description": "The Me tab"
|
||||
},
|
||||
"search": "检索",
|
||||
"@search": {
|
||||
"description": "The Search tab"
|
||||
},
|
||||
"trending": "趋势",
|
||||
"@trending": {
|
||||
"description": "Trending"
|
||||
},
|
||||
"notification": "通知",
|
||||
"@notification": {
|
||||
"description": "The Notification tab"
|
||||
},
|
||||
"news": "新闻中心",
|
||||
"@news": {
|
||||
"description": "The News tab"
|
||||
}
|
||||
}
|
||||
|
|
112
lib/main.dart
112
lib/main.dart
|
@ -1,87 +1,39 @@
|
|||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter/widgets.dart';
|
||||
import 'package:git_touch/app.dart';
|
||||
import 'package:git_touch/models/code.dart';
|
||||
import 'package:git_touch/models/auth.dart';
|
||||
import 'package:git_touch/models/theme.dart';
|
||||
import 'package:git_touch/router.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'package:git_touch/models/code.dart';
|
||||
import 'package:git_touch/models/notification.dart';
|
||||
import 'package:fluro/fluro.dart';
|
||||
import 'package:fimber/fimber.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:git_touch/models/theme.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'package:sentry_flutter/sentry_flutter.dart';
|
||||
|
||||
void main() async {
|
||||
WidgetsFlutterBinding.ensureInitialized();
|
||||
// Platform messages may fail, so we use a try/catch PlatformException.
|
||||
await SentryFlutter.init(
|
||||
(options) {
|
||||
options.dsn =
|
||||
'https://006354525fa244289c48169790fa3757@o71119.ingest.sentry.io/5814819';
|
||||
},
|
||||
// Init your App.
|
||||
appRunner: () async {
|
||||
final notificationModel = NotificationModel();
|
||||
final themeModel = ThemeModel();
|
||||
final authModel = AuthModel();
|
||||
final codeModel = CodeModel();
|
||||
await Future.wait([
|
||||
themeModel.init(),
|
||||
authModel.init(),
|
||||
codeModel.init(),
|
||||
]);
|
||||
|
||||
// try {
|
||||
// String initialLink = await getInitialLink();
|
||||
// Fimber.d(initialLink);
|
||||
// } on PlatformException {
|
||||
// Fimber.d('test');
|
||||
// }
|
||||
|
||||
// DeviceInfoPlugin deviceInfo = DeviceInfoPlugin();
|
||||
// AndroidDeviceInfo androidInfo = await deviceInfo.androidInfo;
|
||||
// Fimber.d('Running on ${androidInfo.model}'); // e.g. "Moto G (4)"
|
||||
|
||||
// IosDeviceInfo iosInfo = await deviceInfo.iosInfo;
|
||||
// Fimber.d('Running on ${iosInfo.utsname.machine}'); // e.g. "iPod7,1"
|
||||
|
||||
// TODO: Later, should check to enable debug log in debug build only
|
||||
Fimber.plantTree(DebugTree());
|
||||
|
||||
final notificationModel = NotificationModel();
|
||||
final themeModel = ThemeModel();
|
||||
final authModel = AuthModel();
|
||||
final codeModel = CodeModel();
|
||||
await Future.wait([
|
||||
themeModel.init(),
|
||||
authModel.init(),
|
||||
codeModel.init(),
|
||||
]);
|
||||
|
||||
CommonRouter.routes.forEach((screen) {
|
||||
themeModel.router.define(CommonRouter.prefix + screen.path,
|
||||
handler: Handler(handlerFunc: screen.handler));
|
||||
});
|
||||
GitlabRouter.routes.forEach((screen) {
|
||||
themeModel.router.define(GitlabRouter.prefix + screen.path,
|
||||
handler: Handler(handlerFunc: screen.handler));
|
||||
});
|
||||
GiteaRouter.routes.forEach((screen) {
|
||||
themeModel.router.define(GiteaRouter.prefix + screen.path,
|
||||
handler: Handler(handlerFunc: screen.handler));
|
||||
});
|
||||
BitbucketRouter.routes.forEach((screen) {
|
||||
themeModel.router.define(BitbucketRouter.prefix + screen.path,
|
||||
handler: Handler(handlerFunc: screen.handler));
|
||||
});
|
||||
GithubRouter.routes.forEach((screen) {
|
||||
themeModel.router.define(GithubRouter.prefix + screen.path,
|
||||
handler: Handler(handlerFunc: screen.handler));
|
||||
});
|
||||
GiteeRouter.routes.forEach((screen) {
|
||||
themeModel.router.define(GiteeRouter.prefix + screen.path,
|
||||
handler: Handler(handlerFunc: screen.handler));
|
||||
});
|
||||
GogsRouter.routes.forEach((screen) {
|
||||
themeModel.router.define(GogsRouter.prefix + screen.path,
|
||||
handler: Handler(handlerFunc: screen.handler));
|
||||
});
|
||||
// To match status bar color to app bar color
|
||||
SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle(
|
||||
statusBarColor: Colors.transparent,
|
||||
));
|
||||
|
||||
runApp(MultiProvider(
|
||||
providers: [
|
||||
ChangeNotifierProvider(create: (context) => notificationModel),
|
||||
ChangeNotifierProvider(create: (context) => themeModel),
|
||||
ChangeNotifierProvider(create: (context) => authModel),
|
||||
ChangeNotifierProvider(create: (context) => codeModel),
|
||||
],
|
||||
child: MyApp(),
|
||||
));
|
||||
runApp(MultiProvider(
|
||||
providers: [
|
||||
ChangeNotifierProvider(create: (context) => notificationModel),
|
||||
ChangeNotifierProvider(create: (context) => themeModel),
|
||||
ChangeNotifierProvider(create: (context) => authModel),
|
||||
ChangeNotifierProvider(create: (context) => codeModel),
|
||||
],
|
||||
child: const MyApp(),
|
||||
));
|
||||
},
|
||||
);
|
||||
}
|
||||
|
|
|
@ -1,44 +1,22 @@
|
|||
import 'package:json_annotation/json_annotation.dart';
|
||||
import 'package:meta/meta.dart';
|
||||
import 'package:freezed_annotation/freezed_annotation.dart';
|
||||
|
||||
part 'account.freezed.dart';
|
||||
part 'account.g.dart';
|
||||
|
||||
@JsonSerializable(includeIfNull: false)
|
||||
class Account {
|
||||
String platform;
|
||||
String domain;
|
||||
String token;
|
||||
String login;
|
||||
String avatarUrl;
|
||||
int gitlabId; // For GitLab
|
||||
String appPassword; // For Bitbucket
|
||||
String accountId; // For Bitbucket
|
||||
|
||||
// equals(Account a) {
|
||||
// final uri = Uri.parse(domain);
|
||||
// final uriA = Uri.parse(a.domain);
|
||||
|
||||
// // Treat domains as the same if they have the same hosts and ports
|
||||
// return a.platform == platform &&
|
||||
// a.login == login &&
|
||||
// a.gitlabId == gitlabId &&
|
||||
// uri.host == uriA.host &&
|
||||
// uri.port == uriA.port;
|
||||
// }
|
||||
|
||||
Account({
|
||||
@required this.platform,
|
||||
@required this.domain,
|
||||
@required this.token,
|
||||
@required this.login,
|
||||
@required this.avatarUrl,
|
||||
this.gitlabId,
|
||||
this.appPassword,
|
||||
this.accountId,
|
||||
});
|
||||
@freezed
|
||||
class Account with _$Account {
|
||||
@JsonSerializable(includeIfNull: false)
|
||||
factory Account({
|
||||
required String platform,
|
||||
required String domain,
|
||||
required String token,
|
||||
required String login,
|
||||
required String avatarUrl,
|
||||
int? gitlabId, // For GitLab
|
||||
String? appPassword, // For Bitbucket
|
||||
String? accountId, // For Bitbucket
|
||||
}) = _Account;
|
||||
|
||||
factory Account.fromJson(Map<String, dynamic> json) =>
|
||||
_$AccountFromJson(json);
|
||||
|
||||
Map<String, dynamic> toJson() => _$AccountToJson(this);
|
||||
}
|
||||
|
|
|
@ -0,0 +1,300 @@
|
|||
// coverage:ignore-file
|
||||
// GENERATED CODE - DO NOT MODIFY BY HAND
|
||||
// ignore_for_file: type=lint
|
||||
// ignore_for_file: unused_element, deprecated_member_use, deprecated_member_use_from_same_package, use_function_type_syntax_for_parameters, unnecessary_const, avoid_init_to_null, invalid_override_different_default_values_named, prefer_expression_function_bodies, annotate_overrides, invalid_annotation_target
|
||||
|
||||
part of 'account.dart';
|
||||
|
||||
// **************************************************************************
|
||||
// FreezedGenerator
|
||||
// **************************************************************************
|
||||
|
||||
T _$identity<T>(T value) => value;
|
||||
|
||||
final _privateConstructorUsedError = UnsupportedError(
|
||||
'It seems like you constructed your class using `MyClass._()`. This constructor is only meant to be used by freezed and you are not supposed to need it nor use it.\nPlease check the documentation here for more information: https://github.com/rrousselGit/freezed#custom-getters-and-methods');
|
||||
|
||||
Account _$AccountFromJson(Map<String, dynamic> json) {
|
||||
return _Account.fromJson(json);
|
||||
}
|
||||
|
||||
/// @nodoc
|
||||
mixin _$Account {
|
||||
String get platform => throw _privateConstructorUsedError;
|
||||
String get domain => throw _privateConstructorUsedError;
|
||||
String get token => throw _privateConstructorUsedError;
|
||||
String get login => throw _privateConstructorUsedError;
|
||||
String get avatarUrl => throw _privateConstructorUsedError;
|
||||
int? get gitlabId => throw _privateConstructorUsedError; // For GitLab
|
||||
String? get appPassword =>
|
||||
throw _privateConstructorUsedError; // For Bitbucket
|
||||
String? get accountId => throw _privateConstructorUsedError;
|
||||
|
||||
Map<String, dynamic> toJson() => throw _privateConstructorUsedError;
|
||||
@JsonKey(ignore: true)
|
||||
$AccountCopyWith<Account> get copyWith => throw _privateConstructorUsedError;
|
||||
}
|
||||
|
||||
/// @nodoc
|
||||
abstract class $AccountCopyWith<$Res> {
|
||||
factory $AccountCopyWith(Account value, $Res Function(Account) then) =
|
||||
_$AccountCopyWithImpl<$Res, Account>;
|
||||
@useResult
|
||||
$Res call(
|
||||
{String platform,
|
||||
String domain,
|
||||
String token,
|
||||
String login,
|
||||
String avatarUrl,
|
||||
int? gitlabId,
|
||||
String? appPassword,
|
||||
String? accountId});
|
||||
}
|
||||
|
||||
/// @nodoc
|
||||
class _$AccountCopyWithImpl<$Res, $Val extends Account>
|
||||
implements $AccountCopyWith<$Res> {
|
||||
_$AccountCopyWithImpl(this._value, this._then);
|
||||
|
||||
// ignore: unused_field
|
||||
final $Val _value;
|
||||
// ignore: unused_field
|
||||
final $Res Function($Val) _then;
|
||||
|
||||
@pragma('vm:prefer-inline')
|
||||
@override
|
||||
$Res call({
|
||||
Object? platform = null,
|
||||
Object? domain = null,
|
||||
Object? token = null,
|
||||
Object? login = null,
|
||||
Object? avatarUrl = null,
|
||||
Object? gitlabId = freezed,
|
||||
Object? appPassword = freezed,
|
||||
Object? accountId = freezed,
|
||||
}) {
|
||||
return _then(_value.copyWith(
|
||||
platform: null == platform
|
||||
? _value.platform
|
||||
: platform // ignore: cast_nullable_to_non_nullable
|
||||
as String,
|
||||
domain: null == domain
|
||||
? _value.domain
|
||||
: domain // ignore: cast_nullable_to_non_nullable
|
||||
as String,
|
||||
token: null == token
|
||||
? _value.token
|
||||
: token // ignore: cast_nullable_to_non_nullable
|
||||
as String,
|
||||
login: null == login
|
||||
? _value.login
|
||||
: login // ignore: cast_nullable_to_non_nullable
|
||||
as String,
|
||||
avatarUrl: null == avatarUrl
|
||||
? _value.avatarUrl
|
||||
: avatarUrl // ignore: cast_nullable_to_non_nullable
|
||||
as String,
|
||||
gitlabId: freezed == gitlabId
|
||||
? _value.gitlabId
|
||||
: gitlabId // ignore: cast_nullable_to_non_nullable
|
||||
as int?,
|
||||
appPassword: freezed == appPassword
|
||||
? _value.appPassword
|
||||
: appPassword // ignore: cast_nullable_to_non_nullable
|
||||
as String?,
|
||||
accountId: freezed == accountId
|
||||
? _value.accountId
|
||||
: accountId // ignore: cast_nullable_to_non_nullable
|
||||
as String?,
|
||||
) as $Val);
|
||||
}
|
||||
}
|
||||
|
||||
/// @nodoc
|
||||
abstract class _$$_AccountCopyWith<$Res> implements $AccountCopyWith<$Res> {
|
||||
factory _$$_AccountCopyWith(
|
||||
_$_Account value, $Res Function(_$_Account) then) =
|
||||
__$$_AccountCopyWithImpl<$Res>;
|
||||
@override
|
||||
@useResult
|
||||
$Res call(
|
||||
{String platform,
|
||||
String domain,
|
||||
String token,
|
||||
String login,
|
||||
String avatarUrl,
|
||||
int? gitlabId,
|
||||
String? appPassword,
|
||||
String? accountId});
|
||||
}
|
||||
|
||||
/// @nodoc
|
||||
class __$$_AccountCopyWithImpl<$Res>
|
||||
extends _$AccountCopyWithImpl<$Res, _$_Account>
|
||||
implements _$$_AccountCopyWith<$Res> {
|
||||
__$$_AccountCopyWithImpl(_$_Account _value, $Res Function(_$_Account) _then)
|
||||
: super(_value, _then);
|
||||
|
||||
@pragma('vm:prefer-inline')
|
||||
@override
|
||||
$Res call({
|
||||
Object? platform = null,
|
||||
Object? domain = null,
|
||||
Object? token = null,
|
||||
Object? login = null,
|
||||
Object? avatarUrl = null,
|
||||
Object? gitlabId = freezed,
|
||||
Object? appPassword = freezed,
|
||||
Object? accountId = freezed,
|
||||
}) {
|
||||
return _then(_$_Account(
|
||||
platform: null == platform
|
||||
? _value.platform
|
||||
: platform // ignore: cast_nullable_to_non_nullable
|
||||
as String,
|
||||
domain: null == domain
|
||||
? _value.domain
|
||||
: domain // ignore: cast_nullable_to_non_nullable
|
||||
as String,
|
||||
token: null == token
|
||||
? _value.token
|
||||
: token // ignore: cast_nullable_to_non_nullable
|
||||
as String,
|
||||
login: null == login
|
||||
? _value.login
|
||||
: login // ignore: cast_nullable_to_non_nullable
|
||||
as String,
|
||||
avatarUrl: null == avatarUrl
|
||||
? _value.avatarUrl
|
||||
: avatarUrl // ignore: cast_nullable_to_non_nullable
|
||||
as String,
|
||||
gitlabId: freezed == gitlabId
|
||||
? _value.gitlabId
|
||||
: gitlabId // ignore: cast_nullable_to_non_nullable
|
||||
as int?,
|
||||
appPassword: freezed == appPassword
|
||||
? _value.appPassword
|
||||
: appPassword // ignore: cast_nullable_to_non_nullable
|
||||
as String?,
|
||||
accountId: freezed == accountId
|
||||
? _value.accountId
|
||||
: accountId // ignore: cast_nullable_to_non_nullable
|
||||
as String?,
|
||||
));
|
||||
}
|
||||
}
|
||||
|
||||
/// @nodoc
|
||||
|
||||
@JsonSerializable(includeIfNull: false)
|
||||
class _$_Account implements _Account {
|
||||
_$_Account(
|
||||
{required this.platform,
|
||||
required this.domain,
|
||||
required this.token,
|
||||
required this.login,
|
||||
required this.avatarUrl,
|
||||
this.gitlabId,
|
||||
this.appPassword,
|
||||
this.accountId});
|
||||
|
||||
factory _$_Account.fromJson(Map<String, dynamic> json) =>
|
||||
_$$_AccountFromJson(json);
|
||||
|
||||
@override
|
||||
final String platform;
|
||||
@override
|
||||
final String domain;
|
||||
@override
|
||||
final String token;
|
||||
@override
|
||||
final String login;
|
||||
@override
|
||||
final String avatarUrl;
|
||||
@override
|
||||
final int? gitlabId;
|
||||
// For GitLab
|
||||
@override
|
||||
final String? appPassword;
|
||||
// For Bitbucket
|
||||
@override
|
||||
final String? accountId;
|
||||
|
||||
@override
|
||||
String toString() {
|
||||
return 'Account(platform: $platform, domain: $domain, token: $token, login: $login, avatarUrl: $avatarUrl, gitlabId: $gitlabId, appPassword: $appPassword, accountId: $accountId)';
|
||||
}
|
||||
|
||||
@override
|
||||
bool operator ==(dynamic other) {
|
||||
return identical(this, other) ||
|
||||
(other.runtimeType == runtimeType &&
|
||||
other is _$_Account &&
|
||||
(identical(other.platform, platform) ||
|
||||
other.platform == platform) &&
|
||||
(identical(other.domain, domain) || other.domain == domain) &&
|
||||
(identical(other.token, token) || other.token == token) &&
|
||||
(identical(other.login, login) || other.login == login) &&
|
||||
(identical(other.avatarUrl, avatarUrl) ||
|
||||
other.avatarUrl == avatarUrl) &&
|
||||
(identical(other.gitlabId, gitlabId) ||
|
||||
other.gitlabId == gitlabId) &&
|
||||
(identical(other.appPassword, appPassword) ||
|
||||
other.appPassword == appPassword) &&
|
||||
(identical(other.accountId, accountId) ||
|
||||
other.accountId == accountId));
|
||||
}
|
||||
|
||||
@JsonKey(ignore: true)
|
||||
@override
|
||||
int get hashCode => Object.hash(runtimeType, platform, domain, token, login,
|
||||
avatarUrl, gitlabId, appPassword, accountId);
|
||||
|
||||
@JsonKey(ignore: true)
|
||||
@override
|
||||
@pragma('vm:prefer-inline')
|
||||
_$$_AccountCopyWith<_$_Account> get copyWith =>
|
||||
__$$_AccountCopyWithImpl<_$_Account>(this, _$identity);
|
||||
|
||||
@override
|
||||
Map<String, dynamic> toJson() {
|
||||
return _$$_AccountToJson(
|
||||
this,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
abstract class _Account implements Account {
|
||||
factory _Account(
|
||||
{required final String platform,
|
||||
required final String domain,
|
||||
required final String token,
|
||||
required final String login,
|
||||
required final String avatarUrl,
|
||||
final int? gitlabId,
|
||||
final String? appPassword,
|
||||
final String? accountId}) = _$_Account;
|
||||
|
||||
factory _Account.fromJson(Map<String, dynamic> json) = _$_Account.fromJson;
|
||||
|
||||
@override
|
||||
String get platform;
|
||||
@override
|
||||
String get domain;
|
||||
@override
|
||||
String get token;
|
||||
@override
|
||||
String get login;
|
||||
@override
|
||||
String get avatarUrl;
|
||||
@override
|
||||
int? get gitlabId;
|
||||
@override // For GitLab
|
||||
String? get appPassword;
|
||||
@override // For Bitbucket
|
||||
String? get accountId;
|
||||
@override
|
||||
@JsonKey(ignore: true)
|
||||
_$$_AccountCopyWith<_$_Account> get copyWith =>
|
||||
throw _privateConstructorUsedError;
|
||||
}
|
|
@ -6,21 +6,25 @@ part of 'account.dart';
|
|||
// JsonSerializableGenerator
|
||||
// **************************************************************************
|
||||
|
||||
Account _$AccountFromJson(Map<String, dynamic> json) {
|
||||
return Account(
|
||||
platform: json['platform'] as String,
|
||||
domain: json['domain'] as String,
|
||||
token: json['token'] as String,
|
||||
login: json['login'] as String,
|
||||
avatarUrl: json['avatarUrl'] as String,
|
||||
gitlabId: json['gitlabId'] as int,
|
||||
appPassword: json['appPassword'] as String,
|
||||
accountId: json['accountId'] as String,
|
||||
);
|
||||
}
|
||||
_$_Account _$$_AccountFromJson(Map<String, dynamic> json) => _$_Account(
|
||||
platform: json['platform'] as String,
|
||||
domain: json['domain'] as String,
|
||||
token: json['token'] as String,
|
||||
login: json['login'] as String,
|
||||
avatarUrl: json['avatarUrl'] as String,
|
||||
gitlabId: json['gitlabId'] as int?,
|
||||
appPassword: json['appPassword'] as String?,
|
||||
accountId: json['accountId'] as String?,
|
||||
);
|
||||
|
||||
Map<String, dynamic> _$AccountToJson(Account instance) {
|
||||
final val = <String, dynamic>{};
|
||||
Map<String, dynamic> _$$_AccountToJson(_$_Account instance) {
|
||||
final val = <String, dynamic>{
|
||||
'platform': instance.platform,
|
||||
'domain': instance.domain,
|
||||
'token': instance.token,
|
||||
'login': instance.login,
|
||||
'avatarUrl': instance.avatarUrl,
|
||||
};
|
||||
|
||||
void writeNotNull(String key, dynamic value) {
|
||||
if (value != null) {
|
||||
|
@ -28,11 +32,6 @@ Map<String, dynamic> _$AccountToJson(Account instance) {
|
|||
}
|
||||
}
|
||||
|
||||
writeNotNull('platform', instance.platform);
|
||||
writeNotNull('domain', instance.domain);
|
||||
writeNotNull('token', instance.token);
|
||||
writeNotNull('login', instance.login);
|
||||
writeNotNull('avatarUrl', instance.avatarUrl);
|
||||
writeNotNull('gitlabId', instance.gitlabId);
|
||||
writeNotNull('appPassword', instance.appPassword);
|
||||
writeNotNull('accountId', instance.accountId);
|
||||
|
|
|
@ -1,26 +1,26 @@
|
|||
import 'dart:convert';
|
||||
import 'dart:async';
|
||||
import 'dart:convert';
|
||||
|
||||
import 'package:ferry/ferry.dart';
|
||||
import 'package:git_touch/utils/nil_store.dart';
|
||||
// import 'package:in_app_review/in_app_review.dart';
|
||||
import 'package:universal_io/io.dart';
|
||||
import 'package:fimber/fimber.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter/widgets.dart';
|
||||
import 'package:git_touch/models/account.dart';
|
||||
import 'package:git_touch/models/bitbucket.dart';
|
||||
import 'package:git_touch/models/gitea.dart';
|
||||
import 'package:git_touch/models/gitee.dart';
|
||||
import 'package:git_touch/models/gitlab.dart';
|
||||
import 'package:git_touch/models/gogs.dart';
|
||||
import 'package:git_touch/utils/utils.dart';
|
||||
import 'package:github/github.dart';
|
||||
import 'package:gql_http_link/gql_http_link.dart';
|
||||
import 'package:fimber/fimber.dart';
|
||||
import 'package:http/http.dart' as http;
|
||||
import 'package:uni_links/uni_links.dart';
|
||||
import 'package:nanoid/nanoid.dart';
|
||||
import 'package:url_launcher/url_launcher.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:shared_preferences/shared_preferences.dart';
|
||||
import '../utils/utils.dart';
|
||||
import 'account.dart';
|
||||
import 'gitlab.dart';
|
||||
import 'gogs.dart';
|
||||
import 'package:uni_links/uni_links.dart';
|
||||
// import 'package:in_app_review/in_app_review.dart';
|
||||
import 'package:universal_io/io.dart';
|
||||
import 'package:url_launcher/url_launcher.dart';
|
||||
|
||||
const clientId = 'df930d7d2e219f26142a';
|
||||
|
||||
|
@ -34,29 +34,16 @@ class PlatformType {
|
|||
}
|
||||
|
||||
class DataWithPage<T> {
|
||||
DataWithPage({
|
||||
required this.data,
|
||||
required this.cursor,
|
||||
required this.hasMore,
|
||||
required this.total,
|
||||
});
|
||||
T data;
|
||||
int cursor;
|
||||
bool hasMore;
|
||||
int total;
|
||||
DataWithPage({
|
||||
@required this.data,
|
||||
@required this.cursor,
|
||||
@required this.hasMore,
|
||||
this.total,
|
||||
});
|
||||
}
|
||||
|
||||
class BbPagePayload<T> {
|
||||
T data;
|
||||
String cursor;
|
||||
bool hasMore;
|
||||
int total;
|
||||
BbPagePayload({
|
||||
@required this.data,
|
||||
@required this.cursor,
|
||||
@required this.hasMore,
|
||||
this.total,
|
||||
});
|
||||
}
|
||||
|
||||
class AuthModel with ChangeNotifier {
|
||||
|
@ -65,21 +52,21 @@ class AuthModel with ChangeNotifier {
|
|||
// static final inAppReview = InAppReview.instance;
|
||||
var hasRequestedReview = false;
|
||||
|
||||
List<Account> _accounts;
|
||||
int activeAccountIndex;
|
||||
StreamSubscription<Uri> _sub;
|
||||
List<Account> _accounts = [];
|
||||
int? activeAccountIndex;
|
||||
late StreamSubscription<Uri?> _sub;
|
||||
bool loading = false;
|
||||
|
||||
List<Account> get accounts => _accounts;
|
||||
Account get activeAccount {
|
||||
if (activeAccountIndex == null || _accounts == null) return null;
|
||||
return _accounts[activeAccountIndex];
|
||||
List<Account>? get accounts => _accounts;
|
||||
Account? get activeAccount {
|
||||
if (activeAccountIndex == null || _accounts.isEmpty) return null;
|
||||
return _accounts[activeAccountIndex!];
|
||||
}
|
||||
|
||||
String get token => activeAccount.token;
|
||||
String get token => activeAccount!.token;
|
||||
|
||||
_addAccount(Account account) async {
|
||||
_accounts = [...accounts, account];
|
||||
_accounts = [...accounts!, account];
|
||||
// Save
|
||||
final prefs = await SharedPreferences.getInstance();
|
||||
await prefs.setString(StorageKeys.accounts, json.encode(_accounts));
|
||||
|
@ -97,22 +84,22 @@ class AuthModel with ChangeNotifier {
|
|||
}
|
||||
|
||||
// https://developer.github.com/apps/building-oauth-apps/authorizing-oauth-apps/#web-application-flow
|
||||
Future<void> _onSchemeDetected(Uri uri) async {
|
||||
await closeWebView();
|
||||
Future<void> _onSchemeDetected(Uri? uri) async {
|
||||
await closeInAppWebView();
|
||||
|
||||
loading = true;
|
||||
notifyListeners();
|
||||
|
||||
// Get token by code
|
||||
final res = await http.post(
|
||||
'https://git-touch-oauth.now.sh/api/token',
|
||||
Uri.parse('https://git-touch-oauth.vercel.app/api/token'),
|
||||
headers: {
|
||||
HttpHeaders.acceptHeader: 'application/json',
|
||||
HttpHeaders.contentTypeHeader: 'application/json',
|
||||
},
|
||||
body: json.encode({
|
||||
'client_id': clientId,
|
||||
'code': uri.queryParameters['code'],
|
||||
'code': uri!.queryParameters['code'],
|
||||
'state': _oauthState,
|
||||
}),
|
||||
);
|
||||
|
@ -120,7 +107,7 @@ class AuthModel with ChangeNotifier {
|
|||
await loginWithToken(token);
|
||||
}
|
||||
|
||||
Future<void> loginWithToken(String token) async {
|
||||
Future<void> loginWithToken(String t) async {
|
||||
try {
|
||||
final queryData = await query('''
|
||||
{
|
||||
|
@ -129,12 +116,12 @@ class AuthModel with ChangeNotifier {
|
|||
avatarUrl
|
||||
}
|
||||
}
|
||||
''', token);
|
||||
''', t);
|
||||
|
||||
await _addAccount(Account(
|
||||
platform: PlatformType.github,
|
||||
domain: 'https://github.com',
|
||||
token: token,
|
||||
token: t,
|
||||
login: queryData['viewer']['login'] as String,
|
||||
avatarUrl: queryData['viewer']['avatarUrl'] as String,
|
||||
));
|
||||
|
@ -150,26 +137,22 @@ class AuthModel with ChangeNotifier {
|
|||
loading = true;
|
||||
notifyListeners();
|
||||
try {
|
||||
final res = await http
|
||||
.get('$domain/api/v4/user', headers: {'Private-Token': token});
|
||||
final res = await http.get(Uri.parse('$domain/api/v4/user'),
|
||||
headers: {'Private-Token': token});
|
||||
final info = json.decode(res.body);
|
||||
if (info['message'] != null) {
|
||||
throw info['message'];
|
||||
}
|
||||
if (info['error'] != null) {
|
||||
throw info['error'] +
|
||||
'. ' +
|
||||
(info['error_description'] != null
|
||||
? info['error_description']
|
||||
: '');
|
||||
throw info['error'] + '. ' + (info['error_description'] ?? '');
|
||||
}
|
||||
final user = GitlabUser.fromJson(info);
|
||||
await _addAccount(Account(
|
||||
platform: PlatformType.gitlab,
|
||||
domain: domain,
|
||||
token: token,
|
||||
login: user.username,
|
||||
avatarUrl: user.avatarUrl,
|
||||
login: user.username!,
|
||||
avatarUrl: user.avatarUrl!,
|
||||
gitlabId: user.id,
|
||||
));
|
||||
} finally {
|
||||
|
@ -179,7 +162,7 @@ class AuthModel with ChangeNotifier {
|
|||
}
|
||||
|
||||
Future<String> fetchWithGitlabToken(String p) async {
|
||||
final res = await http.get(p, headers: {'Private-Token': token});
|
||||
final res = await http.get(Uri.parse(p), headers: {'Private-Token': token});
|
||||
return res.body;
|
||||
}
|
||||
|
||||
|
@ -188,7 +171,7 @@ class AuthModel with ChangeNotifier {
|
|||
http.Response res;
|
||||
if (isPost) {
|
||||
res = await http.post(
|
||||
'${activeAccount.domain}/api/v4$p',
|
||||
Uri.parse('${activeAccount!.domain}/api/v4$p'),
|
||||
headers: {
|
||||
'Private-Token': token,
|
||||
HttpHeaders.contentTypeHeader: 'application/json'
|
||||
|
@ -196,7 +179,7 @@ class AuthModel with ChangeNotifier {
|
|||
body: jsonEncode(body),
|
||||
);
|
||||
} else {
|
||||
res = await http.get('${activeAccount.domain}/api/v4$p',
|
||||
res = await http.get(Uri.parse('${activeAccount!.domain}/api/v4$p'),
|
||||
headers: {'Private-Token': token});
|
||||
}
|
||||
final info = json.decode(utf8.decode(res.bodyBytes));
|
||||
|
@ -205,7 +188,7 @@ class AuthModel with ChangeNotifier {
|
|||
}
|
||||
|
||||
Future<DataWithPage> fetchGitlabWithPage(String p) async {
|
||||
final res = await http.get('${activeAccount.domain}/api/v4$p',
|
||||
final res = await http.get(Uri.parse('${activeAccount!.domain}/api/v4$p'),
|
||||
headers: {'Private-Token': token});
|
||||
final next = int.tryParse(
|
||||
res.headers['X-Next-Pages'] ?? res.headers['x-next-page'] ?? '');
|
||||
|
@ -213,10 +196,11 @@ class AuthModel with ChangeNotifier {
|
|||
if (info is Map && info['message'] != null) throw info['message'];
|
||||
return DataWithPage(
|
||||
data: info,
|
||||
cursor: next,
|
||||
cursor: next ?? 1,
|
||||
hasMore: next != null,
|
||||
total:
|
||||
int.tryParse(res.headers['X-Total'] ?? res.headers['x-total'] ?? ''),
|
||||
total: int.tryParse(
|
||||
res.headers['X-Total'] ?? res.headers['x-total'] ?? '') ??
|
||||
kTotalCountFallback,
|
||||
);
|
||||
}
|
||||
|
||||
|
@ -226,7 +210,7 @@ class AuthModel with ChangeNotifier {
|
|||
try {
|
||||
loading = true;
|
||||
notifyListeners();
|
||||
final res = await http.get('$domain/api/v1/user',
|
||||
final res = await http.get(Uri.parse('$domain/api/v1/user'),
|
||||
headers: {'Authorization': 'token $token'});
|
||||
final info = json.decode(res.body);
|
||||
if (info['message'] != null) {
|
||||
|
@ -238,8 +222,8 @@ class AuthModel with ChangeNotifier {
|
|||
platform: PlatformType.gitea,
|
||||
domain: domain,
|
||||
token: token,
|
||||
login: user.login,
|
||||
avatarUrl: user.avatarUrl,
|
||||
login: user.login!,
|
||||
avatarUrl: user.avatarUrl!,
|
||||
));
|
||||
} finally {
|
||||
loading = false;
|
||||
|
@ -252,8 +236,8 @@ class AuthModel with ChangeNotifier {
|
|||
requestType = 'GET',
|
||||
Map<String, dynamic> body = const {},
|
||||
}) async {
|
||||
http.Response res;
|
||||
Map<String, String> headers = {
|
||||
late http.Response res;
|
||||
final headers = <String, String>{
|
||||
'Authorization': 'token $token',
|
||||
HttpHeaders.contentTypeHeader: 'application/json'
|
||||
};
|
||||
|
@ -261,7 +245,7 @@ class AuthModel with ChangeNotifier {
|
|||
case 'DELETE':
|
||||
{
|
||||
await http.delete(
|
||||
'${activeAccount.domain}/api/v1$p',
|
||||
Uri.parse('${activeAccount!.domain}/api/v1$p'),
|
||||
headers: headers,
|
||||
);
|
||||
break;
|
||||
|
@ -269,7 +253,7 @@ class AuthModel with ChangeNotifier {
|
|||
case 'POST':
|
||||
{
|
||||
res = await http.post(
|
||||
'${activeAccount.domain}/api/v1$p',
|
||||
Uri.parse('${activeAccount!.domain}/api/v1$p'),
|
||||
headers: headers,
|
||||
body: jsonEncode(body),
|
||||
);
|
||||
|
@ -278,7 +262,7 @@ class AuthModel with ChangeNotifier {
|
|||
case 'PATCH':
|
||||
{
|
||||
res = await http.patch(
|
||||
'${activeAccount.domain}/api/v1$p',
|
||||
Uri.parse('${activeAccount!.domain}/api/v1$p'),
|
||||
headers: headers,
|
||||
body: jsonEncode(body),
|
||||
);
|
||||
|
@ -286,7 +270,7 @@ class AuthModel with ChangeNotifier {
|
|||
}
|
||||
default:
|
||||
{
|
||||
res = await http.get('${activeAccount.domain}/api/v1$p',
|
||||
res = await http.get(Uri.parse('${activeAccount!.domain}/api/v1$p'),
|
||||
headers: headers);
|
||||
break;
|
||||
}
|
||||
|
@ -299,11 +283,11 @@ class AuthModel with ChangeNotifier {
|
|||
}
|
||||
|
||||
Future<DataWithPage> fetchGiteaWithPage(String path,
|
||||
{int page, int limit}) async {
|
||||
{int? page, int? limit}) async {
|
||||
page = page ?? 1;
|
||||
limit = limit ?? pageSize;
|
||||
limit = limit ?? kPageSize;
|
||||
|
||||
var uri = Uri.parse('${activeAccount.domain}/api/v1$path');
|
||||
var uri = Uri.parse('${activeAccount!.domain}/api/v1$path');
|
||||
uri = uri.replace(
|
||||
queryParameters: {
|
||||
'page': page.toString(),
|
||||
|
@ -317,8 +301,9 @@ class AuthModel with ChangeNotifier {
|
|||
return DataWithPage(
|
||||
data: info,
|
||||
cursor: page + 1,
|
||||
hasMore: info is List && info.length > 0,
|
||||
total: int.tryParse(res.headers['x-total-count'] ?? ''),
|
||||
hasMore: info is List && info.isNotEmpty,
|
||||
total: int.tryParse(res.headers['x-total-count'] ?? '') ??
|
||||
kTotalCountFallback,
|
||||
);
|
||||
}
|
||||
|
||||
|
@ -328,7 +313,7 @@ class AuthModel with ChangeNotifier {
|
|||
try {
|
||||
loading = true;
|
||||
notifyListeners();
|
||||
final res = await http.get('$domain/api/v1/user',
|
||||
final res = await http.get(Uri.parse('$domain/api/v1/user'),
|
||||
headers: {'Authorization': 'token $token'});
|
||||
final info = json.decode(res.body);
|
||||
if (info['message'] != null) {
|
||||
|
@ -340,8 +325,8 @@ class AuthModel with ChangeNotifier {
|
|||
platform: PlatformType.gogs,
|
||||
domain: domain,
|
||||
token: token,
|
||||
login: user.username,
|
||||
avatarUrl: user.avatarUrl,
|
||||
login: user.username!,
|
||||
avatarUrl: user.avatarUrl!,
|
||||
));
|
||||
} finally {
|
||||
loading = false;
|
||||
|
@ -355,8 +340,8 @@ class AuthModel with ChangeNotifier {
|
|||
requestType = 'GET',
|
||||
Map<String, dynamic> body = const {},
|
||||
}) async {
|
||||
http.Response res;
|
||||
Map<String, String> headers = {
|
||||
late http.Response res;
|
||||
final headers = <String, String>{
|
||||
'Authorization': 'token $token',
|
||||
HttpHeaders.contentTypeHeader: 'application/json'
|
||||
};
|
||||
|
@ -364,7 +349,7 @@ class AuthModel with ChangeNotifier {
|
|||
case 'DELETE':
|
||||
{
|
||||
await http.delete(
|
||||
'${activeAccount.domain}/api/v1$p',
|
||||
Uri.parse('${activeAccount!.domain}/api/v1$p'),
|
||||
headers: headers,
|
||||
);
|
||||
break;
|
||||
|
@ -372,7 +357,7 @@ class AuthModel with ChangeNotifier {
|
|||
case 'POST':
|
||||
{
|
||||
res = await http.post(
|
||||
'${activeAccount.domain}/api/v1$p',
|
||||
Uri.parse('${activeAccount!.domain}/api/v1$p'),
|
||||
headers: headers,
|
||||
body: jsonEncode(body),
|
||||
);
|
||||
|
@ -381,7 +366,7 @@ class AuthModel with ChangeNotifier {
|
|||
case 'PATCH':
|
||||
{
|
||||
res = await http.patch(
|
||||
'${activeAccount.domain}/api/v1$p',
|
||||
Uri.parse('${activeAccount!.domain}/api/v1$p'),
|
||||
headers: headers,
|
||||
body: jsonEncode(body),
|
||||
);
|
||||
|
@ -389,7 +374,7 @@ class AuthModel with ChangeNotifier {
|
|||
}
|
||||
default:
|
||||
{
|
||||
res = await http.get('${activeAccount.domain}/api/v1$p',
|
||||
res = await http.get(Uri.parse('${activeAccount!.domain}/api/v1$p'),
|
||||
headers: headers);
|
||||
break;
|
||||
}
|
||||
|
@ -402,11 +387,11 @@ class AuthModel with ChangeNotifier {
|
|||
}
|
||||
|
||||
Future<DataWithPage> fetchGogsWithPage(String path,
|
||||
{int page, int limit}) async {
|
||||
{int? page, int? limit}) async {
|
||||
page = page ?? 1;
|
||||
limit = limit ?? pageSize;
|
||||
limit = limit ?? kPageSize;
|
||||
|
||||
var uri = Uri.parse('${activeAccount.domain}/api/v1$path');
|
||||
var uri = Uri.parse('${activeAccount!.domain}/api/v1$path');
|
||||
uri = uri.replace(
|
||||
queryParameters: {
|
||||
'page': page.toString(),
|
||||
|
@ -420,8 +405,9 @@ class AuthModel with ChangeNotifier {
|
|||
return DataWithPage(
|
||||
data: info,
|
||||
cursor: page + 1,
|
||||
hasMore: info is List && info.length > 0,
|
||||
total: int.tryParse(res.headers['x-total-count'] ?? ''),
|
||||
hasMore: info is List && info.isNotEmpty,
|
||||
total: int.tryParse(res.headers['x-total-count'] ?? '') ??
|
||||
kTotalCountFallback,
|
||||
);
|
||||
}
|
||||
|
||||
|
@ -431,7 +417,7 @@ class AuthModel with ChangeNotifier {
|
|||
Map<String, dynamic> body = const {},
|
||||
}) async {
|
||||
http.Response res;
|
||||
Map<String, String> headers = {
|
||||
final headers = <String, String>{
|
||||
'Authorization': 'token $token',
|
||||
HttpHeaders.contentTypeHeader: 'application/json'
|
||||
};
|
||||
|
@ -439,7 +425,7 @@ class AuthModel with ChangeNotifier {
|
|||
case 'DELETE':
|
||||
{
|
||||
await http.delete(
|
||||
'${activeAccount.domain}/api/v5$p',
|
||||
Uri.parse('${activeAccount!.domain}/api/v5$p'),
|
||||
headers: headers,
|
||||
);
|
||||
return;
|
||||
|
@ -447,7 +433,7 @@ class AuthModel with ChangeNotifier {
|
|||
case 'PUT':
|
||||
{
|
||||
await http.put(
|
||||
'${activeAccount.domain}/api/v5$p',
|
||||
Uri.parse('${activeAccount!.domain}/api/v5$p'),
|
||||
headers: headers,
|
||||
);
|
||||
return;
|
||||
|
@ -455,7 +441,7 @@ class AuthModel with ChangeNotifier {
|
|||
case 'POST':
|
||||
{
|
||||
res = await http.post(
|
||||
'${activeAccount.domain}/api/v5$p',
|
||||
Uri.parse('${activeAccount!.domain}/api/v5$p'),
|
||||
headers: headers,
|
||||
body: jsonEncode(body),
|
||||
);
|
||||
|
@ -464,7 +450,7 @@ class AuthModel with ChangeNotifier {
|
|||
case 'PATCH':
|
||||
{
|
||||
res = await http.patch(
|
||||
'${activeAccount.domain}/api/v5$p',
|
||||
Uri.parse('${activeAccount!.domain}/api/v5$p'),
|
||||
headers: headers,
|
||||
body: jsonEncode(body),
|
||||
);
|
||||
|
@ -472,13 +458,13 @@ class AuthModel with ChangeNotifier {
|
|||
}
|
||||
case 'NO CONTENT':
|
||||
{
|
||||
res = await http.get('${activeAccount.domain}/api/v5$p',
|
||||
res = await http.get(Uri.parse('${activeAccount!.domain}/api/v5$p'),
|
||||
headers: headers);
|
||||
return res;
|
||||
}
|
||||
default:
|
||||
{
|
||||
res = await http.get('${activeAccount.domain}/api/v5$p',
|
||||
res = await http.get(Uri.parse('${activeAccount!.domain}/api/v5$p'),
|
||||
headers: headers);
|
||||
break;
|
||||
}
|
||||
|
@ -488,11 +474,11 @@ class AuthModel with ChangeNotifier {
|
|||
}
|
||||
|
||||
Future<DataWithPage> fetchGiteeWithPage(String path,
|
||||
{int page, int limit}) async {
|
||||
{int? page, int? limit}) async {
|
||||
page = page ?? 1;
|
||||
limit = limit ?? pageSize;
|
||||
limit = limit ?? kPageSize;
|
||||
|
||||
var uri = Uri.parse('${activeAccount.domain}/api/v5$path');
|
||||
var uri = Uri.parse('${activeAccount!.domain}/api/v5$path');
|
||||
uri = uri.replace(
|
||||
queryParameters: {
|
||||
'page': page.toString(),
|
||||
|
@ -504,7 +490,8 @@ class AuthModel with ChangeNotifier {
|
|||
final info = json.decode(utf8.decode(res.bodyBytes));
|
||||
|
||||
final totalPage = int.tryParse(res.headers['total_page'] ?? '');
|
||||
final totalCount = int.tryParse(res.headers['total_count'] ?? '');
|
||||
final totalCount =
|
||||
int.tryParse(res.headers['total_count'] ?? '') ?? kTotalCountFallback;
|
||||
|
||||
return DataWithPage(
|
||||
data: info,
|
||||
|
@ -532,9 +519,9 @@ class AuthModel with ChangeNotifier {
|
|||
await _addAccount(Account(
|
||||
platform: PlatformType.bitbucket,
|
||||
domain: domain,
|
||||
token: user.username,
|
||||
token: user.username!,
|
||||
login: username,
|
||||
avatarUrl: user.avatarUrl,
|
||||
avatarUrl: user.avatarUrl!,
|
||||
appPassword: appPassword,
|
||||
accountId: user.accountId,
|
||||
));
|
||||
|
@ -551,10 +538,13 @@ class AuthModel with ChangeNotifier {
|
|||
}) async {
|
||||
if (p.startsWith('/') && !p.startsWith('/api')) p = '/api/2.0$p';
|
||||
final input = Uri.parse(p);
|
||||
final uri = Uri.parse(activeAccount.domain).replace(
|
||||
userInfo: '${activeAccount.login}:${activeAccount.appPassword}',
|
||||
final uri = Uri.parse(activeAccount!.domain).replace(
|
||||
userInfo: '${activeAccount!.login}:${activeAccount!.appPassword}',
|
||||
path: input.path,
|
||||
query: input.query,
|
||||
queryParameters: {
|
||||
'pagelen': kPageSize.toString(),
|
||||
...input.queryParameters
|
||||
},
|
||||
);
|
||||
if (isPost) {
|
||||
return http.post(
|
||||
|
@ -579,13 +569,12 @@ class AuthModel with ChangeNotifier {
|
|||
return json.decode(utf8.decode(res.bodyBytes));
|
||||
}
|
||||
|
||||
Future<BbPagePayload<List>> fetchBbWithPage(String p) async {
|
||||
Future<ListPayload<dynamic, String?>> fetchBbWithPage(String p) async {
|
||||
final data = await fetchBbJson(p);
|
||||
final v = BbPagination.fromJson(data);
|
||||
return BbPagePayload(
|
||||
return ListPayload(
|
||||
cursor: v.next,
|
||||
total: v.size,
|
||||
data: v.values,
|
||||
items: v.values,
|
||||
hasMore: v.next != null,
|
||||
);
|
||||
}
|
||||
|
@ -595,7 +584,7 @@ class AuthModel with ChangeNotifier {
|
|||
try {
|
||||
loading = true;
|
||||
notifyListeners();
|
||||
final res = await http.get('https://gitee.com/api/v5/user',
|
||||
final res = await http.get(Uri.parse('https://gitee.com/api/v5/user'),
|
||||
headers: {'Authorization': 'token $token'});
|
||||
final info = json.decode(res.body);
|
||||
if (info['message'] != null) {
|
||||
|
@ -607,8 +596,8 @@ class AuthModel with ChangeNotifier {
|
|||
platform: PlatformType.gitee,
|
||||
domain: 'https://gitee.com',
|
||||
token: token,
|
||||
login: user.login,
|
||||
avatarUrl: user.avatarUrl,
|
||||
login: user.login!,
|
||||
avatarUrl: user.avatarUrl!,
|
||||
));
|
||||
} finally {
|
||||
loading = false;
|
||||
|
@ -618,15 +607,15 @@ class AuthModel with ChangeNotifier {
|
|||
|
||||
Future<void> init() async {
|
||||
// Listen scheme
|
||||
_sub = getUriLinksStream().listen(_onSchemeDetected, onError: (err) {
|
||||
_sub = uriLinkStream.listen(_onSchemeDetected, onError: (err) {
|
||||
Fimber.e('getUriLinksStream failed', ex: err);
|
||||
});
|
||||
|
||||
var prefs = await SharedPreferences.getInstance();
|
||||
final prefs = await SharedPreferences.getInstance();
|
||||
|
||||
// Read accounts
|
||||
try {
|
||||
String str = prefs.getString(StorageKeys.accounts);
|
||||
final str = prefs.getString(StorageKeys.accounts);
|
||||
// Fimber.d('read accounts: $str');
|
||||
_accounts = (json.decode(str ?? '[]') as List)
|
||||
.map((item) => Account.fromJson(item))
|
||||
|
@ -635,7 +624,7 @@ class AuthModel with ChangeNotifier {
|
|||
|
||||
if (activeAccount != null) {
|
||||
_activeTab = prefs.getInt(
|
||||
StorageKeys.getDefaultStartTabKey(activeAccount.platform)) ??
|
||||
StorageKeys.getDefaultStartTabKey(activeAccount!.platform)) ??
|
||||
0;
|
||||
}
|
||||
} catch (err) {
|
||||
|
@ -669,13 +658,14 @@ class AuthModel with ChangeNotifier {
|
|||
// https://stackoverflow.com/a/50116077
|
||||
rootKey = UniqueKey();
|
||||
activeAccountIndex = index;
|
||||
setDefaultAccount(activeAccountIndex);
|
||||
setDefaultAccount(activeAccountIndex!);
|
||||
final prefs = await SharedPreferences.getInstance();
|
||||
_activeTab = prefs.getInt(
|
||||
StorageKeys.getDefaultStartTabKey(activeAccount.platform)) ??
|
||||
StorageKeys.getDefaultStartTabKey(activeAccount!.platform)) ??
|
||||
0;
|
||||
_ghClient = null;
|
||||
_gqlClient = null;
|
||||
_ghGqlClient = null;
|
||||
_glGqlClient = null;
|
||||
notifyListeners();
|
||||
|
||||
// TODO: strategy
|
||||
|
@ -691,47 +681,48 @@ class AuthModel with ChangeNotifier {
|
|||
}
|
||||
|
||||
// http timeout
|
||||
var _timeoutDuration = Duration(seconds: 10);
|
||||
final _timeoutDuration = const Duration(seconds: 10);
|
||||
// var _timeoutDuration = Duration(seconds: 1);
|
||||
|
||||
GitHub _ghClient;
|
||||
GitHub? _ghClient;
|
||||
GitHub get ghClient {
|
||||
if (token == null) return null;
|
||||
if (_ghClient == null) {
|
||||
_ghClient = GitHub(auth: Authentication.withToken(token));
|
||||
}
|
||||
return _ghClient;
|
||||
_ghClient ??= GitHub(auth: Authentication.withToken(token));
|
||||
return _ghClient!;
|
||||
}
|
||||
|
||||
Client _gqlClient;
|
||||
Client get gqlClient {
|
||||
if (token == null) return null;
|
||||
|
||||
if (_gqlClient == null) {
|
||||
_gqlClient = Client(
|
||||
link: HttpLink(
|
||||
_apiPrefix + '/graphql',
|
||||
defaultHeaders: {HttpHeaders.authorizationHeader: 'token $token'},
|
||||
),
|
||||
cache: Cache(store: NilStore()),
|
||||
);
|
||||
}
|
||||
|
||||
return _gqlClient;
|
||||
Client? _ghGqlClient;
|
||||
Client get ghGqlClient {
|
||||
return _ghGqlClient ??= Client(
|
||||
link: HttpLink(
|
||||
'$_apiPrefix/graphql',
|
||||
defaultHeaders: {HttpHeaders.authorizationHeader: 'token $token'},
|
||||
),
|
||||
// https://ferrygraphql.com/docs/fetch-policies#default-fetchpolicies
|
||||
defaultFetchPolicies: {OperationType.query: FetchPolicy.NetworkOnly},
|
||||
);
|
||||
}
|
||||
|
||||
Future<dynamic> query(String query, [String _token]) async {
|
||||
if (_token == null) {
|
||||
_token = token;
|
||||
}
|
||||
if (_token == null) {
|
||||
throw 'token is null';
|
||||
}
|
||||
Client? _glGqlClient;
|
||||
Client get glGqlClient {
|
||||
return _glGqlClient ??= Client(
|
||||
link: HttpLink(
|
||||
Uri.parse(activeAccount!.domain)
|
||||
.replace(path: '/api/graphql')
|
||||
.toString(),
|
||||
defaultHeaders: {'Private-Token': token},
|
||||
),
|
||||
// https://ferrygraphql.com/docs/fetch-policies#default-fetchpolicies
|
||||
defaultFetchPolicies: {OperationType.query: FetchPolicy.NetworkOnly},
|
||||
);
|
||||
}
|
||||
|
||||
Future<dynamic> query(String query, [String? t]) async {
|
||||
t ??= token;
|
||||
|
||||
final res = await http
|
||||
.post(_apiPrefix + '/graphql',
|
||||
.post(Uri.parse('$_apiPrefix/graphql'),
|
||||
headers: {
|
||||
HttpHeaders.authorizationHeader: 'token $_token',
|
||||
HttpHeaders.authorizationHeader: 'token $t',
|
||||
HttpHeaders.contentTypeHeader: 'application/json'
|
||||
},
|
||||
body: json.encode({'query': query}))
|
||||
|
@ -747,13 +738,13 @@ class AuthModel with ChangeNotifier {
|
|||
return data['data'];
|
||||
}
|
||||
|
||||
String _oauthState;
|
||||
String? _oauthState;
|
||||
void redirectToGithubOauth([publicOnly = false]) {
|
||||
_oauthState = nanoid();
|
||||
final repoScope = publicOnly ? 'public_repo' : 'repo';
|
||||
final scope = Uri.encodeComponent(
|
||||
['user', repoScope, 'read:org', 'notifications'].join(','));
|
||||
launchUrl(
|
||||
launchStringUrl(
|
||||
'https://github.com/login/oauth/authorize?client_id=$clientId&redirect_uri=gittouch://login&scope=$scope&state=$_oauthState',
|
||||
);
|
||||
}
|
||||
|
@ -765,8 +756,8 @@ class AuthModel with ChangeNotifier {
|
|||
_activeTab = v;
|
||||
final prefs = await SharedPreferences.getInstance();
|
||||
await prefs.setInt(
|
||||
StorageKeys.getDefaultStartTabKey(activeAccount.platform), v);
|
||||
Fimber.d('write default start tab for ${activeAccount.platform}: $v');
|
||||
StorageKeys.getDefaultStartTabKey(activeAccount!.platform), v);
|
||||
Fimber.d('write default start tab for ${activeAccount!.platform}: $v');
|
||||
notifyListeners();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,155 +1,153 @@
|
|||
import 'package:json_annotation/json_annotation.dart';
|
||||
|
||||
part 'bitbucket.g.dart';
|
||||
|
||||
@JsonSerializable(fieldRename: FieldRename.snake)
|
||||
class BbPagination {
|
||||
int pagelen;
|
||||
int size;
|
||||
int page;
|
||||
String next;
|
||||
List values;
|
||||
BbPagination();
|
||||
BbPagination({required this.values});
|
||||
factory BbPagination.fromJson(Map<String, dynamic> json) =>
|
||||
_$BbPaginationFromJson(json);
|
||||
String? next;
|
||||
List values;
|
||||
}
|
||||
|
||||
@JsonSerializable(fieldRename: FieldRename.snake)
|
||||
class BbRepoOwner {
|
||||
String nickname;
|
||||
String displayName;
|
||||
String type; // user, team
|
||||
Map<String, dynamic> links;
|
||||
String get avatarUrl => links['avatar']['href'];
|
||||
BbRepoOwner();
|
||||
factory BbRepoOwner.fromJson(Map<String, dynamic> json) =>
|
||||
_$BbRepoOwnerFromJson(json);
|
||||
String? nickname;
|
||||
String? displayName;
|
||||
String? type; // user, team
|
||||
Map<String, dynamic>? links;
|
||||
String? get avatarUrl => links!['avatar']['href'];
|
||||
}
|
||||
|
||||
@JsonSerializable(fieldRename: FieldRename.snake)
|
||||
class BbUser extends BbRepoOwner {
|
||||
String username;
|
||||
bool isStaff;
|
||||
DateTime createdOn;
|
||||
String accountId;
|
||||
BbUser();
|
||||
factory BbUser.fromJson(Map<String, dynamic> json) => _$BbUserFromJson(json);
|
||||
String? username;
|
||||
bool? isStaff;
|
||||
DateTime? createdOn;
|
||||
String? accountId;
|
||||
}
|
||||
|
||||
@JsonSerializable(fieldRename: FieldRename.snake)
|
||||
class BbRepo {
|
||||
String name;
|
||||
BbRepoOwner owner;
|
||||
String website;
|
||||
String language;
|
||||
int size;
|
||||
String type; // repository
|
||||
bool isPrivate;
|
||||
DateTime createdOn;
|
||||
DateTime updatedOn;
|
||||
String description;
|
||||
String fullName;
|
||||
String slug;
|
||||
BbRepoMainbranch mainbranch;
|
||||
Map<String, dynamic> links;
|
||||
String get ownerLogin => fullName.split('/')[0]; // owner has no username
|
||||
String get avatarUrl => links['avatar']['href'];
|
||||
BbRepo();
|
||||
factory BbRepo.fromJson(Map<String, dynamic> json) => _$BbRepoFromJson(json);
|
||||
String? name;
|
||||
BbRepoOwner? owner;
|
||||
String? website;
|
||||
String? language;
|
||||
int? size;
|
||||
String? type; // repository
|
||||
bool? isPrivate;
|
||||
DateTime? createdOn;
|
||||
DateTime? updatedOn;
|
||||
String? description;
|
||||
String? fullName;
|
||||
String? slug;
|
||||
BbRepoMainbranch? mainbranch;
|
||||
Map<String, dynamic>? links;
|
||||
String get ownerLogin => fullName!.split('/')[0]; // owner has no username
|
||||
String? get avatarUrl => links!['avatar']['href'];
|
||||
}
|
||||
|
||||
@JsonSerializable(fieldRename: FieldRename.snake)
|
||||
class BbRepoMainbranch {
|
||||
String type;
|
||||
String name;
|
||||
BbRepoMainbranch();
|
||||
factory BbRepoMainbranch.fromJson(Map<String, dynamic> json) =>
|
||||
_$BbRepoMainbranchFromJson(json);
|
||||
String? type;
|
||||
String? name;
|
||||
}
|
||||
|
||||
@JsonSerializable(fieldRename: FieldRename.snake)
|
||||
class BbTree {
|
||||
BbTree({required this.type, required this.path});
|
||||
factory BbTree.fromJson(Map<String, dynamic> json) => _$BbTreeFromJson(json);
|
||||
String type;
|
||||
String path;
|
||||
int size;
|
||||
Map<String, dynamic> links;
|
||||
BbTree();
|
||||
factory BbTree.fromJson(Map<String, dynamic> json) => _$BbTreeFromJson(json);
|
||||
int? size;
|
||||
Map<String, dynamic>? links;
|
||||
}
|
||||
|
||||
@JsonSerializable(fieldRename: FieldRename.snake)
|
||||
class BbCommit {
|
||||
String message;
|
||||
DateTime date;
|
||||
String hash;
|
||||
BbCommitAuthor author;
|
||||
BbCommit();
|
||||
factory BbCommit.fromJson(Map<String, dynamic> json) =>
|
||||
_$BbCommitFromJson(json);
|
||||
String? message;
|
||||
DateTime? date;
|
||||
String? hash;
|
||||
BbCommitAuthor? author;
|
||||
}
|
||||
|
||||
@JsonSerializable(fieldRename: FieldRename.snake)
|
||||
class BbCommitAuthor {
|
||||
String raw;
|
||||
BbRepoOwner user;
|
||||
BbCommitAuthor();
|
||||
factory BbCommitAuthor.fromJson(Map<String, dynamic> json) =>
|
||||
_$BbCommitAuthorFromJson(json);
|
||||
String? raw;
|
||||
BbRepoOwner? user;
|
||||
}
|
||||
|
||||
@JsonSerializable(fieldRename: FieldRename.snake)
|
||||
class BbIssues {
|
||||
String priority;
|
||||
String state;
|
||||
BbRepo repository;
|
||||
String title;
|
||||
BbRepoOwner reporter;
|
||||
DateTime createdOn;
|
||||
Map<String, dynamic> links;
|
||||
String get issueLink => links['self']['href'];
|
||||
BbIssues();
|
||||
factory BbIssues.fromJson(Map<String, dynamic> json) =>
|
||||
_$BbIssuesFromJson(json);
|
||||
String? priority;
|
||||
String? state;
|
||||
BbRepo? repository;
|
||||
String? title;
|
||||
BbRepoOwner? reporter;
|
||||
DateTime? createdOn;
|
||||
Map<String, dynamic>? links;
|
||||
String? get issueLink => links!['self']['href'];
|
||||
}
|
||||
|
||||
@JsonSerializable(fieldRename: FieldRename.snake)
|
||||
class BbPulls {
|
||||
String description;
|
||||
BbRepoOwner author;
|
||||
String title;
|
||||
Map<String, dynamic> links;
|
||||
String get pullRequestLink => links['self']['href'];
|
||||
DateTime createdOn;
|
||||
BbPulls();
|
||||
factory BbPulls.fromJson(Map<String, dynamic> json) =>
|
||||
_$BbPullsFromJson(json);
|
||||
String? description;
|
||||
BbRepoOwner? author;
|
||||
String? title;
|
||||
Map<String, dynamic>? links;
|
||||
String? get pullRequestLink => links!['self']['href'];
|
||||
DateTime? createdOn;
|
||||
}
|
||||
|
||||
@JsonSerializable(fieldRename: FieldRename.snake)
|
||||
class BbCommentContent {
|
||||
String raw;
|
||||
String markup;
|
||||
String html;
|
||||
BbCommentContent();
|
||||
factory BbCommentContent.fromJson(Map<String, dynamic> json) =>
|
||||
_$BbCommentContentFromJson(json);
|
||||
String? raw;
|
||||
String? markup;
|
||||
String? html;
|
||||
}
|
||||
|
||||
@JsonSerializable(fieldRename: FieldRename.snake)
|
||||
class BbComment {
|
||||
String createdOn;
|
||||
String updatedOn;
|
||||
BbCommentContent content;
|
||||
BbRepoOwner user;
|
||||
BbComment();
|
||||
factory BbComment.fromJson(Map<String, dynamic> json) =>
|
||||
_$BbCommentFromJson(json);
|
||||
String? createdOn;
|
||||
String? updatedOn;
|
||||
BbCommentContent? content;
|
||||
BbRepoOwner? user;
|
||||
}
|
||||
|
||||
@JsonSerializable(fieldRename: FieldRename.snake)
|
||||
class BbBranch {
|
||||
String name;
|
||||
String type;
|
||||
BbBranch();
|
||||
factory BbBranch.fromJson(Map<String, dynamic> json) =>
|
||||
_$BbBranchFromJson(json);
|
||||
String? name;
|
||||
String? type;
|
||||
}
|
||||
|
|
|
@ -6,31 +6,21 @@ part of 'bitbucket.dart';
|
|||
// JsonSerializableGenerator
|
||||
// **************************************************************************
|
||||
|
||||
BbPagination _$BbPaginationFromJson(Map<String, dynamic> json) {
|
||||
return BbPagination()
|
||||
..pagelen = json['pagelen'] as int
|
||||
..size = json['size'] as int
|
||||
..page = json['page'] as int
|
||||
..next = json['next'] as String
|
||||
..values = json['values'] as List;
|
||||
}
|
||||
BbPagination _$BbPaginationFromJson(Map<String, dynamic> json) => BbPagination(
|
||||
values: json['values'] as List<dynamic>,
|
||||
)..next = json['next'] as String?;
|
||||
|
||||
Map<String, dynamic> _$BbPaginationToJson(BbPagination instance) =>
|
||||
<String, dynamic>{
|
||||
'pagelen': instance.pagelen,
|
||||
'size': instance.size,
|
||||
'page': instance.page,
|
||||
'next': instance.next,
|
||||
'values': instance.values,
|
||||
};
|
||||
|
||||
BbRepoOwner _$BbRepoOwnerFromJson(Map<String, dynamic> json) {
|
||||
return BbRepoOwner()
|
||||
..nickname = json['nickname'] as String
|
||||
..displayName = json['display_name'] as String
|
||||
..type = json['type'] as String
|
||||
..links = json['links'] as Map<String, dynamic>;
|
||||
}
|
||||
BbRepoOwner _$BbRepoOwnerFromJson(Map<String, dynamic> json) => BbRepoOwner()
|
||||
..nickname = json['nickname'] as String?
|
||||
..displayName = json['display_name'] as String?
|
||||
..type = json['type'] as String?
|
||||
..links = json['links'] as Map<String, dynamic>?;
|
||||
|
||||
Map<String, dynamic> _$BbRepoOwnerToJson(BbRepoOwner instance) =>
|
||||
<String, dynamic>{
|
||||
|
@ -40,19 +30,17 @@ Map<String, dynamic> _$BbRepoOwnerToJson(BbRepoOwner instance) =>
|
|||
'links': instance.links,
|
||||
};
|
||||
|
||||
BbUser _$BbUserFromJson(Map<String, dynamic> json) {
|
||||
return BbUser()
|
||||
..nickname = json['nickname'] as String
|
||||
..displayName = json['display_name'] as String
|
||||
..type = json['type'] as String
|
||||
..links = json['links'] as Map<String, dynamic>
|
||||
..username = json['username'] as String
|
||||
..isStaff = json['is_staff'] as bool
|
||||
..createdOn = json['created_on'] == null
|
||||
? null
|
||||
: DateTime.parse(json['created_on'] as String)
|
||||
..accountId = json['account_id'] as String;
|
||||
}
|
||||
BbUser _$BbUserFromJson(Map<String, dynamic> json) => BbUser()
|
||||
..nickname = json['nickname'] as String?
|
||||
..displayName = json['display_name'] as String?
|
||||
..type = json['type'] as String?
|
||||
..links = json['links'] as Map<String, dynamic>?
|
||||
..username = json['username'] as String?
|
||||
..isStaff = json['is_staff'] as bool?
|
||||
..createdOn = json['created_on'] == null
|
||||
? null
|
||||
: DateTime.parse(json['created_on'] as String)
|
||||
..accountId = json['account_id'] as String?;
|
||||
|
||||
Map<String, dynamic> _$BbUserToJson(BbUser instance) => <String, dynamic>{
|
||||
'nickname': instance.nickname,
|
||||
|
@ -65,31 +53,29 @@ Map<String, dynamic> _$BbUserToJson(BbUser instance) => <String, dynamic>{
|
|||
'account_id': instance.accountId,
|
||||
};
|
||||
|
||||
BbRepo _$BbRepoFromJson(Map<String, dynamic> json) {
|
||||
return BbRepo()
|
||||
..name = json['name'] as String
|
||||
..owner = json['owner'] == null
|
||||
? null
|
||||
: BbRepoOwner.fromJson(json['owner'] as Map<String, dynamic>)
|
||||
..website = json['website'] as String
|
||||
..language = json['language'] as String
|
||||
..size = json['size'] as int
|
||||
..type = json['type'] as String
|
||||
..isPrivate = json['is_private'] as bool
|
||||
..createdOn = json['created_on'] == null
|
||||
? null
|
||||
: DateTime.parse(json['created_on'] as String)
|
||||
..updatedOn = json['updated_on'] == null
|
||||
? null
|
||||
: DateTime.parse(json['updated_on'] as String)
|
||||
..description = json['description'] as String
|
||||
..fullName = json['full_name'] as String
|
||||
..slug = json['slug'] as String
|
||||
..mainbranch = json['mainbranch'] == null
|
||||
? null
|
||||
: BbRepoMainbranch.fromJson(json['mainbranch'] as Map<String, dynamic>)
|
||||
..links = json['links'] as Map<String, dynamic>;
|
||||
}
|
||||
BbRepo _$BbRepoFromJson(Map<String, dynamic> json) => BbRepo()
|
||||
..name = json['name'] as String?
|
||||
..owner = json['owner'] == null
|
||||
? null
|
||||
: BbRepoOwner.fromJson(json['owner'] as Map<String, dynamic>)
|
||||
..website = json['website'] as String?
|
||||
..language = json['language'] as String?
|
||||
..size = json['size'] as int?
|
||||
..type = json['type'] as String?
|
||||
..isPrivate = json['is_private'] as bool?
|
||||
..createdOn = json['created_on'] == null
|
||||
? null
|
||||
: DateTime.parse(json['created_on'] as String)
|
||||
..updatedOn = json['updated_on'] == null
|
||||
? null
|
||||
: DateTime.parse(json['updated_on'] as String)
|
||||
..description = json['description'] as String?
|
||||
..fullName = json['full_name'] as String?
|
||||
..slug = json['slug'] as String?
|
||||
..mainbranch = json['mainbranch'] == null
|
||||
? null
|
||||
: BbRepoMainbranch.fromJson(json['mainbranch'] as Map<String, dynamic>)
|
||||
..links = json['links'] as Map<String, dynamic>?;
|
||||
|
||||
Map<String, dynamic> _$BbRepoToJson(BbRepo instance) => <String, dynamic>{
|
||||
'name': instance.name,
|
||||
|
@ -108,11 +94,10 @@ Map<String, dynamic> _$BbRepoToJson(BbRepo instance) => <String, dynamic>{
|
|||
'links': instance.links,
|
||||
};
|
||||
|
||||
BbRepoMainbranch _$BbRepoMainbranchFromJson(Map<String, dynamic> json) {
|
||||
return BbRepoMainbranch()
|
||||
..type = json['type'] as String
|
||||
..name = json['name'] as String;
|
||||
}
|
||||
BbRepoMainbranch _$BbRepoMainbranchFromJson(Map<String, dynamic> json) =>
|
||||
BbRepoMainbranch()
|
||||
..type = json['type'] as String?
|
||||
..name = json['name'] as String?;
|
||||
|
||||
Map<String, dynamic> _$BbRepoMainbranchToJson(BbRepoMainbranch instance) =>
|
||||
<String, dynamic>{
|
||||
|
@ -120,13 +105,12 @@ Map<String, dynamic> _$BbRepoMainbranchToJson(BbRepoMainbranch instance) =>
|
|||
'name': instance.name,
|
||||
};
|
||||
|
||||
BbTree _$BbTreeFromJson(Map<String, dynamic> json) {
|
||||
return BbTree()
|
||||
..type = json['type'] as String
|
||||
..path = json['path'] as String
|
||||
..size = json['size'] as int
|
||||
..links = json['links'] as Map<String, dynamic>;
|
||||
}
|
||||
BbTree _$BbTreeFromJson(Map<String, dynamic> json) => BbTree(
|
||||
type: json['type'] as String,
|
||||
path: json['path'] as String,
|
||||
)
|
||||
..size = json['size'] as int?
|
||||
..links = json['links'] as Map<String, dynamic>?;
|
||||
|
||||
Map<String, dynamic> _$BbTreeToJson(BbTree instance) => <String, dynamic>{
|
||||
'type': instance.type,
|
||||
|
@ -135,16 +119,13 @@ Map<String, dynamic> _$BbTreeToJson(BbTree instance) => <String, dynamic>{
|
|||
'links': instance.links,
|
||||
};
|
||||
|
||||
BbCommit _$BbCommitFromJson(Map<String, dynamic> json) {
|
||||
return BbCommit()
|
||||
..message = json['message'] as String
|
||||
..date =
|
||||
json['date'] == null ? null : DateTime.parse(json['date'] as String)
|
||||
..hash = json['hash'] as String
|
||||
..author = json['author'] == null
|
||||
? null
|
||||
: BbCommitAuthor.fromJson(json['author'] as Map<String, dynamic>);
|
||||
}
|
||||
BbCommit _$BbCommitFromJson(Map<String, dynamic> json) => BbCommit()
|
||||
..message = json['message'] as String?
|
||||
..date = json['date'] == null ? null : DateTime.parse(json['date'] as String)
|
||||
..hash = json['hash'] as String?
|
||||
..author = json['author'] == null
|
||||
? null
|
||||
: BbCommitAuthor.fromJson(json['author'] as Map<String, dynamic>);
|
||||
|
||||
Map<String, dynamic> _$BbCommitToJson(BbCommit instance) => <String, dynamic>{
|
||||
'message': instance.message,
|
||||
|
@ -153,13 +134,12 @@ Map<String, dynamic> _$BbCommitToJson(BbCommit instance) => <String, dynamic>{
|
|||
'author': instance.author,
|
||||
};
|
||||
|
||||
BbCommitAuthor _$BbCommitAuthorFromJson(Map<String, dynamic> json) {
|
||||
return BbCommitAuthor()
|
||||
..raw = json['raw'] as String
|
||||
..user = json['user'] == null
|
||||
? null
|
||||
: BbRepoOwner.fromJson(json['user'] as Map<String, dynamic>);
|
||||
}
|
||||
BbCommitAuthor _$BbCommitAuthorFromJson(Map<String, dynamic> json) =>
|
||||
BbCommitAuthor()
|
||||
..raw = json['raw'] as String?
|
||||
..user = json['user'] == null
|
||||
? null
|
||||
: BbRepoOwner.fromJson(json['user'] as Map<String, dynamic>);
|
||||
|
||||
Map<String, dynamic> _$BbCommitAuthorToJson(BbCommitAuthor instance) =>
|
||||
<String, dynamic>{
|
||||
|
@ -167,22 +147,20 @@ Map<String, dynamic> _$BbCommitAuthorToJson(BbCommitAuthor instance) =>
|
|||
'user': instance.user,
|
||||
};
|
||||
|
||||
BbIssues _$BbIssuesFromJson(Map<String, dynamic> json) {
|
||||
return BbIssues()
|
||||
..priority = json['priority'] as String
|
||||
..state = json['state'] as String
|
||||
..repository = json['repository'] == null
|
||||
? null
|
||||
: BbRepo.fromJson(json['repository'] as Map<String, dynamic>)
|
||||
..title = json['title'] as String
|
||||
..reporter = json['reporter'] == null
|
||||
? null
|
||||
: BbRepoOwner.fromJson(json['reporter'] as Map<String, dynamic>)
|
||||
..createdOn = json['created_on'] == null
|
||||
? null
|
||||
: DateTime.parse(json['created_on'] as String)
|
||||
..links = json['links'] as Map<String, dynamic>;
|
||||
}
|
||||
BbIssues _$BbIssuesFromJson(Map<String, dynamic> json) => BbIssues()
|
||||
..priority = json['priority'] as String?
|
||||
..state = json['state'] as String?
|
||||
..repository = json['repository'] == null
|
||||
? null
|
||||
: BbRepo.fromJson(json['repository'] as Map<String, dynamic>)
|
||||
..title = json['title'] as String?
|
||||
..reporter = json['reporter'] == null
|
||||
? null
|
||||
: BbRepoOwner.fromJson(json['reporter'] as Map<String, dynamic>)
|
||||
..createdOn = json['created_on'] == null
|
||||
? null
|
||||
: DateTime.parse(json['created_on'] as String)
|
||||
..links = json['links'] as Map<String, dynamic>?;
|
||||
|
||||
Map<String, dynamic> _$BbIssuesToJson(BbIssues instance) => <String, dynamic>{
|
||||
'priority': instance.priority,
|
||||
|
@ -194,18 +172,16 @@ Map<String, dynamic> _$BbIssuesToJson(BbIssues instance) => <String, dynamic>{
|
|||
'links': instance.links,
|
||||
};
|
||||
|
||||
BbPulls _$BbPullsFromJson(Map<String, dynamic> json) {
|
||||
return BbPulls()
|
||||
..description = json['description'] as String
|
||||
..author = json['author'] == null
|
||||
? null
|
||||
: BbRepoOwner.fromJson(json['author'] as Map<String, dynamic>)
|
||||
..title = json['title'] as String
|
||||
..links = json['links'] as Map<String, dynamic>
|
||||
..createdOn = json['created_on'] == null
|
||||
? null
|
||||
: DateTime.parse(json['created_on'] as String);
|
||||
}
|
||||
BbPulls _$BbPullsFromJson(Map<String, dynamic> json) => BbPulls()
|
||||
..description = json['description'] as String?
|
||||
..author = json['author'] == null
|
||||
? null
|
||||
: BbRepoOwner.fromJson(json['author'] as Map<String, dynamic>)
|
||||
..title = json['title'] as String?
|
||||
..links = json['links'] as Map<String, dynamic>?
|
||||
..createdOn = json['created_on'] == null
|
||||
? null
|
||||
: DateTime.parse(json['created_on'] as String);
|
||||
|
||||
Map<String, dynamic> _$BbPullsToJson(BbPulls instance) => <String, dynamic>{
|
||||
'description': instance.description,
|
||||
|
@ -215,12 +191,11 @@ Map<String, dynamic> _$BbPullsToJson(BbPulls instance) => <String, dynamic>{
|
|||
'created_on': instance.createdOn?.toIso8601String(),
|
||||
};
|
||||
|
||||
BbCommentContent _$BbCommentContentFromJson(Map<String, dynamic> json) {
|
||||
return BbCommentContent()
|
||||
..raw = json['raw'] as String
|
||||
..markup = json['markup'] as String
|
||||
..html = json['html'] as String;
|
||||
}
|
||||
BbCommentContent _$BbCommentContentFromJson(Map<String, dynamic> json) =>
|
||||
BbCommentContent()
|
||||
..raw = json['raw'] as String?
|
||||
..markup = json['markup'] as String?
|
||||
..html = json['html'] as String?;
|
||||
|
||||
Map<String, dynamic> _$BbCommentContentToJson(BbCommentContent instance) =>
|
||||
<String, dynamic>{
|
||||
|
@ -229,17 +204,15 @@ Map<String, dynamic> _$BbCommentContentToJson(BbCommentContent instance) =>
|
|||
'html': instance.html,
|
||||
};
|
||||
|
||||
BbComment _$BbCommentFromJson(Map<String, dynamic> json) {
|
||||
return BbComment()
|
||||
..createdOn = json['created_on'] as String
|
||||
..updatedOn = json['updated_on'] as String
|
||||
..content = json['content'] == null
|
||||
? null
|
||||
: BbCommentContent.fromJson(json['content'] as Map<String, dynamic>)
|
||||
..user = json['user'] == null
|
||||
? null
|
||||
: BbRepoOwner.fromJson(json['user'] as Map<String, dynamic>);
|
||||
}
|
||||
BbComment _$BbCommentFromJson(Map<String, dynamic> json) => BbComment()
|
||||
..createdOn = json['created_on'] as String?
|
||||
..updatedOn = json['updated_on'] as String?
|
||||
..content = json['content'] == null
|
||||
? null
|
||||
: BbCommentContent.fromJson(json['content'] as Map<String, dynamic>)
|
||||
..user = json['user'] == null
|
||||
? null
|
||||
: BbRepoOwner.fromJson(json['user'] as Map<String, dynamic>);
|
||||
|
||||
Map<String, dynamic> _$BbCommentToJson(BbComment instance) => <String, dynamic>{
|
||||
'created_on': instance.createdOn,
|
||||
|
@ -248,11 +221,9 @@ Map<String, dynamic> _$BbCommentToJson(BbComment instance) => <String, dynamic>{
|
|||
'user': instance.user,
|
||||
};
|
||||
|
||||
BbBranch _$BbBranchFromJson(Map<String, dynamic> json) {
|
||||
return BbBranch()
|
||||
..name = json['name'] as String
|
||||
..type = json['type'] as String;
|
||||
}
|
||||
BbBranch _$BbBranchFromJson(Map<String, dynamic> json) => BbBranch()
|
||||
..name = json['name'] as String?
|
||||
..type = json['type'] as String?;
|
||||
|
||||
Map<String, dynamic> _$BbBranchToJson(BbBranch instance) => <String, dynamic>{
|
||||
'name': instance.name,
|
||||
|
|
|
@ -1,61 +1,76 @@
|
|||
import 'package:fimber/fimber.dart';
|
||||
import 'package:flutter/foundation.dart';
|
||||
import 'package:flutter/widgets.dart';
|
||||
import 'package:flutter_highlight/theme_map.dart';
|
||||
import 'package:git_touch/utils/utils.dart';
|
||||
import 'package:google_fonts/google_fonts.dart';
|
||||
import 'package:shared_preferences/shared_preferences.dart';
|
||||
|
||||
class CodeModel with ChangeNotifier {
|
||||
static var themes = themeMap.keys.toList();
|
||||
static const fontSizes = [12, 13, 14, 15, 16, 17, 18, 19, 20];
|
||||
static const fontFamilies = [
|
||||
static final fontFamilies = [
|
||||
'System',
|
||||
'JetBrains Mono',
|
||||
'Fira Code',
|
||||
'Inconsolata',
|
||||
'PT Mono',
|
||||
'Source Code Pro',
|
||||
'Ubuntu Mono',
|
||||
'Cascadia Code',
|
||||
|
||||
// https://fonts.google.com/?category=Monospace
|
||||
...GoogleFonts.asMap().keys.where((element) =>
|
||||
element.endsWith('Mono') ||
|
||||
[
|
||||
'Inconsolata',
|
||||
'Source Code Pro',
|
||||
'Nanum Gothic Coding',
|
||||
'Cousine',
|
||||
'Anonymous Pro',
|
||||
'Courier Prime',
|
||||
'VT323',
|
||||
'Fira Code'
|
||||
].contains(element)),
|
||||
];
|
||||
|
||||
String _theme = 'vs';
|
||||
String _themeDark = 'vs2015';
|
||||
int _fontSize = 14;
|
||||
String _fontFamily = 'JetBrains Mono';
|
||||
String _fontFamily = 'System';
|
||||
|
||||
String get theme => _theme;
|
||||
String get themeDark => _themeDark;
|
||||
|
||||
int get fontSize => _fontSize;
|
||||
String get fontFamily => _fontFamily;
|
||||
String get fontFamilyUsed =>
|
||||
_fontFamily == 'System' ? CommonStyle.monospace : _fontFamily;
|
||||
TextStyle get fontStyle {
|
||||
if (_fontFamily == 'System') {
|
||||
return TextStyle(
|
||||
fontFamily: CommonStyle.monospace, fontSize: fontSize.toDouble());
|
||||
} else {
|
||||
return GoogleFonts.getFont(_fontFamily, fontSize: fontSize.toDouble());
|
||||
}
|
||||
}
|
||||
|
||||
Future<void> init() async {
|
||||
var prefs = await SharedPreferences.getInstance();
|
||||
var vh = prefs.getString(StorageKeys.codeTheme);
|
||||
var vdh = prefs.getString(StorageKeys.codeThemeDark);
|
||||
var vs = prefs.getInt(StorageKeys.iCodeFontSize);
|
||||
var vf = prefs.getString(StorageKeys.codeFontFamily);
|
||||
final prefs = await SharedPreferences.getInstance();
|
||||
final vh = prefs.getString(StorageKeys.codeTheme);
|
||||
final vdh = prefs.getString(StorageKeys.codeThemeDark);
|
||||
final vs = prefs.getInt(StorageKeys.iCodeFontSize);
|
||||
final vf = prefs.getString(StorageKeys.codeFontFamily);
|
||||
|
||||
Fimber.d('read code: $vh, $vs, $vf');
|
||||
if (themeMap.keys.contains(vh)) {
|
||||
_theme = vh;
|
||||
_theme = vh!;
|
||||
}
|
||||
if (themeMap.keys.contains(vdh)) {
|
||||
_themeDark = vdh;
|
||||
_themeDark = vdh!;
|
||||
}
|
||||
if (fontSizes.contains(vs)) {
|
||||
_fontSize = vs;
|
||||
_fontSize = vs!;
|
||||
}
|
||||
if (fontFamilies.contains(vf)) {
|
||||
_fontFamily = vf;
|
||||
_fontFamily = vf!;
|
||||
}
|
||||
|
||||
notifyListeners();
|
||||
}
|
||||
|
||||
setTheme(String v) async {
|
||||
var prefs = await SharedPreferences.getInstance();
|
||||
final prefs = await SharedPreferences.getInstance();
|
||||
|
||||
await prefs.setString(StorageKeys.codeTheme, v);
|
||||
Fimber.d('write code theme: $v');
|
||||
|
@ -65,7 +80,7 @@ class CodeModel with ChangeNotifier {
|
|||
}
|
||||
|
||||
setThemeDark(String v) async {
|
||||
var prefs = await SharedPreferences.getInstance();
|
||||
final prefs = await SharedPreferences.getInstance();
|
||||
|
||||
await prefs.setString(StorageKeys.codeThemeDark, v);
|
||||
Fimber.d('write code theme dark: $v');
|
||||
|
@ -75,7 +90,7 @@ class CodeModel with ChangeNotifier {
|
|||
}
|
||||
|
||||
setFontSize(int v) async {
|
||||
var prefs = await SharedPreferences.getInstance();
|
||||
final prefs = await SharedPreferences.getInstance();
|
||||
|
||||
await prefs.setInt(StorageKeys.iCodeFontSize, v);
|
||||
Fimber.d('write code font size: $v');
|
||||
|
@ -85,7 +100,7 @@ class CodeModel with ChangeNotifier {
|
|||
}
|
||||
|
||||
setFontFamily(String v) async {
|
||||
var prefs = await SharedPreferences.getInstance();
|
||||
final prefs = await SharedPreferences.getInstance();
|
||||
|
||||
await prefs.setString(StorageKeys.codeFontFamily, v);
|
||||
Fimber.d('write code font family: $v');
|
||||
|
|
|
@ -4,146 +4,146 @@ part 'gitea.g.dart';
|
|||
|
||||
@JsonSerializable(fieldRename: FieldRename.snake)
|
||||
class GiteaUser {
|
||||
int id;
|
||||
String login;
|
||||
String fullName;
|
||||
String avatarUrl;
|
||||
DateTime created;
|
||||
GiteaUser();
|
||||
factory GiteaUser.fromJson(Map<String, dynamic> json) =>
|
||||
_$GiteaUserFromJson(json);
|
||||
int? id;
|
||||
String? login;
|
||||
String? fullName;
|
||||
String? avatarUrl;
|
||||
DateTime? created;
|
||||
}
|
||||
|
||||
@JsonSerializable(fieldRename: FieldRename.snake)
|
||||
class GiteaOrg {
|
||||
int id;
|
||||
String username;
|
||||
String fullName;
|
||||
String avatarUrl;
|
||||
String description;
|
||||
String website;
|
||||
String location;
|
||||
GiteaOrg();
|
||||
factory GiteaOrg.fromJson(Map<String, dynamic> json) =>
|
||||
_$GiteaOrgFromJson(json);
|
||||
int? id;
|
||||
String? username;
|
||||
String? fullName;
|
||||
String? avatarUrl;
|
||||
String? description;
|
||||
String? website;
|
||||
String? location;
|
||||
}
|
||||
|
||||
@JsonSerializable(fieldRename: FieldRename.snake)
|
||||
class GiteaRepository {
|
||||
int id;
|
||||
GiteaUser owner;
|
||||
String name;
|
||||
String description;
|
||||
int starsCount;
|
||||
int forksCount;
|
||||
DateTime updatedAt;
|
||||
String website;
|
||||
int size;
|
||||
int openIssuesCount;
|
||||
int openPrCounter;
|
||||
GiteaRepository();
|
||||
factory GiteaRepository.fromJson(Map<String, dynamic> json) =>
|
||||
_$GiteaRepositoryFromJson(json);
|
||||
int? id;
|
||||
GiteaUser? owner;
|
||||
String? name;
|
||||
String? description;
|
||||
int? starsCount;
|
||||
int? forksCount;
|
||||
DateTime? updatedAt;
|
||||
String? website;
|
||||
int? size;
|
||||
int? openIssuesCount;
|
||||
int? openPrCounter;
|
||||
}
|
||||
|
||||
@JsonSerializable(fieldRename: FieldRename.snake)
|
||||
class GiteaTree {
|
||||
String type;
|
||||
String name;
|
||||
String path;
|
||||
int size;
|
||||
String downloadUrl;
|
||||
GiteaTree();
|
||||
GiteaTree({required this.type, required this.name});
|
||||
factory GiteaTree.fromJson(Map<String, dynamic> json) =>
|
||||
_$GiteaTreeFromJson(json);
|
||||
String type;
|
||||
String name;
|
||||
String? path;
|
||||
int? size;
|
||||
String? downloadUrl;
|
||||
}
|
||||
|
||||
@JsonSerializable(fieldRename: FieldRename.snake)
|
||||
class GiteaBlob extends GiteaTree {
|
||||
String content;
|
||||
GiteaBlob();
|
||||
GiteaBlob({required super.type, required super.name});
|
||||
factory GiteaBlob.fromJson(Map<String, dynamic> json) =>
|
||||
_$GiteaBlobFromJson(json);
|
||||
String? content;
|
||||
}
|
||||
|
||||
@JsonSerializable(fieldRename: FieldRename.snake)
|
||||
class GiteaCommit {
|
||||
int number;
|
||||
GiteaUser author;
|
||||
String title;
|
||||
String body;
|
||||
GiteaCommitDetail commit;
|
||||
String sha;
|
||||
String htmlUrl;
|
||||
GiteaCommit();
|
||||
factory GiteaCommit.fromJson(Map<String, dynamic> json) =>
|
||||
_$GiteaCommitFromJson(json);
|
||||
int? number;
|
||||
GiteaUser? author;
|
||||
String? title;
|
||||
String? body;
|
||||
GiteaCommitDetail? commit;
|
||||
String? sha;
|
||||
String? htmlUrl;
|
||||
}
|
||||
|
||||
@JsonSerializable(fieldRename: FieldRename.snake)
|
||||
class GiteaCommitDetail {
|
||||
String message;
|
||||
GiteaCommitAuthor author;
|
||||
GiteaCommitAuthor committer;
|
||||
GiteaCommitDetail();
|
||||
factory GiteaCommitDetail.fromJson(Map<String, dynamic> json) =>
|
||||
_$GiteaCommitDetailFromJson(json);
|
||||
String? message;
|
||||
GiteaCommitAuthor? author;
|
||||
GiteaCommitAuthor? committer;
|
||||
}
|
||||
|
||||
@JsonSerializable(fieldRename: FieldRename.snake)
|
||||
class GiteaCommitAuthor {
|
||||
String name;
|
||||
String email;
|
||||
DateTime date;
|
||||
GiteaCommitAuthor();
|
||||
factory GiteaCommitAuthor.fromJson(Map<String, dynamic> json) =>
|
||||
_$GiteaCommitAuthorFromJson(json);
|
||||
String? name;
|
||||
String? email;
|
||||
DateTime? date;
|
||||
}
|
||||
|
||||
@JsonSerializable(fieldRename: FieldRename.snake)
|
||||
class GiteaIssue {
|
||||
String title;
|
||||
String body;
|
||||
int number;
|
||||
GiteaUser user;
|
||||
int comments;
|
||||
DateTime updatedAt;
|
||||
String state;
|
||||
String htmlUrl;
|
||||
List<GiteaLabel> labels;
|
||||
GiteaIssue();
|
||||
factory GiteaIssue.fromJson(Map<String, dynamic> json) =>
|
||||
_$GiteaIssueFromJson(json);
|
||||
String? title;
|
||||
String? body;
|
||||
int? number;
|
||||
GiteaUser? user;
|
||||
int? comments;
|
||||
DateTime? updatedAt;
|
||||
String? state;
|
||||
String? htmlUrl;
|
||||
List<GiteaLabel>? labels;
|
||||
}
|
||||
|
||||
@JsonSerializable(fieldRename: FieldRename.snake)
|
||||
class GiteaLabel {
|
||||
String color;
|
||||
String name;
|
||||
GiteaLabel();
|
||||
factory GiteaLabel.fromJson(Map<String, dynamic> json) =>
|
||||
_$GiteaLabelFromJson(json);
|
||||
String? color;
|
||||
String? name;
|
||||
}
|
||||
|
||||
@JsonSerializable(fieldRename: FieldRename.snake)
|
||||
class GiteaHeatmapItem {
|
||||
int timestamp;
|
||||
int contributions;
|
||||
GiteaHeatmapItem();
|
||||
factory GiteaHeatmapItem.fromJson(Map<String, dynamic> json) =>
|
||||
_$GiteaHeatmapItemFromJson(json);
|
||||
int? timestamp;
|
||||
int? contributions;
|
||||
}
|
||||
|
||||
@JsonSerializable(fieldRename: FieldRename.snake)
|
||||
class GiteaComment {
|
||||
String body;
|
||||
DateTime createdAt;
|
||||
String htmlUrl;
|
||||
String originalAuthor;
|
||||
DateTime updatedAt;
|
||||
int id;
|
||||
GiteaUser user;
|
||||
GiteaComment();
|
||||
factory GiteaComment.fromJson(Map<String, dynamic> json) =>
|
||||
_$GiteaCommentFromJson(json);
|
||||
String? body;
|
||||
DateTime? createdAt;
|
||||
String? htmlUrl;
|
||||
String? originalAuthor;
|
||||
DateTime? updatedAt;
|
||||
int? id;
|
||||
GiteaUser? user;
|
||||
}
|
||||
|
|
|
@ -6,16 +6,14 @@ part of 'gitea.dart';
|
|||
// JsonSerializableGenerator
|
||||
// **************************************************************************
|
||||
|
||||
GiteaUser _$GiteaUserFromJson(Map<String, dynamic> json) {
|
||||
return GiteaUser()
|
||||
..id = json['id'] as int
|
||||
..login = json['login'] as String
|
||||
..fullName = json['full_name'] as String
|
||||
..avatarUrl = json['avatar_url'] as String
|
||||
..created = json['created'] == null
|
||||
? null
|
||||
: DateTime.parse(json['created'] as String);
|
||||
}
|
||||
GiteaUser _$GiteaUserFromJson(Map<String, dynamic> json) => GiteaUser()
|
||||
..id = json['id'] as int?
|
||||
..login = json['login'] as String?
|
||||
..fullName = json['full_name'] as String?
|
||||
..avatarUrl = json['avatar_url'] as String?
|
||||
..created = json['created'] == null
|
||||
? null
|
||||
: DateTime.parse(json['created'] as String);
|
||||
|
||||
Map<String, dynamic> _$GiteaUserToJson(GiteaUser instance) => <String, dynamic>{
|
||||
'id': instance.id,
|
||||
|
@ -25,16 +23,14 @@ Map<String, dynamic> _$GiteaUserToJson(GiteaUser instance) => <String, dynamic>{
|
|||
'created': instance.created?.toIso8601String(),
|
||||
};
|
||||
|
||||
GiteaOrg _$GiteaOrgFromJson(Map<String, dynamic> json) {
|
||||
return GiteaOrg()
|
||||
..id = json['id'] as int
|
||||
..username = json['username'] as String
|
||||
..fullName = json['full_name'] as String
|
||||
..avatarUrl = json['avatar_url'] as String
|
||||
..description = json['description'] as String
|
||||
..website = json['website'] as String
|
||||
..location = json['location'] as String;
|
||||
}
|
||||
GiteaOrg _$GiteaOrgFromJson(Map<String, dynamic> json) => GiteaOrg()
|
||||
..id = json['id'] as int?
|
||||
..username = json['username'] as String?
|
||||
..fullName = json['full_name'] as String?
|
||||
..avatarUrl = json['avatar_url'] as String?
|
||||
..description = json['description'] as String?
|
||||
..website = json['website'] as String?
|
||||
..location = json['location'] as String?;
|
||||
|
||||
Map<String, dynamic> _$GiteaOrgToJson(GiteaOrg instance) => <String, dynamic>{
|
||||
'id': instance.id,
|
||||
|
@ -46,24 +42,23 @@ Map<String, dynamic> _$GiteaOrgToJson(GiteaOrg instance) => <String, dynamic>{
|
|||
'location': instance.location,
|
||||
};
|
||||
|
||||
GiteaRepository _$GiteaRepositoryFromJson(Map<String, dynamic> json) {
|
||||
return GiteaRepository()
|
||||
..id = json['id'] as int
|
||||
..owner = json['owner'] == null
|
||||
? null
|
||||
: GiteaUser.fromJson(json['owner'] as Map<String, dynamic>)
|
||||
..name = json['name'] as String
|
||||
..description = json['description'] as String
|
||||
..starsCount = json['stars_count'] as int
|
||||
..forksCount = json['forks_count'] as int
|
||||
..updatedAt = json['updated_at'] == null
|
||||
? null
|
||||
: DateTime.parse(json['updated_at'] as String)
|
||||
..website = json['website'] as String
|
||||
..size = json['size'] as int
|
||||
..openIssuesCount = json['open_issues_count'] as int
|
||||
..openPrCounter = json['open_pr_counter'] as int;
|
||||
}
|
||||
GiteaRepository _$GiteaRepositoryFromJson(Map<String, dynamic> json) =>
|
||||
GiteaRepository()
|
||||
..id = json['id'] as int?
|
||||
..owner = json['owner'] == null
|
||||
? null
|
||||
: GiteaUser.fromJson(json['owner'] as Map<String, dynamic>)
|
||||
..name = json['name'] as String?
|
||||
..description = json['description'] as String?
|
||||
..starsCount = json['stars_count'] as int?
|
||||
..forksCount = json['forks_count'] as int?
|
||||
..updatedAt = json['updated_at'] == null
|
||||
? null
|
||||
: DateTime.parse(json['updated_at'] as String)
|
||||
..website = json['website'] as String?
|
||||
..size = json['size'] as int?
|
||||
..openIssuesCount = json['open_issues_count'] as int?
|
||||
..openPrCounter = json['open_pr_counter'] as int?;
|
||||
|
||||
Map<String, dynamic> _$GiteaRepositoryToJson(GiteaRepository instance) =>
|
||||
<String, dynamic>{
|
||||
|
@ -80,14 +75,13 @@ Map<String, dynamic> _$GiteaRepositoryToJson(GiteaRepository instance) =>
|
|||
'open_pr_counter': instance.openPrCounter,
|
||||
};
|
||||
|
||||
GiteaTree _$GiteaTreeFromJson(Map<String, dynamic> json) {
|
||||
return GiteaTree()
|
||||
..type = json['type'] as String
|
||||
..name = json['name'] as String
|
||||
..path = json['path'] as String
|
||||
..size = json['size'] as int
|
||||
..downloadUrl = json['download_url'] as String;
|
||||
}
|
||||
GiteaTree _$GiteaTreeFromJson(Map<String, dynamic> json) => GiteaTree(
|
||||
type: json['type'] as String,
|
||||
name: json['name'] as String,
|
||||
)
|
||||
..path = json['path'] as String?
|
||||
..size = json['size'] as int?
|
||||
..downloadUrl = json['download_url'] as String?;
|
||||
|
||||
Map<String, dynamic> _$GiteaTreeToJson(GiteaTree instance) => <String, dynamic>{
|
||||
'type': instance.type,
|
||||
|
@ -97,15 +91,14 @@ Map<String, dynamic> _$GiteaTreeToJson(GiteaTree instance) => <String, dynamic>{
|
|||
'download_url': instance.downloadUrl,
|
||||
};
|
||||
|
||||
GiteaBlob _$GiteaBlobFromJson(Map<String, dynamic> json) {
|
||||
return GiteaBlob()
|
||||
..type = json['type'] as String
|
||||
..name = json['name'] as String
|
||||
..path = json['path'] as String
|
||||
..size = json['size'] as int
|
||||
..downloadUrl = json['download_url'] as String
|
||||
..content = json['content'] as String;
|
||||
}
|
||||
GiteaBlob _$GiteaBlobFromJson(Map<String, dynamic> json) => GiteaBlob(
|
||||
type: json['type'] as String,
|
||||
name: json['name'] as String,
|
||||
)
|
||||
..path = json['path'] as String?
|
||||
..size = json['size'] as int?
|
||||
..downloadUrl = json['download_url'] as String?
|
||||
..content = json['content'] as String?;
|
||||
|
||||
Map<String, dynamic> _$GiteaBlobToJson(GiteaBlob instance) => <String, dynamic>{
|
||||
'type': instance.type,
|
||||
|
@ -116,20 +109,18 @@ Map<String, dynamic> _$GiteaBlobToJson(GiteaBlob instance) => <String, dynamic>{
|
|||
'content': instance.content,
|
||||
};
|
||||
|
||||
GiteaCommit _$GiteaCommitFromJson(Map<String, dynamic> json) {
|
||||
return GiteaCommit()
|
||||
..number = json['number'] as int
|
||||
..author = json['author'] == null
|
||||
? null
|
||||
: GiteaUser.fromJson(json['author'] as Map<String, dynamic>)
|
||||
..title = json['title'] as String
|
||||
..body = json['body'] as String
|
||||
..commit = json['commit'] == null
|
||||
? null
|
||||
: GiteaCommitDetail.fromJson(json['commit'] as Map<String, dynamic>)
|
||||
..sha = json['sha'] as String
|
||||
..htmlUrl = json['html_url'] as String;
|
||||
}
|
||||
GiteaCommit _$GiteaCommitFromJson(Map<String, dynamic> json) => GiteaCommit()
|
||||
..number = json['number'] as int?
|
||||
..author = json['author'] == null
|
||||
? null
|
||||
: GiteaUser.fromJson(json['author'] as Map<String, dynamic>)
|
||||
..title = json['title'] as String?
|
||||
..body = json['body'] as String?
|
||||
..commit = json['commit'] == null
|
||||
? null
|
||||
: GiteaCommitDetail.fromJson(json['commit'] as Map<String, dynamic>)
|
||||
..sha = json['sha'] as String?
|
||||
..htmlUrl = json['html_url'] as String?;
|
||||
|
||||
Map<String, dynamic> _$GiteaCommitToJson(GiteaCommit instance) =>
|
||||
<String, dynamic>{
|
||||
|
@ -142,16 +133,16 @@ Map<String, dynamic> _$GiteaCommitToJson(GiteaCommit instance) =>
|
|||
'html_url': instance.htmlUrl,
|
||||
};
|
||||
|
||||
GiteaCommitDetail _$GiteaCommitDetailFromJson(Map<String, dynamic> json) {
|
||||
return GiteaCommitDetail()
|
||||
..message = json['message'] as String
|
||||
..author = json['author'] == null
|
||||
? null
|
||||
: GiteaCommitAuthor.fromJson(json['author'] as Map<String, dynamic>)
|
||||
..committer = json['committer'] == null
|
||||
? null
|
||||
: GiteaCommitAuthor.fromJson(json['committer'] as Map<String, dynamic>);
|
||||
}
|
||||
GiteaCommitDetail _$GiteaCommitDetailFromJson(Map<String, dynamic> json) =>
|
||||
GiteaCommitDetail()
|
||||
..message = json['message'] as String?
|
||||
..author = json['author'] == null
|
||||
? null
|
||||
: GiteaCommitAuthor.fromJson(json['author'] as Map<String, dynamic>)
|
||||
..committer = json['committer'] == null
|
||||
? null
|
||||
: GiteaCommitAuthor.fromJson(
|
||||
json['committer'] as Map<String, dynamic>);
|
||||
|
||||
Map<String, dynamic> _$GiteaCommitDetailToJson(GiteaCommitDetail instance) =>
|
||||
<String, dynamic>{
|
||||
|
@ -160,13 +151,12 @@ Map<String, dynamic> _$GiteaCommitDetailToJson(GiteaCommitDetail instance) =>
|
|||
'committer': instance.committer,
|
||||
};
|
||||
|
||||
GiteaCommitAuthor _$GiteaCommitAuthorFromJson(Map<String, dynamic> json) {
|
||||
return GiteaCommitAuthor()
|
||||
..name = json['name'] as String
|
||||
..email = json['email'] as String
|
||||
..date =
|
||||
json['date'] == null ? null : DateTime.parse(json['date'] as String);
|
||||
}
|
||||
GiteaCommitAuthor _$GiteaCommitAuthorFromJson(Map<String, dynamic> json) =>
|
||||
GiteaCommitAuthor()
|
||||
..name = json['name'] as String?
|
||||
..email = json['email'] as String?
|
||||
..date =
|
||||
json['date'] == null ? null : DateTime.parse(json['date'] as String);
|
||||
|
||||
Map<String, dynamic> _$GiteaCommitAuthorToJson(GiteaCommitAuthor instance) =>
|
||||
<String, dynamic>{
|
||||
|
@ -175,25 +165,22 @@ Map<String, dynamic> _$GiteaCommitAuthorToJson(GiteaCommitAuthor instance) =>
|
|||
'date': instance.date?.toIso8601String(),
|
||||
};
|
||||
|
||||
GiteaIssue _$GiteaIssueFromJson(Map<String, dynamic> json) {
|
||||
return GiteaIssue()
|
||||
..title = json['title'] as String
|
||||
..body = json['body'] as String
|
||||
..number = json['number'] as int
|
||||
..user = json['user'] == null
|
||||
? null
|
||||
: GiteaUser.fromJson(json['user'] as Map<String, dynamic>)
|
||||
..comments = json['comments'] as int
|
||||
..updatedAt = json['updated_at'] == null
|
||||
? null
|
||||
: DateTime.parse(json['updated_at'] as String)
|
||||
..state = json['state'] as String
|
||||
..htmlUrl = json['html_url'] as String
|
||||
..labels = (json['labels'] as List)
|
||||
?.map((e) =>
|
||||
e == null ? null : GiteaLabel.fromJson(e as Map<String, dynamic>))
|
||||
?.toList();
|
||||
}
|
||||
GiteaIssue _$GiteaIssueFromJson(Map<String, dynamic> json) => GiteaIssue()
|
||||
..title = json['title'] as String?
|
||||
..body = json['body'] as String?
|
||||
..number = json['number'] as int?
|
||||
..user = json['user'] == null
|
||||
? null
|
||||
: GiteaUser.fromJson(json['user'] as Map<String, dynamic>)
|
||||
..comments = json['comments'] as int?
|
||||
..updatedAt = json['updated_at'] == null
|
||||
? null
|
||||
: DateTime.parse(json['updated_at'] as String)
|
||||
..state = json['state'] as String?
|
||||
..htmlUrl = json['html_url'] as String?
|
||||
..labels = (json['labels'] as List<dynamic>?)
|
||||
?.map((e) => GiteaLabel.fromJson(e as Map<String, dynamic>))
|
||||
.toList();
|
||||
|
||||
Map<String, dynamic> _$GiteaIssueToJson(GiteaIssue instance) =>
|
||||
<String, dynamic>{
|
||||
|
@ -208,11 +195,9 @@ Map<String, dynamic> _$GiteaIssueToJson(GiteaIssue instance) =>
|
|||
'labels': instance.labels,
|
||||
};
|
||||
|
||||
GiteaLabel _$GiteaLabelFromJson(Map<String, dynamic> json) {
|
||||
return GiteaLabel()
|
||||
..color = json['color'] as String
|
||||
..name = json['name'] as String;
|
||||
}
|
||||
GiteaLabel _$GiteaLabelFromJson(Map<String, dynamic> json) => GiteaLabel()
|
||||
..color = json['color'] as String?
|
||||
..name = json['name'] as String?;
|
||||
|
||||
Map<String, dynamic> _$GiteaLabelToJson(GiteaLabel instance) =>
|
||||
<String, dynamic>{
|
||||
|
@ -220,11 +205,10 @@ Map<String, dynamic> _$GiteaLabelToJson(GiteaLabel instance) =>
|
|||
'name': instance.name,
|
||||
};
|
||||
|
||||
GiteaHeatmapItem _$GiteaHeatmapItemFromJson(Map<String, dynamic> json) {
|
||||
return GiteaHeatmapItem()
|
||||
..timestamp = json['timestamp'] as int
|
||||
..contributions = json['contributions'] as int;
|
||||
}
|
||||
GiteaHeatmapItem _$GiteaHeatmapItemFromJson(Map<String, dynamic> json) =>
|
||||
GiteaHeatmapItem()
|
||||
..timestamp = json['timestamp'] as int?
|
||||
..contributions = json['contributions'] as int?;
|
||||
|
||||
Map<String, dynamic> _$GiteaHeatmapItemToJson(GiteaHeatmapItem instance) =>
|
||||
<String, dynamic>{
|
||||
|
@ -232,22 +216,20 @@ Map<String, dynamic> _$GiteaHeatmapItemToJson(GiteaHeatmapItem instance) =>
|
|||
'contributions': instance.contributions,
|
||||
};
|
||||
|
||||
GiteaComment _$GiteaCommentFromJson(Map<String, dynamic> json) {
|
||||
return GiteaComment()
|
||||
..body = json['body'] as String
|
||||
..createdAt = json['created_at'] == null
|
||||
? null
|
||||
: DateTime.parse(json['created_at'] as String)
|
||||
..htmlUrl = json['html_url'] as String
|
||||
..originalAuthor = json['original_author'] as String
|
||||
..updatedAt = json['updated_at'] == null
|
||||
? null
|
||||
: DateTime.parse(json['updated_at'] as String)
|
||||
..id = json['id'] as int
|
||||
..user = json['user'] == null
|
||||
? null
|
||||
: GiteaUser.fromJson(json['user'] as Map<String, dynamic>);
|
||||
}
|
||||
GiteaComment _$GiteaCommentFromJson(Map<String, dynamic> json) => GiteaComment()
|
||||
..body = json['body'] as String?
|
||||
..createdAt = json['created_at'] == null
|
||||
? null
|
||||
: DateTime.parse(json['created_at'] as String)
|
||||
..htmlUrl = json['html_url'] as String?
|
||||
..originalAuthor = json['original_author'] as String?
|
||||
..updatedAt = json['updated_at'] == null
|
||||
? null
|
||||
: DateTime.parse(json['updated_at'] as String)
|
||||
..id = json['id'] as int?
|
||||
..user = json['user'] == null
|
||||
? null
|
||||
: GiteaUser.fromJson(json['user'] as Map<String, dynamic>);
|
||||
|
||||
Map<String, dynamic> _$GiteaCommentToJson(GiteaComment instance) =>
|
||||
<String, dynamic>{
|
||||
|
|
|
@ -4,238 +4,238 @@ part 'gitee.g.dart';
|
|||
|
||||
@JsonSerializable(fieldRename: FieldRename.snake)
|
||||
class GiteeUser {
|
||||
String login;
|
||||
String avatarUrl;
|
||||
String name;
|
||||
String htmlUrl;
|
||||
String bio;
|
||||
String blog;
|
||||
int publicRepos;
|
||||
int followers;
|
||||
int following;
|
||||
int stared;
|
||||
int watched;
|
||||
DateTime createdAt;
|
||||
GiteeUser();
|
||||
factory GiteeUser.fromJson(Map<String, dynamic> json) =>
|
||||
_$GiteeUserFromJson(json);
|
||||
String? login;
|
||||
String? avatarUrl;
|
||||
String? name;
|
||||
String? htmlUrl;
|
||||
String? bio;
|
||||
String? blog;
|
||||
int? publicRepos;
|
||||
int? followers;
|
||||
int? following;
|
||||
int? stared;
|
||||
int? watched;
|
||||
DateTime? createdAt;
|
||||
}
|
||||
|
||||
@JsonSerializable(fieldRename: FieldRename.snake)
|
||||
class GiteeListUser {
|
||||
String login;
|
||||
String avatarUrl;
|
||||
String name;
|
||||
String htmlUrl;
|
||||
GiteeListUser();
|
||||
factory GiteeListUser.fromJson(Map<String, dynamic> json) =>
|
||||
_$GiteeListUserFromJson(json);
|
||||
String? login;
|
||||
String? avatarUrl;
|
||||
String? name;
|
||||
String? htmlUrl;
|
||||
}
|
||||
|
||||
@JsonSerializable(fieldRename: FieldRename.snake)
|
||||
class GiteeRepo {
|
||||
GiteeRepoNamespace namespace;
|
||||
GiteeRepoOwner owner;
|
||||
String path;
|
||||
String description;
|
||||
bool private;
|
||||
bool public;
|
||||
bool internal;
|
||||
bool fork;
|
||||
int forksCount;
|
||||
int stargazersCount;
|
||||
int watchersCount;
|
||||
DateTime updatedAt;
|
||||
String license;
|
||||
String homepage;
|
||||
int openIssuesCount;
|
||||
bool pullRequestsEnabled;
|
||||
String defaultBranch;
|
||||
GiteeRepo();
|
||||
factory GiteeRepo.fromJson(Map<String, dynamic> json) =>
|
||||
_$GiteeRepoFromJson(json);
|
||||
GiteeRepoNamespace? namespace;
|
||||
GiteeRepoOwner? owner;
|
||||
String? path;
|
||||
String? description;
|
||||
bool? private;
|
||||
bool? public;
|
||||
bool? internal;
|
||||
bool? fork;
|
||||
int? forksCount;
|
||||
int? stargazersCount;
|
||||
int? watchersCount;
|
||||
DateTime? updatedAt;
|
||||
String? license;
|
||||
String? homepage;
|
||||
int? openIssuesCount;
|
||||
bool? pullRequestsEnabled;
|
||||
String? defaultBranch;
|
||||
}
|
||||
|
||||
@JsonSerializable(fieldRename: FieldRename.snake)
|
||||
class GiteeRepoOwner {
|
||||
String login;
|
||||
String avatarUrl;
|
||||
GiteeRepoOwner();
|
||||
factory GiteeRepoOwner.fromJson(Map<String, dynamic> json) =>
|
||||
_$GiteeRepoOwnerFromJson(json);
|
||||
String? login;
|
||||
String? avatarUrl;
|
||||
}
|
||||
|
||||
@JsonSerializable(fieldRename: FieldRename.snake)
|
||||
class GiteeRepoNamespace {
|
||||
String path;
|
||||
GiteeRepoNamespace();
|
||||
factory GiteeRepoNamespace.fromJson(Map<String, dynamic> json) =>
|
||||
_$GiteeRepoNamespaceFromJson(json);
|
||||
String? path;
|
||||
}
|
||||
|
||||
@JsonSerializable(fieldRename: FieldRename.snake)
|
||||
class GiteeCommit {
|
||||
GiteeUser author;
|
||||
GiteeCommitDetail commit;
|
||||
String sha;
|
||||
String htmlUrl;
|
||||
List<GiteeCommitFile> files;
|
||||
GiteeCommit();
|
||||
factory GiteeCommit.fromJson(Map<String, dynamic> json) =>
|
||||
_$GiteeCommitFromJson(json);
|
||||
GiteeUser? author;
|
||||
GiteeCommitDetail? commit;
|
||||
String? sha;
|
||||
String? htmlUrl;
|
||||
List<GiteeCommitFile>? files;
|
||||
}
|
||||
|
||||
@JsonSerializable(fieldRename: FieldRename.snake)
|
||||
class GiteeCommitDetail {
|
||||
String message;
|
||||
GiteeCommitAuthor author;
|
||||
GiteeCommitAuthor committer;
|
||||
GiteeCommitDetail();
|
||||
factory GiteeCommitDetail.fromJson(Map<String, dynamic> json) =>
|
||||
_$GiteeCommitDetailFromJson(json);
|
||||
String? message;
|
||||
GiteeCommitAuthor? author;
|
||||
GiteeCommitAuthor? committer;
|
||||
}
|
||||
|
||||
@JsonSerializable(fieldRename: FieldRename.snake)
|
||||
class GiteeCommitAuthor {
|
||||
String name;
|
||||
String email;
|
||||
DateTime date;
|
||||
GiteeCommitAuthor();
|
||||
factory GiteeCommitAuthor.fromJson(Map<String, dynamic> json) =>
|
||||
_$GiteeCommitAuthorFromJson(json);
|
||||
String? name;
|
||||
String? email;
|
||||
DateTime? date;
|
||||
}
|
||||
|
||||
@JsonSerializable(fieldRename: FieldRename.snake)
|
||||
class GiteeTreeItem {
|
||||
String path;
|
||||
String type;
|
||||
String sha;
|
||||
int size;
|
||||
GiteeTreeItem();
|
||||
GiteeTreeItem({required this.path, required this.type});
|
||||
factory GiteeTreeItem.fromJson(Map<String, dynamic> json) =>
|
||||
_$GiteeTreeItemFromJson(json);
|
||||
String path;
|
||||
String type;
|
||||
String? sha;
|
||||
int? size;
|
||||
}
|
||||
|
||||
@JsonSerializable(fieldRename: FieldRename.snake)
|
||||
class GiteeBlob {
|
||||
String content;
|
||||
GiteeBlob();
|
||||
factory GiteeBlob.fromJson(Map<String, dynamic> json) =>
|
||||
_$GiteeBlobFromJson(json);
|
||||
String? content;
|
||||
}
|
||||
|
||||
@JsonSerializable(fieldRename: FieldRename.snake)
|
||||
class GiteeLabel {
|
||||
String color;
|
||||
String name;
|
||||
GiteeLabel();
|
||||
factory GiteeLabel.fromJson(Map<String, dynamic> json) =>
|
||||
_$GiteeLabelFromJson(json);
|
||||
String? color;
|
||||
String? name;
|
||||
}
|
||||
|
||||
@JsonSerializable(fieldRename: FieldRename.snake)
|
||||
class GiteeIssue {
|
||||
int comments;
|
||||
String commentsUrl;
|
||||
String createdAt;
|
||||
String htmlUrl;
|
||||
String updatedAt;
|
||||
String body;
|
||||
String bodyHtml;
|
||||
String title;
|
||||
String state;
|
||||
GiteeRepo repository;
|
||||
GiteeRepoOwner user;
|
||||
String number;
|
||||
List<GiteeLabel> labels;
|
||||
int id;
|
||||
GiteeIssue();
|
||||
factory GiteeIssue.fromJson(Map<String, dynamic> json) =>
|
||||
_$GiteeIssueFromJson(json);
|
||||
int? comments;
|
||||
String? commentsUrl;
|
||||
String? createdAt;
|
||||
String? htmlUrl;
|
||||
String? updatedAt;
|
||||
String? body;
|
||||
String? bodyHtml;
|
||||
String? title;
|
||||
String? state;
|
||||
GiteeRepo? repository;
|
||||
GiteeRepoOwner? user;
|
||||
String? number;
|
||||
List<GiteeLabel>? labels;
|
||||
int? id;
|
||||
}
|
||||
|
||||
@JsonSerializable(fieldRename: FieldRename.snake)
|
||||
class GiteePull {
|
||||
String commentsUrl;
|
||||
String createdAt;
|
||||
String htmlUrl;
|
||||
String updatedAt;
|
||||
String body;
|
||||
String bodyHtml;
|
||||
String title;
|
||||
String state;
|
||||
GiteeRepoOwner user;
|
||||
List<GiteeLabel> labels;
|
||||
int number;
|
||||
int id;
|
||||
GiteePull();
|
||||
factory GiteePull.fromJson(Map<String, dynamic> json) =>
|
||||
_$GiteePullFromJson(json);
|
||||
String? commentsUrl;
|
||||
String? createdAt;
|
||||
String? htmlUrl;
|
||||
String? updatedAt;
|
||||
String? body;
|
||||
String? bodyHtml;
|
||||
String? title;
|
||||
String? state;
|
||||
GiteeRepoOwner? user;
|
||||
List<GiteeLabel>? labels;
|
||||
int? number;
|
||||
int? id;
|
||||
}
|
||||
|
||||
@JsonSerializable(fieldRename: FieldRename.snake)
|
||||
class GiteeComment {
|
||||
int id;
|
||||
String body;
|
||||
String createdAt;
|
||||
GiteeRepoOwner user;
|
||||
GiteeComment();
|
||||
factory GiteeComment.fromJson(Map<String, dynamic> json) =>
|
||||
_$GiteeCommentFromJson(json);
|
||||
int? id;
|
||||
String? body;
|
||||
String? createdAt;
|
||||
GiteeRepoOwner? user;
|
||||
}
|
||||
|
||||
@JsonSerializable(fieldRename: FieldRename.snake)
|
||||
class GiteePatch {
|
||||
String diff;
|
||||
GiteePatch();
|
||||
factory GiteePatch.fromJson(Map<String, dynamic> json) =>
|
||||
_$GiteePatchFromJson(json);
|
||||
String? diff;
|
||||
}
|
||||
|
||||
// Two different classes because of variable type mismatch
|
||||
// for additions, deletions, patch
|
||||
@JsonSerializable(fieldRename: FieldRename.snake)
|
||||
class GiteePullFile {
|
||||
String additions;
|
||||
String deletions;
|
||||
String blobUrl;
|
||||
String filename;
|
||||
String sha;
|
||||
String status;
|
||||
GiteePatch patch;
|
||||
GiteePullFile();
|
||||
factory GiteePullFile.fromJson(Map<String, dynamic> json) =>
|
||||
_$GiteePullFileFromJson(json);
|
||||
String? additions;
|
||||
String? deletions;
|
||||
String? blobUrl;
|
||||
String? filename;
|
||||
String? sha;
|
||||
String? status;
|
||||
GiteePatch? patch;
|
||||
}
|
||||
|
||||
@JsonSerializable(fieldRename: FieldRename.snake)
|
||||
class GiteeCommitFile {
|
||||
int additions;
|
||||
int deletions;
|
||||
int changes;
|
||||
String blobUrl;
|
||||
String filename;
|
||||
String sha;
|
||||
String status;
|
||||
String patch;
|
||||
GiteeCommitFile();
|
||||
factory GiteeCommitFile.fromJson(Map<String, dynamic> json) =>
|
||||
_$GiteeCommitFileFromJson(json);
|
||||
int? additions;
|
||||
int? deletions;
|
||||
int? changes;
|
||||
String? blobUrl;
|
||||
String? filename;
|
||||
String? sha;
|
||||
String? status;
|
||||
String? patch;
|
||||
}
|
||||
|
||||
@JsonSerializable(fieldRename: FieldRename.snake)
|
||||
class GiteeContributor {
|
||||
String name;
|
||||
int contributions;
|
||||
GiteeContributor();
|
||||
factory GiteeContributor.fromJson(Map<String, dynamic> json) =>
|
||||
_$GiteeContributorFromJson(json);
|
||||
String? name;
|
||||
int? contributions;
|
||||
}
|
||||
|
||||
@JsonSerializable(fieldRename: FieldRename.snake)
|
||||
class GiteeBranch {
|
||||
String name;
|
||||
GiteeBranch();
|
||||
factory GiteeBranch.fromJson(Map<String, dynamic> json) =>
|
||||
_$GiteeBranchFromJson(json);
|
||||
String? name;
|
||||
}
|
||||
|
|
|
@ -6,23 +6,21 @@ part of 'gitee.dart';
|
|||
// JsonSerializableGenerator
|
||||
// **************************************************************************
|
||||
|
||||
GiteeUser _$GiteeUserFromJson(Map<String, dynamic> json) {
|
||||
return GiteeUser()
|
||||
..login = json['login'] as String
|
||||
..avatarUrl = json['avatar_url'] as String
|
||||
..name = json['name'] as String
|
||||
..htmlUrl = json['html_url'] as String
|
||||
..bio = json['bio'] as String
|
||||
..blog = json['blog'] as String
|
||||
..publicRepos = json['public_repos'] as int
|
||||
..followers = json['followers'] as int
|
||||
..following = json['following'] as int
|
||||
..stared = json['stared'] as int
|
||||
..watched = json['watched'] as int
|
||||
..createdAt = json['created_at'] == null
|
||||
? null
|
||||
: DateTime.parse(json['created_at'] as String);
|
||||
}
|
||||
GiteeUser _$GiteeUserFromJson(Map<String, dynamic> json) => GiteeUser()
|
||||
..login = json['login'] as String?
|
||||
..avatarUrl = json['avatar_url'] as String?
|
||||
..name = json['name'] as String?
|
||||
..htmlUrl = json['html_url'] as String?
|
||||
..bio = json['bio'] as String?
|
||||
..blog = json['blog'] as String?
|
||||
..publicRepos = json['public_repos'] as int?
|
||||
..followers = json['followers'] as int?
|
||||
..following = json['following'] as int?
|
||||
..stared = json['stared'] as int?
|
||||
..watched = json['watched'] as int?
|
||||
..createdAt = json['created_at'] == null
|
||||
? null
|
||||
: DateTime.parse(json['created_at'] as String);
|
||||
|
||||
Map<String, dynamic> _$GiteeUserToJson(GiteeUser instance) => <String, dynamic>{
|
||||
'login': instance.login,
|
||||
|
@ -39,13 +37,12 @@ Map<String, dynamic> _$GiteeUserToJson(GiteeUser instance) => <String, dynamic>{
|
|||
'created_at': instance.createdAt?.toIso8601String(),
|
||||
};
|
||||
|
||||
GiteeListUser _$GiteeListUserFromJson(Map<String, dynamic> json) {
|
||||
return GiteeListUser()
|
||||
..login = json['login'] as String
|
||||
..avatarUrl = json['avatar_url'] as String
|
||||
..name = json['name'] as String
|
||||
..htmlUrl = json['html_url'] as String;
|
||||
}
|
||||
GiteeListUser _$GiteeListUserFromJson(Map<String, dynamic> json) =>
|
||||
GiteeListUser()
|
||||
..login = json['login'] as String?
|
||||
..avatarUrl = json['avatar_url'] as String?
|
||||
..name = json['name'] as String?
|
||||
..htmlUrl = json['html_url'] as String?;
|
||||
|
||||
Map<String, dynamic> _$GiteeListUserToJson(GiteeListUser instance) =>
|
||||
<String, dynamic>{
|
||||
|
@ -55,32 +52,30 @@ Map<String, dynamic> _$GiteeListUserToJson(GiteeListUser instance) =>
|
|||
'html_url': instance.htmlUrl,
|
||||
};
|
||||
|
||||
GiteeRepo _$GiteeRepoFromJson(Map<String, dynamic> json) {
|
||||
return GiteeRepo()
|
||||
..namespace = json['namespace'] == null
|
||||
? null
|
||||
: GiteeRepoNamespace.fromJson(json['namespace'] as Map<String, dynamic>)
|
||||
..owner = json['owner'] == null
|
||||
? null
|
||||
: GiteeRepoOwner.fromJson(json['owner'] as Map<String, dynamic>)
|
||||
..path = json['path'] as String
|
||||
..description = json['description'] as String
|
||||
..private = json['private'] as bool
|
||||
..public = json['public'] as bool
|
||||
..internal = json['internal'] as bool
|
||||
..fork = json['fork'] as bool
|
||||
..forksCount = json['forks_count'] as int
|
||||
..stargazersCount = json['stargazers_count'] as int
|
||||
..watchersCount = json['watchers_count'] as int
|
||||
..updatedAt = json['updated_at'] == null
|
||||
? null
|
||||
: DateTime.parse(json['updated_at'] as String)
|
||||
..license = json['license'] as String
|
||||
..homepage = json['homepage'] as String
|
||||
..openIssuesCount = json['open_issues_count'] as int
|
||||
..pullRequestsEnabled = json['pull_requests_enabled'] as bool
|
||||
..defaultBranch = json['default_branch'] as String;
|
||||
}
|
||||
GiteeRepo _$GiteeRepoFromJson(Map<String, dynamic> json) => GiteeRepo()
|
||||
..namespace = json['namespace'] == null
|
||||
? null
|
||||
: GiteeRepoNamespace.fromJson(json['namespace'] as Map<String, dynamic>)
|
||||
..owner = json['owner'] == null
|
||||
? null
|
||||
: GiteeRepoOwner.fromJson(json['owner'] as Map<String, dynamic>)
|
||||
..path = json['path'] as String?
|
||||
..description = json['description'] as String?
|
||||
..private = json['private'] as bool?
|
||||
..public = json['public'] as bool?
|
||||
..internal = json['internal'] as bool?
|
||||
..fork = json['fork'] as bool?
|
||||
..forksCount = json['forks_count'] as int?
|
||||
..stargazersCount = json['stargazers_count'] as int?
|
||||
..watchersCount = json['watchers_count'] as int?
|
||||
..updatedAt = json['updated_at'] == null
|
||||
? null
|
||||
: DateTime.parse(json['updated_at'] as String)
|
||||
..license = json['license'] as String?
|
||||
..homepage = json['homepage'] as String?
|
||||
..openIssuesCount = json['open_issues_count'] as int?
|
||||
..pullRequestsEnabled = json['pull_requests_enabled'] as bool?
|
||||
..defaultBranch = json['default_branch'] as String?;
|
||||
|
||||
Map<String, dynamic> _$GiteeRepoToJson(GiteeRepo instance) => <String, dynamic>{
|
||||
'namespace': instance.namespace,
|
||||
|
@ -102,11 +97,10 @@ Map<String, dynamic> _$GiteeRepoToJson(GiteeRepo instance) => <String, dynamic>{
|
|||
'default_branch': instance.defaultBranch,
|
||||
};
|
||||
|
||||
GiteeRepoOwner _$GiteeRepoOwnerFromJson(Map<String, dynamic> json) {
|
||||
return GiteeRepoOwner()
|
||||
..login = json['login'] as String
|
||||
..avatarUrl = json['avatar_url'] as String;
|
||||
}
|
||||
GiteeRepoOwner _$GiteeRepoOwnerFromJson(Map<String, dynamic> json) =>
|
||||
GiteeRepoOwner()
|
||||
..login = json['login'] as String?
|
||||
..avatarUrl = json['avatar_url'] as String?;
|
||||
|
||||
Map<String, dynamic> _$GiteeRepoOwnerToJson(GiteeRepoOwner instance) =>
|
||||
<String, dynamic>{
|
||||
|
@ -114,31 +108,26 @@ Map<String, dynamic> _$GiteeRepoOwnerToJson(GiteeRepoOwner instance) =>
|
|||
'avatar_url': instance.avatarUrl,
|
||||
};
|
||||
|
||||
GiteeRepoNamespace _$GiteeRepoNamespaceFromJson(Map<String, dynamic> json) {
|
||||
return GiteeRepoNamespace()..path = json['path'] as String;
|
||||
}
|
||||
GiteeRepoNamespace _$GiteeRepoNamespaceFromJson(Map<String, dynamic> json) =>
|
||||
GiteeRepoNamespace()..path = json['path'] as String?;
|
||||
|
||||
Map<String, dynamic> _$GiteeRepoNamespaceToJson(GiteeRepoNamespace instance) =>
|
||||
<String, dynamic>{
|
||||
'path': instance.path,
|
||||
};
|
||||
|
||||
GiteeCommit _$GiteeCommitFromJson(Map<String, dynamic> json) {
|
||||
return GiteeCommit()
|
||||
..author = json['author'] == null
|
||||
? null
|
||||
: GiteeUser.fromJson(json['author'] as Map<String, dynamic>)
|
||||
..commit = json['commit'] == null
|
||||
? null
|
||||
: GiteeCommitDetail.fromJson(json['commit'] as Map<String, dynamic>)
|
||||
..sha = json['sha'] as String
|
||||
..htmlUrl = json['html_url'] as String
|
||||
..files = (json['files'] as List)
|
||||
?.map((e) => e == null
|
||||
? null
|
||||
: GiteeCommitFile.fromJson(e as Map<String, dynamic>))
|
||||
?.toList();
|
||||
}
|
||||
GiteeCommit _$GiteeCommitFromJson(Map<String, dynamic> json) => GiteeCommit()
|
||||
..author = json['author'] == null
|
||||
? null
|
||||
: GiteeUser.fromJson(json['author'] as Map<String, dynamic>)
|
||||
..commit = json['commit'] == null
|
||||
? null
|
||||
: GiteeCommitDetail.fromJson(json['commit'] as Map<String, dynamic>)
|
||||
..sha = json['sha'] as String?
|
||||
..htmlUrl = json['html_url'] as String?
|
||||
..files = (json['files'] as List<dynamic>?)
|
||||
?.map((e) => GiteeCommitFile.fromJson(e as Map<String, dynamic>))
|
||||
.toList();
|
||||
|
||||
Map<String, dynamic> _$GiteeCommitToJson(GiteeCommit instance) =>
|
||||
<String, dynamic>{
|
||||
|
@ -149,16 +138,16 @@ Map<String, dynamic> _$GiteeCommitToJson(GiteeCommit instance) =>
|
|||
'files': instance.files,
|
||||
};
|
||||
|
||||
GiteeCommitDetail _$GiteeCommitDetailFromJson(Map<String, dynamic> json) {
|
||||
return GiteeCommitDetail()
|
||||
..message = json['message'] as String
|
||||
..author = json['author'] == null
|
||||
? null
|
||||
: GiteeCommitAuthor.fromJson(json['author'] as Map<String, dynamic>)
|
||||
..committer = json['committer'] == null
|
||||
? null
|
||||
: GiteeCommitAuthor.fromJson(json['committer'] as Map<String, dynamic>);
|
||||
}
|
||||
GiteeCommitDetail _$GiteeCommitDetailFromJson(Map<String, dynamic> json) =>
|
||||
GiteeCommitDetail()
|
||||
..message = json['message'] as String?
|
||||
..author = json['author'] == null
|
||||
? null
|
||||
: GiteeCommitAuthor.fromJson(json['author'] as Map<String, dynamic>)
|
||||
..committer = json['committer'] == null
|
||||
? null
|
||||
: GiteeCommitAuthor.fromJson(
|
||||
json['committer'] as Map<String, dynamic>);
|
||||
|
||||
Map<String, dynamic> _$GiteeCommitDetailToJson(GiteeCommitDetail instance) =>
|
||||
<String, dynamic>{
|
||||
|
@ -167,13 +156,12 @@ Map<String, dynamic> _$GiteeCommitDetailToJson(GiteeCommitDetail instance) =>
|
|||
'committer': instance.committer,
|
||||
};
|
||||
|
||||
GiteeCommitAuthor _$GiteeCommitAuthorFromJson(Map<String, dynamic> json) {
|
||||
return GiteeCommitAuthor()
|
||||
..name = json['name'] as String
|
||||
..email = json['email'] as String
|
||||
..date =
|
||||
json['date'] == null ? null : DateTime.parse(json['date'] as String);
|
||||
}
|
||||
GiteeCommitAuthor _$GiteeCommitAuthorFromJson(Map<String, dynamic> json) =>
|
||||
GiteeCommitAuthor()
|
||||
..name = json['name'] as String?
|
||||
..email = json['email'] as String?
|
||||
..date =
|
||||
json['date'] == null ? null : DateTime.parse(json['date'] as String);
|
||||
|
||||
Map<String, dynamic> _$GiteeCommitAuthorToJson(GiteeCommitAuthor instance) =>
|
||||
<String, dynamic>{
|
||||
|
@ -182,13 +170,13 @@ Map<String, dynamic> _$GiteeCommitAuthorToJson(GiteeCommitAuthor instance) =>
|
|||
'date': instance.date?.toIso8601String(),
|
||||
};
|
||||
|
||||
GiteeTreeItem _$GiteeTreeItemFromJson(Map<String, dynamic> json) {
|
||||
return GiteeTreeItem()
|
||||
..path = json['path'] as String
|
||||
..type = json['type'] as String
|
||||
..sha = json['sha'] as String
|
||||
..size = json['size'] as int;
|
||||
}
|
||||
GiteeTreeItem _$GiteeTreeItemFromJson(Map<String, dynamic> json) =>
|
||||
GiteeTreeItem(
|
||||
path: json['path'] as String,
|
||||
type: json['type'] as String,
|
||||
)
|
||||
..sha = json['sha'] as String?
|
||||
..size = json['size'] as int?;
|
||||
|
||||
Map<String, dynamic> _$GiteeTreeItemToJson(GiteeTreeItem instance) =>
|
||||
<String, dynamic>{
|
||||
|
@ -198,19 +186,16 @@ Map<String, dynamic> _$GiteeTreeItemToJson(GiteeTreeItem instance) =>
|
|||
'size': instance.size,
|
||||
};
|
||||
|
||||
GiteeBlob _$GiteeBlobFromJson(Map<String, dynamic> json) {
|
||||
return GiteeBlob()..content = json['content'] as String;
|
||||
}
|
||||
GiteeBlob _$GiteeBlobFromJson(Map<String, dynamic> json) =>
|
||||
GiteeBlob()..content = json['content'] as String?;
|
||||
|
||||
Map<String, dynamic> _$GiteeBlobToJson(GiteeBlob instance) => <String, dynamic>{
|
||||
'content': instance.content,
|
||||
};
|
||||
|
||||
GiteeLabel _$GiteeLabelFromJson(Map<String, dynamic> json) {
|
||||
return GiteeLabel()
|
||||
..color = json['color'] as String
|
||||
..name = json['name'] as String;
|
||||
}
|
||||
GiteeLabel _$GiteeLabelFromJson(Map<String, dynamic> json) => GiteeLabel()
|
||||
..color = json['color'] as String?
|
||||
..name = json['name'] as String?;
|
||||
|
||||
Map<String, dynamic> _$GiteeLabelToJson(GiteeLabel instance) =>
|
||||
<String, dynamic>{
|
||||
|
@ -218,30 +203,27 @@ Map<String, dynamic> _$GiteeLabelToJson(GiteeLabel instance) =>
|
|||
'name': instance.name,
|
||||
};
|
||||
|
||||
GiteeIssue _$GiteeIssueFromJson(Map<String, dynamic> json) {
|
||||
return GiteeIssue()
|
||||
..comments = json['comments'] as int
|
||||
..commentsUrl = json['comments_url'] as String
|
||||
..createdAt = json['created_at'] as String
|
||||
..htmlUrl = json['html_url'] as String
|
||||
..updatedAt = json['updated_at'] as String
|
||||
..body = json['body'] as String
|
||||
..bodyHtml = json['body_html'] as String
|
||||
..title = json['title'] as String
|
||||
..state = json['state'] as String
|
||||
..repository = json['repository'] == null
|
||||
? null
|
||||
: GiteeRepo.fromJson(json['repository'] as Map<String, dynamic>)
|
||||
..user = json['user'] == null
|
||||
? null
|
||||
: GiteeRepoOwner.fromJson(json['user'] as Map<String, dynamic>)
|
||||
..number = json['number'] as String
|
||||
..labels = (json['labels'] as List)
|
||||
?.map((e) =>
|
||||
e == null ? null : GiteeLabel.fromJson(e as Map<String, dynamic>))
|
||||
?.toList()
|
||||
..id = json['id'] as int;
|
||||
}
|
||||
GiteeIssue _$GiteeIssueFromJson(Map<String, dynamic> json) => GiteeIssue()
|
||||
..comments = json['comments'] as int?
|
||||
..commentsUrl = json['comments_url'] as String?
|
||||
..createdAt = json['created_at'] as String?
|
||||
..htmlUrl = json['html_url'] as String?
|
||||
..updatedAt = json['updated_at'] as String?
|
||||
..body = json['body'] as String?
|
||||
..bodyHtml = json['body_html'] as String?
|
||||
..title = json['title'] as String?
|
||||
..state = json['state'] as String?
|
||||
..repository = json['repository'] == null
|
||||
? null
|
||||
: GiteeRepo.fromJson(json['repository'] as Map<String, dynamic>)
|
||||
..user = json['user'] == null
|
||||
? null
|
||||
: GiteeRepoOwner.fromJson(json['user'] as Map<String, dynamic>)
|
||||
..number = json['number'] as String?
|
||||
..labels = (json['labels'] as List<dynamic>?)
|
||||
?.map((e) => GiteeLabel.fromJson(e as Map<String, dynamic>))
|
||||
.toList()
|
||||
..id = json['id'] as int?;
|
||||
|
||||
Map<String, dynamic> _$GiteeIssueToJson(GiteeIssue instance) =>
|
||||
<String, dynamic>{
|
||||
|
@ -261,26 +243,23 @@ Map<String, dynamic> _$GiteeIssueToJson(GiteeIssue instance) =>
|
|||
'id': instance.id,
|
||||
};
|
||||
|
||||
GiteePull _$GiteePullFromJson(Map<String, dynamic> json) {
|
||||
return GiteePull()
|
||||
..commentsUrl = json['comments_url'] as String
|
||||
..createdAt = json['created_at'] as String
|
||||
..htmlUrl = json['html_url'] as String
|
||||
..updatedAt = json['updated_at'] as String
|
||||
..body = json['body'] as String
|
||||
..bodyHtml = json['body_html'] as String
|
||||
..title = json['title'] as String
|
||||
..state = json['state'] as String
|
||||
..user = json['user'] == null
|
||||
? null
|
||||
: GiteeRepoOwner.fromJson(json['user'] as Map<String, dynamic>)
|
||||
..labels = (json['labels'] as List)
|
||||
?.map((e) =>
|
||||
e == null ? null : GiteeLabel.fromJson(e as Map<String, dynamic>))
|
||||
?.toList()
|
||||
..number = json['number'] as int
|
||||
..id = json['id'] as int;
|
||||
}
|
||||
GiteePull _$GiteePullFromJson(Map<String, dynamic> json) => GiteePull()
|
||||
..commentsUrl = json['comments_url'] as String?
|
||||
..createdAt = json['created_at'] as String?
|
||||
..htmlUrl = json['html_url'] as String?
|
||||
..updatedAt = json['updated_at'] as String?
|
||||
..body = json['body'] as String?
|
||||
..bodyHtml = json['body_html'] as String?
|
||||
..title = json['title'] as String?
|
||||
..state = json['state'] as String?
|
||||
..user = json['user'] == null
|
||||
? null
|
||||
: GiteeRepoOwner.fromJson(json['user'] as Map<String, dynamic>)
|
||||
..labels = (json['labels'] as List<dynamic>?)
|
||||
?.map((e) => GiteeLabel.fromJson(e as Map<String, dynamic>))
|
||||
.toList()
|
||||
..number = json['number'] as int?
|
||||
..id = json['id'] as int?;
|
||||
|
||||
Map<String, dynamic> _$GiteePullToJson(GiteePull instance) => <String, dynamic>{
|
||||
'comments_url': instance.commentsUrl,
|
||||
|
@ -297,15 +276,13 @@ Map<String, dynamic> _$GiteePullToJson(GiteePull instance) => <String, dynamic>{
|
|||
'id': instance.id,
|
||||
};
|
||||
|
||||
GiteeComment _$GiteeCommentFromJson(Map<String, dynamic> json) {
|
||||
return GiteeComment()
|
||||
..id = json['id'] as int
|
||||
..body = json['body'] as String
|
||||
..createdAt = json['created_at'] as String
|
||||
..user = json['user'] == null
|
||||
? null
|
||||
: GiteeRepoOwner.fromJson(json['user'] as Map<String, dynamic>);
|
||||
}
|
||||
GiteeComment _$GiteeCommentFromJson(Map<String, dynamic> json) => GiteeComment()
|
||||
..id = json['id'] as int?
|
||||
..body = json['body'] as String?
|
||||
..createdAt = json['created_at'] as String?
|
||||
..user = json['user'] == null
|
||||
? null
|
||||
: GiteeRepoOwner.fromJson(json['user'] as Map<String, dynamic>);
|
||||
|
||||
Map<String, dynamic> _$GiteeCommentToJson(GiteeComment instance) =>
|
||||
<String, dynamic>{
|
||||
|
@ -315,27 +292,25 @@ Map<String, dynamic> _$GiteeCommentToJson(GiteeComment instance) =>
|
|||
'user': instance.user,
|
||||
};
|
||||
|
||||
GiteePatch _$GiteePatchFromJson(Map<String, dynamic> json) {
|
||||
return GiteePatch()..diff = json['diff'] as String;
|
||||
}
|
||||
GiteePatch _$GiteePatchFromJson(Map<String, dynamic> json) =>
|
||||
GiteePatch()..diff = json['diff'] as String?;
|
||||
|
||||
Map<String, dynamic> _$GiteePatchToJson(GiteePatch instance) =>
|
||||
<String, dynamic>{
|
||||
'diff': instance.diff,
|
||||
};
|
||||
|
||||
GiteePullFile _$GiteePullFileFromJson(Map<String, dynamic> json) {
|
||||
return GiteePullFile()
|
||||
..additions = json['additions'] as String
|
||||
..deletions = json['deletions'] as String
|
||||
..blobUrl = json['blob_url'] as String
|
||||
..filename = json['filename'] as String
|
||||
..sha = json['sha'] as String
|
||||
..status = json['status'] as String
|
||||
..patch = json['patch'] == null
|
||||
? null
|
||||
: GiteePatch.fromJson(json['patch'] as Map<String, dynamic>);
|
||||
}
|
||||
GiteePullFile _$GiteePullFileFromJson(Map<String, dynamic> json) =>
|
||||
GiteePullFile()
|
||||
..additions = json['additions'] as String?
|
||||
..deletions = json['deletions'] as String?
|
||||
..blobUrl = json['blob_url'] as String?
|
||||
..filename = json['filename'] as String?
|
||||
..sha = json['sha'] as String?
|
||||
..status = json['status'] as String?
|
||||
..patch = json['patch'] == null
|
||||
? null
|
||||
: GiteePatch.fromJson(json['patch'] as Map<String, dynamic>);
|
||||
|
||||
Map<String, dynamic> _$GiteePullFileToJson(GiteePullFile instance) =>
|
||||
<String, dynamic>{
|
||||
|
@ -348,17 +323,16 @@ Map<String, dynamic> _$GiteePullFileToJson(GiteePullFile instance) =>
|
|||
'patch': instance.patch,
|
||||
};
|
||||
|
||||
GiteeCommitFile _$GiteeCommitFileFromJson(Map<String, dynamic> json) {
|
||||
return GiteeCommitFile()
|
||||
..additions = json['additions'] as int
|
||||
..deletions = json['deletions'] as int
|
||||
..changes = json['changes'] as int
|
||||
..blobUrl = json['blob_url'] as String
|
||||
..filename = json['filename'] as String
|
||||
..sha = json['sha'] as String
|
||||
..status = json['status'] as String
|
||||
..patch = json['patch'] as String;
|
||||
}
|
||||
GiteeCommitFile _$GiteeCommitFileFromJson(Map<String, dynamic> json) =>
|
||||
GiteeCommitFile()
|
||||
..additions = json['additions'] as int?
|
||||
..deletions = json['deletions'] as int?
|
||||
..changes = json['changes'] as int?
|
||||
..blobUrl = json['blob_url'] as String?
|
||||
..filename = json['filename'] as String?
|
||||
..sha = json['sha'] as String?
|
||||
..status = json['status'] as String?
|
||||
..patch = json['patch'] as String?;
|
||||
|
||||
Map<String, dynamic> _$GiteeCommitFileToJson(GiteeCommitFile instance) =>
|
||||
<String, dynamic>{
|
||||
|
@ -372,11 +346,10 @@ Map<String, dynamic> _$GiteeCommitFileToJson(GiteeCommitFile instance) =>
|
|||
'patch': instance.patch,
|
||||
};
|
||||
|
||||
GiteeContributor _$GiteeContributorFromJson(Map<String, dynamic> json) {
|
||||
return GiteeContributor()
|
||||
..name = json['name'] as String
|
||||
..contributions = json['contributions'] as int;
|
||||
}
|
||||
GiteeContributor _$GiteeContributorFromJson(Map<String, dynamic> json) =>
|
||||
GiteeContributor()
|
||||
..name = json['name'] as String?
|
||||
..contributions = json['contributions'] as int?;
|
||||
|
||||
Map<String, dynamic> _$GiteeContributorToJson(GiteeContributor instance) =>
|
||||
<String, dynamic>{
|
||||
|
@ -384,9 +357,8 @@ Map<String, dynamic> _$GiteeContributorToJson(GiteeContributor instance) =>
|
|||
'contributions': instance.contributions,
|
||||
};
|
||||
|
||||
GiteeBranch _$GiteeBranchFromJson(Map<String, dynamic> json) {
|
||||
return GiteeBranch()..name = json['name'] as String;
|
||||
}
|
||||
GiteeBranch _$GiteeBranchFromJson(Map<String, dynamic> json) =>
|
||||
GiteeBranch()..name = json['name'] as String?;
|
||||
|
||||
Map<String, dynamic> _$GiteeBranchToJson(GiteeBranch instance) =>
|
||||
<String, dynamic>{
|
||||
|
|
|
@ -6,326 +6,306 @@ part 'github.g.dart';
|
|||
|
||||
@JsonSerializable(fieldRename: FieldRename.snake)
|
||||
class GithubEvent {
|
||||
GithubEventUser actor;
|
||||
String type;
|
||||
GithubEventRepo repo;
|
||||
DateTime createdAt;
|
||||
GithubEventPayload payload;
|
||||
|
||||
Tuple2<String, String> _repo;
|
||||
String get repoOwner {
|
||||
if (_repo == null) {
|
||||
_repo = parseRepositoryFullName(repo.name);
|
||||
}
|
||||
return _repo.item1;
|
||||
}
|
||||
|
||||
String get repoName {
|
||||
if (_repo == null) {
|
||||
_repo = parseRepositoryFullName(repo.name);
|
||||
}
|
||||
return _repo.item2;
|
||||
}
|
||||
|
||||
GithubEvent();
|
||||
|
||||
factory GithubEvent.fromJson(Map<String, dynamic> json) =>
|
||||
_$GithubEventFromJson(json);
|
||||
GithubEventUser? actor;
|
||||
String? type;
|
||||
GithubEventRepo? repo;
|
||||
DateTime? createdAt;
|
||||
GithubEventPayload? payload;
|
||||
|
||||
Tuple2<String, String>? _repo;
|
||||
String get repoOwner {
|
||||
_repo ??= parseRepositoryFullName(repo!.name!);
|
||||
return _repo!.item1;
|
||||
}
|
||||
|
||||
String get repoName {
|
||||
_repo ??= parseRepositoryFullName(repo!.name!);
|
||||
return _repo!.item2;
|
||||
}
|
||||
}
|
||||
|
||||
@JsonSerializable(fieldRename: FieldRename.snake)
|
||||
class GithubEventUser {
|
||||
String login;
|
||||
String avatarUrl;
|
||||
|
||||
GithubEventUser();
|
||||
|
||||
factory GithubEventUser.fromJson(Map<String, dynamic> json) =>
|
||||
_$GithubEventUserFromJson(json);
|
||||
String? login;
|
||||
String? avatarUrl;
|
||||
}
|
||||
|
||||
@JsonSerializable(fieldRename: FieldRename.snake)
|
||||
class GithubEventRepo {
|
||||
String name;
|
||||
|
||||
GithubEventRepo();
|
||||
|
||||
factory GithubEventRepo.fromJson(Map<String, dynamic> json) =>
|
||||
_$GithubEventRepoFromJson(json);
|
||||
String? name;
|
||||
}
|
||||
|
||||
@JsonSerializable(fieldRename: FieldRename.snake)
|
||||
class GithubEventPayload {
|
||||
GithubEventIssue issue;
|
||||
GithubEventIssue pullRequest;
|
||||
GithubEventComment comment;
|
||||
GithubEventRelease release;
|
||||
String action;
|
||||
String ref;
|
||||
String refType;
|
||||
String before;
|
||||
String head;
|
||||
List<GithubEventCommit> commits;
|
||||
Map<String, dynamic> forkee;
|
||||
List<GithubPagesItem> pages;
|
||||
GithubSecurityItem securityAdvisory;
|
||||
GithubAlertItem alert;
|
||||
GithubProjectItem project;
|
||||
GithubProjectColumnItem projectColumn;
|
||||
GithubInstallationRepositoriesItem installation;
|
||||
GithubCheckrunItem checkRun;
|
||||
GithubCheckSuiteItem checkSuite;
|
||||
GithubContentReferenceItem contentReference;
|
||||
GithubEventPayload();
|
||||
|
||||
factory GithubEventPayload.fromJson(Map<String, dynamic> json) =>
|
||||
_$GithubEventPayloadFromJson(json);
|
||||
GithubEventIssue? issue;
|
||||
GithubEventIssue? pullRequest;
|
||||
GithubEventComment? comment;
|
||||
GithubEventRelease? release;
|
||||
String? action;
|
||||
String? ref;
|
||||
String? refType;
|
||||
String? before;
|
||||
String? head;
|
||||
List<GithubEventCommit>? commits;
|
||||
Map<String, dynamic>? forkee;
|
||||
List<GithubPagesItem>? pages;
|
||||
GithubSecurityItem? securityAdvisory;
|
||||
GithubAlertItem? alert;
|
||||
GithubProjectItem? project;
|
||||
GithubProjectColumnItem? projectColumn;
|
||||
GithubInstallationRepositoriesItem? installation;
|
||||
GithubCheckrunItem? checkRun;
|
||||
GithubCheckSuiteItem? checkSuite;
|
||||
GithubContentReferenceItem? contentReference;
|
||||
}
|
||||
|
||||
@JsonSerializable(fieldRename: FieldRename.snake)
|
||||
class GithubEventIssue {
|
||||
String title;
|
||||
GithubEventUser user;
|
||||
int number;
|
||||
String body;
|
||||
dynamic pullRequest;
|
||||
String state;
|
||||
int comments;
|
||||
bool merged;
|
||||
DateTime createdAt;
|
||||
|
||||
bool get isPullRequestComment => pullRequest != null;
|
||||
|
||||
GithubEventIssue();
|
||||
|
||||
factory GithubEventIssue.fromJson(Map<String, dynamic> json) =>
|
||||
_$GithubEventIssueFromJson(json);
|
||||
String? title;
|
||||
GithubEventUser? user;
|
||||
int? number;
|
||||
String? body;
|
||||
dynamic pullRequest;
|
||||
String? state;
|
||||
int? comments;
|
||||
bool? merged;
|
||||
DateTime? createdAt;
|
||||
|
||||
bool get isPullRequestComment => pullRequest != null;
|
||||
}
|
||||
|
||||
@JsonSerializable(fieldRename: FieldRename.snake)
|
||||
class GithubEventComment {
|
||||
String body;
|
||||
GithubEventUser user;
|
||||
String commitId;
|
||||
String htmlUrl;
|
||||
|
||||
GithubEventComment();
|
||||
|
||||
factory GithubEventComment.fromJson(Map<String, dynamic> json) =>
|
||||
_$GithubEventCommentFromJson(json);
|
||||
String? body;
|
||||
GithubEventUser? user;
|
||||
String? commitId;
|
||||
String? htmlUrl;
|
||||
}
|
||||
|
||||
@JsonSerializable(fieldRename: FieldRename.snake)
|
||||
class GithubEventCommit {
|
||||
String sha;
|
||||
String message;
|
||||
|
||||
GithubEventCommit();
|
||||
|
||||
factory GithubEventCommit.fromJson(Map<String, dynamic> json) =>
|
||||
_$GithubEventCommitFromJson(json);
|
||||
String? sha;
|
||||
String? message;
|
||||
}
|
||||
|
||||
@JsonSerializable(fieldRename: FieldRename.snake)
|
||||
class GithubEventRelease {
|
||||
String htmlUrl;
|
||||
String tagName;
|
||||
|
||||
GithubEventRelease();
|
||||
|
||||
factory GithubEventRelease.fromJson(Map<String, dynamic> json) =>
|
||||
_$GithubEventReleaseFromJson(json);
|
||||
String? htmlUrl;
|
||||
String? tagName;
|
||||
}
|
||||
|
||||
// Notification
|
||||
@JsonSerializable(fieldRename: FieldRename.snake)
|
||||
class GithubNotificationItem {
|
||||
String id;
|
||||
GithubNotificationItemSubject subject;
|
||||
DateTime updatedAt;
|
||||
GithubNotificationItemRepo repository;
|
||||
bool unread;
|
||||
|
||||
@JsonKey(ignore: true)
|
||||
String state;
|
||||
|
||||
String get key => '_$hashCode';
|
||||
|
||||
GithubNotificationItem();
|
||||
|
||||
factory GithubNotificationItem.fromJson(Map<String, dynamic> json) =>
|
||||
_$GithubNotificationItemFromJson(json);
|
||||
String? id;
|
||||
GithubNotificationItemSubject? subject;
|
||||
DateTime? updatedAt;
|
||||
GithubNotificationItemRepo? repository;
|
||||
bool? unread;
|
||||
|
||||
@JsonKey(ignore: true)
|
||||
String? state;
|
||||
|
||||
String get key => '_$hashCode';
|
||||
}
|
||||
|
||||
@JsonSerializable(fieldRename: FieldRename.snake)
|
||||
class GithubNotificationItemSubject {
|
||||
String title;
|
||||
String type;
|
||||
String url;
|
||||
|
||||
int _number;
|
||||
int get number {
|
||||
if (_number == null) {
|
||||
_number = int.parse(url?.split('/')?.last ?? '0');
|
||||
}
|
||||
return _number;
|
||||
}
|
||||
|
||||
GithubNotificationItemSubject();
|
||||
|
||||
factory GithubNotificationItemSubject.fromJson(Map<String, dynamic> json) =>
|
||||
_$GithubNotificationItemSubjectFromJson(json);
|
||||
String? title;
|
||||
String? type;
|
||||
String? url;
|
||||
|
||||
int? _number;
|
||||
int? get number {
|
||||
_number ??= int.parse(url?.split('/').last ?? '0');
|
||||
return _number;
|
||||
}
|
||||
}
|
||||
|
||||
@JsonSerializable(fieldRename: FieldRename.snake)
|
||||
class GithubNotificationItemRepo {
|
||||
String fullName;
|
||||
|
||||
Tuple2<String, String> _repo;
|
||||
String get owner {
|
||||
if (_repo == null) {
|
||||
_repo = parseRepositoryFullName(fullName);
|
||||
}
|
||||
return _repo.item1;
|
||||
}
|
||||
|
||||
String get name {
|
||||
if (_repo == null) {
|
||||
_repo = parseRepositoryFullName(fullName);
|
||||
}
|
||||
return _repo.item2;
|
||||
}
|
||||
|
||||
GithubNotificationItemRepo();
|
||||
|
||||
factory GithubNotificationItemRepo.fromJson(Map<String, dynamic> json) =>
|
||||
_$GithubNotificationItemRepoFromJson(json);
|
||||
String? fullName;
|
||||
|
||||
Tuple2<String, String>? _repo;
|
||||
String get owner {
|
||||
_repo ??= parseRepositoryFullName(fullName!);
|
||||
return _repo!.item1;
|
||||
}
|
||||
|
||||
String get name {
|
||||
_repo ??= parseRepositoryFullName(fullName!);
|
||||
return _repo!.item2;
|
||||
}
|
||||
}
|
||||
|
||||
@JsonSerializable(fieldRename: FieldRename.snake)
|
||||
class GithubTreeItem {
|
||||
String name;
|
||||
String path;
|
||||
int size;
|
||||
String type;
|
||||
String downloadUrl;
|
||||
String content;
|
||||
GithubTreeItem();
|
||||
factory GithubTreeItem.fromJson(Map<String, dynamic> json) =>
|
||||
_$GithubTreeItemFromJson(json);
|
||||
String? name;
|
||||
String? path;
|
||||
int? size;
|
||||
String? type;
|
||||
String? downloadUrl;
|
||||
String? content;
|
||||
}
|
||||
|
||||
@JsonSerializable(fieldRename: FieldRename.snake)
|
||||
class GithubPagesItem {
|
||||
String pageName;
|
||||
String title;
|
||||
String action;
|
||||
GithubPagesItem();
|
||||
factory GithubPagesItem.fromJson(Map<String, dynamic> json) =>
|
||||
_$GithubPagesItemFromJson(json);
|
||||
String? pageName;
|
||||
String? title;
|
||||
String? action;
|
||||
}
|
||||
|
||||
@JsonSerializable(fieldRename: FieldRename.snake)
|
||||
class GithubSecurityItem {
|
||||
String summary;
|
||||
String description;
|
||||
String severity;
|
||||
GithubSecurityItem();
|
||||
factory GithubSecurityItem.fromJson(Map<String, dynamic> json) =>
|
||||
_$GithubSecurityItemFromJson(json);
|
||||
String? summary;
|
||||
String? description;
|
||||
String? severity;
|
||||
}
|
||||
|
||||
@JsonSerializable(fieldRename: FieldRename.snake)
|
||||
class GithubAlertItem {
|
||||
String affectedPackageName;
|
||||
String affectedRange;
|
||||
GithubAlertItem();
|
||||
factory GithubAlertItem.fromJson(Map<String, dynamic> json) =>
|
||||
_$GithubAlertItemFromJson(json);
|
||||
String? affectedPackageName;
|
||||
String? affectedRange;
|
||||
}
|
||||
|
||||
@JsonSerializable(fieldRename: FieldRename.snake)
|
||||
class GithubProjectItem {
|
||||
String name;
|
||||
String state;
|
||||
String body;
|
||||
String htmlUrl;
|
||||
GithubProjectItem();
|
||||
factory GithubProjectItem.fromJson(Map<String, dynamic> json) =>
|
||||
_$GithubProjectItemFromJson(json);
|
||||
String? name;
|
||||
String? state;
|
||||
String? body;
|
||||
String? htmlUrl;
|
||||
}
|
||||
|
||||
@JsonSerializable(fieldRename: FieldRename.snake)
|
||||
class GithubProjectColumnItem {
|
||||
String htmlUrl;
|
||||
String columnsUrl;
|
||||
String name;
|
||||
GithubProjectColumnItem();
|
||||
factory GithubProjectColumnItem.fromJson(Map<String, dynamic> json) =>
|
||||
_$GithubProjectColumnItemFromJson(json);
|
||||
String? htmlUrl;
|
||||
String? columnsUrl;
|
||||
String? name;
|
||||
}
|
||||
|
||||
@JsonSerializable(fieldRename: FieldRename.snake)
|
||||
class GithubInstallationRepositoriesItem {
|
||||
List<GithubNotificationItemRepo> repositoriesAdded, repositoriesRemoved;
|
||||
String repositoriesSelection;
|
||||
int id;
|
||||
GithubInstallationRepositoriesItem();
|
||||
factory GithubInstallationRepositoriesItem.fromJson(
|
||||
Map<String, dynamic> json) =>
|
||||
_$GithubInstallationRepositoriesItemFromJson(json);
|
||||
List<GithubNotificationItemRepo>? repositoriesAdded, repositoriesRemoved;
|
||||
String? repositoriesSelection;
|
||||
int? id;
|
||||
}
|
||||
|
||||
@JsonSerializable(fieldRename: FieldRename.snake)
|
||||
class GithubCheckrunItem {
|
||||
String status;
|
||||
String name;
|
||||
int id;
|
||||
GithubCheckrunItem();
|
||||
factory GithubCheckrunItem.fromJson(Map<String, dynamic> json) =>
|
||||
_$GithubCheckrunItemFromJson(json);
|
||||
String? status;
|
||||
String? name;
|
||||
int? id;
|
||||
}
|
||||
|
||||
@JsonSerializable(fieldRename: FieldRename.snake)
|
||||
class GithubCheckSuiteItem {
|
||||
String status;
|
||||
String conclusion;
|
||||
GithubCheckSuiteItem();
|
||||
factory GithubCheckSuiteItem.fromJson(Map<String, dynamic> json) =>
|
||||
_$GithubCheckSuiteItemFromJson(json);
|
||||
String? status;
|
||||
String? conclusion;
|
||||
}
|
||||
|
||||
@JsonSerializable(fieldRename: FieldRename.snake)
|
||||
class GithubContentReferenceItem {
|
||||
int id;
|
||||
String reference;
|
||||
GithubContentReferenceItem();
|
||||
factory GithubContentReferenceItem.fromJson(Map<String, dynamic> json) =>
|
||||
_$GithubContentReferenceItemFromJson(json);
|
||||
int? id;
|
||||
String? reference;
|
||||
}
|
||||
|
||||
@JsonSerializable(fieldRename: FieldRename.snake)
|
||||
class GithubContributorItem {
|
||||
int id;
|
||||
String login;
|
||||
String avatarUrl;
|
||||
String htmlUrl;
|
||||
int contributions;
|
||||
GithubContributorItem();
|
||||
factory GithubContributorItem.fromJson(Map<String, dynamic> json) =>
|
||||
_$GithubContributorItemFromJson(json);
|
||||
int? id;
|
||||
String? login;
|
||||
String? avatarUrl;
|
||||
String? htmlUrl;
|
||||
int? contributions;
|
||||
}
|
||||
|
||||
@JsonSerializable(fieldRename: FieldRename.snake)
|
||||
class GithubUserOrganizationItem {
|
||||
int id;
|
||||
String login;
|
||||
String avatarUrl;
|
||||
String description;
|
||||
String url;
|
||||
GithubUserOrganizationItem();
|
||||
factory GithubUserOrganizationItem.fromJson(Map<String, dynamic> json) =>
|
||||
_$GithubUserOrganizationItemFromJson(json);
|
||||
int? id;
|
||||
String? login;
|
||||
String? avatarUrl;
|
||||
String? description;
|
||||
String? url;
|
||||
}
|
||||
|
||||
@JsonSerializable(fieldRename: FieldRename.snake)
|
||||
|
@ -339,61 +319,60 @@ class GistFiles {
|
|||
this.truncated,
|
||||
this.content,
|
||||
});
|
||||
String filename;
|
||||
int size;
|
||||
String rawUrl;
|
||||
String type;
|
||||
String language;
|
||||
bool truncated;
|
||||
String content;
|
||||
|
||||
factory GistFiles.fromJson(Map<String, dynamic> json) =>
|
||||
_$GistFilesFromJson(json);
|
||||
String? filename;
|
||||
int? size;
|
||||
String? rawUrl;
|
||||
String? type;
|
||||
String? language;
|
||||
bool? truncated;
|
||||
String? content;
|
||||
}
|
||||
|
||||
@JsonSerializable(fieldRename: FieldRename.snake)
|
||||
class GithubGistsItem {
|
||||
String id;
|
||||
String description;
|
||||
bool public;
|
||||
Map<String, GistFiles> files;
|
||||
GithubEventUser owner;
|
||||
GithubGistsItem();
|
||||
factory GithubGistsItem.fromJson(Map<String, dynamic> json) =>
|
||||
_$GithubGistsItemFromJson(json);
|
||||
String? id;
|
||||
String? description;
|
||||
bool? public;
|
||||
Map<String, GistFiles>? files;
|
||||
GithubEventUser? owner;
|
||||
List<GistFiles> get fileNames {
|
||||
List<GistFiles> filenames = [];
|
||||
files.forEach((String key, GistFiles value) {
|
||||
final filenames = <GistFiles>[];
|
||||
files!.forEach((key, value) {
|
||||
filenames.add(value);
|
||||
});
|
||||
return filenames;
|
||||
}
|
||||
|
||||
DateTime createdAt;
|
||||
DateTime updatedAt;
|
||||
|
||||
GithubGistsItem();
|
||||
factory GithubGistsItem.fromJson(Map<String, dynamic> json) =>
|
||||
_$GithubGistsItemFromJson(json);
|
||||
DateTime? createdAt;
|
||||
DateTime? updatedAt;
|
||||
}
|
||||
|
||||
@JsonSerializable(fieldRename: FieldRename.snake)
|
||||
class GithubFilesItem {
|
||||
String filename;
|
||||
String status;
|
||||
int additions;
|
||||
int deletions;
|
||||
int changes;
|
||||
String patch;
|
||||
GithubFilesItem();
|
||||
factory GithubFilesItem.fromJson(Map<String, dynamic> json) =>
|
||||
_$GithubFilesItemFromJson(json);
|
||||
String? filename;
|
||||
String? status;
|
||||
int? additions;
|
||||
int? deletions;
|
||||
int? changes;
|
||||
String? patch;
|
||||
}
|
||||
|
||||
@JsonSerializable(fieldRename: FieldRename.snake)
|
||||
class GithubComparisonItem {
|
||||
List<GithubFilesItem> files;
|
||||
String status;
|
||||
int aheadBy;
|
||||
int behindBy;
|
||||
GithubComparisonItem();
|
||||
factory GithubComparisonItem.fromJson(Map<String, dynamic> json) =>
|
||||
_$GithubComparisonItemFromJson(json);
|
||||
List<GithubFilesItem>? files;
|
||||
String? status;
|
||||
int? aheadBy;
|
||||
int? behindBy;
|
||||
}
|
||||
|
|
|
@ -6,22 +6,20 @@ part of 'github.dart';
|
|||
// JsonSerializableGenerator
|
||||
// **************************************************************************
|
||||
|
||||
GithubEvent _$GithubEventFromJson(Map<String, dynamic> json) {
|
||||
return GithubEvent()
|
||||
..actor = json['actor'] == null
|
||||
? null
|
||||
: GithubEventUser.fromJson(json['actor'] as Map<String, dynamic>)
|
||||
..type = json['type'] as String
|
||||
..repo = json['repo'] == null
|
||||
? null
|
||||
: GithubEventRepo.fromJson(json['repo'] as Map<String, dynamic>)
|
||||
..createdAt = json['created_at'] == null
|
||||
? null
|
||||
: DateTime.parse(json['created_at'] as String)
|
||||
..payload = json['payload'] == null
|
||||
? null
|
||||
: GithubEventPayload.fromJson(json['payload'] as Map<String, dynamic>);
|
||||
}
|
||||
GithubEvent _$GithubEventFromJson(Map<String, dynamic> json) => GithubEvent()
|
||||
..actor = json['actor'] == null
|
||||
? null
|
||||
: GithubEventUser.fromJson(json['actor'] as Map<String, dynamic>)
|
||||
..type = json['type'] as String?
|
||||
..repo = json['repo'] == null
|
||||
? null
|
||||
: GithubEventRepo.fromJson(json['repo'] as Map<String, dynamic>)
|
||||
..createdAt = json['created_at'] == null
|
||||
? null
|
||||
: DateTime.parse(json['created_at'] as String)
|
||||
..payload = json['payload'] == null
|
||||
? null
|
||||
: GithubEventPayload.fromJson(json['payload'] as Map<String, dynamic>);
|
||||
|
||||
Map<String, dynamic> _$GithubEventToJson(GithubEvent instance) =>
|
||||
<String, dynamic>{
|
||||
|
@ -32,11 +30,10 @@ Map<String, dynamic> _$GithubEventToJson(GithubEvent instance) =>
|
|||
'payload': instance.payload,
|
||||
};
|
||||
|
||||
GithubEventUser _$GithubEventUserFromJson(Map<String, dynamic> json) {
|
||||
return GithubEventUser()
|
||||
..login = json['login'] as String
|
||||
..avatarUrl = json['avatar_url'] as String;
|
||||
}
|
||||
GithubEventUser _$GithubEventUserFromJson(Map<String, dynamic> json) =>
|
||||
GithubEventUser()
|
||||
..login = json['login'] as String?
|
||||
..avatarUrl = json['avatar_url'] as String?;
|
||||
|
||||
Map<String, dynamic> _$GithubEventUserToJson(GithubEventUser instance) =>
|
||||
<String, dynamic>{
|
||||
|
@ -44,76 +41,71 @@ Map<String, dynamic> _$GithubEventUserToJson(GithubEventUser instance) =>
|
|||
'avatar_url': instance.avatarUrl,
|
||||
};
|
||||
|
||||
GithubEventRepo _$GithubEventRepoFromJson(Map<String, dynamic> json) {
|
||||
return GithubEventRepo()..name = json['name'] as String;
|
||||
}
|
||||
GithubEventRepo _$GithubEventRepoFromJson(Map<String, dynamic> json) =>
|
||||
GithubEventRepo()..name = json['name'] as String?;
|
||||
|
||||
Map<String, dynamic> _$GithubEventRepoToJson(GithubEventRepo instance) =>
|
||||
<String, dynamic>{
|
||||
'name': instance.name,
|
||||
};
|
||||
|
||||
GithubEventPayload _$GithubEventPayloadFromJson(Map<String, dynamic> json) {
|
||||
return GithubEventPayload()
|
||||
..issue = json['issue'] == null
|
||||
? null
|
||||
: GithubEventIssue.fromJson(json['issue'] as Map<String, dynamic>)
|
||||
..pullRequest = json['pull_request'] == null
|
||||
? null
|
||||
: GithubEventIssue.fromJson(
|
||||
json['pull_request'] as Map<String, dynamic>)
|
||||
..comment = json['comment'] == null
|
||||
? null
|
||||
: GithubEventComment.fromJson(json['comment'] as Map<String, dynamic>)
|
||||
..release = json['release'] == null
|
||||
? null
|
||||
: GithubEventRelease.fromJson(json['release'] as Map<String, dynamic>)
|
||||
..action = json['action'] as String
|
||||
..ref = json['ref'] as String
|
||||
..refType = json['ref_type'] as String
|
||||
..before = json['before'] as String
|
||||
..head = json['head'] as String
|
||||
..commits = (json['commits'] as List)
|
||||
?.map((e) => e == null
|
||||
? null
|
||||
: GithubEventCommit.fromJson(e as Map<String, dynamic>))
|
||||
?.toList()
|
||||
..forkee = json['forkee'] as Map<String, dynamic>
|
||||
..pages = (json['pages'] as List)
|
||||
?.map((e) => e == null
|
||||
? null
|
||||
: GithubPagesItem.fromJson(e as Map<String, dynamic>))
|
||||
?.toList()
|
||||
..securityAdvisory = json['security_advisory'] == null
|
||||
? null
|
||||
: GithubSecurityItem.fromJson(
|
||||
json['security_advisory'] as Map<String, dynamic>)
|
||||
..alert = json['alert'] == null
|
||||
? null
|
||||
: GithubAlertItem.fromJson(json['alert'] as Map<String, dynamic>)
|
||||
..project = json['project'] == null
|
||||
? null
|
||||
: GithubProjectItem.fromJson(json['project'] as Map<String, dynamic>)
|
||||
..projectColumn = json['project_column'] == null
|
||||
? null
|
||||
: GithubProjectColumnItem.fromJson(
|
||||
json['project_column'] as Map<String, dynamic>)
|
||||
..installation = json['installation'] == null
|
||||
? null
|
||||
: GithubInstallationRepositoriesItem.fromJson(
|
||||
json['installation'] as Map<String, dynamic>)
|
||||
..checkRun = json['check_run'] == null
|
||||
? null
|
||||
: GithubCheckrunItem.fromJson(json['check_run'] as Map<String, dynamic>)
|
||||
..checkSuite = json['check_suite'] == null
|
||||
? null
|
||||
: GithubCheckSuiteItem.fromJson(
|
||||
json['check_suite'] as Map<String, dynamic>)
|
||||
..contentReference = json['content_reference'] == null
|
||||
? null
|
||||
: GithubContentReferenceItem.fromJson(
|
||||
json['content_reference'] as Map<String, dynamic>);
|
||||
}
|
||||
GithubEventPayload _$GithubEventPayloadFromJson(Map<String, dynamic> json) =>
|
||||
GithubEventPayload()
|
||||
..issue = json['issue'] == null
|
||||
? null
|
||||
: GithubEventIssue.fromJson(json['issue'] as Map<String, dynamic>)
|
||||
..pullRequest = json['pull_request'] == null
|
||||
? null
|
||||
: GithubEventIssue.fromJson(
|
||||
json['pull_request'] as Map<String, dynamic>)
|
||||
..comment = json['comment'] == null
|
||||
? null
|
||||
: GithubEventComment.fromJson(json['comment'] as Map<String, dynamic>)
|
||||
..release = json['release'] == null
|
||||
? null
|
||||
: GithubEventRelease.fromJson(json['release'] as Map<String, dynamic>)
|
||||
..action = json['action'] as String?
|
||||
..ref = json['ref'] as String?
|
||||
..refType = json['ref_type'] as String?
|
||||
..before = json['before'] as String?
|
||||
..head = json['head'] as String?
|
||||
..commits = (json['commits'] as List<dynamic>?)
|
||||
?.map((e) => GithubEventCommit.fromJson(e as Map<String, dynamic>))
|
||||
.toList()
|
||||
..forkee = json['forkee'] as Map<String, dynamic>?
|
||||
..pages = (json['pages'] as List<dynamic>?)
|
||||
?.map((e) => GithubPagesItem.fromJson(e as Map<String, dynamic>))
|
||||
.toList()
|
||||
..securityAdvisory = json['security_advisory'] == null
|
||||
? null
|
||||
: GithubSecurityItem.fromJson(
|
||||
json['security_advisory'] as Map<String, dynamic>)
|
||||
..alert = json['alert'] == null
|
||||
? null
|
||||
: GithubAlertItem.fromJson(json['alert'] as Map<String, dynamic>)
|
||||
..project = json['project'] == null
|
||||
? null
|
||||
: GithubProjectItem.fromJson(json['project'] as Map<String, dynamic>)
|
||||
..projectColumn = json['project_column'] == null
|
||||
? null
|
||||
: GithubProjectColumnItem.fromJson(
|
||||
json['project_column'] as Map<String, dynamic>)
|
||||
..installation = json['installation'] == null
|
||||
? null
|
||||
: GithubInstallationRepositoriesItem.fromJson(
|
||||
json['installation'] as Map<String, dynamic>)
|
||||
..checkRun = json['check_run'] == null
|
||||
? null
|
||||
: GithubCheckrunItem.fromJson(
|
||||
json['check_run'] as Map<String, dynamic>)
|
||||
..checkSuite = json['check_suite'] == null
|
||||
? null
|
||||
: GithubCheckSuiteItem.fromJson(
|
||||
json['check_suite'] as Map<String, dynamic>)
|
||||
..contentReference = json['content_reference'] == null
|
||||
? null
|
||||
: GithubContentReferenceItem.fromJson(
|
||||
json['content_reference'] as Map<String, dynamic>);
|
||||
|
||||
Map<String, dynamic> _$GithubEventPayloadToJson(GithubEventPayload instance) =>
|
||||
<String, dynamic>{
|
||||
|
@ -139,22 +131,21 @@ Map<String, dynamic> _$GithubEventPayloadToJson(GithubEventPayload instance) =>
|
|||
'content_reference': instance.contentReference,
|
||||
};
|
||||
|
||||
GithubEventIssue _$GithubEventIssueFromJson(Map<String, dynamic> json) {
|
||||
return GithubEventIssue()
|
||||
..title = json['title'] as String
|
||||
..user = json['user'] == null
|
||||
? null
|
||||
: GithubEventUser.fromJson(json['user'] as Map<String, dynamic>)
|
||||
..number = json['number'] as int
|
||||
..body = json['body'] as String
|
||||
..pullRequest = json['pull_request']
|
||||
..state = json['state'] as String
|
||||
..comments = json['comments'] as int
|
||||
..merged = json['merged'] as bool
|
||||
..createdAt = json['created_at'] == null
|
||||
? null
|
||||
: DateTime.parse(json['created_at'] as String);
|
||||
}
|
||||
GithubEventIssue _$GithubEventIssueFromJson(Map<String, dynamic> json) =>
|
||||
GithubEventIssue()
|
||||
..title = json['title'] as String?
|
||||
..user = json['user'] == null
|
||||
? null
|
||||
: GithubEventUser.fromJson(json['user'] as Map<String, dynamic>)
|
||||
..number = json['number'] as int?
|
||||
..body = json['body'] as String?
|
||||
..pullRequest = json['pull_request']
|
||||
..state = json['state'] as String?
|
||||
..comments = json['comments'] as int?
|
||||
..merged = json['merged'] as bool?
|
||||
..createdAt = json['created_at'] == null
|
||||
? null
|
||||
: DateTime.parse(json['created_at'] as String);
|
||||
|
||||
Map<String, dynamic> _$GithubEventIssueToJson(GithubEventIssue instance) =>
|
||||
<String, dynamic>{
|
||||
|
@ -169,15 +160,14 @@ Map<String, dynamic> _$GithubEventIssueToJson(GithubEventIssue instance) =>
|
|||
'created_at': instance.createdAt?.toIso8601String(),
|
||||
};
|
||||
|
||||
GithubEventComment _$GithubEventCommentFromJson(Map<String, dynamic> json) {
|
||||
return GithubEventComment()
|
||||
..body = json['body'] as String
|
||||
..user = json['user'] == null
|
||||
? null
|
||||
: GithubEventUser.fromJson(json['user'] as Map<String, dynamic>)
|
||||
..commitId = json['commit_id'] as String
|
||||
..htmlUrl = json['html_url'] as String;
|
||||
}
|
||||
GithubEventComment _$GithubEventCommentFromJson(Map<String, dynamic> json) =>
|
||||
GithubEventComment()
|
||||
..body = json['body'] as String?
|
||||
..user = json['user'] == null
|
||||
? null
|
||||
: GithubEventUser.fromJson(json['user'] as Map<String, dynamic>)
|
||||
..commitId = json['commit_id'] as String?
|
||||
..htmlUrl = json['html_url'] as String?;
|
||||
|
||||
Map<String, dynamic> _$GithubEventCommentToJson(GithubEventComment instance) =>
|
||||
<String, dynamic>{
|
||||
|
@ -187,11 +177,10 @@ Map<String, dynamic> _$GithubEventCommentToJson(GithubEventComment instance) =>
|
|||
'html_url': instance.htmlUrl,
|
||||
};
|
||||
|
||||
GithubEventCommit _$GithubEventCommitFromJson(Map<String, dynamic> json) {
|
||||
return GithubEventCommit()
|
||||
..sha = json['sha'] as String
|
||||
..message = json['message'] as String;
|
||||
}
|
||||
GithubEventCommit _$GithubEventCommitFromJson(Map<String, dynamic> json) =>
|
||||
GithubEventCommit()
|
||||
..sha = json['sha'] as String?
|
||||
..message = json['message'] as String?;
|
||||
|
||||
Map<String, dynamic> _$GithubEventCommitToJson(GithubEventCommit instance) =>
|
||||
<String, dynamic>{
|
||||
|
@ -199,11 +188,10 @@ Map<String, dynamic> _$GithubEventCommitToJson(GithubEventCommit instance) =>
|
|||
'message': instance.message,
|
||||
};
|
||||
|
||||
GithubEventRelease _$GithubEventReleaseFromJson(Map<String, dynamic> json) {
|
||||
return GithubEventRelease()
|
||||
..htmlUrl = json['html_url'] as String
|
||||
..tagName = json['tag_name'] as String;
|
||||
}
|
||||
GithubEventRelease _$GithubEventReleaseFromJson(Map<String, dynamic> json) =>
|
||||
GithubEventRelease()
|
||||
..htmlUrl = json['html_url'] as String?
|
||||
..tagName = json['tag_name'] as String?;
|
||||
|
||||
Map<String, dynamic> _$GithubEventReleaseToJson(GithubEventRelease instance) =>
|
||||
<String, dynamic>{
|
||||
|
@ -212,22 +200,21 @@ Map<String, dynamic> _$GithubEventReleaseToJson(GithubEventRelease instance) =>
|
|||
};
|
||||
|
||||
GithubNotificationItem _$GithubNotificationItemFromJson(
|
||||
Map<String, dynamic> json) {
|
||||
return GithubNotificationItem()
|
||||
..id = json['id'] as String
|
||||
..subject = json['subject'] == null
|
||||
? null
|
||||
: GithubNotificationItemSubject.fromJson(
|
||||
json['subject'] as Map<String, dynamic>)
|
||||
..updatedAt = json['updated_at'] == null
|
||||
? null
|
||||
: DateTime.parse(json['updated_at'] as String)
|
||||
..repository = json['repository'] == null
|
||||
? null
|
||||
: GithubNotificationItemRepo.fromJson(
|
||||
json['repository'] as Map<String, dynamic>)
|
||||
..unread = json['unread'] as bool;
|
||||
}
|
||||
Map<String, dynamic> json) =>
|
||||
GithubNotificationItem()
|
||||
..id = json['id'] as String?
|
||||
..subject = json['subject'] == null
|
||||
? null
|
||||
: GithubNotificationItemSubject.fromJson(
|
||||
json['subject'] as Map<String, dynamic>)
|
||||
..updatedAt = json['updated_at'] == null
|
||||
? null
|
||||
: DateTime.parse(json['updated_at'] as String)
|
||||
..repository = json['repository'] == null
|
||||
? null
|
||||
: GithubNotificationItemRepo.fromJson(
|
||||
json['repository'] as Map<String, dynamic>)
|
||||
..unread = json['unread'] as bool?;
|
||||
|
||||
Map<String, dynamic> _$GithubNotificationItemToJson(
|
||||
GithubNotificationItem instance) =>
|
||||
|
@ -240,12 +227,11 @@ Map<String, dynamic> _$GithubNotificationItemToJson(
|
|||
};
|
||||
|
||||
GithubNotificationItemSubject _$GithubNotificationItemSubjectFromJson(
|
||||
Map<String, dynamic> json) {
|
||||
return GithubNotificationItemSubject()
|
||||
..title = json['title'] as String
|
||||
..type = json['type'] as String
|
||||
..url = json['url'] as String;
|
||||
}
|
||||
Map<String, dynamic> json) =>
|
||||
GithubNotificationItemSubject()
|
||||
..title = json['title'] as String?
|
||||
..type = json['type'] as String?
|
||||
..url = json['url'] as String?;
|
||||
|
||||
Map<String, dynamic> _$GithubNotificationItemSubjectToJson(
|
||||
GithubNotificationItemSubject instance) =>
|
||||
|
@ -256,9 +242,8 @@ Map<String, dynamic> _$GithubNotificationItemSubjectToJson(
|
|||
};
|
||||
|
||||
GithubNotificationItemRepo _$GithubNotificationItemRepoFromJson(
|
||||
Map<String, dynamic> json) {
|
||||
return GithubNotificationItemRepo()..fullName = json['full_name'] as String;
|
||||
}
|
||||
Map<String, dynamic> json) =>
|
||||
GithubNotificationItemRepo()..fullName = json['full_name'] as String?;
|
||||
|
||||
Map<String, dynamic> _$GithubNotificationItemRepoToJson(
|
||||
GithubNotificationItemRepo instance) =>
|
||||
|
@ -266,15 +251,14 @@ Map<String, dynamic> _$GithubNotificationItemRepoToJson(
|
|||
'full_name': instance.fullName,
|
||||
};
|
||||
|
||||
GithubTreeItem _$GithubTreeItemFromJson(Map<String, dynamic> json) {
|
||||
return GithubTreeItem()
|
||||
..name = json['name'] as String
|
||||
..path = json['path'] as String
|
||||
..size = json['size'] as int
|
||||
..type = json['type'] as String
|
||||
..downloadUrl = json['download_url'] as String
|
||||
..content = json['content'] as String;
|
||||
}
|
||||
GithubTreeItem _$GithubTreeItemFromJson(Map<String, dynamic> json) =>
|
||||
GithubTreeItem()
|
||||
..name = json['name'] as String?
|
||||
..path = json['path'] as String?
|
||||
..size = json['size'] as int?
|
||||
..type = json['type'] as String?
|
||||
..downloadUrl = json['download_url'] as String?
|
||||
..content = json['content'] as String?;
|
||||
|
||||
Map<String, dynamic> _$GithubTreeItemToJson(GithubTreeItem instance) =>
|
||||
<String, dynamic>{
|
||||
|
@ -286,12 +270,11 @@ Map<String, dynamic> _$GithubTreeItemToJson(GithubTreeItem instance) =>
|
|||
'content': instance.content,
|
||||
};
|
||||
|
||||
GithubPagesItem _$GithubPagesItemFromJson(Map<String, dynamic> json) {
|
||||
return GithubPagesItem()
|
||||
..pageName = json['page_name'] as String
|
||||
..title = json['title'] as String
|
||||
..action = json['action'] as String;
|
||||
}
|
||||
GithubPagesItem _$GithubPagesItemFromJson(Map<String, dynamic> json) =>
|
||||
GithubPagesItem()
|
||||
..pageName = json['page_name'] as String?
|
||||
..title = json['title'] as String?
|
||||
..action = json['action'] as String?;
|
||||
|
||||
Map<String, dynamic> _$GithubPagesItemToJson(GithubPagesItem instance) =>
|
||||
<String, dynamic>{
|
||||
|
@ -300,12 +283,11 @@ Map<String, dynamic> _$GithubPagesItemToJson(GithubPagesItem instance) =>
|
|||
'action': instance.action,
|
||||
};
|
||||
|
||||
GithubSecurityItem _$GithubSecurityItemFromJson(Map<String, dynamic> json) {
|
||||
return GithubSecurityItem()
|
||||
..summary = json['summary'] as String
|
||||
..description = json['description'] as String
|
||||
..severity = json['severity'] as String;
|
||||
}
|
||||
GithubSecurityItem _$GithubSecurityItemFromJson(Map<String, dynamic> json) =>
|
||||
GithubSecurityItem()
|
||||
..summary = json['summary'] as String?
|
||||
..description = json['description'] as String?
|
||||
..severity = json['severity'] as String?;
|
||||
|
||||
Map<String, dynamic> _$GithubSecurityItemToJson(GithubSecurityItem instance) =>
|
||||
<String, dynamic>{
|
||||
|
@ -314,11 +296,10 @@ Map<String, dynamic> _$GithubSecurityItemToJson(GithubSecurityItem instance) =>
|
|||
'severity': instance.severity,
|
||||
};
|
||||
|
||||
GithubAlertItem _$GithubAlertItemFromJson(Map<String, dynamic> json) {
|
||||
return GithubAlertItem()
|
||||
..affectedPackageName = json['affected_package_name'] as String
|
||||
..affectedRange = json['affected_range'] as String;
|
||||
}
|
||||
GithubAlertItem _$GithubAlertItemFromJson(Map<String, dynamic> json) =>
|
||||
GithubAlertItem()
|
||||
..affectedPackageName = json['affected_package_name'] as String?
|
||||
..affectedRange = json['affected_range'] as String?;
|
||||
|
||||
Map<String, dynamic> _$GithubAlertItemToJson(GithubAlertItem instance) =>
|
||||
<String, dynamic>{
|
||||
|
@ -326,13 +307,12 @@ Map<String, dynamic> _$GithubAlertItemToJson(GithubAlertItem instance) =>
|
|||
'affected_range': instance.affectedRange,
|
||||
};
|
||||
|
||||
GithubProjectItem _$GithubProjectItemFromJson(Map<String, dynamic> json) {
|
||||
return GithubProjectItem()
|
||||
..name = json['name'] as String
|
||||
..state = json['state'] as String
|
||||
..body = json['body'] as String
|
||||
..htmlUrl = json['html_url'] as String;
|
||||
}
|
||||
GithubProjectItem _$GithubProjectItemFromJson(Map<String, dynamic> json) =>
|
||||
GithubProjectItem()
|
||||
..name = json['name'] as String?
|
||||
..state = json['state'] as String?
|
||||
..body = json['body'] as String?
|
||||
..htmlUrl = json['html_url'] as String?;
|
||||
|
||||
Map<String, dynamic> _$GithubProjectItemToJson(GithubProjectItem instance) =>
|
||||
<String, dynamic>{
|
||||
|
@ -343,12 +323,11 @@ Map<String, dynamic> _$GithubProjectItemToJson(GithubProjectItem instance) =>
|
|||
};
|
||||
|
||||
GithubProjectColumnItem _$GithubProjectColumnItemFromJson(
|
||||
Map<String, dynamic> json) {
|
||||
return GithubProjectColumnItem()
|
||||
..htmlUrl = json['html_url'] as String
|
||||
..columnsUrl = json['columns_url'] as String
|
||||
..name = json['name'] as String;
|
||||
}
|
||||
Map<String, dynamic> json) =>
|
||||
GithubProjectColumnItem()
|
||||
..htmlUrl = json['html_url'] as String?
|
||||
..columnsUrl = json['columns_url'] as String?
|
||||
..name = json['name'] as String?;
|
||||
|
||||
Map<String, dynamic> _$GithubProjectColumnItemToJson(
|
||||
GithubProjectColumnItem instance) =>
|
||||
|
@ -359,21 +338,18 @@ Map<String, dynamic> _$GithubProjectColumnItemToJson(
|
|||
};
|
||||
|
||||
GithubInstallationRepositoriesItem _$GithubInstallationRepositoriesItemFromJson(
|
||||
Map<String, dynamic> json) {
|
||||
return GithubInstallationRepositoriesItem()
|
||||
..repositoriesAdded = (json['repositories_added'] as List)
|
||||
?.map((e) => e == null
|
||||
? null
|
||||
: GithubNotificationItemRepo.fromJson(e as Map<String, dynamic>))
|
||||
?.toList()
|
||||
..repositoriesRemoved = (json['repositories_removed'] as List)
|
||||
?.map((e) => e == null
|
||||
? null
|
||||
: GithubNotificationItemRepo.fromJson(e as Map<String, dynamic>))
|
||||
?.toList()
|
||||
..repositoriesSelection = json['repositories_selection'] as String
|
||||
..id = json['id'] as int;
|
||||
}
|
||||
Map<String, dynamic> json) =>
|
||||
GithubInstallationRepositoriesItem()
|
||||
..repositoriesAdded = (json['repositories_added'] as List<dynamic>?)
|
||||
?.map((e) =>
|
||||
GithubNotificationItemRepo.fromJson(e as Map<String, dynamic>))
|
||||
.toList()
|
||||
..repositoriesRemoved = (json['repositories_removed'] as List<dynamic>?)
|
||||
?.map((e) =>
|
||||
GithubNotificationItemRepo.fromJson(e as Map<String, dynamic>))
|
||||
.toList()
|
||||
..repositoriesSelection = json['repositories_selection'] as String?
|
||||
..id = json['id'] as int?;
|
||||
|
||||
Map<String, dynamic> _$GithubInstallationRepositoriesItemToJson(
|
||||
GithubInstallationRepositoriesItem instance) =>
|
||||
|
@ -384,12 +360,11 @@ Map<String, dynamic> _$GithubInstallationRepositoriesItemToJson(
|
|||
'id': instance.id,
|
||||
};
|
||||
|
||||
GithubCheckrunItem _$GithubCheckrunItemFromJson(Map<String, dynamic> json) {
|
||||
return GithubCheckrunItem()
|
||||
..status = json['status'] as String
|
||||
..name = json['name'] as String
|
||||
..id = json['id'] as int;
|
||||
}
|
||||
GithubCheckrunItem _$GithubCheckrunItemFromJson(Map<String, dynamic> json) =>
|
||||
GithubCheckrunItem()
|
||||
..status = json['status'] as String?
|
||||
..name = json['name'] as String?
|
||||
..id = json['id'] as int?;
|
||||
|
||||
Map<String, dynamic> _$GithubCheckrunItemToJson(GithubCheckrunItem instance) =>
|
||||
<String, dynamic>{
|
||||
|
@ -398,11 +373,11 @@ Map<String, dynamic> _$GithubCheckrunItemToJson(GithubCheckrunItem instance) =>
|
|||
'id': instance.id,
|
||||
};
|
||||
|
||||
GithubCheckSuiteItem _$GithubCheckSuiteItemFromJson(Map<String, dynamic> json) {
|
||||
return GithubCheckSuiteItem()
|
||||
..status = json['status'] as String
|
||||
..conclusion = json['conclusion'] as String;
|
||||
}
|
||||
GithubCheckSuiteItem _$GithubCheckSuiteItemFromJson(
|
||||
Map<String, dynamic> json) =>
|
||||
GithubCheckSuiteItem()
|
||||
..status = json['status'] as String?
|
||||
..conclusion = json['conclusion'] as String?;
|
||||
|
||||
Map<String, dynamic> _$GithubCheckSuiteItemToJson(
|
||||
GithubCheckSuiteItem instance) =>
|
||||
|
@ -412,11 +387,10 @@ Map<String, dynamic> _$GithubCheckSuiteItemToJson(
|
|||
};
|
||||
|
||||
GithubContentReferenceItem _$GithubContentReferenceItemFromJson(
|
||||
Map<String, dynamic> json) {
|
||||
return GithubContentReferenceItem()
|
||||
..id = json['id'] as int
|
||||
..reference = json['reference'] as String;
|
||||
}
|
||||
Map<String, dynamic> json) =>
|
||||
GithubContentReferenceItem()
|
||||
..id = json['id'] as int?
|
||||
..reference = json['reference'] as String?;
|
||||
|
||||
Map<String, dynamic> _$GithubContentReferenceItemToJson(
|
||||
GithubContentReferenceItem instance) =>
|
||||
|
@ -426,14 +400,13 @@ Map<String, dynamic> _$GithubContentReferenceItemToJson(
|
|||
};
|
||||
|
||||
GithubContributorItem _$GithubContributorItemFromJson(
|
||||
Map<String, dynamic> json) {
|
||||
return GithubContributorItem()
|
||||
..id = json['id'] as int
|
||||
..login = json['login'] as String
|
||||
..avatarUrl = json['avatar_url'] as String
|
||||
..htmlUrl = json['html_url'] as String
|
||||
..contributions = json['contributions'] as int;
|
||||
}
|
||||
Map<String, dynamic> json) =>
|
||||
GithubContributorItem()
|
||||
..id = json['id'] as int?
|
||||
..login = json['login'] as String?
|
||||
..avatarUrl = json['avatar_url'] as String?
|
||||
..htmlUrl = json['html_url'] as String?
|
||||
..contributions = json['contributions'] as int?;
|
||||
|
||||
Map<String, dynamic> _$GithubContributorItemToJson(
|
||||
GithubContributorItem instance) =>
|
||||
|
@ -446,14 +419,13 @@ Map<String, dynamic> _$GithubContributorItemToJson(
|
|||
};
|
||||
|
||||
GithubUserOrganizationItem _$GithubUserOrganizationItemFromJson(
|
||||
Map<String, dynamic> json) {
|
||||
return GithubUserOrganizationItem()
|
||||
..id = json['id'] as int
|
||||
..login = json['login'] as String
|
||||
..avatarUrl = json['avatar_url'] as String
|
||||
..description = json['description'] as String
|
||||
..url = json['url'] as String;
|
||||
}
|
||||
Map<String, dynamic> json) =>
|
||||
GithubUserOrganizationItem()
|
||||
..id = json['id'] as int?
|
||||
..login = json['login'] as String?
|
||||
..avatarUrl = json['avatar_url'] as String?
|
||||
..description = json['description'] as String?
|
||||
..url = json['url'] as String?;
|
||||
|
||||
Map<String, dynamic> _$GithubUserOrganizationItemToJson(
|
||||
GithubUserOrganizationItem instance) =>
|
||||
|
@ -465,17 +437,15 @@ Map<String, dynamic> _$GithubUserOrganizationItemToJson(
|
|||
'url': instance.url,
|
||||
};
|
||||
|
||||
GistFiles _$GistFilesFromJson(Map<String, dynamic> json) {
|
||||
return GistFiles(
|
||||
filename: json['filename'] as String,
|
||||
size: json['size'] as int,
|
||||
rawUrl: json['raw_url'] as String,
|
||||
type: json['type'] as String,
|
||||
language: json['language'] as String,
|
||||
truncated: json['truncated'] as bool,
|
||||
content: json['content'] as String,
|
||||
);
|
||||
}
|
||||
GistFiles _$GistFilesFromJson(Map<String, dynamic> json) => GistFiles(
|
||||
filename: json['filename'] as String?,
|
||||
size: json['size'] as int?,
|
||||
rawUrl: json['raw_url'] as String?,
|
||||
type: json['type'] as String?,
|
||||
language: json['language'] as String?,
|
||||
truncated: json['truncated'] as bool?,
|
||||
content: json['content'] as String?,
|
||||
);
|
||||
|
||||
Map<String, dynamic> _$GistFilesToJson(GistFiles instance) => <String, dynamic>{
|
||||
'filename': instance.filename,
|
||||
|
@ -487,25 +457,23 @@ Map<String, dynamic> _$GistFilesToJson(GistFiles instance) => <String, dynamic>{
|
|||
'content': instance.content,
|
||||
};
|
||||
|
||||
GithubGistsItem _$GithubGistsItemFromJson(Map<String, dynamic> json) {
|
||||
return GithubGistsItem()
|
||||
..id = json['id'] as String
|
||||
..description = json['description'] as String
|
||||
..public = json['public'] as bool
|
||||
..files = (json['files'] as Map<String, dynamic>)?.map(
|
||||
(k, e) => MapEntry(
|
||||
k, e == null ? null : GistFiles.fromJson(e as Map<String, dynamic>)),
|
||||
)
|
||||
..owner = json['owner'] == null
|
||||
? null
|
||||
: GithubEventUser.fromJson(json['owner'] as Map<String, dynamic>)
|
||||
..createdAt = json['created_at'] == null
|
||||
? null
|
||||
: DateTime.parse(json['created_at'] as String)
|
||||
..updatedAt = json['updated_at'] == null
|
||||
? null
|
||||
: DateTime.parse(json['updated_at'] as String);
|
||||
}
|
||||
GithubGistsItem _$GithubGistsItemFromJson(Map<String, dynamic> json) =>
|
||||
GithubGistsItem()
|
||||
..id = json['id'] as String?
|
||||
..description = json['description'] as String?
|
||||
..public = json['public'] as bool?
|
||||
..files = (json['files'] as Map<String, dynamic>?)?.map(
|
||||
(k, e) => MapEntry(k, GistFiles.fromJson(e as Map<String, dynamic>)),
|
||||
)
|
||||
..owner = json['owner'] == null
|
||||
? null
|
||||
: GithubEventUser.fromJson(json['owner'] as Map<String, dynamic>)
|
||||
..createdAt = json['created_at'] == null
|
||||
? null
|
||||
: DateTime.parse(json['created_at'] as String)
|
||||
..updatedAt = json['updated_at'] == null
|
||||
? null
|
||||
: DateTime.parse(json['updated_at'] as String);
|
||||
|
||||
Map<String, dynamic> _$GithubGistsItemToJson(GithubGistsItem instance) =>
|
||||
<String, dynamic>{
|
||||
|
@ -518,15 +486,14 @@ Map<String, dynamic> _$GithubGistsItemToJson(GithubGistsItem instance) =>
|
|||
'updated_at': instance.updatedAt?.toIso8601String(),
|
||||
};
|
||||
|
||||
GithubFilesItem _$GithubFilesItemFromJson(Map<String, dynamic> json) {
|
||||
return GithubFilesItem()
|
||||
..filename = json['filename'] as String
|
||||
..status = json['status'] as String
|
||||
..additions = json['additions'] as int
|
||||
..deletions = json['deletions'] as int
|
||||
..changes = json['changes'] as int
|
||||
..patch = json['patch'] as String;
|
||||
}
|
||||
GithubFilesItem _$GithubFilesItemFromJson(Map<String, dynamic> json) =>
|
||||
GithubFilesItem()
|
||||
..filename = json['filename'] as String?
|
||||
..status = json['status'] as String?
|
||||
..additions = json['additions'] as int?
|
||||
..deletions = json['deletions'] as int?
|
||||
..changes = json['changes'] as int?
|
||||
..patch = json['patch'] as String?;
|
||||
|
||||
Map<String, dynamic> _$GithubFilesItemToJson(GithubFilesItem instance) =>
|
||||
<String, dynamic>{
|
||||
|
@ -538,17 +505,15 @@ Map<String, dynamic> _$GithubFilesItemToJson(GithubFilesItem instance) =>
|
|||
'patch': instance.patch,
|
||||
};
|
||||
|
||||
GithubComparisonItem _$GithubComparisonItemFromJson(Map<String, dynamic> json) {
|
||||
return GithubComparisonItem()
|
||||
..files = (json['files'] as List)
|
||||
?.map((e) => e == null
|
||||
? null
|
||||
: GithubFilesItem.fromJson(e as Map<String, dynamic>))
|
||||
?.toList()
|
||||
..status = json['status'] as String
|
||||
..aheadBy = json['ahead_by'] as int
|
||||
..behindBy = json['behind_by'] as int;
|
||||
}
|
||||
GithubComparisonItem _$GithubComparisonItemFromJson(
|
||||
Map<String, dynamic> json) =>
|
||||
GithubComparisonItem()
|
||||
..files = (json['files'] as List<dynamic>?)
|
||||
?.map((e) => GithubFilesItem.fromJson(e as Map<String, dynamic>))
|
||||
.toList()
|
||||
..status = json['status'] as String?
|
||||
..aheadBy = json['ahead_by'] as int?
|
||||
..behindBy = json['behind_by'] as int?;
|
||||
|
||||
Map<String, dynamic> _$GithubComparisonItemToJson(
|
||||
GithubComparisonItem instance) =>
|
||||
|
|
|
@ -4,218 +4,218 @@ part 'gitlab.g.dart';
|
|||
|
||||
@JsonSerializable(fieldRename: FieldRename.snake)
|
||||
class GitlabUser {
|
||||
int id;
|
||||
String username;
|
||||
String name;
|
||||
String avatarUrl;
|
||||
String bio;
|
||||
DateTime createdAt;
|
||||
int accessLevel;
|
||||
GitlabUser();
|
||||
factory GitlabUser.fromJson(Map<String, dynamic> json) =>
|
||||
_$GitlabUserFromJson(json);
|
||||
int? id;
|
||||
String? username;
|
||||
String? name;
|
||||
String? avatarUrl;
|
||||
String? bio;
|
||||
DateTime? createdAt;
|
||||
int? accessLevel;
|
||||
}
|
||||
|
||||
@JsonSerializable(fieldRename: FieldRename.snake)
|
||||
class GitlabGroup {
|
||||
int id;
|
||||
String path;
|
||||
String name;
|
||||
String avatarUrl;
|
||||
String description;
|
||||
List<GitlabProject> projects;
|
||||
GitlabGroup();
|
||||
factory GitlabGroup.fromJson(Map<String, dynamic> json) =>
|
||||
_$GitlabGroupFromJson(json);
|
||||
int? id;
|
||||
String? path;
|
||||
String? name;
|
||||
String? avatarUrl;
|
||||
String? description;
|
||||
List<GitlabProject>? projects;
|
||||
}
|
||||
|
||||
@JsonSerializable(fieldRename: FieldRename.snake)
|
||||
class GitlabTodoProject {
|
||||
String pathWithNamespace;
|
||||
GitlabTodoProject();
|
||||
factory GitlabTodoProject.fromJson(Map<String, dynamic> json) =>
|
||||
_$GitlabTodoProjectFromJson(json);
|
||||
String? pathWithNamespace;
|
||||
}
|
||||
|
||||
@JsonSerializable(fieldRename: FieldRename.snake)
|
||||
class GitlabTodo {
|
||||
GitlabUser author;
|
||||
GitlabTodoProject project;
|
||||
String actionName;
|
||||
String targetType;
|
||||
GitlabTodoTarget target;
|
||||
GitlabTodo();
|
||||
factory GitlabTodo.fromJson(Map<String, dynamic> json) =>
|
||||
_$GitlabTodoFromJson(json);
|
||||
GitlabUser? author;
|
||||
GitlabTodoProject? project;
|
||||
String? actionName;
|
||||
String? targetType;
|
||||
GitlabTodoTarget? target;
|
||||
}
|
||||
|
||||
@JsonSerializable(fieldRename: FieldRename.snake)
|
||||
class GitlabTodoTarget {
|
||||
int iid;
|
||||
int projectId;
|
||||
String title;
|
||||
GitlabUser author;
|
||||
String description;
|
||||
DateTime createdAt;
|
||||
GitlabTodoTarget();
|
||||
factory GitlabTodoTarget.fromJson(Map<String, dynamic> json) =>
|
||||
_$GitlabTodoTargetFromJson(json);
|
||||
int? iid;
|
||||
int? projectId;
|
||||
String? title;
|
||||
GitlabUser? author;
|
||||
String? description;
|
||||
DateTime? createdAt;
|
||||
}
|
||||
|
||||
@JsonSerializable(fieldRename: FieldRename.snake)
|
||||
class GitlabIssueNote {
|
||||
GitlabUser author;
|
||||
String body;
|
||||
bool system;
|
||||
DateTime createdAt;
|
||||
GitlabIssueNote();
|
||||
factory GitlabIssueNote.fromJson(Map<String, dynamic> json) =>
|
||||
_$GitlabIssueNoteFromJson(json);
|
||||
GitlabUser? author;
|
||||
String? body;
|
||||
bool? system;
|
||||
DateTime? createdAt;
|
||||
}
|
||||
|
||||
@JsonSerializable(fieldRename: FieldRename.snake)
|
||||
class GitlabProject {
|
||||
int id;
|
||||
String name;
|
||||
String avatarUrl;
|
||||
String description;
|
||||
int starCount;
|
||||
int forksCount;
|
||||
String visibility;
|
||||
String readmeUrl;
|
||||
String webUrl;
|
||||
GitlabProjectNamespace namespace;
|
||||
GitlabUser owner;
|
||||
bool issuesEnabled;
|
||||
int openIssuesCount;
|
||||
bool mergeRequestsEnabled;
|
||||
GitlabProjectStatistics statistics;
|
||||
DateTime lastActivityAt;
|
||||
DateTime createdAt;
|
||||
String defaultBranch;
|
||||
GitlabProject();
|
||||
factory GitlabProject.fromJson(Map<String, dynamic> json) =>
|
||||
_$GitlabProjectFromJson(json);
|
||||
int? id;
|
||||
String? name;
|
||||
String? avatarUrl;
|
||||
String? description;
|
||||
int? starCount;
|
||||
int? forksCount;
|
||||
String? visibility;
|
||||
String? readmeUrl;
|
||||
String? webUrl;
|
||||
GitlabProjectNamespace? namespace;
|
||||
GitlabUser? owner;
|
||||
bool? issuesEnabled;
|
||||
int? openIssuesCount;
|
||||
bool? mergeRequestsEnabled;
|
||||
GitlabProjectStatistics? statistics;
|
||||
DateTime? lastActivityAt;
|
||||
DateTime? createdAt;
|
||||
String? defaultBranch;
|
||||
}
|
||||
|
||||
@JsonSerializable(fieldRename: FieldRename.snake)
|
||||
class GitlabProjectBadge {
|
||||
String renderedImageUrl;
|
||||
GitlabProjectBadge();
|
||||
factory GitlabProjectBadge.fromJson(Map<String, dynamic> json) =>
|
||||
_$GitlabProjectBadgeFromJson(json);
|
||||
String? renderedImageUrl;
|
||||
}
|
||||
|
||||
@JsonSerializable(fieldRename: FieldRename.snake)
|
||||
class GitlabProjectStatistics {
|
||||
int commitCount;
|
||||
int repositorySize;
|
||||
GitlabProjectStatistics();
|
||||
factory GitlabProjectStatistics.fromJson(Map<String, dynamic> json) =>
|
||||
_$GitlabProjectStatisticsFromJson(json);
|
||||
int? commitCount;
|
||||
int? repositorySize;
|
||||
}
|
||||
|
||||
@JsonSerializable(fieldRename: FieldRename.snake)
|
||||
class GitlabProjectNamespace {
|
||||
int id;
|
||||
String name;
|
||||
String path;
|
||||
String kind;
|
||||
GitlabProjectNamespace();
|
||||
factory GitlabProjectNamespace.fromJson(Map<String, dynamic> json) =>
|
||||
_$GitlabProjectNamespaceFromJson(json);
|
||||
int? id;
|
||||
String? name;
|
||||
String? path;
|
||||
String? kind;
|
||||
}
|
||||
|
||||
@JsonSerializable(fieldRename: FieldRename.snake)
|
||||
class GitlabTreeItem {
|
||||
GitlabTreeItem({required this.type, required this.path, required this.name});
|
||||
factory GitlabTreeItem.fromJson(Map<String, dynamic> json) =>
|
||||
_$GitlabTreeItemFromJson(json);
|
||||
String type;
|
||||
String path;
|
||||
String name;
|
||||
GitlabTreeItem();
|
||||
factory GitlabTreeItem.fromJson(Map<String, dynamic> json) =>
|
||||
_$GitlabTreeItemFromJson(json);
|
||||
}
|
||||
|
||||
@JsonSerializable(fieldRename: FieldRename.snake)
|
||||
class GitlabBlob {
|
||||
String content;
|
||||
GitlabBlob();
|
||||
factory GitlabBlob.fromJson(Map<String, dynamic> json) =>
|
||||
_$GitlabBlobFromJson(json);
|
||||
String? content;
|
||||
}
|
||||
|
||||
@JsonSerializable(fieldRename: FieldRename.snake)
|
||||
class GitlabEvent {
|
||||
GitlabUser author;
|
||||
String actionName;
|
||||
String targetType;
|
||||
GitlabEventNote note;
|
||||
GitlabEvent();
|
||||
factory GitlabEvent.fromJson(Map<String, dynamic> json) =>
|
||||
_$GitlabEventFromJson(json);
|
||||
GitlabUser? author;
|
||||
String? actionName;
|
||||
String? targetType;
|
||||
GitlabEventNote? note;
|
||||
}
|
||||
|
||||
@JsonSerializable(fieldRename: FieldRename.snake)
|
||||
class GitlabEventNote {
|
||||
String body;
|
||||
String noteableType;
|
||||
int noteableIid;
|
||||
GitlabEventNote();
|
||||
factory GitlabEventNote.fromJson(Map<String, dynamic> json) =>
|
||||
_$GitlabEventNoteFromJson(json);
|
||||
String? body;
|
||||
String? noteableType;
|
||||
int? noteableIid;
|
||||
}
|
||||
|
||||
@JsonSerializable(fieldRename: FieldRename.snake)
|
||||
class GitlabCommit {
|
||||
String id;
|
||||
String shortId;
|
||||
String title;
|
||||
DateTime createdAt;
|
||||
String authorName;
|
||||
String message;
|
||||
GitlabCommit();
|
||||
factory GitlabCommit.fromJson(Map<String, dynamic> json) =>
|
||||
_$GitlabCommitFromJson(json);
|
||||
String? id;
|
||||
String? shortId;
|
||||
String? title;
|
||||
DateTime? createdAt;
|
||||
String? authorName;
|
||||
String? message;
|
||||
}
|
||||
|
||||
@JsonSerializable(fieldRename: FieldRename.snake)
|
||||
class GitlabDiff {
|
||||
String diff;
|
||||
String newPath;
|
||||
String oldPath;
|
||||
GitlabDiff();
|
||||
factory GitlabDiff.fromJson(Map<String, dynamic> json) =>
|
||||
_$GitlabDiffFromJson(json);
|
||||
String? diff;
|
||||
String? newPath;
|
||||
String? oldPath;
|
||||
}
|
||||
|
||||
@JsonSerializable(fieldRename: FieldRename.snake)
|
||||
class GitlabIssue {
|
||||
String title;
|
||||
int iid;
|
||||
int projectId;
|
||||
GitlabUser author;
|
||||
int userNotesCount;
|
||||
DateTime updatedAt;
|
||||
List<String> labels;
|
||||
GitlabIssue();
|
||||
factory GitlabIssue.fromJson(Map<String, dynamic> json) =>
|
||||
_$GitlabIssueFromJson(json);
|
||||
String? title;
|
||||
int? iid;
|
||||
int? projectId;
|
||||
GitlabUser? author;
|
||||
int? userNotesCount;
|
||||
DateTime? updatedAt;
|
||||
List<String>? labels;
|
||||
}
|
||||
|
||||
@JsonSerializable(fieldRename: FieldRename.snake)
|
||||
class GitlabStarrer {
|
||||
DateTime starredSince;
|
||||
GitlabUser user;
|
||||
GitlabStarrer();
|
||||
factory GitlabStarrer.fromJson(Map<String, dynamic> json) =>
|
||||
_$GitlabStarrerFromJson(json);
|
||||
DateTime? starredSince;
|
||||
GitlabUser? user;
|
||||
}
|
||||
|
||||
@JsonSerializable(fieldRename: FieldRename.snake)
|
||||
class GitlabBranch {
|
||||
String name;
|
||||
bool merged;
|
||||
GitlabBranch();
|
||||
factory GitlabBranch.fromJson(Map<String, dynamic> json) =>
|
||||
_$GitlabBranchFromJson(json);
|
||||
String? name;
|
||||
bool? merged;
|
||||
}
|
||||
|
|
|
@ -6,18 +6,16 @@ part of 'gitlab.dart';
|
|||
// JsonSerializableGenerator
|
||||
// **************************************************************************
|
||||
|
||||
GitlabUser _$GitlabUserFromJson(Map<String, dynamic> json) {
|
||||
return GitlabUser()
|
||||
..id = json['id'] as int
|
||||
..username = json['username'] as String
|
||||
..name = json['name'] as String
|
||||
..avatarUrl = json['avatar_url'] as String
|
||||
..bio = json['bio'] as String
|
||||
..createdAt = json['created_at'] == null
|
||||
? null
|
||||
: DateTime.parse(json['created_at'] as String)
|
||||
..accessLevel = json['access_level'] as int;
|
||||
}
|
||||
GitlabUser _$GitlabUserFromJson(Map<String, dynamic> json) => GitlabUser()
|
||||
..id = json['id'] as int?
|
||||
..username = json['username'] as String?
|
||||
..name = json['name'] as String?
|
||||
..avatarUrl = json['avatar_url'] as String?
|
||||
..bio = json['bio'] as String?
|
||||
..createdAt = json['created_at'] == null
|
||||
? null
|
||||
: DateTime.parse(json['created_at'] as String)
|
||||
..accessLevel = json['access_level'] as int?;
|
||||
|
||||
Map<String, dynamic> _$GitlabUserToJson(GitlabUser instance) =>
|
||||
<String, dynamic>{
|
||||
|
@ -30,19 +28,15 @@ Map<String, dynamic> _$GitlabUserToJson(GitlabUser instance) =>
|
|||
'access_level': instance.accessLevel,
|
||||
};
|
||||
|
||||
GitlabGroup _$GitlabGroupFromJson(Map<String, dynamic> json) {
|
||||
return GitlabGroup()
|
||||
..id = json['id'] as int
|
||||
..path = json['path'] as String
|
||||
..name = json['name'] as String
|
||||
..avatarUrl = json['avatar_url'] as String
|
||||
..description = json['description'] as String
|
||||
..projects = (json['projects'] as List)
|
||||
?.map((e) => e == null
|
||||
? null
|
||||
: GitlabProject.fromJson(e as Map<String, dynamic>))
|
||||
?.toList();
|
||||
}
|
||||
GitlabGroup _$GitlabGroupFromJson(Map<String, dynamic> json) => GitlabGroup()
|
||||
..id = json['id'] as int?
|
||||
..path = json['path'] as String?
|
||||
..name = json['name'] as String?
|
||||
..avatarUrl = json['avatar_url'] as String?
|
||||
..description = json['description'] as String?
|
||||
..projects = (json['projects'] as List<dynamic>?)
|
||||
?.map((e) => GitlabProject.fromJson(e as Map<String, dynamic>))
|
||||
.toList();
|
||||
|
||||
Map<String, dynamic> _$GitlabGroupToJson(GitlabGroup instance) =>
|
||||
<String, dynamic>{
|
||||
|
@ -54,30 +48,27 @@ Map<String, dynamic> _$GitlabGroupToJson(GitlabGroup instance) =>
|
|||
'projects': instance.projects,
|
||||
};
|
||||
|
||||
GitlabTodoProject _$GitlabTodoProjectFromJson(Map<String, dynamic> json) {
|
||||
return GitlabTodoProject()
|
||||
..pathWithNamespace = json['path_with_namespace'] as String;
|
||||
}
|
||||
GitlabTodoProject _$GitlabTodoProjectFromJson(Map<String, dynamic> json) =>
|
||||
GitlabTodoProject()
|
||||
..pathWithNamespace = json['path_with_namespace'] as String?;
|
||||
|
||||
Map<String, dynamic> _$GitlabTodoProjectToJson(GitlabTodoProject instance) =>
|
||||
<String, dynamic>{
|
||||
'path_with_namespace': instance.pathWithNamespace,
|
||||
};
|
||||
|
||||
GitlabTodo _$GitlabTodoFromJson(Map<String, dynamic> json) {
|
||||
return GitlabTodo()
|
||||
..author = json['author'] == null
|
||||
? null
|
||||
: GitlabUser.fromJson(json['author'] as Map<String, dynamic>)
|
||||
..project = json['project'] == null
|
||||
? null
|
||||
: GitlabTodoProject.fromJson(json['project'] as Map<String, dynamic>)
|
||||
..actionName = json['action_name'] as String
|
||||
..targetType = json['target_type'] as String
|
||||
..target = json['target'] == null
|
||||
? null
|
||||
: GitlabTodoTarget.fromJson(json['target'] as Map<String, dynamic>);
|
||||
}
|
||||
GitlabTodo _$GitlabTodoFromJson(Map<String, dynamic> json) => GitlabTodo()
|
||||
..author = json['author'] == null
|
||||
? null
|
||||
: GitlabUser.fromJson(json['author'] as Map<String, dynamic>)
|
||||
..project = json['project'] == null
|
||||
? null
|
||||
: GitlabTodoProject.fromJson(json['project'] as Map<String, dynamic>)
|
||||
..actionName = json['action_name'] as String?
|
||||
..targetType = json['target_type'] as String?
|
||||
..target = json['target'] == null
|
||||
? null
|
||||
: GitlabTodoTarget.fromJson(json['target'] as Map<String, dynamic>);
|
||||
|
||||
Map<String, dynamic> _$GitlabTodoToJson(GitlabTodo instance) =>
|
||||
<String, dynamic>{
|
||||
|
@ -88,19 +79,18 @@ Map<String, dynamic> _$GitlabTodoToJson(GitlabTodo instance) =>
|
|||
'target': instance.target,
|
||||
};
|
||||
|
||||
GitlabTodoTarget _$GitlabTodoTargetFromJson(Map<String, dynamic> json) {
|
||||
return GitlabTodoTarget()
|
||||
..iid = json['iid'] as int
|
||||
..projectId = json['project_id'] as int
|
||||
..title = json['title'] as String
|
||||
..author = json['author'] == null
|
||||
? null
|
||||
: GitlabUser.fromJson(json['author'] as Map<String, dynamic>)
|
||||
..description = json['description'] as String
|
||||
..createdAt = json['created_at'] == null
|
||||
? null
|
||||
: DateTime.parse(json['created_at'] as String);
|
||||
}
|
||||
GitlabTodoTarget _$GitlabTodoTargetFromJson(Map<String, dynamic> json) =>
|
||||
GitlabTodoTarget()
|
||||
..iid = json['iid'] as int?
|
||||
..projectId = json['project_id'] as int?
|
||||
..title = json['title'] as String?
|
||||
..author = json['author'] == null
|
||||
? null
|
||||
: GitlabUser.fromJson(json['author'] as Map<String, dynamic>)
|
||||
..description = json['description'] as String?
|
||||
..createdAt = json['created_at'] == null
|
||||
? null
|
||||
: DateTime.parse(json['created_at'] as String);
|
||||
|
||||
Map<String, dynamic> _$GitlabTodoTargetToJson(GitlabTodoTarget instance) =>
|
||||
<String, dynamic>{
|
||||
|
@ -112,17 +102,16 @@ Map<String, dynamic> _$GitlabTodoTargetToJson(GitlabTodoTarget instance) =>
|
|||
'created_at': instance.createdAt?.toIso8601String(),
|
||||
};
|
||||
|
||||
GitlabIssueNote _$GitlabIssueNoteFromJson(Map<String, dynamic> json) {
|
||||
return GitlabIssueNote()
|
||||
..author = json['author'] == null
|
||||
? null
|
||||
: GitlabUser.fromJson(json['author'] as Map<String, dynamic>)
|
||||
..body = json['body'] as String
|
||||
..system = json['system'] as bool
|
||||
..createdAt = json['created_at'] == null
|
||||
? null
|
||||
: DateTime.parse(json['created_at'] as String);
|
||||
}
|
||||
GitlabIssueNote _$GitlabIssueNoteFromJson(Map<String, dynamic> json) =>
|
||||
GitlabIssueNote()
|
||||
..author = json['author'] == null
|
||||
? null
|
||||
: GitlabUser.fromJson(json['author'] as Map<String, dynamic>)
|
||||
..body = json['body'] as String?
|
||||
..system = json['system'] as bool?
|
||||
..createdAt = json['created_at'] == null
|
||||
? null
|
||||
: DateTime.parse(json['created_at'] as String);
|
||||
|
||||
Map<String, dynamic> _$GitlabIssueNoteToJson(GitlabIssueNote instance) =>
|
||||
<String, dynamic>{
|
||||
|
@ -132,39 +121,38 @@ Map<String, dynamic> _$GitlabIssueNoteToJson(GitlabIssueNote instance) =>
|
|||
'created_at': instance.createdAt?.toIso8601String(),
|
||||
};
|
||||
|
||||
GitlabProject _$GitlabProjectFromJson(Map<String, dynamic> json) {
|
||||
return GitlabProject()
|
||||
..id = json['id'] as int
|
||||
..name = json['name'] as String
|
||||
..avatarUrl = json['avatar_url'] as String
|
||||
..description = json['description'] as String
|
||||
..starCount = json['star_count'] as int
|
||||
..forksCount = json['forks_count'] as int
|
||||
..visibility = json['visibility'] as String
|
||||
..readmeUrl = json['readme_url'] as String
|
||||
..webUrl = json['web_url'] as String
|
||||
..namespace = json['namespace'] == null
|
||||
? null
|
||||
: GitlabProjectNamespace.fromJson(
|
||||
json['namespace'] as Map<String, dynamic>)
|
||||
..owner = json['owner'] == null
|
||||
? null
|
||||
: GitlabUser.fromJson(json['owner'] as Map<String, dynamic>)
|
||||
..issuesEnabled = json['issues_enabled'] as bool
|
||||
..openIssuesCount = json['open_issues_count'] as int
|
||||
..mergeRequestsEnabled = json['merge_requests_enabled'] as bool
|
||||
..statistics = json['statistics'] == null
|
||||
? null
|
||||
: GitlabProjectStatistics.fromJson(
|
||||
json['statistics'] as Map<String, dynamic>)
|
||||
..lastActivityAt = json['last_activity_at'] == null
|
||||
? null
|
||||
: DateTime.parse(json['last_activity_at'] as String)
|
||||
..createdAt = json['created_at'] == null
|
||||
? null
|
||||
: DateTime.parse(json['created_at'] as String)
|
||||
..defaultBranch = json['default_branch'] as String;
|
||||
}
|
||||
GitlabProject _$GitlabProjectFromJson(Map<String, dynamic> json) =>
|
||||
GitlabProject()
|
||||
..id = json['id'] as int?
|
||||
..name = json['name'] as String?
|
||||
..avatarUrl = json['avatar_url'] as String?
|
||||
..description = json['description'] as String?
|
||||
..starCount = json['star_count'] as int?
|
||||
..forksCount = json['forks_count'] as int?
|
||||
..visibility = json['visibility'] as String?
|
||||
..readmeUrl = json['readme_url'] as String?
|
||||
..webUrl = json['web_url'] as String?
|
||||
..namespace = json['namespace'] == null
|
||||
? null
|
||||
: GitlabProjectNamespace.fromJson(
|
||||
json['namespace'] as Map<String, dynamic>)
|
||||
..owner = json['owner'] == null
|
||||
? null
|
||||
: GitlabUser.fromJson(json['owner'] as Map<String, dynamic>)
|
||||
..issuesEnabled = json['issues_enabled'] as bool?
|
||||
..openIssuesCount = json['open_issues_count'] as int?
|
||||
..mergeRequestsEnabled = json['merge_requests_enabled'] as bool?
|
||||
..statistics = json['statistics'] == null
|
||||
? null
|
||||
: GitlabProjectStatistics.fromJson(
|
||||
json['statistics'] as Map<String, dynamic>)
|
||||
..lastActivityAt = json['last_activity_at'] == null
|
||||
? null
|
||||
: DateTime.parse(json['last_activity_at'] as String)
|
||||
..createdAt = json['created_at'] == null
|
||||
? null
|
||||
: DateTime.parse(json['created_at'] as String)
|
||||
..defaultBranch = json['default_branch'] as String?;
|
||||
|
||||
Map<String, dynamic> _$GitlabProjectToJson(GitlabProject instance) =>
|
||||
<String, dynamic>{
|
||||
|
@ -188,10 +176,9 @@ Map<String, dynamic> _$GitlabProjectToJson(GitlabProject instance) =>
|
|||
'default_branch': instance.defaultBranch,
|
||||
};
|
||||
|
||||
GitlabProjectBadge _$GitlabProjectBadgeFromJson(Map<String, dynamic> json) {
|
||||
return GitlabProjectBadge()
|
||||
..renderedImageUrl = json['rendered_image_url'] as String;
|
||||
}
|
||||
GitlabProjectBadge _$GitlabProjectBadgeFromJson(Map<String, dynamic> json) =>
|
||||
GitlabProjectBadge()
|
||||
..renderedImageUrl = json['rendered_image_url'] as String?;
|
||||
|
||||
Map<String, dynamic> _$GitlabProjectBadgeToJson(GitlabProjectBadge instance) =>
|
||||
<String, dynamic>{
|
||||
|
@ -199,11 +186,10 @@ Map<String, dynamic> _$GitlabProjectBadgeToJson(GitlabProjectBadge instance) =>
|
|||
};
|
||||
|
||||
GitlabProjectStatistics _$GitlabProjectStatisticsFromJson(
|
||||
Map<String, dynamic> json) {
|
||||
return GitlabProjectStatistics()
|
||||
..commitCount = json['commit_count'] as int
|
||||
..repositorySize = json['repository_size'] as int;
|
||||
}
|
||||
Map<String, dynamic> json) =>
|
||||
GitlabProjectStatistics()
|
||||
..commitCount = json['commit_count'] as int?
|
||||
..repositorySize = json['repository_size'] as int?;
|
||||
|
||||
Map<String, dynamic> _$GitlabProjectStatisticsToJson(
|
||||
GitlabProjectStatistics instance) =>
|
||||
|
@ -213,13 +199,12 @@ Map<String, dynamic> _$GitlabProjectStatisticsToJson(
|
|||
};
|
||||
|
||||
GitlabProjectNamespace _$GitlabProjectNamespaceFromJson(
|
||||
Map<String, dynamic> json) {
|
||||
return GitlabProjectNamespace()
|
||||
..id = json['id'] as int
|
||||
..name = json['name'] as String
|
||||
..path = json['path'] as String
|
||||
..kind = json['kind'] as String;
|
||||
}
|
||||
Map<String, dynamic> json) =>
|
||||
GitlabProjectNamespace()
|
||||
..id = json['id'] as int?
|
||||
..name = json['name'] as String?
|
||||
..path = json['path'] as String?
|
||||
..kind = json['kind'] as String?;
|
||||
|
||||
Map<String, dynamic> _$GitlabProjectNamespaceToJson(
|
||||
GitlabProjectNamespace instance) =>
|
||||
|
@ -230,12 +215,12 @@ Map<String, dynamic> _$GitlabProjectNamespaceToJson(
|
|||
'kind': instance.kind,
|
||||
};
|
||||
|
||||
GitlabTreeItem _$GitlabTreeItemFromJson(Map<String, dynamic> json) {
|
||||
return GitlabTreeItem()
|
||||
..type = json['type'] as String
|
||||
..path = json['path'] as String
|
||||
..name = json['name'] as String;
|
||||
}
|
||||
GitlabTreeItem _$GitlabTreeItemFromJson(Map<String, dynamic> json) =>
|
||||
GitlabTreeItem(
|
||||
type: json['type'] as String,
|
||||
path: json['path'] as String,
|
||||
name: json['name'] as String,
|
||||
);
|
||||
|
||||
Map<String, dynamic> _$GitlabTreeItemToJson(GitlabTreeItem instance) =>
|
||||
<String, dynamic>{
|
||||
|
@ -244,26 +229,23 @@ Map<String, dynamic> _$GitlabTreeItemToJson(GitlabTreeItem instance) =>
|
|||
'name': instance.name,
|
||||
};
|
||||
|
||||
GitlabBlob _$GitlabBlobFromJson(Map<String, dynamic> json) {
|
||||
return GitlabBlob()..content = json['content'] as String;
|
||||
}
|
||||
GitlabBlob _$GitlabBlobFromJson(Map<String, dynamic> json) =>
|
||||
GitlabBlob()..content = json['content'] as String?;
|
||||
|
||||
Map<String, dynamic> _$GitlabBlobToJson(GitlabBlob instance) =>
|
||||
<String, dynamic>{
|
||||
'content': instance.content,
|
||||
};
|
||||
|
||||
GitlabEvent _$GitlabEventFromJson(Map<String, dynamic> json) {
|
||||
return GitlabEvent()
|
||||
..author = json['author'] == null
|
||||
? null
|
||||
: GitlabUser.fromJson(json['author'] as Map<String, dynamic>)
|
||||
..actionName = json['action_name'] as String
|
||||
..targetType = json['target_type'] as String
|
||||
..note = json['note'] == null
|
||||
? null
|
||||
: GitlabEventNote.fromJson(json['note'] as Map<String, dynamic>);
|
||||
}
|
||||
GitlabEvent _$GitlabEventFromJson(Map<String, dynamic> json) => GitlabEvent()
|
||||
..author = json['author'] == null
|
||||
? null
|
||||
: GitlabUser.fromJson(json['author'] as Map<String, dynamic>)
|
||||
..actionName = json['action_name'] as String?
|
||||
..targetType = json['target_type'] as String?
|
||||
..note = json['note'] == null
|
||||
? null
|
||||
: GitlabEventNote.fromJson(json['note'] as Map<String, dynamic>);
|
||||
|
||||
Map<String, dynamic> _$GitlabEventToJson(GitlabEvent instance) =>
|
||||
<String, dynamic>{
|
||||
|
@ -273,12 +255,11 @@ Map<String, dynamic> _$GitlabEventToJson(GitlabEvent instance) =>
|
|||
'note': instance.note,
|
||||
};
|
||||
|
||||
GitlabEventNote _$GitlabEventNoteFromJson(Map<String, dynamic> json) {
|
||||
return GitlabEventNote()
|
||||
..body = json['body'] as String
|
||||
..noteableType = json['noteable_type'] as String
|
||||
..noteableIid = json['noteable_iid'] as int;
|
||||
}
|
||||
GitlabEventNote _$GitlabEventNoteFromJson(Map<String, dynamic> json) =>
|
||||
GitlabEventNote()
|
||||
..body = json['body'] as String?
|
||||
..noteableType = json['noteable_type'] as String?
|
||||
..noteableIid = json['noteable_iid'] as int?;
|
||||
|
||||
Map<String, dynamic> _$GitlabEventNoteToJson(GitlabEventNote instance) =>
|
||||
<String, dynamic>{
|
||||
|
@ -287,17 +268,15 @@ Map<String, dynamic> _$GitlabEventNoteToJson(GitlabEventNote instance) =>
|
|||
'noteable_iid': instance.noteableIid,
|
||||
};
|
||||
|
||||
GitlabCommit _$GitlabCommitFromJson(Map<String, dynamic> json) {
|
||||
return GitlabCommit()
|
||||
..id = json['id'] as String
|
||||
..shortId = json['short_id'] as String
|
||||
..title = json['title'] as String
|
||||
..createdAt = json['created_at'] == null
|
||||
? null
|
||||
: DateTime.parse(json['created_at'] as String)
|
||||
..authorName = json['author_name'] as String
|
||||
..message = json['message'] as String;
|
||||
}
|
||||
GitlabCommit _$GitlabCommitFromJson(Map<String, dynamic> json) => GitlabCommit()
|
||||
..id = json['id'] as String?
|
||||
..shortId = json['short_id'] as String?
|
||||
..title = json['title'] as String?
|
||||
..createdAt = json['created_at'] == null
|
||||
? null
|
||||
: DateTime.parse(json['created_at'] as String)
|
||||
..authorName = json['author_name'] as String?
|
||||
..message = json['message'] as String?;
|
||||
|
||||
Map<String, dynamic> _$GitlabCommitToJson(GitlabCommit instance) =>
|
||||
<String, dynamic>{
|
||||
|
@ -309,12 +288,10 @@ Map<String, dynamic> _$GitlabCommitToJson(GitlabCommit instance) =>
|
|||
'message': instance.message,
|
||||
};
|
||||
|
||||
GitlabDiff _$GitlabDiffFromJson(Map<String, dynamic> json) {
|
||||
return GitlabDiff()
|
||||
..diff = json['diff'] as String
|
||||
..newPath = json['new_path'] as String
|
||||
..oldPath = json['old_path'] as String;
|
||||
}
|
||||
GitlabDiff _$GitlabDiffFromJson(Map<String, dynamic> json) => GitlabDiff()
|
||||
..diff = json['diff'] as String?
|
||||
..newPath = json['new_path'] as String?
|
||||
..oldPath = json['old_path'] as String?;
|
||||
|
||||
Map<String, dynamic> _$GitlabDiffToJson(GitlabDiff instance) =>
|
||||
<String, dynamic>{
|
||||
|
@ -323,20 +300,19 @@ Map<String, dynamic> _$GitlabDiffToJson(GitlabDiff instance) =>
|
|||
'old_path': instance.oldPath,
|
||||
};
|
||||
|
||||
GitlabIssue _$GitlabIssueFromJson(Map<String, dynamic> json) {
|
||||
return GitlabIssue()
|
||||
..title = json['title'] as String
|
||||
..iid = json['iid'] as int
|
||||
..projectId = json['project_id'] as int
|
||||
..author = json['author'] == null
|
||||
? null
|
||||
: GitlabUser.fromJson(json['author'] as Map<String, dynamic>)
|
||||
..userNotesCount = json['user_notes_count'] as int
|
||||
..updatedAt = json['updated_at'] == null
|
||||
? null
|
||||
: DateTime.parse(json['updated_at'] as String)
|
||||
..labels = (json['labels'] as List)?.map((e) => e as String)?.toList();
|
||||
}
|
||||
GitlabIssue _$GitlabIssueFromJson(Map<String, dynamic> json) => GitlabIssue()
|
||||
..title = json['title'] as String?
|
||||
..iid = json['iid'] as int?
|
||||
..projectId = json['project_id'] as int?
|
||||
..author = json['author'] == null
|
||||
? null
|
||||
: GitlabUser.fromJson(json['author'] as Map<String, dynamic>)
|
||||
..userNotesCount = json['user_notes_count'] as int?
|
||||
..updatedAt = json['updated_at'] == null
|
||||
? null
|
||||
: DateTime.parse(json['updated_at'] as String)
|
||||
..labels =
|
||||
(json['labels'] as List<dynamic>?)?.map((e) => e as String).toList();
|
||||
|
||||
Map<String, dynamic> _$GitlabIssueToJson(GitlabIssue instance) =>
|
||||
<String, dynamic>{
|
||||
|
@ -349,15 +325,14 @@ Map<String, dynamic> _$GitlabIssueToJson(GitlabIssue instance) =>
|
|||
'labels': instance.labels,
|
||||
};
|
||||
|
||||
GitlabStarrer _$GitlabStarrerFromJson(Map<String, dynamic> json) {
|
||||
return GitlabStarrer()
|
||||
..starredSince = json['starred_since'] == null
|
||||
? null
|
||||
: DateTime.parse(json['starred_since'] as String)
|
||||
..user = json['user'] == null
|
||||
? null
|
||||
: GitlabUser.fromJson(json['user'] as Map<String, dynamic>);
|
||||
}
|
||||
GitlabStarrer _$GitlabStarrerFromJson(Map<String, dynamic> json) =>
|
||||
GitlabStarrer()
|
||||
..starredSince = json['starred_since'] == null
|
||||
? null
|
||||
: DateTime.parse(json['starred_since'] as String)
|
||||
..user = json['user'] == null
|
||||
? null
|
||||
: GitlabUser.fromJson(json['user'] as Map<String, dynamic>);
|
||||
|
||||
Map<String, dynamic> _$GitlabStarrerToJson(GitlabStarrer instance) =>
|
||||
<String, dynamic>{
|
||||
|
@ -365,11 +340,9 @@ Map<String, dynamic> _$GitlabStarrerToJson(GitlabStarrer instance) =>
|
|||
'user': instance.user,
|
||||
};
|
||||
|
||||
GitlabBranch _$GitlabBranchFromJson(Map<String, dynamic> json) {
|
||||
return GitlabBranch()
|
||||
..name = json['name'] as String
|
||||
..merged = json['merged'] as bool;
|
||||
}
|
||||
GitlabBranch _$GitlabBranchFromJson(Map<String, dynamic> json) => GitlabBranch()
|
||||
..name = json['name'] as String?
|
||||
..merged = json['merged'] as bool?;
|
||||
|
||||
Map<String, dynamic> _$GitlabBranchToJson(GitlabBranch instance) =>
|
||||
<String, dynamic>{
|
||||
|
|
|
@ -4,130 +4,130 @@ part 'gogs.g.dart';
|
|||
|
||||
@JsonSerializable(fieldRename: FieldRename.snake)
|
||||
class GogsUser {
|
||||
int id;
|
||||
String username;
|
||||
String fullName;
|
||||
String avatarUrl;
|
||||
String email;
|
||||
GogsUser();
|
||||
factory GogsUser.fromJson(Map<String, dynamic> json) =>
|
||||
_$GogsUserFromJson(json);
|
||||
int? id;
|
||||
String? username;
|
||||
String? fullName;
|
||||
String? avatarUrl;
|
||||
String? email;
|
||||
}
|
||||
|
||||
@JsonSerializable(fieldRename: FieldRename.snake)
|
||||
class GogsRepository {
|
||||
int id;
|
||||
String fullName;
|
||||
bool private;
|
||||
GogsUser owner;
|
||||
String htmlUrl;
|
||||
String description;
|
||||
String defaultBranch;
|
||||
DateTime createdAt;
|
||||
DateTime updatedAt;
|
||||
int starsCount;
|
||||
int forksCount;
|
||||
String website;
|
||||
int watchersCount;
|
||||
GogsRepository();
|
||||
factory GogsRepository.fromJson(Map<String, dynamic> json) =>
|
||||
_$GogsRepositoryFromJson(json);
|
||||
int? id;
|
||||
String? fullName;
|
||||
bool? private;
|
||||
GogsUser? owner;
|
||||
String? htmlUrl;
|
||||
String? description;
|
||||
String? defaultBranch;
|
||||
DateTime? createdAt;
|
||||
DateTime? updatedAt;
|
||||
int? starsCount;
|
||||
int? forksCount;
|
||||
String? website;
|
||||
int? watchersCount;
|
||||
}
|
||||
|
||||
@JsonSerializable(fieldRename: FieldRename.snake)
|
||||
class GogsOrg {
|
||||
int id;
|
||||
String username;
|
||||
String fullName;
|
||||
String avatarUrl;
|
||||
String description;
|
||||
String location;
|
||||
String website;
|
||||
GogsOrg();
|
||||
factory GogsOrg.fromJson(Map<String, dynamic> json) =>
|
||||
_$GogsOrgFromJson(json);
|
||||
int? id;
|
||||
String? username;
|
||||
String? fullName;
|
||||
String? avatarUrl;
|
||||
String? description;
|
||||
String? location;
|
||||
String? website;
|
||||
}
|
||||
|
||||
@JsonSerializable(fieldRename: FieldRename.snake)
|
||||
class GogsTree {
|
||||
String type;
|
||||
String name;
|
||||
String path;
|
||||
int size;
|
||||
String downloadUrl;
|
||||
GogsTree();
|
||||
GogsTree({required this.type, required this.name});
|
||||
factory GogsTree.fromJson(Map<String, dynamic> json) =>
|
||||
_$GogsTreeFromJson(json);
|
||||
String type;
|
||||
String name;
|
||||
String? path;
|
||||
int? size;
|
||||
String? downloadUrl;
|
||||
}
|
||||
|
||||
@JsonSerializable(fieldRename: FieldRename.snake)
|
||||
class GogsBlob extends GogsTree {
|
||||
String content;
|
||||
GogsBlob();
|
||||
GogsBlob({required super.type, required super.name});
|
||||
factory GogsBlob.fromJson(Map<String, dynamic> json) =>
|
||||
_$GogsBlobFromJson(json);
|
||||
String? content;
|
||||
}
|
||||
|
||||
@JsonSerializable(fieldRename: FieldRename.snake)
|
||||
class GogsBranch {
|
||||
String name;
|
||||
GogsBranch();
|
||||
factory GogsBranch.fromJson(Map<String, dynamic> json) =>
|
||||
_$GogsBranchFromJson(json);
|
||||
String? name;
|
||||
}
|
||||
|
||||
@JsonSerializable(fieldRename: FieldRename.snake)
|
||||
class GogsCommit {
|
||||
GogsUser author;
|
||||
GogsCommitDetail commit;
|
||||
String sha;
|
||||
String htmlUrl;
|
||||
GogsCommit();
|
||||
factory GogsCommit.fromJson(Map<String, dynamic> json) =>
|
||||
_$GogsCommitFromJson(json);
|
||||
GogsUser? author;
|
||||
GogsCommitDetail? commit;
|
||||
String? sha;
|
||||
String? htmlUrl;
|
||||
}
|
||||
|
||||
@JsonSerializable(fieldRename: FieldRename.snake)
|
||||
class GogsCommitDetail {
|
||||
String message;
|
||||
GogsCommitAuthor author;
|
||||
GogsCommitAuthor committer;
|
||||
GogsCommitDetail();
|
||||
factory GogsCommitDetail.fromJson(Map<String, dynamic> json) =>
|
||||
_$GogsCommitDetailFromJson(json);
|
||||
String? message;
|
||||
GogsCommitAuthor? author;
|
||||
GogsCommitAuthor? committer;
|
||||
}
|
||||
|
||||
@JsonSerializable(fieldRename: FieldRename.snake)
|
||||
class GogsCommitAuthor {
|
||||
String name;
|
||||
String email;
|
||||
DateTime date;
|
||||
GogsCommitAuthor();
|
||||
factory GogsCommitAuthor.fromJson(Map<String, dynamic> json) =>
|
||||
_$GogsCommitAuthorFromJson(json);
|
||||
String? name;
|
||||
String? email;
|
||||
DateTime? date;
|
||||
}
|
||||
|
||||
@JsonSerializable(fieldRename: FieldRename.snake)
|
||||
class GogsIssue {
|
||||
int number;
|
||||
String state;
|
||||
String title;
|
||||
String body;
|
||||
GogsUser user;
|
||||
List<GogsLabel> labels;
|
||||
DateTime createdAt;
|
||||
DateTime updatedAt;
|
||||
int comments;
|
||||
GogsIssue();
|
||||
factory GogsIssue.fromJson(Map<String, dynamic> json) =>
|
||||
_$GogsIssueFromJson(json);
|
||||
int? number;
|
||||
String? state;
|
||||
String? title;
|
||||
String? body;
|
||||
GogsUser? user;
|
||||
List<GogsLabel>? labels;
|
||||
DateTime? createdAt;
|
||||
DateTime? updatedAt;
|
||||
int? comments;
|
||||
}
|
||||
|
||||
@JsonSerializable(fieldRename: FieldRename.snake)
|
||||
class GogsLabel {
|
||||
String name;
|
||||
String color;
|
||||
GogsLabel();
|
||||
factory GogsLabel.fromJson(Map<String, dynamic> json) =>
|
||||
_$GogsLabelFromJson(json);
|
||||
String? name;
|
||||
String? color;
|
||||
}
|
||||
|
|
|
@ -6,14 +6,12 @@ part of 'gogs.dart';
|
|||
// JsonSerializableGenerator
|
||||
// **************************************************************************
|
||||
|
||||
GogsUser _$GogsUserFromJson(Map<String, dynamic> json) {
|
||||
return GogsUser()
|
||||
..id = json['id'] as int
|
||||
..username = json['username'] as String
|
||||
..fullName = json['full_name'] as String
|
||||
..avatarUrl = json['avatar_url'] as String
|
||||
..email = json['email'] as String;
|
||||
}
|
||||
GogsUser _$GogsUserFromJson(Map<String, dynamic> json) => GogsUser()
|
||||
..id = json['id'] as int?
|
||||
..username = json['username'] as String?
|
||||
..fullName = json['full_name'] as String?
|
||||
..avatarUrl = json['avatar_url'] as String?
|
||||
..email = json['email'] as String?;
|
||||
|
||||
Map<String, dynamic> _$GogsUserToJson(GogsUser instance) => <String, dynamic>{
|
||||
'id': instance.id,
|
||||
|
@ -23,28 +21,27 @@ Map<String, dynamic> _$GogsUserToJson(GogsUser instance) => <String, dynamic>{
|
|||
'email': instance.email,
|
||||
};
|
||||
|
||||
GogsRepository _$GogsRepositoryFromJson(Map<String, dynamic> json) {
|
||||
return GogsRepository()
|
||||
..id = json['id'] as int
|
||||
..fullName = json['full_name'] as String
|
||||
..private = json['private'] as bool
|
||||
..owner = json['owner'] == null
|
||||
? null
|
||||
: GogsUser.fromJson(json['owner'] as Map<String, dynamic>)
|
||||
..htmlUrl = json['html_url'] as String
|
||||
..description = json['description'] as String
|
||||
..defaultBranch = json['default_branch'] as String
|
||||
..createdAt = json['created_at'] == null
|
||||
? null
|
||||
: DateTime.parse(json['created_at'] as String)
|
||||
..updatedAt = json['updated_at'] == null
|
||||
? null
|
||||
: DateTime.parse(json['updated_at'] as String)
|
||||
..starsCount = json['stars_count'] as int
|
||||
..forksCount = json['forks_count'] as int
|
||||
..website = json['website'] as String
|
||||
..watchersCount = json['watchers_count'] as int;
|
||||
}
|
||||
GogsRepository _$GogsRepositoryFromJson(Map<String, dynamic> json) =>
|
||||
GogsRepository()
|
||||
..id = json['id'] as int?
|
||||
..fullName = json['full_name'] as String?
|
||||
..private = json['private'] as bool?
|
||||
..owner = json['owner'] == null
|
||||
? null
|
||||
: GogsUser.fromJson(json['owner'] as Map<String, dynamic>)
|
||||
..htmlUrl = json['html_url'] as String?
|
||||
..description = json['description'] as String?
|
||||
..defaultBranch = json['default_branch'] as String?
|
||||
..createdAt = json['created_at'] == null
|
||||
? null
|
||||
: DateTime.parse(json['created_at'] as String)
|
||||
..updatedAt = json['updated_at'] == null
|
||||
? null
|
||||
: DateTime.parse(json['updated_at'] as String)
|
||||
..starsCount = json['stars_count'] as int?
|
||||
..forksCount = json['forks_count'] as int?
|
||||
..website = json['website'] as String?
|
||||
..watchersCount = json['watchers_count'] as int?;
|
||||
|
||||
Map<String, dynamic> _$GogsRepositoryToJson(GogsRepository instance) =>
|
||||
<String, dynamic>{
|
||||
|
@ -63,16 +60,14 @@ Map<String, dynamic> _$GogsRepositoryToJson(GogsRepository instance) =>
|
|||
'watchers_count': instance.watchersCount,
|
||||
};
|
||||
|
||||
GogsOrg _$GogsOrgFromJson(Map<String, dynamic> json) {
|
||||
return GogsOrg()
|
||||
..id = json['id'] as int
|
||||
..username = json['username'] as String
|
||||
..fullName = json['full_name'] as String
|
||||
..avatarUrl = json['avatar_url'] as String
|
||||
..description = json['description'] as String
|
||||
..location = json['location'] as String
|
||||
..website = json['website'] as String;
|
||||
}
|
||||
GogsOrg _$GogsOrgFromJson(Map<String, dynamic> json) => GogsOrg()
|
||||
..id = json['id'] as int?
|
||||
..username = json['username'] as String?
|
||||
..fullName = json['full_name'] as String?
|
||||
..avatarUrl = json['avatar_url'] as String?
|
||||
..description = json['description'] as String?
|
||||
..location = json['location'] as String?
|
||||
..website = json['website'] as String?;
|
||||
|
||||
Map<String, dynamic> _$GogsOrgToJson(GogsOrg instance) => <String, dynamic>{
|
||||
'id': instance.id,
|
||||
|
@ -84,14 +79,13 @@ Map<String, dynamic> _$GogsOrgToJson(GogsOrg instance) => <String, dynamic>{
|
|||
'website': instance.website,
|
||||
};
|
||||
|
||||
GogsTree _$GogsTreeFromJson(Map<String, dynamic> json) {
|
||||
return GogsTree()
|
||||
..type = json['type'] as String
|
||||
..name = json['name'] as String
|
||||
..path = json['path'] as String
|
||||
..size = json['size'] as int
|
||||
..downloadUrl = json['download_url'] as String;
|
||||
}
|
||||
GogsTree _$GogsTreeFromJson(Map<String, dynamic> json) => GogsTree(
|
||||
type: json['type'] as String,
|
||||
name: json['name'] as String,
|
||||
)
|
||||
..path = json['path'] as String?
|
||||
..size = json['size'] as int?
|
||||
..downloadUrl = json['download_url'] as String?;
|
||||
|
||||
Map<String, dynamic> _$GogsTreeToJson(GogsTree instance) => <String, dynamic>{
|
||||
'type': instance.type,
|
||||
|
@ -101,15 +95,14 @@ Map<String, dynamic> _$GogsTreeToJson(GogsTree instance) => <String, dynamic>{
|
|||
'download_url': instance.downloadUrl,
|
||||
};
|
||||
|
||||
GogsBlob _$GogsBlobFromJson(Map<String, dynamic> json) {
|
||||
return GogsBlob()
|
||||
..type = json['type'] as String
|
||||
..name = json['name'] as String
|
||||
..path = json['path'] as String
|
||||
..size = json['size'] as int
|
||||
..downloadUrl = json['download_url'] as String
|
||||
..content = json['content'] as String;
|
||||
}
|
||||
GogsBlob _$GogsBlobFromJson(Map<String, dynamic> json) => GogsBlob(
|
||||
type: json['type'] as String,
|
||||
name: json['name'] as String,
|
||||
)
|
||||
..path = json['path'] as String?
|
||||
..size = json['size'] as int?
|
||||
..downloadUrl = json['download_url'] as String?
|
||||
..content = json['content'] as String?;
|
||||
|
||||
Map<String, dynamic> _$GogsBlobToJson(GogsBlob instance) => <String, dynamic>{
|
||||
'type': instance.type,
|
||||
|
@ -120,26 +113,23 @@ Map<String, dynamic> _$GogsBlobToJson(GogsBlob instance) => <String, dynamic>{
|
|||
'content': instance.content,
|
||||
};
|
||||
|
||||
GogsBranch _$GogsBranchFromJson(Map<String, dynamic> json) {
|
||||
return GogsBranch()..name = json['name'] as String;
|
||||
}
|
||||
GogsBranch _$GogsBranchFromJson(Map<String, dynamic> json) =>
|
||||
GogsBranch()..name = json['name'] as String?;
|
||||
|
||||
Map<String, dynamic> _$GogsBranchToJson(GogsBranch instance) =>
|
||||
<String, dynamic>{
|
||||
'name': instance.name,
|
||||
};
|
||||
|
||||
GogsCommit _$GogsCommitFromJson(Map<String, dynamic> json) {
|
||||
return GogsCommit()
|
||||
..author = json['author'] == null
|
||||
? null
|
||||
: GogsUser.fromJson(json['author'] as Map<String, dynamic>)
|
||||
..commit = json['commit'] == null
|
||||
? null
|
||||
: GogsCommitDetail.fromJson(json['commit'] as Map<String, dynamic>)
|
||||
..sha = json['sha'] as String
|
||||
..htmlUrl = json['html_url'] as String;
|
||||
}
|
||||
GogsCommit _$GogsCommitFromJson(Map<String, dynamic> json) => GogsCommit()
|
||||
..author = json['author'] == null
|
||||
? null
|
||||
: GogsUser.fromJson(json['author'] as Map<String, dynamic>)
|
||||
..commit = json['commit'] == null
|
||||
? null
|
||||
: GogsCommitDetail.fromJson(json['commit'] as Map<String, dynamic>)
|
||||
..sha = json['sha'] as String?
|
||||
..htmlUrl = json['html_url'] as String?;
|
||||
|
||||
Map<String, dynamic> _$GogsCommitToJson(GogsCommit instance) =>
|
||||
<String, dynamic>{
|
||||
|
@ -149,16 +139,16 @@ Map<String, dynamic> _$GogsCommitToJson(GogsCommit instance) =>
|
|||
'html_url': instance.htmlUrl,
|
||||
};
|
||||
|
||||
GogsCommitDetail _$GogsCommitDetailFromJson(Map<String, dynamic> json) {
|
||||
return GogsCommitDetail()
|
||||
..message = json['message'] as String
|
||||
..author = json['author'] == null
|
||||
? null
|
||||
: GogsCommitAuthor.fromJson(json['author'] as Map<String, dynamic>)
|
||||
..committer = json['committer'] == null
|
||||
? null
|
||||
: GogsCommitAuthor.fromJson(json['committer'] as Map<String, dynamic>);
|
||||
}
|
||||
GogsCommitDetail _$GogsCommitDetailFromJson(Map<String, dynamic> json) =>
|
||||
GogsCommitDetail()
|
||||
..message = json['message'] as String?
|
||||
..author = json['author'] == null
|
||||
? null
|
||||
: GogsCommitAuthor.fromJson(json['author'] as Map<String, dynamic>)
|
||||
..committer = json['committer'] == null
|
||||
? null
|
||||
: GogsCommitAuthor.fromJson(
|
||||
json['committer'] as Map<String, dynamic>);
|
||||
|
||||
Map<String, dynamic> _$GogsCommitDetailToJson(GogsCommitDetail instance) =>
|
||||
<String, dynamic>{
|
||||
|
@ -167,13 +157,12 @@ Map<String, dynamic> _$GogsCommitDetailToJson(GogsCommitDetail instance) =>
|
|||
'committer': instance.committer,
|
||||
};
|
||||
|
||||
GogsCommitAuthor _$GogsCommitAuthorFromJson(Map<String, dynamic> json) {
|
||||
return GogsCommitAuthor()
|
||||
..name = json['name'] as String
|
||||
..email = json['email'] as String
|
||||
..date =
|
||||
json['date'] == null ? null : DateTime.parse(json['date'] as String);
|
||||
}
|
||||
GogsCommitAuthor _$GogsCommitAuthorFromJson(Map<String, dynamic> json) =>
|
||||
GogsCommitAuthor()
|
||||
..name = json['name'] as String?
|
||||
..email = json['email'] as String?
|
||||
..date =
|
||||
json['date'] == null ? null : DateTime.parse(json['date'] as String);
|
||||
|
||||
Map<String, dynamic> _$GogsCommitAuthorToJson(GogsCommitAuthor instance) =>
|
||||
<String, dynamic>{
|
||||
|
@ -182,27 +171,24 @@ Map<String, dynamic> _$GogsCommitAuthorToJson(GogsCommitAuthor instance) =>
|
|||
'date': instance.date?.toIso8601String(),
|
||||
};
|
||||
|
||||
GogsIssue _$GogsIssueFromJson(Map<String, dynamic> json) {
|
||||
return GogsIssue()
|
||||
..number = json['number'] as int
|
||||
..state = json['state'] as String
|
||||
..title = json['title'] as String
|
||||
..body = json['body'] as String
|
||||
..user = json['user'] == null
|
||||
? null
|
||||
: GogsUser.fromJson(json['user'] as Map<String, dynamic>)
|
||||
..labels = (json['labels'] as List)
|
||||
?.map((e) =>
|
||||
e == null ? null : GogsLabel.fromJson(e as Map<String, dynamic>))
|
||||
?.toList()
|
||||
..createdAt = json['created_at'] == null
|
||||
? null
|
||||
: DateTime.parse(json['created_at'] as String)
|
||||
..updatedAt = json['updated_at'] == null
|
||||
? null
|
||||
: DateTime.parse(json['updated_at'] as String)
|
||||
..comments = json['comments'] as int;
|
||||
}
|
||||
GogsIssue _$GogsIssueFromJson(Map<String, dynamic> json) => GogsIssue()
|
||||
..number = json['number'] as int?
|
||||
..state = json['state'] as String?
|
||||
..title = json['title'] as String?
|
||||
..body = json['body'] as String?
|
||||
..user = json['user'] == null
|
||||
? null
|
||||
: GogsUser.fromJson(json['user'] as Map<String, dynamic>)
|
||||
..labels = (json['labels'] as List<dynamic>?)
|
||||
?.map((e) => GogsLabel.fromJson(e as Map<String, dynamic>))
|
||||
.toList()
|
||||
..createdAt = json['created_at'] == null
|
||||
? null
|
||||
: DateTime.parse(json['created_at'] as String)
|
||||
..updatedAt = json['updated_at'] == null
|
||||
? null
|
||||
: DateTime.parse(json['updated_at'] as String)
|
||||
..comments = json['comments'] as int?;
|
||||
|
||||
Map<String, dynamic> _$GogsIssueToJson(GogsIssue instance) => <String, dynamic>{
|
||||
'number': instance.number,
|
||||
|
@ -216,11 +202,9 @@ Map<String, dynamic> _$GogsIssueToJson(GogsIssue instance) => <String, dynamic>{
|
|||
'comments': instance.comments,
|
||||
};
|
||||
|
||||
GogsLabel _$GogsLabelFromJson(Map<String, dynamic> json) {
|
||||
return GogsLabel()
|
||||
..name = json['name'] as String
|
||||
..color = json['color'] as String;
|
||||
}
|
||||
GogsLabel _$GogsLabelFromJson(Map<String, dynamic> json) => GogsLabel()
|
||||
..name = json['name'] as String?
|
||||
..color = json['color'] as String?;
|
||||
|
||||
Map<String, dynamic> _$GogsLabelToJson(GogsLabel instance) => <String, dynamic>{
|
||||
'name': instance.name,
|
||||
|
|
|
@ -1,31 +1,25 @@
|
|||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/widgets.dart';
|
||||
import 'package:git_touch/models/github.dart';
|
||||
import 'package:git_touch/utils/utils.dart';
|
||||
import 'package:tuple/tuple.dart';
|
||||
|
||||
import '../utils/utils.dart';
|
||||
|
||||
class NotificationGroup {
|
||||
String fullName;
|
||||
NotificationGroup(this.fullName);
|
||||
String? fullName;
|
||||
List<GithubNotificationItem> items = [];
|
||||
|
||||
Tuple2<String, String> _repo;
|
||||
Tuple2<String, String>? _repo;
|
||||
String get owner {
|
||||
if (_repo == null) {
|
||||
_repo = parseRepositoryFullName(fullName);
|
||||
}
|
||||
return _repo.item1;
|
||||
_repo ??= parseRepositoryFullName(fullName!);
|
||||
return _repo!.item1;
|
||||
}
|
||||
|
||||
String get name {
|
||||
if (_repo == null) {
|
||||
_repo = parseRepositoryFullName(fullName);
|
||||
}
|
||||
return _repo.item2;
|
||||
_repo ??= parseRepositoryFullName(fullName!);
|
||||
return _repo!.item2;
|
||||
}
|
||||
|
||||
String get key => '_$hashCode';
|
||||
|
||||
NotificationGroup(this.fullName);
|
||||
}
|
||||
|
||||
class NotificationModel with ChangeNotifier {
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue