Skip to content

Commit 782f766

Browse files
authored
Merge pull request #45 from cslrfid/develop
Develop
2 parents 35244fa + 1827282 commit 782f766

File tree

171 files changed

+6848
-2368
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

171 files changed

+6848
-2368
lines changed

app/build.gradle

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,18 @@
11
apply plugin: 'com.android.application'
22

33
android {
4-
compileSdkVersion 31
4+
compileSdkVersion 33
55
defaultConfig {
66
applicationId "com.csl.cs108ademoapp"
77
minSdkVersion 19
8-
targetSdkVersion 31
8+
targetSdkVersion 33
99
versionCode 38
10-
versionName "2.7.0"
10+
versionName "2.8.22"
1111
}
1212
}
1313

1414
dependencies {
1515
implementation fileTree(include: ['*.jar'], dir: 'libs')
1616
implementation project(':cs108library4a')
17-
implementation 'com.google.android.material:material:1.0.0'
17+
implementation 'com.google.android.material:material:1.9.0'
1818
}
Binary file not shown.

app/release/output-metadata.json

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
{
2+
"version": 3,
3+
"artifactType": {
4+
"type": "APK",
5+
"kind": "Directory"
6+
},
7+
"applicationId": "com.csl.cs108ademoapp",
8+
"variantName": "release",
9+
"elements": [
10+
{
11+
"type": "SINGLE",
12+
"filters": [],
13+
"attributes": [],
14+
"versionCode": 38,
15+
"versionName": "2.8.22",
16+
"outputFile": "app-release.apk"
17+
}
18+
],
19+
"elementType": "File"
20+
}

app/src/main/AndroidManifest.xml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66
<uses-permission android:name="android.permission.INTERNET" />
77
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
88
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
9+
<uses-permission android:name="android.permission.STORAGE" />
10+
<uses-permission android:name="android.permission.RECORD_AUDIO"/>
911
<uses-permission android:name="android.permission.NFC" />
1012

1113
<application
15.1 KB
Loading

app/src/main/java/com/csl/cs108ademoapp/AccessTask.java

Lines changed: 59 additions & 53 deletions
Large diffs are not rendered by default.

app/src/main/java/com/csl/cs108ademoapp/AccessTask1.java

Lines changed: 33 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
import android.widget.Button;
55
import android.widget.Toast;
66

7-
import com.csl.cs108library4a.Cs108Connector;
7+
import com.csl.cs108library4a.Cs108Library4A;
88

