浏览代码

Show rate us on AlternativeTo

Neeraj Gupta 2 年之前
父节点
当前提交
4e4807ac5a
共有 2 个文件被更改,包括 31 次插入8 次删除
  1. 27 0
      lib/services/update_service.dart
  2. 4 8
      lib/ui/settings/social_section_widget.dart

+ 27 - 0
lib/services/update_service.dart

@@ -9,6 +9,7 @@ import 'package:photos/core/constants.dart';
 import 'package:photos/core/network.dart';
 import 'package:photos/services/notification_service.dart';
 import 'package:shared_preferences/shared_preferences.dart';
+import 'package:tuple/tuple.dart';
 
 class UpdateService {
   UpdateService._privateConstructor();
@@ -121,6 +122,32 @@ class UpdateService {
     }
     return _packageInfo.packageName.startsWith("io.ente.photos.independent");
   }
+
+  bool isFdroidFlavor() {
+    if (Platform.isIOS) {
+      return false;
+    }
+    return _packageInfo.packageName.startsWith("io.ente.photos.fdroid");
+  }
+
+  // getRateDetails returns details about the place
+  Tuple2<String, String> getRateDetails() {
+    if (isFdroidFlavor() || isIndependentFlavor()) {
+      return const Tuple2(
+        "AlternativeTo",
+        "https://alternativeto.net/software/ente/about/",
+      );
+    }
+    return Platform.isAndroid
+        ? const Tuple2(
+            "play store",
+            "https://play.google.com/store/apps/details?id=io.ente.photos",
+          )
+        : const Tuple2(
+            "app store",
+            "https://apps.apple.com/in/app/ente-photos/id1542026904",
+          );
+  }
 }
 
 class LatestVersionInfo {

+ 4 - 8
lib/ui/settings/social_section_widget.dart

@@ -1,7 +1,5 @@
 // @dart=2.9
 
-import 'dart:io';
-
 import 'package:flutter/material.dart';
 import 'package:photos/services/update_service.dart';
 import 'package:photos/theme/ente_theme.dart';
@@ -25,15 +23,13 @@ class SocialSectionWidget extends StatelessWidget {
 
   Widget _getSectionOptions(BuildContext context) {
     final List<Widget> options = [];
+    final result = UpdateService.instance.getRateDetails();
+    final String ratePlace = result.item1;
+    final String rateUrl = result.item2;
     if (!UpdateService.instance.isIndependent()) {
       options.addAll(
         [
-          SocialsMenuItemWidget(
-            "Rate us! ✨",
-            Platform.isAndroid
-                ? "https://play.google.com/store/apps/details?id=io.ente.photos"
-                : "https://apps.apple.com/in/app/ente-photos/id1542026904",
-          ),
+          SocialsMenuItemWidget("Rate us on $ratePlace", rateUrl),
           sectionOptionSpacing,
         ],
       );