From 8aab9ff827b4f8e3d8fff5f1db1f23c13f23061b Mon Sep 17 00:00:00 2001 From: OliE Date: Fri, 9 Feb 2018 18:12:01 +0100 Subject: [PATCH] - usage of a save icon - GUI refactored for user settings activity to match with user data entry - tint menu icon color differently --- android_app/app/src/main/AndroidManifest.xml | 3 +- .../gui/activities/DataEntryActivity.java | 80 +++-- .../gui/activities/UserSettingsActivity.java | 295 ++++++++++-------- .../src/main/res/drawable-hdpi/ic_save.png | Bin 0 -> 545 bytes .../src/main/res/drawable-ldpi/ic_save.png | Bin 0 -> 331 bytes .../src/main/res/drawable-mdpi/ic_save.png | Bin 0 -> 380 bytes .../src/main/res/drawable-xhdpi/ic_save.png | Bin 0 -> 613 bytes .../src/main/res/drawable-xxhdpi/ic_save.png | Bin 0 -> 816 bytes .../src/main/res/drawable-xxxhdpi/ic_save.png | Bin 0 -> 1019 bytes .../main/res/layout/activity_dataentry.xml | 31 +- .../main/res/layout/activity_usersettings.xml | 45 +-- .../app/src/main/res/menu/dataentry_menu.xml | 23 +- .../app/src/main/res/menu/userentry_menu.xml | 19 ++ .../app/src/main/res/values/strings.xml | 1 + 14 files changed, 258 insertions(+), 239 deletions(-) create mode 100644 android_app/app/src/main/res/drawable-hdpi/ic_save.png create mode 100644 android_app/app/src/main/res/drawable-ldpi/ic_save.png create mode 100644 android_app/app/src/main/res/drawable-mdpi/ic_save.png create mode 100644 android_app/app/src/main/res/drawable-xhdpi/ic_save.png create mode 100644 android_app/app/src/main/res/drawable-xxhdpi/ic_save.png create mode 100644 android_app/app/src/main/res/drawable-xxxhdpi/ic_save.png create mode 100644 android_app/app/src/main/res/menu/userentry_menu.xml diff --git a/android_app/app/src/main/AndroidManifest.xml b/android_app/app/src/main/AndroidManifest.xml index ed0d27c9..2688f0e8 100644 --- a/android_app/app/src/main/AndroidManifest.xml +++ b/android_app/app/src/main/AndroidManifest.xml @@ -27,8 +27,7 @@ - + diff --git a/android_app/app/src/main/java/com/health/openscale/gui/activities/DataEntryActivity.java b/android_app/app/src/main/java/com/health/openscale/gui/activities/DataEntryActivity.java index e1cd84cd..ef9288eb 100644 --- a/android_app/app/src/main/java/com/health/openscale/gui/activities/DataEntryActivity.java +++ b/android_app/app/src/main/java/com/health/openscale/gui/activities/DataEntryActivity.java @@ -73,9 +73,7 @@ public class DataEntryActivity extends AppCompatActivity { private Button btnLeft; private Button btnRight; - private Button btnCancel; - private Button btnSave; - + private MenuItem saveButton; private MenuItem editButton; private MenuItem expandButton; private MenuItem deleteButton; @@ -130,29 +128,6 @@ public class DataEntryActivity extends AppCompatActivity { btnLeft = (Button) findViewById(R.id.btnLeft); btnRight = (Button) findViewById(R.id.btnRight); - btnCancel = (Button) findViewById(R.id.btnCancel); - btnSave = (Button) findViewById(R.id.btnSave); - - btnCancel.setOnClickListener(new Button.OnClickListener() { - @Override - public void onClick(View v) { - onBackPressed(); - } - }); - btnSave.setOnClickListener(new Button.OnClickListener() { - @Override - public void onClick(View v) { - final boolean isEdit = scaleMeasurement.getId() > 0; - saveScaleData(); - if (isEdit) { - setViewMode(MeasurementView.MeasurementViewMode.VIEW); - } - else { - finish(); - } - } - }); - btnLeft.setVisibility(View.INVISIBLE); btnRight.setVisibility(View.INVISIBLE); @@ -206,18 +181,32 @@ public class DataEntryActivity extends AppCompatActivity { MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.dataentry_menu, menu); - // Apply a white tint to all icons in the toolbar + // Apply a tint to all icons in the toolbar for (int i = 0; i < menu.size(); ++i) { MenuItem item = menu.getItem(i); final Drawable drawable = item.getIcon(); if (drawable == null) { continue; } + final Drawable wrapped = DrawableCompat.wrap(drawable.mutate()); - DrawableCompat.setTint(wrapped, Color.WHITE); + + String menuTitle = item.getTitle().toString(); + + if (menuTitle == getResources().getString(R.string.save)) { + DrawableCompat.setTint(wrapped, Color.parseColor("#FFFFFF")); + } else if (menuTitle == getResources().getString(R.string.edit)) { + DrawableCompat.setTint(wrapped, Color.parseColor("#99CC00")); + } else if (menuTitle == getResources().getString(R.string.toggle_expand)) { + DrawableCompat.setTint(wrapped, Color.parseColor("#FFBB33")); + } else if (menuTitle == getResources().getString(R.string.label_delete)) { + DrawableCompat.setTint(wrapped, Color.parseColor("#FF4444")); + } + item.setIcon(wrapped); } + saveButton = menu.findItem(R.id.saveButton); editButton = menu.findItem(R.id.editButton); expandButton = menu.findItem(R.id.expandButton); deleteButton = menu.findItem(R.id.deleteButton); @@ -236,6 +225,17 @@ public class DataEntryActivity extends AppCompatActivity { @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { + case R.id.saveButton: + final boolean isEdit = scaleMeasurement.getId() > 0; + saveScaleData(); + if (isEdit) { + setViewMode(MeasurementView.MeasurementViewMode.VIEW); + } + else { + finish(); + } + return true; + case R.id.expandButton: SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); final boolean expand = !prefs.getBoolean(PREF_EXPAND, true); @@ -328,7 +328,7 @@ public class DataEntryActivity extends AppCompatActivity { } txtDataNr.setText(DateFormat.getDateTimeInstance( - DateFormat.LONG, DateFormat.SHORT).format(scaleMeasurement.getDateTime())); + DateFormat.LONG, DateFormat.SHORT).format(scaleMeasurement.getDateTime())); } private void setViewMode(MeasurementView.MeasurementViewMode viewMode) { @@ -337,39 +337,35 @@ public class DataEntryActivity extends AppCompatActivity { switch (viewMode) { case VIEW: + saveButton.setVisible(false); editButton.setVisible(true); expandButton.setVisible(true); deleteButton.setVisible(true); - btnCancel.setVisibility(View.GONE); - btnSave.setVisibility(View.GONE); - btnLeft.setVisibility(View.VISIBLE); btnRight.setVisibility(View.VISIBLE); + btnLeft.setEnabled(true); + btnRight.setEnabled(true); dateTimeVisibility = View.GONE; break; case EDIT: + saveButton.setVisible(true); editButton.setVisible(false); expandButton.setVisible(true); deleteButton.setVisible(true); - btnCancel.setVisibility(View.VISIBLE); - btnSave.setVisibility(View.VISIBLE); - btnSave.setText(R.string.label_ok); - - btnLeft.setVisibility(View.GONE); - btnRight.setVisibility(View.GONE); + btnLeft.setVisibility(View.VISIBLE); + btnRight.setVisibility(View.VISIBLE); + btnLeft.setEnabled(false); + btnRight.setEnabled(false); break; case ADD: + saveButton.setVisible(true); editButton.setVisible(false); expandButton.setVisible(false); deleteButton.setVisible(false); - btnCancel.setVisibility(View.VISIBLE); - btnSave.setVisibility(View.VISIBLE); - btnSave.setText(R.string.label_add); - btnLeft.setVisibility(View.GONE); btnRight.setVisibility(View.GONE); break; diff --git a/android_app/app/src/main/java/com/health/openscale/gui/activities/UserSettingsActivity.java b/android_app/app/src/main/java/com/health/openscale/gui/activities/UserSettingsActivity.java index 7592a53e..b345ea3c 100644 --- a/android_app/app/src/main/java/com/health/openscale/gui/activities/UserSettingsActivity.java +++ b/android_app/app/src/main/java/com/health/openscale/gui/activities/UserSettingsActivity.java @@ -15,15 +15,21 @@ */ package com.health.openscale.gui.activities; -import android.app.Activity; import android.app.AlertDialog; import android.app.DatePickerDialog; import android.content.Context; import android.content.DialogInterface; import android.content.Intent; +import android.graphics.Color; +import android.graphics.drawable.Drawable; import android.os.Bundle; +import android.support.v4.graphics.drawable.DrawableCompat; +import android.support.v7.app.AppCompatActivity; +import android.support.v7.widget.Toolbar; +import android.view.Menu; +import android.view.MenuInflater; +import android.view.MenuItem; import android.view.View; -import android.widget.Button; import android.widget.DatePicker; import android.widget.EditText; import android.widget.RadioGroup; @@ -39,7 +45,7 @@ import java.util.Calendar; import java.util.Date; import java.util.List; -public class UserSettingsActivity extends Activity { +public class UserSettingsActivity extends AppCompatActivity { public static String EXTRA_ID = "id"; public static String EXTRA_MODE = "mode"; @@ -58,9 +64,8 @@ public class UserSettingsActivity extends Activity { private RadioGroup radioScaleUnit; private RadioGroup radioGender; - private Button btnOk; - private Button btnCancel; - private Button btnDelete; + private MenuItem saveButton; + private MenuItem deleteButton; private DateFormat dateFormat = DateFormat.getDateInstance(); @@ -72,6 +77,12 @@ public class UserSettingsActivity extends Activity { setContentView(R.layout.activity_usersettings); context = this; + Toolbar toolbar = (Toolbar) findViewById(R.id.userEntryToolbar); + setSupportActionBar(toolbar); + + getSupportActionBar().setDisplayHomeAsUpEnabled(true); + getSupportActionBar().setTitle(getResources().getString(R.string.label_title_user)); + txtUserName = (EditText) findViewById(R.id.txtUserName); txtBodyHeight = (EditText) findViewById(R.id.txtBodyHeight); radioScaleUnit = (RadioGroup) findViewById(R.id.groupScaleUnit); @@ -82,14 +93,6 @@ public class UserSettingsActivity extends Activity { txtBirthday = (EditText) findViewById(R.id.txtBirthday); txtGoalDate = (EditText) findViewById(R.id.txtGoalDate); - btnDelete = (Button) findViewById(R.id.btnDelete); - btnOk = (Button)findViewById(R.id.btnOk); - btnCancel = (Button)findViewById(R.id.btnCancel); - - btnOk.setOnClickListener(new onClickListenerOk()); - btnCancel.setOnClickListener(new onClickListenerCancel()); - btnDelete.setOnClickListener(new onClickListenerDelete()); - Calendar birthdayCal = Calendar.getInstance(); birthdayCal.setTime(birthday); birthdayCal.add(Calendar.YEAR, -20); @@ -126,15 +129,72 @@ public class UserSettingsActivity extends Activity { datePicker.show(); } }); + } + @Override + public boolean onCreateOptionsMenu(Menu menu) { + MenuInflater inflater = getMenuInflater(); + inflater.inflate(R.menu.userentry_menu, menu); + + // Apply a tint to all icons in the toolbar + for (int i = 0; i < menu.size(); ++i) { + MenuItem item = menu.getItem(i); + final Drawable drawable = item.getIcon(); + if (drawable == null) { + continue; + } + + final Drawable wrapped = DrawableCompat.wrap(drawable.mutate()); + + String menuTitle = item.getTitle().toString(); + + if (menuTitle == getResources().getString(R.string.save)) { + DrawableCompat.setTint(wrapped, Color.parseColor("#FFFFFF")); + } else if (menuTitle == getResources().getString(R.string.label_delete)) { + DrawableCompat.setTint(wrapped, Color.parseColor("#FF4444")); + } + + item.setIcon(wrapped); + } + + saveButton = menu.findItem(R.id.saveButton); + deleteButton = menu.findItem(R.id.deleteButton); if (getIntent().getExtras().getInt(EXTRA_MODE) == EDIT_USER_REQUEST) { editMode(); + deleteButton.setVisible(true); } else { - btnOk.setText(getResources().getString(R.string.label_add)); - btnDelete.setVisibility(View.GONE); + deleteButton.setVisible(false); } + + return super.onCreateOptionsMenu(menu); + } + + @Override + public boolean onOptionsItemSelected(MenuItem item) { + switch (item.getItemId()) { + case R.id.saveButton: + if (saveUserData()) { + Intent returnIntent = new Intent(); + setResult(RESULT_OK, returnIntent); + + finish(); + } + return true; + + case R.id.deleteButton: + deleteUser(); + return true; + + // Override the default behaviour in order to return to the correct fragment + // (e.g. the table view) and not always go to the overview. + case android.R.id.home: + onBackPressed(); + return true; + } + + return super.onOptionsItemSelected(item); } private void editMode() @@ -145,6 +205,8 @@ public class UserSettingsActivity extends Activity { ScaleUser scaleUser = openScale.getScaleUser(id); + getSupportActionBar().setTitle(scaleUser.getUserName()); + birthday = scaleUser.getBirthday(); goal_date = scaleUser.getGoalDate(); @@ -232,129 +294,112 @@ public class UserSettingsActivity extends Activity { } }; - private class onClickListenerDelete implements View.OnClickListener { - @Override - public void onClick(View v) { - AlertDialog.Builder deleteAllDialog = new AlertDialog.Builder(v.getContext()); + private void deleteUser() { + AlertDialog.Builder deleteAllDialog = new AlertDialog.Builder(context); - deleteAllDialog.setMessage(getResources().getString(R.string.question_really_delete_user)); + deleteAllDialog.setMessage(getResources().getString(R.string.question_really_delete_user)); - deleteAllDialog.setPositiveButton(getResources().getString(R.string.label_yes), new DialogInterface.OnClickListener() { - public void onClick(DialogInterface dialog, int id) { - int userId = getIntent().getExtras().getInt(EXTRA_ID); + deleteAllDialog.setPositiveButton(getResources().getString(R.string.label_yes), new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int id) { + int userId = getIntent().getExtras().getInt(EXTRA_ID); - OpenScale openScale = OpenScale.getInstance(getApplicationContext()); - openScale.clearScaleData(userId); - openScale.deleteScaleUser(userId); + OpenScale openScale = OpenScale.getInstance(getApplicationContext()); + openScale.clearScaleData(userId); + openScale.deleteScaleUser(userId); - List scaleUser = openScale.getScaleUserList(); + List scaleUser = openScale.getScaleUserList(); - int lastUserId = -1; + int lastUserId = -1; - if (!scaleUser.isEmpty()) { - lastUserId = scaleUser.get(0).getId(); - } - - openScale.selectScaleUser(lastUserId); - openScale.updateScaleData(); - - Intent returnIntent = new Intent(); - setResult(RESULT_OK, returnIntent); - - finish(); + if (!scaleUser.isEmpty()) { + lastUserId = scaleUser.get(0).getId(); } - }); - deleteAllDialog.setNegativeButton(getResources().getString(R.string.label_no), new DialogInterface.OnClickListener() { - public void onClick(DialogInterface dialog, int id) { - dialog.dismiss(); - } - }); + openScale.selectScaleUser(lastUserId); + openScale.updateScaleData(); - deleteAllDialog.show(); - } - } + Intent returnIntent = new Intent(); + setResult(RESULT_OK, returnIntent); - private class onClickListenerOk implements View.OnClickListener { - @Override - public void onClick(View v) { - try { - if (validateInput()) { - OpenScale openScale = OpenScale.getInstance(getApplicationContext()); - - String name = txtUserName.getText().toString(); - int body_height = Integer.valueOf(txtBodyHeight.getText().toString()); - int checkedRadioButtonId = radioScaleUnit.getCheckedRadioButtonId(); - int checkedGenderId = radioGender.getCheckedRadioButtonId(); - float initial_weight = Float.valueOf(txtInitialWeight.getText().toString()); - float goal_weight = Float.valueOf(txtGoalWeight.getText().toString()); - - Converters.WeightUnit scale_unit = Converters.WeightUnit.KG; - - switch (checkedRadioButtonId) { - case R.id.btnRadioKG: - scale_unit = Converters.WeightUnit.KG; - break; - case R.id.btnRadioLB: - scale_unit = Converters.WeightUnit.LB; - break; - case R.id.btnRadioST: - scale_unit = Converters.WeightUnit.ST; - break; - } - - Converters.Gender gender = Converters.Gender.MALE; - - switch (checkedGenderId) { - case R.id.btnRadioMale: - gender = Converters.Gender.MALE; - break; - case R.id.btnRadioWoman: - gender = Converters.Gender.FEMALE; - break; - } - - final ScaleUser scaleUser = new ScaleUser(); - - scaleUser.setUserName(name); - scaleUser.setBirthday(birthday); - scaleUser.setBodyHeight(body_height); - scaleUser.setScaleUnit(scale_unit); - scaleUser.setGender(gender); - scaleUser.setConvertedInitialWeight(initial_weight); - scaleUser.setGoalWeight(goal_weight); - scaleUser.setGoalDate(goal_date); - - if (getIntent().getExtras().getInt(EXTRA_MODE) == EDIT_USER_REQUEST) { - int id = getIntent().getExtras().getInt(EXTRA_ID); - scaleUser.setId(id); - openScale.updateScaleUser(scaleUser); - } else { - int id = openScale.addScaleUser(scaleUser); - scaleUser.setId(id); - } - - openScale.selectScaleUser(scaleUser.getId()); - openScale.updateScaleData(); - - Intent returnIntent = new Intent(); - setResult(RESULT_OK, returnIntent); - - finish(); - } - } catch (NumberFormatException ex) { - Toast.makeText(context, getResources().getString(R.string.error_value_range) + "(" + ex.getMessage() + ")", Toast.LENGTH_SHORT).show(); + finish(); } - } + }); + + deleteAllDialog.setNegativeButton(getResources().getString(R.string.label_no), new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int id) { + dialog.dismiss(); + } + }); + + deleteAllDialog.show(); } - private class onClickListenerCancel implements View.OnClickListener { - @Override - public void onClick(View v) { - Intent returnIntent = new Intent(); - setResult(RESULT_CANCELED, returnIntent); + private boolean saveUserData() { + try { + if (validateInput()) { + OpenScale openScale = OpenScale.getInstance(getApplicationContext()); - finish(); + String name = txtUserName.getText().toString(); + int body_height = Integer.valueOf(txtBodyHeight.getText().toString()); + int checkedRadioButtonId = radioScaleUnit.getCheckedRadioButtonId(); + int checkedGenderId = radioGender.getCheckedRadioButtonId(); + float initial_weight = Float.valueOf(txtInitialWeight.getText().toString()); + float goal_weight = Float.valueOf(txtGoalWeight.getText().toString()); + + Converters.WeightUnit scale_unit = Converters.WeightUnit.KG; + + switch (checkedRadioButtonId) { + case R.id.btnRadioKG: + scale_unit = Converters.WeightUnit.KG; + break; + case R.id.btnRadioLB: + scale_unit = Converters.WeightUnit.LB; + break; + case R.id.btnRadioST: + scale_unit = Converters.WeightUnit.ST; + break; + } + + Converters.Gender gender = Converters.Gender.MALE; + + switch (checkedGenderId) { + case R.id.btnRadioMale: + gender = Converters.Gender.MALE; + break; + case R.id.btnRadioWoman: + gender = Converters.Gender.FEMALE; + break; + } + + final ScaleUser scaleUser = new ScaleUser(); + + scaleUser.setUserName(name); + scaleUser.setBirthday(birthday); + scaleUser.setBodyHeight(body_height); + scaleUser.setScaleUnit(scale_unit); + scaleUser.setGender(gender); + scaleUser.setConvertedInitialWeight(initial_weight); + scaleUser.setGoalWeight(goal_weight); + scaleUser.setGoalDate(goal_date); + + if (getIntent().getExtras().getInt(EXTRA_MODE) == EDIT_USER_REQUEST) { + int id = getIntent().getExtras().getInt(EXTRA_ID); + scaleUser.setId(id); + openScale.updateScaleUser(scaleUser); + } else { + int id = openScale.addScaleUser(scaleUser); + scaleUser.setId(id); + } + + openScale.selectScaleUser(scaleUser.getId()); + openScale.updateScaleData(); + + return true; + } + } catch (NumberFormatException ex) { + Toast.makeText(context, getResources().getString(R.string.error_value_range) + "(" + ex.getMessage() + ")", Toast.LENGTH_SHORT).show(); } + + return false; } } diff --git a/android_app/app/src/main/res/drawable-hdpi/ic_save.png b/android_app/app/src/main/res/drawable-hdpi/ic_save.png new file mode 100644 index 0000000000000000000000000000000000000000..86704cd40963d0dcd1c406abc97c793564c8725a GIT binary patch literal 545 zcmV++0^a?JP)Q$QQAA8V@?4wR>KrNemHO<@y2=OtID zt@l-mV}N!@&bW$xW%jqE7Iph#fX=42A}Rv<#!|OTLwB zQ!LOu91ZvH9tJ>6=ElL@LuH-qBXASv+9_*PSpa zys(eClHy$)UE#1Kpr2EMuWZcW0q6355-nH2FrADqd{@>kVo@a2Nu`n8r~}&|Vn`9%bX) z%KZa&NX zgR+=xGDxv_7RlgGpkz^gE)N66aPO_#jpK1I#iu@@NANFXga z0kDML58^v6EbOcTVkI_ep9el5?{s4nvKlP&fJ~Hj_eP^&YnHz-t%*r zCkxZ~J)qk)j7Xu?vHum{y5z0H8Z2QsZNNTgVSPOQQatB5k-&M8P$KOWxR5gV?Ko$D zLCq$yJD%fy{Cy`r#Iae7CKa`kf+aD6%?a@z_>>TTiUT5{({cSIesv~QDX;+x3GwIH z(WPe2io`@5TP2aWEG6?3uQ8u7zb)}mBymGW-*pHqU>o-3sOc(Ehd?O*O3Y%kNdiO? zN3e)fIMXx%c#O;O{+1>R!1wk}m8a1*Yq1wwix{j9flYW=)L>N#EaPrM{8c}LRw?iW z<3$geS6~k|7TrY5_K>2y0vAIjDU+-M_wcUFMml(zCpoLYOh6-*(9{drUxos8GZd(s z#tZa1jh@i`fx8M`;AUDvFM-1%iMqI@Pk}Zwc-D72*%`yxEQxt;CGG^blb>-J1^)Yk zIEjNenNmAv<)OQDLIfspH0Ae0xT?Ij*sBN;n38^XIFo7!>bKl0FyF_m#3MWKh5l?c~ya|{m z6OF%+4F&3EC{Q;;fx2nD0E7K+m0sI)<5%Dh|4FMTJ4SQw00000NkvXXu0mjffLjcv literal 0 HcmV?d00001 diff --git a/android_app/app/src/main/res/drawable-xxhdpi/ic_save.png b/android_app/app/src/main/res/drawable-xxhdpi/ic_save.png new file mode 100644 index 0000000000000000000000000000000000000000..28ce345c644b093cf65ef13fc920d6e58588fb3b GIT binary patch literal 816 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY1|&n@ZgvM!Y)RhkE)4%caKYZ?lNlJ8o_e}C zhE&XXJ7<5kh@(iu{vWd!lxI0O20BJNZVcq+R_yrSn2@ZzA|aRM;2|&Wi$Q+^HCcS- zCO9-HC9TqEicK=O=%Uid!h2|8=TV;7>X1~Cz zv(<4nW8b8SrIE~DKH?v^Eas_ZI48w0iv=AiWw>2iFF518QD*Z>hS#= z{wfUpteAVKqVwz0o|ipGYrL%kC;xESvd#A2jk*M#vYNgr)+=MZa+oZ5YrZ|!GVtK? zJSn8DWZjs1$nx?Id;aW=I++|6E-Ei|4EBU2T=ag!_(}9t%9}q`s$%K#2B%IHS#P}c z7g}SA$QUw zEftlmyA?WAdVhW7@>Dxv$T^2`-;Y982?oAd3pxt#_(j#-+{7&WMgH-D-9H$GRT7$5 zP8H~jJr~(<@%!t$ZYzS#9K&m}rNWY!Qg1jqpU6-3G0*yB#8LGw+IxeL@P!+Wq7Sw? z$?2A5s$CY?BKjimM6k!2BP>qk0lYhw?3}=6INjWF#RB^ShxbgL&Zun&vA}0S1E-LI zBa@oP0T#{~3P8aLU&E3u6qb3|9J9@zGHcELH-?M;YfYKhxP}pE@xrH{q%GC}4J%^Y zAt@!JmC^a4^Wq}o+3GjEe1HaI#BDNXeBO9h^Zb0Ks>1hvVq(6Iwg=Ys7{(r`J!-n* z@++a&86W>B&9Z*M_d)ji#YU4q4D+I=XZQcE-2<2+dgA+G=K|6p_8KzCmhB zfM77kLH-;O?Le0|NrJ8u9)v4(xpnWoy!UKuk+r$;`)BXI9}pzLac;`QdH#xow)>t%2^emkc;XF125C7)vame*b9yp#S&JCR|=-0h1c zd;7MqN-~!*@Ed*ItMX7|ItypP;n^*ba_pfhw;HEfe*4d|=k!hY$V0IS!K?O(?_hny zR_AloV>8zawz#J^{&N-FSU5jQXj|ZNmevKwR*LqW5>n%J7ka>+&be0Uf%FH9&^Wdi zhdrHEb5tkS^8Ggsa-r+GTa9BZ)qcmLAAc9tWLxjQ?!R1QdR8n`j_WL~>{F>)GH zdeH64d7>;!Ls?3g)7P>G^0q1@s~nh-#_Onjpi}1eem>I)D>K3v;~TrLHLqZYNKQ~( z!5<;G;qQbsT~`A=7*~6{`ZPIBFceDYIWJJcUh!_@UZsb>^nV9G3O;Z=NYFBX!w6{K zL_?r_vq`UVtTysQyxHt{|9ne-WzPDJ7>2&zIRT0%;1(pE<$u9+jj33+@2|rQ7VlPt zwuYxFC$*-TTsUU>V8Q%{BHa>-8T!4kH4V%MnD~=5Weiz=c{TC!zR4&NJyX zugb|opFhd&;OY4-6B5|*Rjp=ghznaSk15bMouWf) zo>A-`aup);B$%!-`ZroK-ttqwyU)?cSond=)SH1^-aP_arW%OL|BL@1dElGY*H-nm z26u~fYlGOEm(G72^6a_HnoaqNoq|pC7+*K)Rz#JrK2kmDXz{5xY<&}+biVk0!#^Nt zFXw)ZsS|pbrZatiC<}26mhi+G;F-!ZSInLF)|Rhk-Qyc?e16J@M6OtK^2L%O%UgSl qpFR)%>3%=Zx1qzm9UP%&;>)xTM?Fq{@(Y-o89ZJ6T-G@yGywpew5sa> literal 0 HcmV?d00001 diff --git a/android_app/app/src/main/res/layout/activity_dataentry.xml b/android_app/app/src/main/res/layout/activity_dataentry.xml index b935682c..1a3f1f64 100644 --- a/android_app/app/src/main/res/layout/activity_dataentry.xml +++ b/android_app/app/src/main/res/layout/activity_dataentry.xml @@ -68,33 +68,4 @@ - - -