Skip to content

Commit 4d144bb

Browse files
committed
Replace SQLite with Couchbase Lite
1 parent 92b2a15 commit 4d144bb

File tree

6 files changed

+47
-299
lines changed

6 files changed

+47
-299
lines changed

demo/app/App_Resources/Android/app.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111

1212
android {
1313
defaultConfig {
14-
minSdkVersion 17
14+
minSdkVersion 19
1515
generatedDensities = []
1616
}
1717
aaptOptions {

src/internal/activity-recognition/recognizers/state/model.ts

Lines changed: 0 additions & 11 deletions
This file was deleted.

src/internal/activity-recognition/recognizers/state/store.ts

Lines changed: 30 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import { HumanActivity, Resolution, StartOptions } from "../../index";
2-
import { pluginDb } from "../../../persistence/plugin-db";
3-
import { recognizersStateModel } from "./model";
2+
import { Couchbase } from "nativescript-couchbase-plugin";
43

54
export interface RecognizerStateStore {
65
isActive(recognizer: Resolution): Promise<boolean>;
@@ -17,8 +16,14 @@ export interface RecognizerStateStore {
1716
): Promise<void>;
1817
}
1918

19+
const DATABASE_NAME = "recognizers-state";
20+
2021
class RecognizersStateStoreDb implements RecognizerStateStore {
21-
private tableName = recognizersStateModel.name;
22+
private database: Couchbase;
23+
24+
constructor() {
25+
this.database = new Couchbase(DATABASE_NAME);
26+
}
2227

2328
async isActive(recognizer: Resolution): Promise<boolean> {
2429
const recognizerData = await this.getRecognizerData(recognizer);
@@ -38,7 +43,7 @@ class RecognizersStateStoreDb implements RecognizerStateStore {
3843
if (!recognizerData) {
3944
return null;
4045
}
41-
return JSON.parse(recognizerData.startOptions);
46+
return recognizerData.startOptions;
4247
}
4348

4449
async markAsActive(
@@ -53,15 +58,12 @@ class RecognizersStateStoreDb implements RecognizerStateStore {
5358
}
5459

5560
async getLastActivity(recognizer: Resolution): Promise<HumanActivity> {
56-
const instance = await this.db();
57-
const rows = await instance
58-
.query("select")
59-
.where(["id", "=", recognizer])
60-
.exec();
61-
if (rows.length === 0) {
61+
const recognizerData = this.database.getDocument(recognizer);
62+
63+
if (!recognizerData) {
6264
return null;
6365
}
64-
const lastActivity = rows[0].lastActivity;
66+
const lastActivity = recognizerData.lastActivity;
6567
return lastActivity ? lastActivity : null;
6668
}
6769

@@ -73,45 +75,37 @@ class RecognizersStateStoreDb implements RecognizerStateStore {
7375
if (!isActive) {
7476
return null;
7577
}
76-
const instance = await this.db(`${this.tableName}.lastActivity`);
77-
await instance
78-
.query("upsert", activity)
79-
.where(["id", "=", recognizer])
80-
.exec();
78+
79+
this.database.updateDocument(recognizer, { lastActivity: activity });
8180
}
8281

8382
private async updateStatus(
8483
recognizer: Resolution,
8584
active: boolean,
8685
startOptions: StartOptions = {}
8786
) {
88-
const instance = await this.db();
89-
await instance
90-
.query("upsert", {
91-
id: recognizer,
92-
active,
93-
startOptions: JSON.stringify(startOptions),
94-
lastActivity: null,
95-
})
96-
.exec();
87+
const newData = {
88+
active,
89+
startOptions,
90+
lastActivity: null,
91+
};
92+
93+
const prevData = await this.getRecognizerData(recognizer);
94+
if (!prevData) {
95+
this.database.createDocument(newData, recognizer);
96+
return;
97+
}
98+
this.database.updateDocument(recognizer, newData);
9799
}
98100

99101
private async getRecognizerData(
100102
recognizer: Resolution
101103
): Promise<{ [key: string]: any }> {
102-
const instance = await this.db();
103-
const rows = await instance
104-
.query("select")
105-
.where(["id", "=", recognizer])
106-
.exec();
107-
if (rows.length === 0) {
104+
const recognizerData = this.database.getDocument(recognizer);
105+
if (!recognizerData) {
108106
return null;
109107
}
110-
return rows[0];
111-
}
112-
113-
private db(tableName = this.tableName) {
114-
return pluginDb.instance(tableName);
108+
return recognizerData;
115109
}
116110
}
117111

src/internal/persistence/plugin-db.ts

Lines changed: 0 additions & 35 deletions
This file was deleted.

0 commit comments

Comments
 (0)