Fix Virtual Controller Remapper's bug (contd)

This commit is contained in:
redphx 2024-10-23 20:51:04 +07:00
parent 5b67b4c37d
commit 53442557e1
4 changed files with 37 additions and 33 deletions

View File

@ -2381,7 +2381,7 @@ class MouseDataProvider {
class MkbHandler {}
class LocalDb {
static DB_NAME = "BetterXcloud";
static DB_VERSION = 1;
static DB_VERSION = 2;
db;
open() {
return new Promise((resolve, reject) => {
@ -2438,17 +2438,16 @@ class MkbPresetsDb extends LocalDb {
super();
BxLogger.info(this.LOG_TAG, "constructor()");
}
onUpgradeNeeded(e) {
let db = e.target.result;
switch (e.oldVersion) {
case 0: {
createTable(db) {
db.createObjectStore(this.TABLE_PRESETS, {
keyPath: "id",
autoIncrement: !0
}).createIndex("name_idx", "name");
break;
}
}
onUpgradeNeeded(e) {
let db = e.target.result;
if (db.objectStoreNames.contains("undefined")) db.deleteObjectStore("undefined");
if (!db.objectStoreNames.contains(this.TABLE_PRESETS)) this.createTable(db);
}
async presetsTable() {
return await this.open(), await this.table(this.TABLE_PRESETS, "readwrite");

View File

@ -2656,7 +2656,7 @@ class NativeMkbHandler extends MkbHandler {
}
class LocalDb {
static DB_NAME = "BetterXcloud";
static DB_VERSION = 1;
static DB_VERSION = 2;
db;
open() {
return new Promise((resolve, reject) => {
@ -2713,17 +2713,16 @@ class MkbPresetsDb extends LocalDb {
super();
BxLogger.info(this.LOG_TAG, "constructor()");
}
onUpgradeNeeded(e) {
let db = e.target.result;
switch (e.oldVersion) {
case 0: {
createTable(db) {
db.createObjectStore(this.TABLE_PRESETS, {
keyPath: "id",
autoIncrement: !0
}).createIndex("name_idx", "name");
break;
}
}
onUpgradeNeeded(e) {
let db = e.target.result;
if (db.objectStoreNames.contains("undefined")) db.deleteObjectStore("undefined");
if (!db.objectStoreNames.contains(this.TABLE_PRESETS)) this.createTable(db);
}
async presetsTable() {
return await this.open(), await this.table(this.TABLE_PRESETS, "readwrite");

View File

@ -1,8 +1,8 @@
export abstract class LocalDb {
static readonly DB_NAME = 'BetterXcloud';
static readonly DB_VERSION = 1;
static readonly DB_VERSION = 2;
private db: any;
protected db!: IDBDatabase;
protected open() {
return new Promise<void>((resolve, reject) => {
@ -29,7 +29,7 @@ export abstract class LocalDb {
protected abstract onUpgradeNeeded(e: IDBVersionChangeEvent): void;
protected table(name: string, type: string): Promise<IDBObjectStore> {
protected table(name: string, type: IDBTransactionMode): Promise<IDBObjectStore> {
const transaction = this.db.transaction(name, type || 'readonly');
const table = transaction.objectStore(name);

View File

@ -18,17 +18,23 @@ export class MkbPresetsDb extends LocalDb {
BxLogger.info(this.LOG_TAG, 'constructor()');
}
protected onUpgradeNeeded(e: IDBVersionChangeEvent): void {
const db = (e.target! as any).result;
switch (e.oldVersion) {
case 0: {
private createTable(db: IDBDatabase) {
const presets = db.createObjectStore(this.TABLE_PRESETS, {
keyPath: 'id',
autoIncrement: true,
});
presets.createIndex('name_idx', 'name');
break;
}
protected onUpgradeNeeded(e: IDBVersionChangeEvent): void {
const db = (e.target! as any).result as IDBDatabase;
if (db.objectStoreNames.contains('undefined')) {
db.deleteObjectStore('undefined');
}
if (!db.objectStoreNames.contains(this.TABLE_PRESETS)) {
this.createTable(db);
}
}