99
public class AccessTask1 {
1010
Button button;
@@ -14,25 +14,25 @@ public class AccessTask1 {
1414
int selectBank, selectOffset;
1515
String strPassword;
1616
int powerLevel;
17-
Cs108Connector.HostCommands hostCommand;
17+
Cs108Library4A.HostCommands hostCommand;
1818
Runnable updateRunnable = null;
1919

2020
AccessTask accessTask;
2121
public AccessTask1(Button button, boolean invalidRequest,
2222
int accBank, int accOffset, int accSize, int accBlockCount, String accWriteData,
23-
String selectMask, int selectBank, int selectOffset,
24-
String strPassword, int powerLevel, Cs108Connector.HostCommands hostCommand, Runnable updateRunnable) {
23+
String selectMask, int selectBank, int selectOffset,
24+
String strPassword, int powerLevel, Cs108Library4A.HostCommands hostCommand, Runnable updateRunnable) {
2525
this.button = button;
2626
this.invalidRequest = invalidRequest;
27-
MainActivity.mCs108Library4a.appendToLog("HelloK: invalidRequest=" + invalidRequest);
27+
MainActivity.csLibrary4A.appendToLog("HelloK: invalidRequest=" + invalidRequest);
2828
this.accBank = accBank;
2929
this.accOffset = accOffset;
30-
if (hostCommand == Cs108Connector.HostCommands.CMD_18K6CWRITE) { if (accBlockCount > 16) accBlockCount = 16; }
30+
if (hostCommand == Cs108Library4A.HostCommands.CMD_18K6CWRITE) { if (accBlockCount > 16) accBlockCount = 16; }
3131
else if (accBlockCount > 255) accBlockCount = 255;
3232
this.accBlockCount = accBlockCount;
3333
if (accWriteData == null) accWriteData = "";
34-
if (hostCommand == Cs108Connector.HostCommands.CMD_18K6CWRITE) {
35-
MainActivity.mCs108Library4a.appendToLog("strOut: accWriteData=" + accWriteData);
34+
if (hostCommand == Cs108Library4A.HostCommands.CMD_18K6CWRITE) {
35+
MainActivity.csLibrary4A.appendToLog("strOut: accWriteData=" + accWriteData);
3636
accWriteData = deformatWriteAccessData(accWriteData);
3737
if (accWriteData.length() < accSize * 4) {
3838
accSize = accWriteData.length()/4;
@@ -52,7 +52,7 @@ public AccessTask1(Button button, boolean invalidRequest,
5252
this.powerLevel = powerLevel;
5353
this.hostCommand = hostCommand;
5454
this.updateRunnable = updateRunnable;
55-
MainActivity.mCs108Library4a.appendToLog("HelloA, AccessTask1");
55+
MainActivity.csLibrary4A.appendToLog("HelloA, AccessTask1");
5656
CustomMediaPlayer playerN = MainActivity.sharedObjects.playerN;
5757
playerN.start();
5858
setup();
@@ -73,30 +73,30 @@ public AsyncTask.Status getStatus() {
7373
}
7474

7575
public String deformatWriteAccessData(String strIn) {
76-
MainActivity.mCs108Library4a.appendToLog("strOut: strIn=" + strIn);
76+
MainActivity.csLibrary4A.appendToLog("strOut: strIn=" + strIn);
7777
String strOut = strIn.replaceAll("\\P{Print}", "");
78-
MainActivity.mCs108Library4a.appendToLog("strOut=" + strOut);
78+
MainActivity.csLibrary4A.appendToLog("strOut=" + strOut);
7979
while (strOut.indexOf(":") > 0) {
8080
int index = strOut.indexOf(":");
8181
String writeDataTemp = "";
8282
if (index > 4) writeDataTemp = strOut.substring(0, index - 3);
8383
writeDataTemp += strOut.substring(index + 1);
8484
strOut = writeDataTemp;
85-
MainActivity.mCs108Library4a.appendToLog("strOut=" + strOut);
85+
MainActivity.csLibrary4A.appendToLog("strOut=" + strOut);
8686
}
87-
MainActivity.mCs108Library4a.appendToLog("strOut=" + strOut);
87+
MainActivity.csLibrary4A.appendToLog("strOut=" + strOut);
8888
return strOut;
8989
}
9090

91-
boolean isResultReady = false; int tryCount = 0, tryCountMax = 20;
91+
boolean isResultReady = false; int tryCount = 0, tryCountMax = 3;
9292
public boolean isResultReady() {
9393
boolean bValue = false;
9494
if (accessTask == null) { }
9595
else if (accessTask.getStatus() != AsyncTask.Status.FINISHED) { }
9696
else if (button.getText().toString().indexOf("ING") > 0) { }
9797
else if (isResultReady == false) {
9898
String strAccessResult = "";
99-
if (hostCommand != Cs108Connector.HostCommands.CMD_18K6CREAD || accBank != 3) strAccessResult = accessTask.accessResult;
99+
if (hostCommand != Cs108Library4A.HostCommands.CMD_18K6CREAD || accBank != 3) strAccessResult = accessTask.accessResult;
100100
else {
101101
int word4line = 7;
102102
for (int i = 0; i < accSizeNow; i=i+word4line) {
@@ -112,13 +112,13 @@ else if (isResultReady == false) {
112112
strAccessResult += accessTask.accessResult.substring(i * 4, (i + word4line) * 4);
113113
}
114114
strAccessResult += "\n";
115-
MainActivity.mCs108Library4a.appendToLog("i=" + i + ", formatted accessTask.accessResult=" + strAccessResult);
115+
MainActivity.csLibrary4A.appendToLog("i=" + i + ", formatted accessTask.accessResult=" + strAccessResult);
116116
}
117117
}
118118
if (accessResult == null) accessResult = strAccessResult;
119119
else accessResult += strAccessResult;
120120

121-
MainActivity.mCs108Library4a.appendToLog("HelloA: accessResult=" + accessTask.accessResult);
121+
MainActivity.csLibrary4A.appendToLog("HelloA: accessResult=" + accessTask.accessResult);
122122
if (accessTask.accessResult != null && accSizeNow >= accSize) {
123123
bValue = true;
124124
Toast.makeText(MainActivity.mContext, R.string.toast_abort_by_SUCCESS, Toast.LENGTH_SHORT).show();
@@ -129,21 +129,22 @@ else if (isResultReady == false) {
129129
accSize -= accSizeNow;
130130
if (accWriteData != null) { if (accWriteData.length() >= accSizeNow*4) accWriteData = accWriteData.substring(accSizeNow*4); }
131131
tryCount = 0;
132-
} else MainActivity.mCs108Library4a.appendToLog("HelloA: Going to retry with TryCount=" + tryCount);
132+
}
133+
MainActivity.csLibrary4A.appendToLog("HelloA: Going to retry with TryCount=" + tryCount + ", resultError = " + accessTask.resultError);
133134
if (tryCount < tryCountMax) {
134-
MainActivity.mCs108Library4a.appendToLog("HelloA: re-setup");
135+
MainActivity.csLibrary4A.appendToLog("HelloA: re-setup");
135136
setup();
136137
execute();
137138
} else bValue = true;
138139
}
139140
} else bValue = true;
140-
MainActivity.mCs108Library4a.appendToLog("HelloA: bValue=" + bValue);
141+
//MainActivity.csLibrary4A.appendToLog("HelloA: bValue=" + bValue);
141142
isResultReady = bValue;
142143
return bValue;
143144
}
144145
public String accessResult;
145146
public String getResult() {
146-
MainActivity.mCs108Library4a.appendToLog("HelloA: accessResult=" + accessResult);
147+
MainActivity.csLibrary4A.appendToLog("HelloA: accessResult=" + accessResult);
147148
if (accessTask == null) return null;
148149
if (accessTask.getStatus() != AsyncTask.Status.FINISHED) return null;
149150
if (button.getText().toString().indexOf("ING") > 0) return null;
@@ -153,39 +154,39 @@ public String getResult() {
153154
void setup() {
154155
tryCount++;
155156
if (invalidRequest == false) {
156-
if (MainActivity.mCs108Library4a.setAccessBank(accBank) == false) {
157-
MainActivity.mCs108Library4a.appendToLog("HelloK: accBank, invalidRequest=" + invalidRequest);
157+
if (MainActivity.csLibrary4A.setAccessBank(accBank) == false) {
158+
MainActivity.csLibrary4A.appendToLog("HelloK: accBank, invalidRequest=" + invalidRequest);
158159
invalidRequest = true;
159160
}
160161
}
161162
if (invalidRequest == false) {
162-
if (MainActivity.mCs108Library4a.setAccessOffset(accOffset) == false) {
163-
MainActivity.mCs108Library4a.appendToLog("HelloK: accOffset, invalidRequest=" + invalidRequest);
163+
if (MainActivity.csLibrary4A.setAccessOffset(accOffset) == false) {
164+
MainActivity.csLibrary4A.appendToLog("HelloK: accOffset, invalidRequest=" + invalidRequest);
164165
invalidRequest = true;
165166
}
166167
}
167168
if (invalidRequest == false) {
168169
if (accSize == 0) {
169-
MainActivity.mCs108Library4a.appendToLog("HelloK: accSize0, invalidRequest=" + invalidRequest);
170+
MainActivity.csLibrary4A.appendToLog("HelloK: accSize0, invalidRequest=" + invalidRequest);
170171
invalidRequest = true;
171172
} else {
172173
if (accSize > accBlockCount) accSizeNow = accBlockCount;
173174
else accSizeNow = accSize;
174-
MainActivity.mCs108Library4a.appendToLog("HelloA: accSize=" + accSize + ", accSizeNow=" + accSizeNow);
175-
if (MainActivity.mCs108Library4a.setAccessCount(accSizeNow) == false) {
175+
MainActivity.csLibrary4A.appendToLog("HelloA: accSize=" + accSize + ", accSizeNow=" + accSizeNow);
176+
if (MainActivity.csLibrary4A.setAccessCount(accSizeNow) == false) {
176177
invalidRequest = true;
177178
}
178179
}
179180
}
180-
if (invalidRequest == false && hostCommand == Cs108Connector.HostCommands.CMD_18K6CWRITE) {
181+
if (invalidRequest == false && hostCommand == Cs108Library4A.HostCommands.CMD_18K6CWRITE) {
181182
if (accWriteData.length() > accSizeNow * 4) accWriteDataNow = accWriteData.substring(0, accSizeNow*4);
182183
else accWriteDataNow = accWriteData;
183-
if (MainActivity.mCs108Library4a.setAccessWriteData(accWriteDataNow) == false) {
184+
if (MainActivity.csLibrary4A.setAccessWriteData(accWriteDataNow) == false) {
184185
invalidRequest = true;
185186
}
186187
}
187-
MainActivity.mCs108Library4a.appendToLog("HelloA: accOffset=" + accOffset + ", accSizeNow=" + accSizeNow + ", accSize=" + accSize);
188-
MainActivity.mCs108Library4a.appendToLog("HelloK: invalidRequest=" + invalidRequest);
188+
MainActivity.csLibrary4A.appendToLog("HelloA: accOffset=" + accOffset + ", accSizeNow=" + accSizeNow + ", accSize=" + accSize);
189+
MainActivity.csLibrary4A.appendToLog("HelloK: invalidRequest=" + invalidRequest);
189190
accessTask = new AccessTask(button, invalidRequest,
190191
selectMask, selectBank, selectOffset,
191192
strPassword, powerLevel, hostCommand, tryCount==tryCountMax, updateRunnable);

app/src/main/java/com/csl/cs108ademoapp/CustomIME.java

Lines changed: 38 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
package com.csl.cs108ademoapp;
22

33
import android.inputmethodservice.InputMethodService;
4+
import android.inputmethodservice.Keyboard;
5+
import android.inputmethodservice.KeyboardView;
46
import android.os.AsyncTask;
57
import android.os.Handler;
68
import android.provider.Settings;
@@ -14,9 +16,8 @@
1416

1517
import static android.content.ContentValues.TAG;
1618

17-
public class CustomIME extends InputMethodService {
19+
public class CustomIME extends InputMethodService { //implements KeyboardView.OnKeyboardActionListener {
1820
Handler mHandler = new Handler();
19-
boolean activittyActive = false;
2021

2122
@Override
2223
public void onCreate() {
@@ -25,10 +26,16 @@ public void onCreate() {
2526
}
2627
@Override
2728
public View onCreateInputView() {
28-
super.onCreateInputView();
29-
appendToLog("CustomIME.onCreateInputView()");
29+
super.onCreateInputView();;
3030
mHandler.post(serviceRunnable);
31-
return null;
31+
KeyboardView keyboardView = null;
32+
if (false) {
33+
keyboardView = (KeyboardView) getLayoutInflater().inflate(R.layout.keyboard_view, null);
34+
Keyboard keyboard = new Keyboard(this, R.xml.number_pad);
35+
keyboardView.setKeyboard(keyboard);
36+
//keyboardView.setOnKeyboardActionListener(this);
37+
}
38+
return keyboardView;
3239
}
3340
@Override
3441
public void onDestroy() {
@@ -49,19 +56,19 @@ public void run() {
4956

5057
mHandler.postDelayed(serviceRunnable, 1000);
5158
if (MainActivity.sharedObjects == null) return;
52-
if (MainActivity.mCs108Library4a == null) return;
59+
if (MainActivity.csLibrary4A == null) return;
5360

5461
if (inventoring == false) { MainActivity.sharedObjects.serviceArrayList.clear(); epcArrayList.clear(); }
5562
if (MainActivity.mContext == null) return;
56-
appendToLog("CustomIME Debug 1");
57-
if (MainActivity.activityActive == false && MainActivity.wedged && MainActivity.mCs108Library4a.isBleConnected()) {
58-
if (MainActivity.mCs108Library4a.getTriggerButtonStatus() == false) {
63+
appendToLog("CustomIME Debug 1 with activityActive = " + MainActivity.activityActive + ", wedged = " + MainActivity.wedged + ", isBleConnected = " + MainActivity.csLibrary4A.isBleConnected());
64+
if (MainActivity.activityActive == false /*&& MainActivity.wedged*/ && MainActivity.csLibrary4A.isBleConnected()) {
65+
if (MainActivity.csLibrary4A.getTriggerButtonStatus() == false) {
5966
appendToLog("CustomIME Debug 2");
6067
startStopHandler();
6168
inventoring = false;
6269
} else if (inventoring == false) {
6370
appendToLog("CustomIME Debug 3");
64-
if (MainActivity.sharedObjects.runningInventoryRfidTask == false && MainActivity.sharedObjects.runningInventoryBarcodeTask == false && MainActivity.mCs108Library4a.mrfidToWriteSize() == 0) {
71+
if (MainActivity.sharedObjects.runningInventoryRfidTask == false && MainActivity.sharedObjects.runningInventoryBarcodeTask == false && MainActivity.csLibrary4A.mrfidToWriteSize() == 0) {
6572
startStopHandler();
6673
inventoring = true;
6774
}
@@ -79,7 +86,25 @@ public void run() {
7986
if (matched == false && strEpc != null) {
8087
epcArrayList.add(strEpc);
8188
InputConnection ic = getCurrentInputConnection();
82-
ic.commitText(strEpc + "\n", 1);
89+
strEpc = (MainActivity.wedgePrefix != null ? MainActivity.wedgePrefix : "") + strEpc
90+
+ (MainActivity.wedgeSuffix != null ? MainActivity.wedgeSuffix : "");
91+
switch (MainActivity.wedgeDelimiter) {
92+
default:
93+
strEpc += "\n";
94+
break;
95+
case 0x09:
96+
strEpc += "\t";
97+
break;
98+
case 0x2C:
99+
strEpc += ",";
100+
break;
101+
case 0x20:
102+
strEpc += " ";
103+
break;
104+
case -1:
105+
break;
106+
}
107+
ic.commitText(strEpc, 1);
83108
}
84109
}
85110
}
@@ -96,10 +121,10 @@ void startStopHandler() {
96121
if (inventoryRfidTask.getStatus() == AsyncTask.Status.RUNNING) started = true;
97122
}
98123
appendToLog("CustomIME Debug 10");
99-
if ((started && MainActivity.mCs108Library4a.getTriggerButtonStatus()) || (started == false && MainActivity.mCs108Library4a.getTriggerButtonStatus() == false)) return;
124+
if ((started && MainActivity.csLibrary4A.getTriggerButtonStatus()) || (started == false && MainActivity.csLibrary4A.getTriggerButtonStatus() == false)) return;
100125
if (started == false) {
101126
appendToLog("CustomIME Debug 11");
102-
MainActivity.mCs108Library4a.startOperation(Cs108Library4A.OperationTypes.TAG_INVENTORY);
127+
MainActivity.csLibrary4A.startOperation(Cs108Library4A.OperationTypes.TAG_INVENTORY);
103128
inventoryRfidTask = new InventoryRfidTask();
104129
inventoryRfidTask.execute();
105130
}

app/src/main/java/com/csl/cs108ademoapp/CustomMediaPlayer.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,11 +24,11 @@ public CustomMediaPlayer(Context context, String file) {
2424
@Override
2525
public void onCompletion(MediaPlayer mp) {
2626
starting = false;
27-
if (DEBUG) MainActivity.mCs108Library4a.appendToLog("MediaPlayer is completed.");
27+
if (DEBUG) MainActivity.csLibrary4A.appendToLog("MediaPlayer is completed.");
2828
}
2929
});
3030
} catch (IOException e) {
31-
MainActivity.mCs108Library4a.appendToLog("mp3 setup FAIL");
31+
MainActivity.csLibrary4A.appendToLog("mp3 setup FAIL");
3232
}
3333
}
3434

@@ -48,7 +48,7 @@ void setVolume(int volume1, int volume2) {
4848
AudioManager audioManager = ((AudioManager) context.getSystemService(Context.AUDIO_SERVICE));
4949
int iVolumeMax = audioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC);
5050
int currentVolume = audioManager.getStreamVolume(AudioManager.STREAM_MUSIC);
51-
MainActivity.mCs108Library4a.appendToLog("Hello8: currentVolume = " + currentVolume);
51+
MainActivity.csLibrary4A.appendToLog("Hello8: currentVolume = " + currentVolume);
5252
if (currentVolume > 0) {
5353
int volume12 = volume1 + volume2;
5454
volume12 = ( volume12 * iVolumeMax ) / 600;

0 commit comments

Comments
 (0)