Commit 68edda64c1cec4aab814d3f0c2038760545f91f5

Authored by 权海
1 parent b728d625

feat(ui):添加检查手表设备时附带是否已经安装了 doublefeel

... ... @@ -83,7 +83,8 @@ class FlutterError (
data class WearDeviceInfo (
val deviceId: String? = null,
val deviceName: String? = null,
val isConnected: Boolean? = null
val isConnected: Boolean? = null,
val isWatchAppInstalled: Boolean? = null
)
{
companion object {
... ... @@ -91,7 +92,8 @@ data class WearDeviceInfo (
val deviceId = pigeonVar_list[0] as String?
val deviceName = pigeonVar_list[1] as String?
val isConnected = pigeonVar_list[2] as Boolean?
return WearDeviceInfo(deviceId, deviceName, isConnected)
val isWatchAppInstalled = pigeonVar_list[3] as Boolean?
return WearDeviceInfo(deviceId, deviceName, isConnected, isWatchAppInstalled)
}
}
fun toList(): List<Any?> {
... ... @@ -99,6 +101,7 @@ data class WearDeviceInfo (
deviceId,
deviceName,
isConnected,
isWatchAppInstalled,
)
}
override fun equals(other: Any?): Boolean {
... ...
... ... @@ -117,6 +117,7 @@ struct WearDeviceInfo: Hashable {
var deviceId: String? = nil
var deviceName: String? = nil
var isConnected: Bool? = nil
var isWatchAppInstalled: Bool? = nil
// swift-format-ignore: AlwaysUseLowerCamelCase
... ... @@ -124,11 +125,13 @@ struct WearDeviceInfo: Hashable {
let deviceId: String? = nilOrValue(pigeonVar_list[0])
let deviceName: String? = nilOrValue(pigeonVar_list[1])
let isConnected: Bool? = nilOrValue(pigeonVar_list[2])
let isWatchAppInstalled: Bool? = nilOrValue(pigeonVar_list[3])
return WearDeviceInfo(
deviceId: deviceId,
deviceName: deviceName,
isConnected: isConnected
isConnected: isConnected,
isWatchAppInstalled: isWatchAppInstalled
)
}
func toList() -> [Any?] {
... ... @@ -136,6 +139,7 @@ struct WearDeviceInfo: Hashable {
deviceId,
deviceName,
isConnected,
isWatchAppInstalled,
]
}
static func == (lhs: WearDeviceInfo, rhs: WearDeviceInfo) -> Bool {
... ...
# 使用前注意: 需要先将主项目和lovenote-flutter放到同一路径下
SOURCE_DIR="./SDK/iOS_SDK"
#!/bin/bash
# 目标目录,绝对路径
TARGET_DIR="../hippo/PodLocal/Flutter/SDK"
set -euo pipefail
# 检查目标目录是否存在
if [ -d "$TARGET_DIR" ]; then
echo "目标目录已存在,正在替换..."
rm -rf "$TARGET_DIR"
# 使用前注意:doublefeel_flutter 和 hippo 需要位于同一目录下。
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
SOURCE_SDK_DIR="$SCRIPT_DIR/SDK/iOS_SDK"
SOURCE_RUNNER_DIR="$SCRIPT_DIR/ios/Runner"
HIPPO_PROJECT_DIR="$SCRIPT_DIR/../hippo/hippo"
TARGET_SDK_DIR="$SCRIPT_DIR/../hippo/PodLocal/Flutter/SDK"
TARGET_PIGEON_DIR="$HIPPO_PROJECT_DIR/Pigeon"
if [ ! -d "$SOURCE_SDK_DIR" ]; then
echo "iOS SDK目录不存在:$SOURCE_SDK_DIR"
exit 1
fi
if [ ! -d "$HIPPO_PROJECT_DIR" ]; then
echo "hippo项目目录不存在:$HIPPO_PROJECT_DIR"
exit 1
fi
if [ -d "$TARGET_SDK_DIR" ]; then
echo "目标SDK目录已存在,正在替换..."
rm -rf "$TARGET_SDK_DIR"
else
echo "目标目录不存在,正在新增..."
echo "目标SDK目录不存在,正在新增..."
fi
# 复制源目录到目标目录
cp -r "$SOURCE_DIR" "$TARGET_DIR"
mkdir -p "$(dirname "$TARGET_SDK_DIR")" "$TARGET_PIGEON_DIR"
cp -R "$SOURCE_SDK_DIR" "$TARGET_SDK_DIR"
echo "正在复制GeneratedPluginRegistrant文件..."
cp -f \
"$SOURCE_RUNNER_DIR/GeneratedPluginRegistrant.h" \
"$SOURCE_RUNNER_DIR/GeneratedPluginRegistrant.m" \
"$HIPPO_PROJECT_DIR/"
echo "正在复制Pigeon Api文件..."
pigeon_api_files=("$SOURCE_RUNNER_DIR"/Pigeon/*Api.swift)
if [ ! -e "${pigeon_api_files[0]}" ]; then
echo "未找到Pigeon Api文件:$SOURCE_RUNNER_DIR/Pigeon/*Api.swift"
exit 1
fi
cp -f "${pigeon_api_files[@]}" "$TARGET_PIGEON_DIR/"
echo "操作完成。"
... ...
import 'dart:async';
import 'package:doublefeel_flutter/app/routes/app_pages.dart';
import 'package:doublefeel_flutter/core/constants/intent_keys.dart';
import 'package:doublefeel_flutter/core/network/api/theme_api.dart';
import 'package:doublefeel_flutter/core/network/api/vip_api.dart';
import 'package:doublefeel_flutter/core/result/app_result.dart';
... ... @@ -91,7 +92,7 @@ class WatchThemeController extends GetxController {
Future<void> _toPremiumPage() async {
await Get.toNamed(Routes.PURCHASE, arguments: {
'channel_type': '表盘主题',
IntentKeys.channelType: '表盘主题',
});
await _refreshVip();
}
... ...
... ... @@ -35,6 +35,7 @@ class WearDeviceInfo {
this.deviceId,
this.deviceName,
this.isConnected,
this.isWatchAppInstalled,
});
String? deviceId;
... ... @@ -43,11 +44,14 @@ class WearDeviceInfo {
bool? isConnected;
bool? isWatchAppInstalled;
List<Object?> _toList() {
return <Object?>[
deviceId,
deviceName,
isConnected,
isWatchAppInstalled,
];
}
... ... @@ -60,6 +64,7 @@ class WearDeviceInfo {
deviceId: result[0] as String?,
deviceName: result[1] as String?,
isConnected: result[2] as bool?,
isWatchAppInstalled: result[3] as bool?,
);
}
... ...
... ... @@ -5,11 +5,13 @@ class WearDeviceInfo {
this.deviceId,
this.deviceName,
this.isConnected,
this.isWatchAppInstalled,
});
String? deviceId;
String? deviceName;
bool? isConnected;
bool? isWatchAppInstalled;
}
@ConfigurePigeon(
... ...