capacitor-rfid-plugin-ox 0.3.2 → 0.3.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -218,12 +218,12 @@ writeEpcString(options: { epc: string; password?: string; }) => Promise<{ value:
218
218
  ### startSearch(...)
219
219
 
220
220
  ```typescript
221
- startSearch(options: { searchableTags: string[]; }) => Promise<void>
221
+ startSearch(options: { searchableTags: string[]; playSound: boolean; }) => Promise<void>
222
222
  ```
223
223
 
224
- | Param | Type |
225
- | ------------- | ------------------------------------------ |
226
- | **`options`** | <code>{ searchableTags: string[]; }</code> |
224
+ | Param | Type |
225
+ | ------------- | -------------------------------------------------------------- |
226
+ | **`options`** | <code>{ searchableTags: string[]; playSound: boolean; }</code> |
227
227
 
228
228
  --------------------
229
229
 
@@ -1,2 +1,16 @@
1
1
  <manifest xmlns:android="http://schemas.android.com/apk/res/android">
2
+ <application
3
+ android:name="uz.ox.plugins.rfid.BaseApplication"
4
+ android:allowBackup="true">
5
+ <activity
6
+ android:name="uz.ox.plugins.rfid.MainActivity"
7
+ android:exported="true"
8
+ >
9
+ <intent-filter>
10
+ <action android:name="android.intent.action.MAIN" />
11
+
12
+ <category android:name="android.intent.category.LAUNCHER" />
13
+ </intent-filter>
14
+ </activity>
15
+ </application>
2
16
  </manifest>
@@ -75,8 +75,8 @@ public class RFID {
75
75
  Log.d(TAG, "stop scan");
76
76
  }
77
77
 
78
- public void startSearch(List<String> searchableTags) {
79
- scan.startSearch(searchableTags);
78
+ public void startSearch(List<String> searchableTags, Boolean soundOnSearch) {
79
+ scan.startSearch(searchableTags, soundOnSearch);
80
80
  Log.d(TAG, "start scan");
81
81
  }
82
82
 
@@ -71,8 +71,9 @@ public class RFIDPlugin extends Plugin {
71
71
  @PluginMethod
72
72
  public void startSearch(PluginCall call) throws JSONException {
73
73
  JSArray searchableTags = call.getArray("searchableTags", JSArray.from(new String[] {}));
74
+ Boolean soundOnSearch = call.getBoolean("soundOnSearch", false);
74
75
 
75
- implementation.startSearch(searchableTags.toList());
76
+ implementation.startSearch(searchableTags.toList(), soundOnSearch);
76
77
  call.resolve();
77
78
  }
78
79
 
@@ -6,18 +6,20 @@ import android.util.Log;
6
6
  import androidx.fragment.app.Fragment;
7
7
 
8
8
  import com.ubx.usdk.rfid.aidl.IRfidCallback;
9
- import com.ubx.usdk.util.SoundTool;
10
9
 
11
10
  import java.util.Date;
12
11
  import java.util.HashMap;
13
12
  import java.util.List;
14
13
 
15
14
  import uz.ox.plugins.rfid.pojo.TagScan;
15
+ import uz.ox.plugins.rfid.utils.SoundTool;;
16
16
 
17
17
  public class Scan extends Fragment {
18
18
  private final RFID rfid;
19
19
  private final RFIDPlugin rfidPlugin;
20
20
 
21
+ private Boolean soundOnSearch = false;
22
+
21
23
  public Scan(RFID rfidWrapper, RFIDPlugin rfidPlugin) {
22
24
  this.rfid = rfidWrapper;
23
25
  this.rfidPlugin = rfidPlugin;
@@ -82,9 +84,10 @@ public class Scan extends Fragment {
82
84
 
83
85
  }
84
86
 
85
- public void startSearch(List<String> searchableTags) {
87
+ public void startSearch(List<String> searchableTags, Boolean soundOnSearch) {
86
88
  if (rfid.RFID_INIT_STATUS) {
87
89
  if (!this.scanning) {
90
+ this.soundOnSearch = soundOnSearch;
88
91
  setSearchCallback();
89
92
  searchableTagsMap = new HashMap<>();
90
93
  for (String tag : searchableTags) {
@@ -203,11 +206,9 @@ public class Scan extends Fragment {
203
206
  }
204
207
 
205
208
  private void notiyDatasSearch(String s2, String TID, final String strRSSI) {
206
- Log.d(TAG, "onInventoryTag: ............... epc: " + s2 + " tid: " + TID + " strRSSI: " + TID);
207
-
208
209
  if (searchableTagsMap.containsKey(s2)) {
209
- if (new Date().getTime() - lastBeepTime.getTime() > 100) {
210
- SoundTool.getInstance(BaseApplication.getContext()).playBeep(2);
210
+ if (this.soundOnSearch && new Date().getTime() - lastBeepTime.getTime() > 100) {
211
+ SoundTool.getInstance(BaseApplication.getContext()).playBeep(2);
211
212
  lastBeepTime = new Date();
212
213
  }
213
214
 
@@ -0,0 +1,56 @@
1
+ package uz.ox.plugins.rfid.utils;
2
+
3
+ import android.content.Context;
4
+ import android.media.AudioAttributes;
5
+ import android.media.SoundPool;
6
+ import com.ubx.usdk.R.raw;
7
+
8
+ public class SoundTool {
9
+ protected static volatile SoundTool instance;
10
+ protected final int SOUND_SWIPE_CARD;
11
+ protected final int SOUND_SWIPE_FACE;
12
+ protected SoundPool soundPool;
13
+
14
+ private SoundTool(Context context) {
15
+ AudioAttributes audioAttributes = new AudioAttributes.Builder()
16
+ .setUsage(AudioAttributes.USAGE_NOTIFICATION_EVENT)
17
+ .setContentType(AudioAttributes.CONTENT_TYPE_SONIFICATION)
18
+ .build();
19
+
20
+ this.soundPool = new SoundPool.Builder()
21
+ .setMaxStreams(3)
22
+ .setAudioAttributes(audioAttributes)
23
+ .build();
24
+
25
+ this.SOUND_SWIPE_CARD = this.soundPool.load(context, raw.scan_buzzer, 1);
26
+ this.SOUND_SWIPE_FACE = this.soundPool.load(context, raw.scan_new, 1);
27
+ }
28
+
29
+ public static synchronized SoundTool getInstance(Context context) {
30
+ if (instance == null) {
31
+ instance = new SoundTool(context);
32
+ }
33
+
34
+ return instance;
35
+ }
36
+
37
+ public void release() {
38
+ if (this.soundPool != null) {
39
+ this.soundPool.release();
40
+ this.soundPool = null;
41
+ instance = null;
42
+ }
43
+ }
44
+
45
+ public void playBeep(int mode) {
46
+ switch (mode) {
47
+ case 0:
48
+ return;
49
+ case 1:
50
+ this.soundPool.play(this.SOUND_SWIPE_CARD, 1.0F, 1.0F, 1, 0, 1.0F);
51
+ break;
52
+ case 2:
53
+ this.soundPool.play(this.SOUND_SWIPE_FACE, 1.0F, 1.0F, 1, 0, 1.0F);
54
+ }
55
+ }
56
+ }
package/dist/docs.json CHANGED
@@ -187,12 +187,12 @@
187
187
  },
188
188
  {
189
189
  "name": "startSearch",
190
- "signature": "(options: { searchableTags: string[]; }) => Promise<void>",
190
+ "signature": "(options: { searchableTags: string[]; playSound: boolean; }) => Promise<void>",
191
191
  "parameters": [
192
192
  {
193
193
  "name": "options",
194
194
  "docs": "",
195
- "type": "{ searchableTags: string[]; }"
195
+ "type": "{ searchableTags: string[]; playSound: boolean; }"
196
196
  }
197
197
  ],
198
198
  "returns": "Promise<void>",
@@ -51,6 +51,7 @@ export interface RFIDPlugin extends Plugin {
51
51
  }>;
52
52
  startSearch(options: {
53
53
  searchableTags: string[];
54
+ playSound: boolean;
54
55
  }): Promise<void>;
55
56
  stopSearch(): Promise<void>;
56
57
  }
@@ -1 +1 @@
1
- {"version":3,"file":"definitions.js","sourceRoot":"","sources":["../../src/definitions.ts"],"names":[],"mappings":"","sourcesContent":["import type { Plugin } from '@capacitor/core';\n\nexport interface RFIDPlugin extends Plugin {\n isConnected(): Promise<{ connected: boolean }>;\n\n startScan(): Promise<void>;\n stopScan(): Promise<void>;\n clearData(): Promise<void>;\n\n getScanData(): Promise<any>;\n getOutputPower(): Promise<{ value: number }>;\n setOutputPower(options: { power: number }): Promise<{ value: number }>;\n\n getRange(): Promise<{ value: number }>;\n setRange(options: { range: number }): Promise<{ value: number }>;\n\n getQueryMode(): Promise<{ value: 0 | 1 | 2 | 3 }>;\n setQueryMode(options: {\n queryMode:\n | 0 // epc\n | 1 // epc+tid\n | 2 // epc+user\n | 3; // fasttid\n }): Promise<{ value: number }>;\n\n getReaderType(): Promise<{ value: number }>; // 80 - short, others - long distance mode\n getFirmwareVersion(): Promise<{ value: string }>;\n\n writeEpc(options: {\n epc: string;\n password?: string;\n }): Promise<{ value: number }>;\n writeEpcString(options: {\n epc: string;\n password?: string;\n }): Promise<{ value: number }>;\n\n startSearch(options: { searchableTags: string[] }): Promise<void>;\n stopSearch(): Promise<void>;\n}\n"]}
1
+ {"version":3,"file":"definitions.js","sourceRoot":"","sources":["../../src/definitions.ts"],"names":[],"mappings":"","sourcesContent":["import type { Plugin } from '@capacitor/core';\n\nexport interface RFIDPlugin extends Plugin {\n isConnected(): Promise<{ connected: boolean }>;\n\n startScan(): Promise<void>;\n stopScan(): Promise<void>;\n clearData(): Promise<void>;\n\n getScanData(): Promise<any>;\n getOutputPower(): Promise<{ value: number }>;\n setOutputPower(options: { power: number }): Promise<{ value: number }>;\n\n getRange(): Promise<{ value: number }>;\n setRange(options: { range: number }): Promise<{ value: number }>;\n\n getQueryMode(): Promise<{ value: 0 | 1 | 2 | 3 }>;\n setQueryMode(options: {\n queryMode:\n | 0 // epc\n | 1 // epc+tid\n | 2 // epc+user\n | 3; // fasttid\n }): Promise<{ value: number }>;\n\n getReaderType(): Promise<{ value: number }>; // 80 - short, others - long distance mode\n getFirmwareVersion(): Promise<{ value: string }>;\n\n writeEpc(options: {\n epc: string;\n password?: string;\n }): Promise<{ value: number }>;\n writeEpcString(options: {\n epc: string;\n password?: string;\n }): Promise<{ value: number }>;\n\n startSearch(options: { searchableTags: string[], playSound: boolean }): Promise<void>;\n stopSearch(): Promise<void>;\n}\n"]}
package/dist/esm/web.d.ts CHANGED
@@ -52,6 +52,7 @@ export declare class RFIDWeb extends WebPlugin implements RFIDPlugin {
52
52
  }>;
53
53
  startSearch(options: {
54
54
  searchableTags: string[];
55
+ playSound: boolean;
55
56
  }): Promise<void>;
56
57
  stopSearch(): Promise<void>;
57
58
  }
@@ -1 +1 @@
1
- {"version":3,"file":"web.js","sourceRoot":"","sources":["../../src/web.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAI5C,MAAM,OAAO,OAAQ,SAAQ,SAAS;IACpC,WAAW;QACT,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;IAC/C,CAAC;IAED,SAAS;QACP,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAED,QAAQ;QACN,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAED,SAAS;QACP,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAED,WAAW;QACT,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,cAAc;QAClB,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;IACtB,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,OAA0B;QAC7C,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;IACtB,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,OAA0B;QACvC,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,YAAY;QAChB,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;IACtB,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,OAElB;QACC,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,aAAa;QACjB,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;IACtB,CAAC;IAED,KAAK,CAAC,kBAAkB;QACtB,OAAO,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,OAGd;QACC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAEzB,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,OAGpB;QACC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAEzB,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,OAAqC;QACrD,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QAEpC,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,UAAU;QACd,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;CACF","sourcesContent":["import { WebPlugin } from '@capacitor/core';\n\nimport type { RFIDPlugin } from './definitions';\n\nexport class RFIDWeb extends WebPlugin implements RFIDPlugin {\n isConnected(): Promise<{ connected: boolean }> {\n return Promise.resolve({ connected: false });\n }\n\n startScan(): Promise<void> {\n return Promise.resolve();\n }\n\n stopScan(): Promise<void> {\n return Promise.resolve();\n }\n\n clearData(): Promise<void> {\n return Promise.resolve();\n }\n\n getScanData(): Promise<void> {\n return Promise.resolve();\n }\n\n async getOutputPower(): Promise<{ value: number }> {\n return { value: 0 };\n }\n\n async setOutputPower(options: { power: number }): Promise<{ value: number }> {\n return { value: options.power };\n }\n\n async getRange(): Promise<{ value: number }> {\n return { value: 0 };\n }\n\n async setRange(options: { range: number }): Promise<{ value: number }> {\n return { value: options.range };\n }\n\n async getQueryMode(): Promise<{ value: 0 | 1 | 2 | 3 }> {\n return { value: 0 };\n }\n\n async setQueryMode(options: {\n queryMode: 0 | 1 | 2 | 3;\n }): Promise<{ value: number }> {\n return { value: options.queryMode };\n }\n\n async getReaderType(): Promise<{ value: number }> {\n return { value: 0 };\n }\n\n async getFirmwareVersion(): Promise<{ value: string }> {\n return { value: 'not implemented' };\n }\n\n async writeEpc(options: {\n epc: string;\n password?: string;\n }): Promise<{ value: number }> {\n console.log(options.epc);\n\n return { value: -1 };\n }\n\n async writeEpcString(options: {\n epc: string;\n password?: string;\n }): Promise<{ value: number }> {\n console.log(options.epc);\n\n return { value: -1 };\n }\n\n async startSearch(options: { searchableTags: string[] }): Promise<void> {\n console.log(options.searchableTags);\n\n return Promise.resolve();\n }\n\n async stopSearch(): Promise<void> {\n return Promise.resolve();\n }\n}\n"]}
1
+ {"version":3,"file":"web.js","sourceRoot":"","sources":["../../src/web.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAI5C,MAAM,OAAO,OAAQ,SAAQ,SAAS;IACpC,WAAW;QACT,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;IAC/C,CAAC;IAED,SAAS;QACP,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAED,QAAQ;QACN,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAED,SAAS;QACP,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAED,WAAW;QACT,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,cAAc;QAClB,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;IACtB,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,OAA0B;QAC7C,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;IACtB,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,OAA0B;QACvC,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,YAAY;QAChB,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;IACtB,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,OAElB;QACC,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,aAAa;QACjB,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;IACtB,CAAC;IAED,KAAK,CAAC,kBAAkB;QACtB,OAAO,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,OAGd;QACC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAEzB,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,OAGpB;QACC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAEzB,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,OAAyD;QACzE,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QAEpC,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,UAAU;QACd,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;CACF","sourcesContent":["import { WebPlugin } from '@capacitor/core';\n\nimport type { RFIDPlugin } from './definitions';\n\nexport class RFIDWeb extends WebPlugin implements RFIDPlugin {\n isConnected(): Promise<{ connected: boolean }> {\n return Promise.resolve({ connected: false });\n }\n\n startScan(): Promise<void> {\n return Promise.resolve();\n }\n\n stopScan(): Promise<void> {\n return Promise.resolve();\n }\n\n clearData(): Promise<void> {\n return Promise.resolve();\n }\n\n getScanData(): Promise<void> {\n return Promise.resolve();\n }\n\n async getOutputPower(): Promise<{ value: number }> {\n return { value: 0 };\n }\n\n async setOutputPower(options: { power: number }): Promise<{ value: number }> {\n return { value: options.power };\n }\n\n async getRange(): Promise<{ value: number }> {\n return { value: 0 };\n }\n\n async setRange(options: { range: number }): Promise<{ value: number }> {\n return { value: options.range };\n }\n\n async getQueryMode(): Promise<{ value: 0 | 1 | 2 | 3 }> {\n return { value: 0 };\n }\n\n async setQueryMode(options: {\n queryMode: 0 | 1 | 2 | 3;\n }): Promise<{ value: number }> {\n return { value: options.queryMode };\n }\n\n async getReaderType(): Promise<{ value: number }> {\n return { value: 0 };\n }\n\n async getFirmwareVersion(): Promise<{ value: string }> {\n return { value: 'not implemented' };\n }\n\n async writeEpc(options: {\n epc: string;\n password?: string;\n }): Promise<{ value: number }> {\n console.log(options.epc);\n\n return { value: -1 };\n }\n\n async writeEpcString(options: {\n epc: string;\n password?: string;\n }): Promise<{ value: number }> {\n console.log(options.epc);\n\n return { value: -1 };\n }\n\n async startSearch(options: { searchableTags: string[], playSound: boolean }): Promise<void> {\n console.log(options.searchableTags);\n\n return Promise.resolve();\n }\n\n async stopSearch(): Promise<void> {\n return Promise.resolve();\n }\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "capacitor-rfid-plugin-ox",
3
- "version": "0.3.2",
3
+ "version": "0.3.4",
4
4
  "description": "rfid read-write",
5
5
  "main": "dist/plugin.cjs.js",
6
6
  "module": "dist/esm/index.js",