Make it build again #38
25
.drone.yml
25
.drone.yml
|
@ -2,16 +2,27 @@ kind: pipeline
|
||||||
name: testing
|
name: testing
|
||||||
|
|
||||||
workspace:
|
workspace:
|
||||||
base: /app
|
base: /home/cirrus/app
|
||||||
|
|
||||||
clone:
|
clone:
|
||||||
depth: 50
|
depth: 50
|
||||||
|
|
||||||
|
# Only run on prs or pushes to master
|
||||||
|
trigger:
|
||||||
|
branch:
|
||||||
|
include:
|
||||||
|
- master
|
||||||
|
event:
|
||||||
|
include:
|
||||||
|
- push
|
||||||
|
- pull_request
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: build
|
- name: build
|
||||||
image: vikunja/flutter-build
|
image: cirrusci/flutter:stable
|
||||||
pull: true
|
pull: true
|
||||||
commands:
|
commands:
|
||||||
|
- sudo chown cirrus . -R # The clone step clones everything as root, this is our "fix" until we find a better solution
|
||||||
- flutter packages get
|
- flutter packages get
|
||||||
- make format-check
|
- make format-check
|
||||||
- make build-debug
|
- make build-debug
|
||||||
|
@ -37,7 +48,7 @@ trigger:
|
||||||
- push
|
- push
|
||||||
|
|
||||||
workspace:
|
workspace:
|
||||||
base: /app
|
base: /home/cirrus/app
|
||||||
|
|
||||||
clone:
|
clone:
|
||||||
depth: 50
|
depth: 50
|
||||||
|
@ -45,9 +56,10 @@ clone:
|
||||||
steps:
|
steps:
|
||||||
# Because drone separates the pipelines, we have to add the build step to this pipeline. This is double code, we should change it at some point if possible.
|
# Because drone separates the pipelines, we have to add the build step to this pipeline. This is double code, we should change it at some point if possible.
|
||||||
- name: build
|
- name: build
|
||||||
image: vikunja/flutter-build
|
image: cirrusci/flutter:stable
|
||||||
pull: true
|
pull: true
|
||||||
commands:
|
commands:
|
||||||
|
- sudo chown cirrus . -R # The clone step clones everything as root, this is our "fix" until we find a better solution
|
||||||
- flutter packages get
|
- flutter packages get
|
||||||
- make build-all
|
- make build-all
|
||||||
- mkdir apks
|
- mkdir apks
|
||||||
|
@ -81,7 +93,7 @@ trigger:
|
||||||
- tag
|
- tag
|
||||||
|
|
||||||
workspace:
|
workspace:
|
||||||
base: /app
|
base: /home/cirrus/app
|
||||||
|
|
||||||
clone:
|
clone:
|
||||||
depth: 50
|
depth: 50
|
||||||
|
@ -89,9 +101,10 @@ clone:
|
||||||
steps:
|
steps:
|
||||||
# Because drone separates the pipelines, we have to add the build step to this pipeline. This is double code, we should change it at some point if possible.
|
# Because drone separates the pipelines, we have to add the build step to this pipeline. This is double code, we should change it at some point if possible.
|
||||||
- name: build
|
- name: build
|
||||||
image: vikunja/flutter-build
|
image: cirrusci/flutter:stable
|
||||||
pull: true
|
pull: true
|
||||||
commands:
|
commands:
|
||||||
|
- sudo chown cirrus . -R # The clone step clones everything as root, this is our "fix" until we find a better solution
|
||||||
- flutter packages get
|
- flutter packages get
|
||||||
- make build-all
|
- make build-all
|
||||||
- mkdir apks
|
- mkdir apks
|
||||||
|
|
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -28,6 +28,7 @@
|
||||||
.pub/
|
.pub/
|
||||||
build/
|
build/
|
||||||
!pubspec.lock
|
!pubspec.lock
|
||||||
|
.flutter-plugins-dependencies
|
||||||
|
|
||||||
# Android related
|
# Android related
|
||||||
**/android/**/gradle-wrapper.jar
|
**/android/**/gradle-wrapper.jar
|
||||||
|
|
|
@ -26,7 +26,7 @@ apply plugin: 'kotlin-android'
|
||||||
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
|
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
|
||||||
|
|
||||||
android {
|
android {
|
||||||
compileSdkVersion 27
|
compileSdkVersion 28
|
||||||
|
|
||||||
sourceSets {
|
sourceSets {
|
||||||
main.java.srcDirs += 'src/main/kotlin'
|
main.java.srcDirs += 'src/main/kotlin'
|
||||||
|
@ -37,14 +37,12 @@ android {
|
||||||
}
|
}
|
||||||
|
|
||||||
defaultConfig {
|
defaultConfig {
|
||||||
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
|
|
||||||
applicationId "io.vikunja.app"
|
applicationId "io.vikunja.app"
|
||||||
minSdkVersion 18
|
minSdkVersion 19
|
||||||
targetSdkVersion 27
|
targetSdkVersion 28
|
||||||
versionCode flutterVersionCode.toInteger()
|
versionCode flutterVersionCode.toInteger()
|
||||||
versionName flutterVersionName
|
versionName flutterVersionName
|
||||||
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
|
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
flavorDimensions "deploy"
|
flavorDimensions "deploy"
|
||||||
|
|
|
@ -21,8 +21,6 @@ allprojects {
|
||||||
rootProject.buildDir = '../build'
|
rootProject.buildDir = '../build'
|
||||||
subprojects {
|
subprojects {
|
||||||
project.buildDir = "${rootProject.buildDir}/${project.name}"
|
project.buildDir = "${rootProject.buildDir}/${project.name}"
|
||||||
}
|
|
||||||
subprojects {
|
|
||||||
project.evaluationDependsOn(':app')
|
project.evaluationDependsOn(':app')
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1 +1,4 @@
|
||||||
org.gradle.jvmargs=-Xmx1536M
|
org.gradle.jvmargs=-Xmx1536M
|
||||||
|
android.enableR8=true
|
||||||
|
android.useAndroidX=true
|
||||||
|
android.enableJetifier=true
|
||||||
|
|
1
android/settings_aar.gradle
Normal file
1
android/settings_aar.gradle
Normal file
|
@ -0,0 +1 @@
|
||||||
|
include ':app'
|
10
ios/Flutter/flutter_export_environment.sh
Executable file
10
ios/Flutter/flutter_export_environment.sh
Executable file
|
@ -0,0 +1,10 @@
|
||||||
|
#!/bin/sh
|
||||||
|
# This is a generated file; do not edit or check into version control.
|
||||||
|
export "FLUTTER_ROOT=/nix/store/nyvp7jf7sfxsbc6jsm1y4fc18631ap26-flutter-stable-1.12.13+hotfix.5-unwrapped"
|
||||||
|
export "FLUTTER_APPLICATION_PATH=/home/konrad/www/vikunja/app2"
|
||||||
|
export "FLUTTER_TARGET=lib/main.dart"
|
||||||
|
export "FLUTTER_BUILD_DIR=build"
|
||||||
|
export "SYMROOT=${SOURCE_ROOT}/../build/ios"
|
||||||
|
export "FLUTTER_FRAMEWORK_DIR=/home/konrad/.cache/flutter/artifacts/engine/ios"
|
||||||
|
export "FLUTTER_BUILD_NAME=0.1.0"
|
||||||
|
export "FLUTTER_BUILD_NUMBER=0.1.0"
|
|
@ -1,9 +0,0 @@
|
||||||
import 'package:flutter/material.dart';
|
|
||||||
|
|
||||||
import 'package:crypto/crypto.dart';
|
|
||||||
|
|
||||||
class GravatarImageProvider extends NetworkImage {
|
|
||||||
GravatarImageProvider(String email)
|
|
||||||
: super("https://secure.gravatar.com/avatar/" +
|
|
||||||
md5.convert(email.trim().toLowerCase().codeUnits).toString());
|
|
||||||
}
|
|
|
@ -120,9 +120,9 @@ class VikunjaGlobalState extends State<VikunjaGlobal> {
|
||||||
});
|
});
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
loadedCurrentUser = User(int.tryParse(currentUser), "", "");
|
loadedCurrentUser = User(int.tryParse(currentUser), "", "", "");
|
||||||
} catch (otherExceptions) {
|
} catch (otherExceptions) {
|
||||||
loadedCurrentUser = User(int.tryParse(currentUser), "", "");
|
loadedCurrentUser = User(int.tryParse(currentUser), "", "", "");
|
||||||
}
|
}
|
||||||
setState(() {
|
setState(() {
|
||||||
_client = client;
|
_client = client;
|
||||||
|
|
|
@ -1,14 +1,19 @@
|
||||||
class User {
|
class User {
|
||||||
final int id;
|
final int id;
|
||||||
final String email, username;
|
final String email, username, avatarHash;
|
||||||
|
|
||||||
User(this.id, this.email, this.username);
|
User(this.id, this.email, this.username, this.avatarHash);
|
||||||
User.fromJson(Map<String, dynamic> json)
|
User.fromJson(Map<String, dynamic> json)
|
||||||
: id = json['id'],
|
: id = json['id'],
|
||||||
email = json['email'],
|
email = json.containsKey('email') ? json['email'] : '',
|
||||||
username = json['username'];
|
username = json['username'],
|
||||||
|
avatarHash = json['avatarUrl'];
|
||||||
|
|
||||||
toJSON() => {"id": this.id, "email": this.email, "username": this.username};
|
toJSON() => {"id": this.id, "email": this.email, "username": this.username};
|
||||||
|
|
||||||
|
String avatarUrl() {
|
||||||
|
return "https://secure.gravatar.com/avatar/" + this.avatarHash;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class UserTokenPair {
|
class UserTokenPair {
|
||||||
|
|
|
@ -4,7 +4,6 @@ import 'package:flutter/material.dart';
|
||||||
import 'package:after_layout/after_layout.dart';
|
import 'package:after_layout/after_layout.dart';
|
||||||
|
|
||||||
import 'package:vikunja_app/components/AddDialog.dart';
|
import 'package:vikunja_app/components/AddDialog.dart';
|
||||||
import 'package:vikunja_app/components/GravatarImage.dart';
|
|
||||||
import 'package:vikunja_app/pages/namespace/namespace.dart';
|
import 'package:vikunja_app/pages/namespace/namespace.dart';
|
||||||
import 'package:vikunja_app/pages/namespace/namespace_edit.dart';
|
import 'package:vikunja_app/pages/namespace/namespace_edit.dart';
|
||||||
import 'package:vikunja_app/pages/placeholder.dart';
|
import 'package:vikunja_app/pages/placeholder.dart';
|
||||||
|
@ -90,8 +89,10 @@ class HomePageState extends State<HomePage> with AfterLayoutMixin<HomePage> {
|
||||||
drawer: new Drawer(
|
drawer: new Drawer(
|
||||||
child: new Column(children: <Widget>[
|
child: new Column(children: <Widget>[
|
||||||
new UserAccountsDrawerHeader(
|
new UserAccountsDrawerHeader(
|
||||||
accountEmail: currentUser == null ? null : Text(currentUser.email),
|
accountEmail:
|
||||||
accountName: currentUser == null ? null : Text(currentUser.username),
|
currentUser?.email == null ? null : Text(currentUser.email),
|
||||||
|
accountName:
|
||||||
|
currentUser?.username == null ? null : Text(currentUser.username),
|
||||||
onDetailsPressed: () {
|
onDetailsPressed: () {
|
||||||
setState(() {
|
setState(() {
|
||||||
_showUserDetails = !_showUserDetails;
|
_showUserDetails = !_showUserDetails;
|
||||||
|
@ -100,7 +101,8 @@ class HomePageState extends State<HomePage> with AfterLayoutMixin<HomePage> {
|
||||||
currentAccountPicture: currentUser == null
|
currentAccountPicture: currentUser == null
|
||||||
? null
|
? null
|
||||||
: CircleAvatar(
|
: CircleAvatar(
|
||||||
backgroundImage: GravatarImageProvider(currentUser.username)),
|
backgroundImage: NetworkImage(currentUser.avatarUrl()),
|
||||||
|
),
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
image: DecorationImage(
|
image: DecorationImage(
|
||||||
image: AssetImage("assets/graphics/hypnotize.png"),
|
image: AssetImage("assets/graphics/hypnotize.png"),
|
||||||
|
|
|
@ -77,8 +77,7 @@ class _LoginPageState extends State<LoginPage> {
|
||||||
builder: (context) => FancyButton(
|
builder: (context) => FancyButton(
|
||||||
onPressed: !_loading
|
onPressed: !_loading
|
||||||
? () {
|
? () {
|
||||||
if (_formKey.currentState
|
if (_formKey.currentState.validate()) {
|
||||||
.validate()) {
|
|
||||||
Form.of(context).save();
|
Form.of(context).save();
|
||||||
_loginUser(context);
|
_loginUser(context);
|
||||||
}
|
}
|
||||||
|
@ -93,8 +92,7 @@ class _LoginPageState extends State<LoginPage> {
|
||||||
onPressed: () => Navigator.push(
|
onPressed: () => Navigator.push(
|
||||||
context,
|
context,
|
||||||
MaterialPageRoute(
|
MaterialPageRoute(
|
||||||
builder: (context) =>
|
builder: (context) => RegisterPage())),
|
||||||
RegisterPage())),
|
|
||||||
child: VikunjaButtonText('Register'),
|
child: VikunjaButtonText('Register'),
|
||||||
)),
|
)),
|
||||||
],
|
],
|
||||||
|
|
|
@ -105,8 +105,7 @@ class _RegisterPageState extends State<RegisterPage> {
|
||||||
builder: (context) => FancyButton(
|
builder: (context) => FancyButton(
|
||||||
onPressed: !_loading
|
onPressed: !_loading
|
||||||
? () {
|
? () {
|
||||||
if (_formKey.currentState
|
if (_formKey.currentState.validate()) {
|
||||||
.validate()) {
|
|
||||||
Form.of(context).save();
|
Form.of(context).save();
|
||||||
_registerUser(context);
|
_registerUser(context);
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -7,7 +7,7 @@ import 'package:vikunja_app/models/user.dart';
|
||||||
import 'package:vikunja_app/service/services.dart';
|
import 'package:vikunja_app/service/services.dart';
|
||||||
|
|
||||||
// Data for mocked services
|
// Data for mocked services
|
||||||
var _users = {1: User(1, 'test@testuser.org', 'test1')};
|
var _users = {1: User(1, 'test@testuser.org', 'test1', '')};
|
||||||
|
|
||||||
var _namespaces = {
|
var _namespaces = {
|
||||||
1: Namespace(
|
1: Namespace(
|
||||||
|
|
48
pubspec.lock
48
pubspec.lock
|
@ -1,5 +1,5 @@
|
||||||
# Generated by pub
|
# Generated by pub
|
||||||
# See https://www.dartlang.org/tools/pub/glossary#lockfile
|
# See https://dart.dev/tools/pub/glossary#lockfile
|
||||||
packages:
|
packages:
|
||||||
after_layout:
|
after_layout:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
|
@ -7,35 +7,35 @@ packages:
|
||||||
name: after_layout
|
name: after_layout
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.0.7"
|
version: "1.0.7+2"
|
||||||
archive:
|
archive:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: archive
|
name: archive
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.0.8"
|
version: "2.0.11"
|
||||||
args:
|
args:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: args
|
name: args
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.5.1"
|
version: "1.5.2"
|
||||||
async:
|
async:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: async
|
name: async
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.0.8"
|
version: "2.4.0"
|
||||||
boolean_selector:
|
boolean_selector:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: boolean_selector
|
name: boolean_selector
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.0.4"
|
version: "1.0.5"
|
||||||
charcode:
|
charcode:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
@ -63,14 +63,14 @@ packages:
|
||||||
name: crypto
|
name: crypto
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.0.6"
|
version: "2.1.3"
|
||||||
cupertino_icons:
|
cupertino_icons:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
name: cupertino_icons
|
name: cupertino_icons
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.1.2"
|
version: "0.1.3"
|
||||||
dart_config:
|
dart_config:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
@ -98,7 +98,7 @@ packages:
|
||||||
name: flutter_secure_storage
|
name: flutter_secure_storage
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "3.1.1"
|
version: "3.3.1+1"
|
||||||
flutter_test:
|
flutter_test:
|
||||||
dependency: "direct dev"
|
dependency: "direct dev"
|
||||||
description: flutter
|
description: flutter
|
||||||
|
@ -110,7 +110,7 @@ packages:
|
||||||
name: http
|
name: http
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.12.0"
|
version: "0.12.0+3"
|
||||||
http_parser:
|
http_parser:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
@ -124,49 +124,49 @@ packages:
|
||||||
name: image
|
name: image
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.0.7"
|
version: "2.1.4"
|
||||||
matcher:
|
matcher:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: matcher
|
name: matcher
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.12.3+1"
|
version: "0.12.6"
|
||||||
meta:
|
meta:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: meta
|
name: meta
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.1.6"
|
version: "1.1.8"
|
||||||
path:
|
path:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: path
|
name: path
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.6.2"
|
version: "1.6.4"
|
||||||
pedantic:
|
pedantic:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: pedantic
|
name: pedantic
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.4.0"
|
version: "1.8.0+1"
|
||||||
petitparser:
|
petitparser:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: petitparser
|
name: petitparser
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.1.1"
|
version: "2.4.0"
|
||||||
quiver:
|
quiver:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: quiver
|
name: quiver
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.0.1"
|
version: "2.0.5"
|
||||||
sky_engine:
|
sky_engine:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description: flutter
|
description: flutter
|
||||||
|
@ -178,7 +178,7 @@ packages:
|
||||||
name: source_span
|
name: source_span
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.5.4"
|
version: "1.5.5"
|
||||||
stack_trace:
|
stack_trace:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
@ -192,14 +192,14 @@ packages:
|
||||||
name: stream_channel
|
name: stream_channel
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.6.8"
|
version: "2.0.0"
|
||||||
string_scanner:
|
string_scanner:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: string_scanner
|
name: string_scanner
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.0.4"
|
version: "1.0.5"
|
||||||
term_glyph:
|
term_glyph:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
@ -213,7 +213,7 @@ packages:
|
||||||
name: test_api
|
name: test_api
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.2.2"
|
version: "0.2.11"
|
||||||
typed_data:
|
typed_data:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
@ -234,13 +234,13 @@ packages:
|
||||||
name: xml
|
name: xml
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "3.3.1"
|
version: "3.5.0"
|
||||||
yaml:
|
yaml:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: yaml
|
name: yaml
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.1.15"
|
version: "2.2.0"
|
||||||
sdks:
|
sdks:
|
||||||
dart: ">=2.1.0 <3.0.0"
|
dart: ">=2.4.0 <3.0.0"
|
||||||
|
|
11
pubspec.yaml
11
pubspec.yaml
|
@ -4,17 +4,14 @@ description: Vikunja as Flutter cross platform app
|
||||||
version: 0.1.0
|
version: 0.1.0
|
||||||
|
|
||||||
environment:
|
environment:
|
||||||
sdk: ">=2.0.0-dev.63.0 <3.0.0"
|
sdk: ">=2.1.0 <3.0.0"
|
||||||
|
|
||||||
dependencies:
|
dependencies:
|
||||||
flutter:
|
flutter:
|
||||||
sdk: flutter
|
sdk: flutter
|
||||||
|
cupertino_icons: ^0.1.3
|
||||||
# The following adds the Cupertino Icons font to your application.
|
flutter_secure_storage: 3.3.1+1
|
||||||
# Use with the CupertinoIcons class for iOS style icons.
|
http: 0.12.0+3
|
||||||
cupertino_icons: ^0.1.2
|
|
||||||
flutter_secure_storage: 3.1.1
|
|
||||||
http: 0.12.0
|
|
||||||
after_layout: ^1.0.7
|
after_layout: ^1.0.7
|
||||||
|
|
||||||
dev_dependencies:
|
dev_dependencies:
|
||||||
|
|
Reference in New Issue
Block a user