@@ -354,26 +354,8 @@ public boolean onLongClick(View v) {
354354 @ Override
355355 public boolean onEditorAction (TextView v , int actionId , KeyEvent event ) {
356356 removeStatusBar ();
357- int previousDegree = degree ;
358357 if (actionId == EditorInfo .IME_ACTION_DONE ) {
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- }
369- if (degree > 360 || degree < 0 ) {
370- degreeText1 .setText (getResources ().getString (R .string .zero ));
371- seekArc1 .setProgress (0 );
372- toastInvalidValueMessage ();
373- } else {
374- seekArc1 .setProgress ((int ) (degree / 3.6 ));
375- editEnter = true ;
376- }
358+ processDegreeInput (degreeText1 , seekArc1 );
377359 }
378360 return false ;
379361 }
@@ -390,26 +372,8 @@ public void onClick(View v) {
390372 @ Override
391373 public boolean onEditorAction (TextView v , int actionId , KeyEvent event ) {
392374 removeStatusBar ();
393- int previousDegree = degree ;
394375 if (actionId == EditorInfo .IME_ACTION_DONE ) {
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- }
405- if (degree > 360 || degree < 0 ) {
406- degreeText2 .setText (getResources ().getString (R .string .zero ));
407- seekArc2 .setProgress (0 );
408- toastInvalidValueMessage ();
409- } else {
410- seekArc2 .setProgress ((int ) (degree / 3.6 ));
411- editEnter = true ;
412- }
376+ processDegreeInput (degreeText2 , seekArc2 );
413377 }
414378 return false ;
415379 }
@@ -426,26 +390,8 @@ public void onClick(View v) {
426390 @ Override
427391 public boolean onEditorAction (TextView v , int actionId , KeyEvent event ) {
428392 removeStatusBar ();
429- int previousDegree = degree ;
430393 if (actionId == EditorInfo .IME_ACTION_DONE ) {
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- }
441- if (degree > 360 || degree < 0 ) {
442- degreeText3 .setText (getResources ().getString (R .string .zero ));
443- seekArc3 .setProgress (0 );
444- toastInvalidValueMessage ();
445- } else {
446- seekArc3 .setProgress ((int ) (degree / 3.6 ));
447- editEnter = true ;
448- }
394+ processDegreeInput (degreeText3 , seekArc3 );
449395 }
450396 return false ;
451397 }
@@ -462,26 +408,8 @@ public void onClick(View v) {
462408 @ Override
463409 public boolean onEditorAction (TextView v , int actionId , KeyEvent event ) {
464410 removeStatusBar ();
465- int previousDegree = degree ;
466411 if (actionId == EditorInfo .IME_ACTION_DONE ) {
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- }
477- if (degree > 360 || degree < 0 ) {
478- degreeText4 .setText (getResources ().getString (R .string .zero ));
479- seekArc4 .setProgress (0 );
480- toastInvalidValueMessage ();
481- } else {
482- seekArc4 .setProgress ((int ) (degree / 3.6 ));
483- editEnter = true ;
484- }
412+ processDegreeInput (degreeText4 , seekArc4 );
485413 }
486414 return false ;
487415 }
@@ -550,6 +478,33 @@ private void setReceivedData() {
550478 ((TextView ) servo4TimeLine .getChildAt (i ).findViewById (R .id .timeline_box_degree_text )).setText (servoData .getDegree4 () + getResources ().getString (R .string .robotic_arm_degree_symbol ));
551479 }
552480 }
481+ private void processDegreeInput (EditText degreeText , SeekArc seekArc ) {
482+ int previousDegree = degree ;
483+ String degreeStr = degreeText .getText ().toString ().trim ();
484+
485+ if (degreeStr .isEmpty ()) {
486+ degree = (degree == 0 ) ? (int ) (seekArc .getProgress () * 3.6 ) : previousDegree ;
487+ } else {
488+ try {
489+ degree = Integer .parseInt (degreeStr );
490+ } catch (NumberFormatException e ) {
491+ degreeText .setText (getResources ().getString (R .string .zero ));
492+ seekArc .setProgress (0 );
493+ toastInvalidValueMessage ();
494+ return ;
495+ }
496+ }
497+
498+ if (degree > 360 || degree < 0 ) {
499+ degreeText .setText (getResources ().getString (R .string .zero ));
500+ seekArc .setProgress (0 );
501+ toastInvalidValueMessage ();
502+ } else {
503+ seekArc .setProgress ((int ) (degree / 3.6 ));
504+ editEnter = true ;
505+ }
506+ }
507+
553508
554509 private void saveTimeline () {
555510 long block = System .currentTimeMillis ();
0 commit comments