new: add review

This commit is contained in:
Hiddify
2024-03-17 14:45:15 +01:00
parent c0fce83332
commit 81dde7566a
6 changed files with 44 additions and 13 deletions

View File

@@ -11,6 +11,7 @@ import 'package:hiddify/utils/utils.dart';
import 'package:riverpod_annotation/riverpod_annotation.dart';
import 'package:rxdart/rxdart.dart';
import 'package:sentry_flutter/sentry_flutter.dart';
import 'package:in_app_review/in_app_review.dart';
part 'connection_notifier.g.dart';
@@ -30,6 +31,14 @@ class ConnectionNotifier extends _$ConnectionNotifier with AppLogger {
if (previous case AsyncData(:final value) when !value.isConnected) {
if (next case AsyncData(value: final Connected _)) {
await ref.read(hapticServiceProvider.notifier).heavyImpact();
if (Platform.isAndroid &&
!ref.read(Preferences.storeReviewedByUser)) {
if (await InAppReview.instance.isAvailable()) {
InAppReview.instance.requestReview();
ref.read(Preferences.storeReviewedByUser.notifier).update(true);
}
}
}
}
},

View File

@@ -94,18 +94,19 @@ class ConnectionButton extends HookConsumerWidget {
AsyncData(value: _) => buttonTheme.idleColor!,
_ => Colors.red,
},
image:switch (connectionStatus) {
image: switch (connectionStatus) {
AsyncData(value: Connected()) when requiresReconnect == true =>
Assets.images.disconnectNorouz,
Assets.images.disconnectNorouz,
AsyncData(value: Connected()) => Assets.images.connectNorouz,
AsyncData(value: _) => Assets.images.disconnectNorouz,
_ => Assets.images.disconnectNorouz,
AsyncData(value: Disconnected()) || AsyncError() => Assets.images.disconnectNorouz,
AsyncData(value: Connected()) => Assets.images.connectNorouz,
_ =>Assets.images.disconnectNorouz,
AsyncData(value: Disconnected()) ||
AsyncError() =>
Assets.images.disconnectNorouz,
AsyncData(value: Connected()) => Assets.images.connectNorouz,
_ => Assets.images.disconnectNorouz,
},
useImage:today.day>=19 && today.day<=23 && today.month==3 ,
useImage: today.day >= 19 && today.day <= 23 && today.month == 3,
);
}
}
@@ -161,12 +162,9 @@ class _ConnectionButton extends StatelessWidget {
tween: ColorTween(end: buttonColor),
duration: const Duration(milliseconds: 250),
builder: (context, value, child) {
if(useImage) {
return image.image(
filterQuality: FilterQuality.medium
);
}
else{
if (useImage) {
return image.image(filterQuality: FilterQuality.medium);
} else {
return Assets.images.logo.svg(
colorFilter: ColorFilter.mode(
value!,