From f9fa142702162c17baee083effa876eb5519ed6e Mon Sep 17 00:00:00 2001 From: Rongjian Zhang Date: Sun, 2 Feb 2020 23:02:58 +0800 Subject: [PATCH] fix(bb): download url --- lib/models/bitbucket.dart | 1 + lib/models/bitbucket.g.dart | 4 +++- lib/screens/bb_object.dart | 5 +++-- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/lib/models/bitbucket.dart b/lib/models/bitbucket.dart index 06d887d..30abf0f 100644 --- a/lib/models/bitbucket.dart +++ b/lib/models/bitbucket.dart @@ -70,6 +70,7 @@ class BbTree { String type; String path; int size; + Map links; BbTree(); factory BbTree.fromJson(Map json) => _$BbTreeFromJson(json); } diff --git a/lib/models/bitbucket.g.dart b/lib/models/bitbucket.g.dart index ee6d662..3db960f 100644 --- a/lib/models/bitbucket.g.dart +++ b/lib/models/bitbucket.g.dart @@ -122,11 +122,13 @@ BbTree _$BbTreeFromJson(Map json) { return BbTree() ..type = json['type'] as String ..path = json['path'] as String - ..size = json['size'] as int; + ..size = json['size'] as int + ..links = json['links'] as Map; } Map _$BbTreeToJson(BbTree instance) => { 'type': instance.type, 'path': instance.path, 'size': instance.size, + 'links': instance.links, }; diff --git a/lib/screens/bb_object.dart b/lib/screens/bb_object.dart index 24bcd6a..8363e5f 100644 --- a/lib/screens/bb_object.dart +++ b/lib/screens/bb_object.dart @@ -21,10 +21,11 @@ class BbObjectScreen extends StatelessWidget { @override Widget build(BuildContext context) { + final auth = Provider.of(context); return RefreshStatefulScaffold( title: AppBarTitle(path ?? 'Files'), fetchData: () async { - final res = await Provider.of(context) + final res = await auth .fetchBb('/repositories/$owner/$name/src/$ref/${path ?? ''}'); if (res.headers[HttpHeaders.contentTypeHeader] == 'text/plain') { return res.body; @@ -58,7 +59,7 @@ class BbObjectScreen extends StatelessWidget { size: v.type == 'commit_file' ? v.size : null, url: '/bitbucket/$owner/$name/src/$ref?path=${v.path.urlencode}', - downloadUrl: null, + downloadUrl: v.links['self']['href'] as String, ), ]); } else {