feat: remove check for updates in market releases
This commit is contained in:
4
Makefile
4
Makefile
@@ -33,11 +33,11 @@ translate:
|
|||||||
|
|
||||||
android-release: android-apk-release
|
android-release: android-apk-release
|
||||||
|
|
||||||
android-apk-release:
|
android-apk-release:
|
||||||
flutter build apk --target-platform android-arm,android-arm64,android-x64 --split-per-abi --target $(TARGET)
|
flutter build apk --target-platform android-arm,android-arm64,android-x64 --split-per-abi --target $(TARGET)
|
||||||
|
|
||||||
android-aab-release:
|
android-aab-release:
|
||||||
flutter build appbundle --target $(TARGET)
|
flutter build appbundle --target $(TARGET) --dart-define release=google-play
|
||||||
|
|
||||||
windows-release:
|
windows-release:
|
||||||
flutter_distributor package --platform windows --targets exe --skip-clean --build-target $(TARGET)
|
flutter_distributor package --platform windows --targets exe --skip-clean --build-target $(TARGET)
|
||||||
|
|||||||
@@ -22,20 +22,25 @@ class AppRepositoryImpl
|
|||||||
name: packageInfo.appName,
|
name: packageInfo.appName,
|
||||||
version: packageInfo.version,
|
version: packageInfo.version,
|
||||||
buildNumber: packageInfo.buildNumber,
|
buildNumber: packageInfo.buildNumber,
|
||||||
|
release: Release.read(),
|
||||||
installerMedia: packageInfo.installerStore,
|
installerMedia: packageInfo.installerStore,
|
||||||
operatingSystem: Platform.operatingSystem,
|
operatingSystem: Platform.operatingSystem,
|
||||||
environment: environment,
|
environment: environment,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TODO add market-specific update checking
|
||||||
@override
|
@override
|
||||||
TaskEither<AppFailure, RemoteVersionInfo> getLatestVersion({
|
TaskEither<AppFailure, RemoteVersionInfo> getLatestVersion({
|
||||||
bool includePreReleases = false,
|
bool includePreReleases = false,
|
||||||
|
Release release = Release.general,
|
||||||
}) {
|
}) {
|
||||||
return exceptionHandler(
|
return exceptionHandler(
|
||||||
() async {
|
() async {
|
||||||
|
if (!release.allowCustomUpdateChecker) {
|
||||||
|
throw Exception("custom update checkers are not supported");
|
||||||
|
}
|
||||||
final response = await dio.get<List>(Constants.githubReleasesApiUrl);
|
final response = await dio.get<List>(Constants.githubReleasesApiUrl);
|
||||||
|
|
||||||
if (response.statusCode != 200 || response.data == null) {
|
if (response.statusCode != 200 || response.data == null) {
|
||||||
loggy.warning("failed to fetch latest version info");
|
loggy.warning("failed to fetch latest version info");
|
||||||
return left(const AppFailure.unexpected());
|
return left(const AppFailure.unexpected());
|
||||||
|
|||||||
@@ -13,6 +13,7 @@ class AppInfo with _$AppInfo {
|
|||||||
required String name,
|
required String name,
|
||||||
required String version,
|
required String version,
|
||||||
required String buildNumber,
|
required String buildNumber,
|
||||||
|
required Release release,
|
||||||
String? installerMedia,
|
String? installerMedia,
|
||||||
required String operatingSystem,
|
required String operatingSystem,
|
||||||
required Environment environment,
|
required Environment environment,
|
||||||
|
|||||||
@@ -1,4 +1,23 @@
|
|||||||
|
import 'package:dartx/dartx.dart';
|
||||||
|
|
||||||
enum Environment {
|
enum Environment {
|
||||||
prod,
|
prod,
|
||||||
dev;
|
dev;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
enum Release {
|
||||||
|
general("general"),
|
||||||
|
googlePlay("google-play");
|
||||||
|
|
||||||
|
const Release(this.key);
|
||||||
|
|
||||||
|
final String key;
|
||||||
|
|
||||||
|
bool get allowCustomUpdateChecker => this == general;
|
||||||
|
|
||||||
|
static Release read() =>
|
||||||
|
Release.values.firstOrNullWhere(
|
||||||
|
(e) => e.key == const String.fromEnvironment("release"),
|
||||||
|
) ??
|
||||||
|
Release.general;
|
||||||
|
}
|
||||||
|
|||||||
@@ -88,19 +88,20 @@ class AboutPage extends HookConsumerWidget {
|
|||||||
);
|
);
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
ListTile(
|
if (appInfo.release.allowCustomUpdateChecker)
|
||||||
title: Text(t.about.checkForUpdate),
|
ListTile(
|
||||||
trailing: appUpdate.isLoading
|
title: Text(t.about.checkForUpdate),
|
||||||
? const SizedBox(
|
trailing: appUpdate.isLoading
|
||||||
width: 24,
|
? const SizedBox(
|
||||||
height: 24,
|
width: 24,
|
||||||
child: CircularProgressIndicator(),
|
height: 24,
|
||||||
)
|
child: CircularProgressIndicator(),
|
||||||
: const Icon(Icons.update),
|
)
|
||||||
onTap: () {
|
: const Icon(Icons.update),
|
||||||
ref.invalidate(appUpdateNotifierProvider);
|
onTap: () {
|
||||||
},
|
ref.invalidate(appUpdateNotifierProvider);
|
||||||
),
|
},
|
||||||
|
),
|
||||||
ListTile(
|
ListTile(
|
||||||
title: Text(t.settings.general.openWorkingDir),
|
title: Text(t.settings.general.openWorkingDir),
|
||||||
trailing: const Icon(Icons.arrow_outward_outlined),
|
trailing: const Icon(Icons.arrow_outward_outlined),
|
||||||
|
|||||||
@@ -11,7 +11,15 @@ class AppUpdateNotifier extends _$AppUpdateNotifier with AppLogger {
|
|||||||
@override
|
@override
|
||||||
Future<RemoteVersionInfo?> build() async {
|
Future<RemoteVersionInfo?> build() async {
|
||||||
loggy.debug("checking for update");
|
loggy.debug("checking for update");
|
||||||
final currentVersion = ref.watch(appInfoProvider).version;
|
final appInfo = ref.watch(appInfoProvider);
|
||||||
|
// TODO use market-specific update checkers
|
||||||
|
if (!appInfo.release.allowCustomUpdateChecker) {
|
||||||
|
loggy.debug(
|
||||||
|
"custom update checkers are not allowed for [${appInfo.release.name}] release",
|
||||||
|
);
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
final currentVersion = appInfo.version;
|
||||||
return ref
|
return ref
|
||||||
.watch(appRepositoryProvider)
|
.watch(appRepositoryProvider)
|
||||||
.getLatestVersion(includePreReleases: true)
|
.getLatestVersion(includePreReleases: true)
|
||||||
@@ -27,7 +35,8 @@ class AppUpdateNotifier extends _$AppUpdateNotifier with AppLogger {
|
|||||||
return remote;
|
return remote;
|
||||||
}
|
}
|
||||||
loggy.info(
|
loggy.info(
|
||||||
"already using latest version[$currentVersion], remote: $remote");
|
"already using latest version[$currentVersion], remote: $remote",
|
||||||
|
);
|
||||||
return null;
|
return null;
|
||||||
},
|
},
|
||||||
).run();
|
).run();
|
||||||
|
|||||||
Reference in New Issue
Block a user