Add basic flavors
This commit is contained in:
@@ -1,3 +1,3 @@
|
||||
export 'update_failure.dart';
|
||||
export 'update_repository.dart';
|
||||
export 'version_info.dart';
|
||||
export 'app_failure.dart';
|
||||
export 'app_info.dart';
|
||||
export 'app_repository.dart';
|
||||
|
||||
@@ -2,13 +2,13 @@ import 'package:freezed_annotation/freezed_annotation.dart';
|
||||
import 'package:hiddify/core/prefs/prefs.dart';
|
||||
import 'package:hiddify/domain/failures.dart';
|
||||
|
||||
part 'update_failure.freezed.dart';
|
||||
part 'app_failure.freezed.dart';
|
||||
|
||||
@freezed
|
||||
sealed class UpdateFailure with _$UpdateFailure, Failure {
|
||||
const UpdateFailure._();
|
||||
sealed class AppFailure with _$AppFailure, Failure {
|
||||
const AppFailure._();
|
||||
|
||||
const factory UpdateFailure.unexpected([
|
||||
const factory AppFailure.unexpected([
|
||||
Object? error,
|
||||
StackTrace? stackTrace,
|
||||
]) = UpdateUnexpectedFailure;
|
||||
@@ -1,24 +1,27 @@
|
||||
import 'package:dartx/dartx.dart';
|
||||
import 'package:freezed_annotation/freezed_annotation.dart';
|
||||
import 'package:hiddify/domain/environment.dart';
|
||||
|
||||
part 'version_info.freezed.dart';
|
||||
part 'version_info.g.dart';
|
||||
part 'app_info.freezed.dart';
|
||||
part 'app_info.g.dart';
|
||||
|
||||
@freezed
|
||||
class InstalledVersionInfo with _$InstalledVersionInfo {
|
||||
const InstalledVersionInfo._();
|
||||
class AppInfo with _$AppInfo {
|
||||
const AppInfo._();
|
||||
|
||||
const factory InstalledVersionInfo({
|
||||
const factory AppInfo({
|
||||
required String name,
|
||||
required String version,
|
||||
required String buildNumber,
|
||||
String? installerMedia,
|
||||
}) = _InstalledVersionInfo;
|
||||
required String operatingSystem,
|
||||
required Environment environment,
|
||||
}) = _AppInfo;
|
||||
|
||||
String get fullVersion =>
|
||||
buildNumber.isBlank ? version : "$version+$buildNumber";
|
||||
String get userAgent => "HiddifyNext/$version ($operatingSystem)";
|
||||
|
||||
factory InstalledVersionInfo.fromJson(Map<String, dynamic> json) =>
|
||||
_$InstalledVersionInfoFromJson(json);
|
||||
factory AppInfo.fromJson(Map<String, dynamic> json) =>
|
||||
_$AppInfoFromJson(json);
|
||||
}
|
||||
|
||||
// TODO ignore drafts
|
||||
9
lib/domain/app/app_repository.dart
Normal file
9
lib/domain/app/app_repository.dart
Normal file
@@ -0,0 +1,9 @@
|
||||
import 'package:fpdart/fpdart.dart';
|
||||
import 'package:hiddify/domain/app/app_failure.dart';
|
||||
import 'package:hiddify/domain/app/app_info.dart';
|
||||
|
||||
abstract interface class AppRepository {
|
||||
TaskEither<AppFailure, RemoteVersionInfo> getLatestVersion({
|
||||
bool includePreReleases = false,
|
||||
});
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
import 'package:fpdart/fpdart.dart';
|
||||
import 'package:hiddify/domain/app/update_failure.dart';
|
||||
import 'package:hiddify/domain/app/version_info.dart';
|
||||
|
||||
abstract interface class UpdateRepository {
|
||||
TaskEither<UpdateFailure, InstalledVersionInfo> getCurrentVersion();
|
||||
|
||||
TaskEither<UpdateFailure, RemoteVersionInfo> getLatestVersion({
|
||||
bool includePreReleases = false,
|
||||
});
|
||||
}
|
||||
4
lib/domain/environment.dart
Normal file
4
lib/domain/environment.dart
Normal file
@@ -0,0 +1,4 @@
|
||||
enum Environment {
|
||||
prod,
|
||||
dev;
|
||||
}
|
||||
Reference in New Issue
Block a user