commit 0582d226f858d43bd96c282c4abf7c4f20ffeb19
parent b14e41defeee68a90d49d4a7d6b0bbfb6fcb1733
Author: triesap <137732411+triesap@users.noreply.github.com>
Date: Fri, 23 Aug 2024 10:23:47 +0000
client: add capacitor device api
Diffstat:
4 files changed, 39 insertions(+), 1 deletion(-)
diff --git a/client/package.json b/client/package.json
@@ -9,6 +9,7 @@
},
"dependencies": {
"@capacitor/core": "^6.1.2",
+ "@capacitor/device": "^6.0.0",
"@radroots/capacitor-secure-storage": "workspace:*"
},
"devDependencies": {
diff --git a/client/src/capacitor/device.ts b/client/src/capacitor/device.ts
@@ -0,0 +1,20 @@
+import { Device } from '@capacitor/device';
+import type { CapacitorDeviceBatteryInfo, CapacitorDeviceInfo, IClientDevice } from '../types';
+
+
+export class CapacitorClientDevice implements IClientDevice {
+ public async info(): Promise<CapacitorDeviceInfo | undefined> {
+ try {
+ const res = await Device.getInfo();
+ return res;
+ } catch (e) { };
+ }
+
+ public async battery(): Promise<CapacitorDeviceBatteryInfo | undefined> {
+ try {
+ const res = await Device.getBatteryInfo();
+ return res;
+ } catch (e) { };
+
+ }
+}
diff --git a/client/src/capacitor/index.ts b/client/src/capacitor/index.ts
@@ -1,12 +1,14 @@
import { Capacitor } from "@capacitor/core";
-import type { IClient, IClientKeystore, IClientPlatform } from "../types";
+import type { IClient, IClientDevice, IClientKeystore, IClientPlatform } from "../types";
import { parse_platform } from "../utils";
+import { CapacitorClientDevice } from "./device";
import { CapacitorClientKeystore } from "./keystore";
export class ClientCapacitor implements IClient {
private _platform: IClientPlatform = parse_platform(Capacitor.getPlatform());
private _keystore: IClientKeystore = new CapacitorClientKeystore();
+ private _device: IClientDevice = new CapacitorClientDevice();
public get platform() {
return this._platform;
@@ -15,4 +17,8 @@ export class ClientCapacitor implements IClient {
public get keystore() {
return this._keystore;
}
+
+ public get device() {
+ return this._device;
+ }
};
\ No newline at end of file
diff --git a/client/src/types.ts b/client/src/types.ts
@@ -1,6 +1,12 @@
+import { type BatteryInfo, type DeviceInfo } from '@capacitor/device';
+
+export type CapacitorDeviceInfo = DeviceInfo;
+export type CapacitorDeviceBatteryInfo = BatteryInfo;
+
export type IClient = {
platform: IClientPlatform;
keystore: IClientKeystore;
+ device: IClientDevice;
};
export type IClientPlatform = `androiď` | `ios` | `web`;
@@ -12,3 +18,8 @@ export type IClientKeystore = {
keys(): Promise<string[] | undefined>;
remove(key: string): Promise<boolean>;
};
+
+export type IClientDevice = {
+ info(): Promise<CapacitorDeviceInfo | undefined>;
+ battery(): Promise<CapacitorDeviceBatteryInfo | undefined>;
+};