diff --git a/app/src/main/java/io/pslab/activity/RoboticArmActivity.java b/app/src/main/java/io/pslab/activity/RoboticArmActivity.java
index 1bb06e6cb..7b7750f5a 100644
--- a/app/src/main/java/io/pslab/activity/RoboticArmActivity.java
+++ b/app/src/main/java/io/pslab/activity/RoboticArmActivity.java
@@ -150,6 +150,11 @@ public void onClick(View v) {
scrollView = findViewById(R.id.horizontal_scroll_view);
servoCSVLogger = new CSVLogger(getResources().getString(R.string.robotic_arm));
+ degreeText1.setText(getResources().getString(R.string.zero) + getResources().getString(R.string.robotic_arm_degree_symbol));
+ degreeText2.setText(getResources().getString(R.string.zero) + getResources().getString(R.string.robotic_arm_degree_symbol));
+ degreeText3.setText(getResources().getString(R.string.zero) + getResources().getString(R.string.robotic_arm_degree_symbol));
+ degreeText4.setText(getResources().getString(R.string.zero) + getResources().getString(R.string.robotic_arm_degree_symbol));
+
LinearLayout.LayoutParams servoControllerParams = new LinearLayout.LayoutParams(screen_width / 4 - 4, screen_height / 2 - 4);
servoControllerParams.setMargins(2, 5, 2, 0);
servo1Layout.setLayoutParams(servoControllerParams);
@@ -173,7 +178,7 @@ public void onClick(View v) {
timeLineBox.setLayoutParams(servoTimeLineBoxParams);
timeLineBox.setPadding(5, 5, 5, 5);
TextView timeText = timeLineBox.findViewById(R.id.timeline_box_time_text);
- timeText.setText(String.valueOf(i + 1));
+ timeText.setText(String.valueOf(i + 1) + getResources().getString(R.string.robotic_arm_second_unit));
timeLineBox.setOnDragListener(servo1DragListener);
servo1TimeLine.addView(timeLineBox, i);
}
@@ -183,7 +188,7 @@ public void onClick(View v) {
timeLineBox.setLayoutParams(servoTimeLineBoxParams);
timeLineBox.setPadding(5, 5, 5, 5);
TextView timeText = timeLineBox.findViewById(R.id.timeline_box_time_text);
- timeText.setText(String.valueOf(i + 1));
+ timeText.setText(String.valueOf(i + 1) + getResources().getString(R.string.robotic_arm_second_unit));
timeLineBox.setOnDragListener(servo2DragListener);
servo2TimeLine.addView(timeLineBox, i);
}
@@ -193,7 +198,7 @@ public void onClick(View v) {
timeLineBox.setLayoutParams(servoTimeLineBoxParams);
timeLineBox.setPadding(5, 5, 5, 5);
TextView timeText = timeLineBox.findViewById(R.id.timeline_box_time_text);
- timeText.setText(String.valueOf(i + 1));
+ timeText.setText(String.valueOf(i + 1) + getResources().getString(R.string.robotic_arm_second_unit));
timeLineBox.setOnDragListener(servo3DragListener);
servo3TimeLine.addView(timeLineBox, i);
}
@@ -203,7 +208,7 @@ public void onClick(View v) {
timeLineBox.setLayoutParams(servoTimeLineBoxParams);
timeLineBox.setPadding(5, 5, 5, 5);
TextView timeText = timeLineBox.findViewById(R.id.timeline_box_time_text);
- timeText.setText(String.valueOf(i + 1));
+ timeText.setText(String.valueOf(i + 1) + getResources().getString(R.string.robotic_arm_second_unit));
timeLineBox.setOnDragListener(servo4DragListener);
servo4TimeLine.addView(timeLineBox, i);
}
@@ -226,10 +231,10 @@ public void onClick(View v) {
@Override
public void onProgressChanged(SeekArc seekArc, int i, boolean b) {
if (editEnter) {
- degreeText1.setText(String.valueOf(degree));
+ degreeText1.setText(String.valueOf(degree) + getResources().getString(R.string.robotic_arm_degree_symbol));
editEnter = false;
} else {
- degreeText1.setText(String.valueOf((int) (i * 3.6)));
+ degreeText1.setText(String.valueOf((int) (i * 3.6)) + getResources().getString(R.string.robotic_arm_degree_symbol));
}
degreeText1.setCursorVisible(false);
}
@@ -249,10 +254,10 @@ public void onStopTrackingTouch(SeekArc seekArc) {
@Override
public void onProgressChanged(SeekArc seekArc, int i, boolean b) {
if (editEnter) {
- degreeText2.setText(String.valueOf(degree));
+ degreeText2.setText(String.valueOf(degree) + getResources().getString(R.string.robotic_arm_degree_symbol));
editEnter = false;
} else {
- degreeText2.setText(String.valueOf((int) (i * 3.6)));
+ degreeText2.setText(String.valueOf((int) (i * 3.6)) + getResources().getString(R.string.robotic_arm_degree_symbol));
}
degreeText2.setCursorVisible(false);
}
@@ -272,10 +277,10 @@ public void onStopTrackingTouch(SeekArc seekArc) {
@Override
public void onProgressChanged(SeekArc seekArc, int i, boolean b) {
if (editEnter) {
- degreeText3.setText(String.valueOf(degree));
+ degreeText3.setText(String.valueOf(degree) + getResources().getString(R.string.robotic_arm_degree_symbol));
editEnter = false;
} else {
- degreeText3.setText(String.valueOf((int) (i * 3.6)));
+ degreeText3.setText(String.valueOf((int) (i * 3.6)) + getResources().getString(R.string.robotic_arm_degree_symbol));
}
degreeText3.setCursorVisible(false);
}
@@ -295,10 +300,10 @@ public void onStopTrackingTouch(SeekArc seekArc) {
@Override
public void onProgressChanged(SeekArc seekArc, int i, boolean b) {
if (editEnter) {
- degreeText4.setText(String.valueOf(degree));
+ degreeText4.setText(String.valueOf(degree) + getResources().getString(R.string.robotic_arm_degree_symbol));
editEnter = false;
} else {
- degreeText4.setText(String.valueOf((int) (i * 3.6)));
+ degreeText4.setText(String.valueOf((int) (i * 3.6)) + getResources().getString(R.string.robotic_arm_degree_symbol));
}
degreeText4.setCursorVisible(false);
}
@@ -357,7 +362,7 @@ public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
if (actionId == EditorInfo.IME_ACTION_DONE) {
degree = Integer.valueOf(degreeText1.getText().toString());
if (degree > 360 || degree < 0) {
- degreeText1.setText(getResources().getString(R.string.zero));
+ degreeText1.setText(getResources().getString(R.string.zero) + getResources().getString(R.string.robotic_arm_degree_symbol));
seekArc1.setProgress(0);
toastInvalidValueMessage();
} else {
@@ -383,7 +388,7 @@ public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
if (actionId == EditorInfo.IME_ACTION_DONE) {
degree = Integer.valueOf(degreeText2.getText().toString());
if (degree > 360 || degree < 0) {
- degreeText2.setText(getResources().getString(R.string.zero));
+ degreeText2.setText(getResources().getString(R.string.zero) + getResources().getString(R.string.robotic_arm_degree_symbol));
seekArc2.setProgress(0);
toastInvalidValueMessage();
} else {
@@ -409,7 +414,7 @@ public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
if (actionId == EditorInfo.IME_ACTION_DONE) {
degree = Integer.valueOf(degreeText3.getText().toString());
if (degree > 360 || degree < 0) {
- degreeText3.setText(getResources().getString(R.string.zero));
+ degreeText3.setText(getResources().getString(R.string.zero) + getResources().getString(R.string.robotic_arm_degree_symbol));
seekArc3.setProgress(0);
toastInvalidValueMessage();
} else {
@@ -435,7 +440,7 @@ public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
if (actionId == EditorInfo.IME_ACTION_DONE) {
degree = Integer.valueOf(degreeText4.getText().toString());
if (degree > 360 || degree < 0) {
- degreeText4.setText(getResources().getString(R.string.zero));
+ degreeText4.setText(getResources().getString(R.string.zero) + getResources().getString(R.string.robotic_arm_degree_symbol));
seekArc4.setProgress(0);
toastInvalidValueMessage();
} else {
@@ -467,13 +472,13 @@ public void onTick(long millisUntilFinished) {
timeIndicatorLayout.setLayoutParams(timeIndicatorParams);
scrollView.smoothScrollBy(screen_width / 6, 0);
String deg1 = ((TextView) servo1TimeLine.getChildAt(timelinePosition).findViewById(R.id.timeline_box_degree_text)).getText().toString();
- deg1 = (deg1.length() > 0) ? deg1 : "0";
+ deg1 = (deg1.length() > 0) ? deg1.substring(0, deg1.length() - 1) : getResources().getString(R.string.zero);
String deg2 = ((TextView) servo2TimeLine.getChildAt(timelinePosition).findViewById(R.id.timeline_box_degree_text)).getText().toString();
- deg2 = (deg2.length() > 0) ? deg2 : "0";
+ deg2 = (deg2.length() > 0) ? deg2.substring(0, deg2.length() - 1) : getResources().getString(R.string.zero);
String deg3 = ((TextView) servo3TimeLine.getChildAt(timelinePosition).findViewById(R.id.timeline_box_degree_text)).getText().toString();
- deg3 = (deg3.length() > 0) ? deg3 : "0";
+ deg3 = (deg3.length() > 0) ? deg3.substring(0, deg3.length() - 1) : getResources().getString(R.string.zero);
String deg4 = ((TextView) servo4TimeLine.getChildAt(timelinePosition).findViewById(R.id.timeline_box_degree_text)).getText().toString();
- deg4 = (deg4.length() > 0) ? deg4 : "0";
+ deg4 = (deg4.length() > 0) ? deg4.substring(0, deg4.length() - 1) : getResources().getString(R.string.zero);
if (scienceLab.isConnected()) {
scienceLab.servo4(Double.valueOf(deg1), Double.valueOf(deg2), Double.valueOf(deg3), Double.valueOf(deg4));
}
@@ -567,10 +572,10 @@ private void setReceivedData() {
ArrayList servoDataList = new ArrayList(recordedServoData);
for (int i = 0; i < servoDataList.size(); i++) {
ServoData servoData = (ServoData) servoDataList.get(i);
- ((TextView) servo1TimeLine.getChildAt(i).findViewById(R.id.timeline_box_degree_text)).setText(servoData.getDegree1());
- ((TextView) servo2TimeLine.getChildAt(i).findViewById(R.id.timeline_box_degree_text)).setText(servoData.getDegree2());
- ((TextView) servo3TimeLine.getChildAt(i).findViewById(R.id.timeline_box_degree_text)).setText(servoData.getDegree3());
- ((TextView) servo4TimeLine.getChildAt(i).findViewById(R.id.timeline_box_degree_text)).setText(servoData.getDegree4());
+ ((TextView) servo1TimeLine.getChildAt(i).findViewById(R.id.timeline_box_degree_text)).setText(servoData.getDegree1() + getResources().getString(R.string.robotic_arm_degree_symbol));
+ ((TextView) servo2TimeLine.getChildAt(i).findViewById(R.id.timeline_box_degree_text)).setText(servoData.getDegree2() + getResources().getString(R.string.robotic_arm_degree_symbol));
+ ((TextView) servo3TimeLine.getChildAt(i).findViewById(R.id.timeline_box_degree_text)).setText(servoData.getDegree3() + getResources().getString(R.string.robotic_arm_degree_symbol));
+ ((TextView) servo4TimeLine.getChildAt(i).findViewById(R.id.timeline_box_degree_text)).setText(servoData.getDegree4() + getResources().getString(R.string.robotic_arm_degree_symbol));
}
}
@@ -585,18 +590,22 @@ private void saveTimeline() {
double lat, lon;
for (int i = 0; i < 60; i++) {
timestamp = System.currentTimeMillis();
- degree1 = degree2 = degree3 = degree4 = "0";
+ degree1 = degree2 = degree3 = degree4 = getResources().getString(R.string.zero);
if (((TextView) servo1TimeLine.getChildAt(i).findViewById(R.id.timeline_box_degree_text)).getText().length() > 0) {
degree1 = ((TextView) servo1TimeLine.getChildAt(i).findViewById(R.id.timeline_box_degree_text)).getText().toString();
+ degree1 = degree1.substring(0, degree1.length() - 1);
}
if (((TextView) servo2TimeLine.getChildAt(i).findViewById(R.id.timeline_box_degree_text)).getText().length() > 0) {
degree2 = ((TextView) servo2TimeLine.getChildAt(i).findViewById(R.id.timeline_box_degree_text)).getText().toString();
+ degree2 = degree2.substring(0, degree2.length() - 1);
}
if (((TextView) servo3TimeLine.getChildAt(i).findViewById(R.id.timeline_box_degree_text)).getText().length() > 0) {
degree3 = ((TextView) servo3TimeLine.getChildAt(i).findViewById(R.id.timeline_box_degree_text)).getText().toString();
+ degree3 = degree3.substring(0, degree3.length() - 1);
}
if (((TextView) servo4TimeLine.getChildAt(i).findViewById(R.id.timeline_box_degree_text)).getText().length() > 0) {
degree4 = ((TextView) servo4TimeLine.getChildAt(i).findViewById(R.id.timeline_box_degree_text)).getText().toString();
+ degree4 = degree4.substring(0, degree4.length() - 1);
}
if (gpsLogger.isGPSEnabled()) {
Location location = gpsLogger.getDeviceLocation();
@@ -638,7 +647,7 @@ public boolean onDrag(View v, DragEvent event) {
View view = (View) event.getLocalState();
TextView text = view.findViewById(R.id.degreeText);
if (view.getId() == R.id.servo_1) {
- ((TextView) v.findViewById(R.id.timeline_box_degree_text)).setText(text.getText());
+ ((TextView) v.findViewById(R.id.timeline_box_degree_text)).setText(text.getText().toString());
}
}
return true;
@@ -651,7 +660,7 @@ public boolean onDrag(View v, DragEvent event) {
View view = (View) event.getLocalState();
TextView text = view.findViewById(R.id.degreeText);
if (view.getId() == R.id.servo_2) {
- ((TextView) v.findViewById(R.id.timeline_box_degree_text)).setText(text.getText());
+ ((TextView) v.findViewById(R.id.timeline_box_degree_text)).setText(text.getText().toString());
}
}
return true;
@@ -664,7 +673,7 @@ public boolean onDrag(View v, DragEvent event) {
View view = (View) event.getLocalState();
TextView text = view.findViewById(R.id.degreeText);
if (view.getId() == R.id.servo_3) {
- ((TextView) v.findViewById(R.id.timeline_box_degree_text)).setText(text.getText());
+ ((TextView) v.findViewById(R.id.timeline_box_degree_text)).setText(text.getText().toString());
}
}
return true;
@@ -677,7 +686,7 @@ public boolean onDrag(View v, DragEvent event) {
View view = (View) event.getLocalState();
TextView text = view.findViewById(R.id.degreeText);
if (view.getId() == R.id.servo_4) {
- ((TextView) v.findViewById(R.id.timeline_box_degree_text)).setText(text.getText());
+ ((TextView) v.findViewById(R.id.timeline_box_degree_text)).setText(text.getText().toString());
}
}
return true;
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 86995d13b..31cac4f98 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -704,6 +704,9 @@
\u2022 The above pin configuration has to be same except for the pin
GND. You can use any of the PSLab device GND pins.\n
+ s
+ \u00B0
+
High Limit
Update Period
Max (Lx)