Skip to content

Commit 01d6ed0

Browse files
fix: crash in robotic arm activity (#2652)
Co-authored-by: Marc Nause <marc.nause@audioattack.de>
1 parent d2bd01f commit 01d6ed0

File tree

1 file changed

+44
-4
lines changed

1 file changed

+44
-4
lines changed

app/src/main/java/io/pslab/activity/RoboticArmActivity.java

Lines changed: 44 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -354,8 +354,18 @@ public boolean onLongClick(View v) {
354354
@Override
355355
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
356356
removeStatusBar();
357+
int previousDegree = degree;
357358
if (actionId == EditorInfo.IME_ACTION_DONE) {
358-
degree = Integer.valueOf(degreeText1.getText().toString());
359+
String degreeText = degreeText1.getText().toString().trim();
360+
if (degreeText.isEmpty()) {
361+
if (degree == 0) {
362+
degree = (int) (seekArc1.getProgress() * 3.6);
363+
} else {
364+
degree = previousDegree;
365+
}
366+
} else {
367+
degree = Integer.parseInt(degreeText1.getText().toString());
368+
}
359369
if (degree > 360 || degree < 0) {
360370
degreeText1.setText(getResources().getString(R.string.zero));
361371
seekArc1.setProgress(0);
@@ -380,8 +390,18 @@ public void onClick(View v) {
380390
@Override
381391
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
382392
removeStatusBar();
393+
int previousDegree = degree;
383394
if (actionId == EditorInfo.IME_ACTION_DONE) {
384-
degree = Integer.valueOf(degreeText2.getText().toString());
395+
String degreeText = degreeText2.getText().toString().trim();
396+
if (degreeText.isEmpty()) {
397+
if (degree == 0) {
398+
degree = (int) (seekArc2.getProgress() * 3.6);
399+
} else {
400+
degree = previousDegree;
401+
}
402+
} else {
403+
degree = Integer.parseInt(degreeText2.getText().toString());
404+
}
385405
if (degree > 360 || degree < 0) {
386406
degreeText2.setText(getResources().getString(R.string.zero));
387407
seekArc2.setProgress(0);
@@ -406,8 +426,18 @@ public void onClick(View v) {
406426
@Override
407427
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
408428
removeStatusBar();
429+
int previousDegree = degree;
409430
if (actionId == EditorInfo.IME_ACTION_DONE) {
410-
degree = Integer.parseInt(degreeText3.getText().toString());
431+
String degreeText = degreeText3.getText().toString().trim();
432+
if (degreeText.isEmpty()) {
433+
if (degree == 0) {
434+
degree = (int) (seekArc3.getProgress() * 3.6);
435+
} else {
436+
degree = previousDegree;
437+
}
438+
} else {
439+
degree = Integer.parseInt(degreeText3.getText().toString());
440+
}
411441
if (degree > 360 || degree < 0) {
412442
degreeText3.setText(getResources().getString(R.string.zero));
413443
seekArc3.setProgress(0);
@@ -432,8 +462,18 @@ public void onClick(View v) {
432462
@Override
433463
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
434464
removeStatusBar();
465+
int previousDegree = degree;
435466
if (actionId == EditorInfo.IME_ACTION_DONE) {
436-
degree = Integer.valueOf(degreeText4.getText().toString());
467+
String degreeText = degreeText4.getText().toString().trim();
468+
if (degreeText.isEmpty()) {
469+
if (degree == 0) {
470+
degree = (int) (seekArc4.getProgress() * 3.6);
471+
} else {
472+
degree = previousDegree;
473+
}
474+
} else {
475+
degree = Integer.parseInt(degreeText4.getText().toString());
476+
}
437477
if (degree > 360 || degree < 0) {
438478
degreeText4.setText(getResources().getString(R.string.zero));
439479
seekArc4.setProgress(0);

0 commit comments

Comments
 (0)