From 0df2a6bdc0019207e3510f3a5934ee979e403aa3 Mon Sep 17 00:00:00 2001 From: Aunali321 Date: Sun, 9 Oct 2022 23:01:10 +0530 Subject: [PATCH] feat: brotli support. --- lib/services/github_api.dart | 9 ++++++++- lib/services/revanced_api.dart | 5 +++++ pubspec.yaml | 1 + 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/lib/services/github_api.dart b/lib/services/github_api.dart index 1c7a1797..6c2bd74a 100644 --- a/lib/services/github_api.dart +++ b/lib/services/github_api.dart @@ -2,6 +2,7 @@ import 'dart:convert'; import 'dart:io'; import 'package:collection/collection.dart'; import 'package:dio/dio.dart'; +import 'package:dio_brotli_transformer/dio_brotli_transformer.dart'; import 'package:dio_http_cache_lts/dio_http_cache_lts.dart'; import 'package:flutter_cache_manager/flutter_cache_manager.dart'; import 'package:injectable/injectable.dart'; @@ -11,7 +12,12 @@ import 'package:revanced_manager/models/patch.dart'; @lazySingleton class GithubAPI { final Dio _dio = Dio( - BaseOptions(baseUrl: 'https://api.github.com'), + BaseOptions( + baseUrl: 'https://api.github.com', + headers: { + 'accept-encoding': 'br', + }, + ), )..httpClientAdapter = NativeAdapter(); final DioCacheManager _dioCacheManager = DioCacheManager(CacheConfig()); final Options _cacheOptions = buildCacheOptions( @@ -31,6 +37,7 @@ class GithubAPI { void initialize() { _dio.interceptors.add(_dioCacheManager.interceptor); + _dio.transformer = DioBrotliTransformer(transformer: DefaultTransformer()); } Future clearAllCache() async { diff --git a/lib/services/revanced_api.dart b/lib/services/revanced_api.dart index 28e78c1b..dab0cfc6 100644 --- a/lib/services/revanced_api.dart +++ b/lib/services/revanced_api.dart @@ -1,5 +1,6 @@ import 'dart:io'; import 'package:collection/collection.dart'; +import 'package:dio_brotli_transformer/dio_brotli_transformer.dart'; import 'package:native_dio_client/native_dio_client.dart'; import 'package:dio/dio.dart'; import 'package:dio_http_cache_lts/dio_http_cache_lts.dart'; @@ -20,9 +21,13 @@ class RevancedAPI { Future initialize(String apiUrl) async { _dio = Dio(BaseOptions( baseUrl: apiUrl, + headers: { + 'accept-encoding': 'br', + }, )) ..httpClientAdapter = NativeAdapter(); _dio.interceptors.add(_dioCacheManager.interceptor); + _dio.transformer = DioBrotliTransformer(transformer: DefaultTransformer()); } Future clearAllCache() async { diff --git a/pubspec.yaml b/pubspec.yaml index f41ed7a3..cba64f3b 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -20,6 +20,7 @@ dependencies: ref: revanced-manager device_info_plus: ^4.1.2 dio: ^4.0.6 + dio_brotli_transformer: ^1.0.1 dio_http_cache_lts: ^0.4.1 dynamic_color: ^1.5.4 dynamic_themes: ^1.1.0