diff --git a/assets/themes/juniper/theme.yml b/assets/themes/juniper/theme.yml index db950c97..19d7c91c 100644 --- a/assets/themes/juniper/theme.yml +++ b/assets/themes/juniper/theme.yml @@ -12,19 +12,19 @@ themes: font: 0xFFFFFF settings: 0xFFFDFF accent: 0x9E6A56 - accentAlt: 0x845A48 + accentAlt: 0x9E6A56 theme: - backgroundMainColor: background # darkGreyPurple - backgroundPaneColor: header # darkGreyPurple - topbarColor: header # darkGreyPurple - mainTextColor: font # whiteishPurple - defaultButtonColor: accent # hotPink - textfieldHintColor: mainTextColor # TODO pick - toolbarIconColor: settings # whiteishPurple - messageFromMeBackgroundColor: userBubble # mauvePurple - messageFromMeTextColor: font # whiteishPurple - messageFromOtherBackgroundColor: peerBubble # deepPurple - messageFromOtherTextColor: font # whiteishPurple + backgroundMainColor: background + backgroundPaneColor: header + topbarColor: header + mainTextColor: font + defaultButtonColor: accent + textfieldHintColor: mainTextColor + toolbarIconColor: settings + messageFromMeBackgroundColor: userBubble + messageFromMeTextColor: font + messageFromOtherBackgroundColor: peerBubble + messageFromOtherTextColor: font textfieldBackgroundColor: peerBubble textfieldBorderColor: userBubble backgroundHilightElementColor: accent @@ -45,3 +45,4 @@ themes: portraitProfileBadgeColor: accent portraitProfileBadgeTextColor: mainTextColor dropShadowColor: accentAlt + chatReactionIconColor: accentAlt \ No newline at end of file diff --git a/lib/models/filedownloadprogress.dart b/lib/models/filedownloadprogress.dart index 52542206..6b0a1935 100644 --- a/lib/models/filedownloadprogress.dart +++ b/lib/models/filedownloadprogress.dart @@ -3,12 +3,22 @@ class FileDownloadProgress { int chunksTotal = 1; bool complete = false; bool gotManifest = false; - bool interrupted = false; + bool _interrupted = false; + + // we keep track of both an explicit interrupt flag (for when a request fails or is explicitly cancelled) + set interrupted(isInterrupted) { + this._interrupted = isInterrupted; + } + + // but we have a fuzzy get which depends on lastUpdate, if the file isn't complete, but the last update was more + // that 30 seconds ago, we consider this download as failed. + get interrupted => _interrupted || (DateTime.now().difference(lastUpdate).abs().inSeconds > 30 && !complete); + String? downloadedTo; DateTime? timeStart; DateTime? timeEnd; DateTime? requested; - DateTime lastUpdate = DateTime.now(); + DateTime lastUpdate = DateTime.fromMillisecondsSinceEpoch(0); FileDownloadProgress(this.chunksTotal, this.timeStart); diff --git a/lib/models/profile.dart b/lib/models/profile.dart index a1e62ac3..746bcad4 100644 --- a/lib/models/profile.dart +++ b/lib/models/profile.dart @@ -383,19 +383,6 @@ class ProfileInfoState extends ChangeNotifier { if (this._downloads[fileKey]!.interrupted) { return true; } - - if (this._downloads[fileKey]!.requested != null) { - if (DateTime.now().difference(this._downloads[fileKey]!.requested!) > Duration(minutes: 1)) { - this._downloads[fileKey]!.requested = null; - this._downloads[fileKey]!.interrupted = true; - return true; - } - if (DateTime.now().difference(this._downloads[fileKey]!.lastUpdate) > Duration(minutes: 1)) { - this._downloads[fileKey]!.requested = null; - this._downloads[fileKey]!.interrupted = true; - return true; - } - } } return false; } diff --git a/lib/themes/yamltheme.dart b/lib/themes/yamltheme.dart index 7af7dc9e..3171f9ca 100644 --- a/lib/themes/yamltheme.dart +++ b/lib/themes/yamltheme.dart @@ -139,6 +139,7 @@ class YmlTheme extends OpaqueThemeType { get chatImage => getImage("chatImage") ?? fallbackTheme.chatImage; + ImageProvider loadImage(String key) { File f = File(key); if (f.existsSync()) { @@ -147,5 +148,4 @@ class YmlTheme extends OpaqueThemeType { return AssetImage(key); } } - }