1
0
mirror of https://github.com/oliexdev/openScale.git synced 2025-08-24 09:13:04 +02:00

- usage of a save icon

- GUI refactored for user settings activity to match with user data entry
- tint menu icon color differently
This commit is contained in:
OliE
2018-02-09 18:12:01 +01:00
parent 22e11a42cb
commit 8aab9ff827
14 changed files with 258 additions and 239 deletions

View File

@@ -27,8 +27,7 @@
</activity> </activity>
<activity android:name=".gui.activities.SettingsActivity"/> <activity android:name=".gui.activities.SettingsActivity"/>
<activity android:name=".gui.activities.DataEntryActivity"/> <activity android:name=".gui.activities.DataEntryActivity"/>
<activity android:name=".gui.activities.UserSettingsActivity" android:theme="@android:style/Theme.Holo.Dialog" <activity android:name=".gui.activities.UserSettingsActivity"/>
android:label="@string/label_title_user"/>
<receiver android:name=".core.alarm.ReminderBootReceiver" android:enabled="false"> <receiver android:name=".core.alarm.ReminderBootReceiver" android:enabled="false">
<intent-filter> <intent-filter>

View File

@@ -73,9 +73,7 @@ public class DataEntryActivity extends AppCompatActivity {
private Button btnLeft; private Button btnLeft;
private Button btnRight; private Button btnRight;
private Button btnCancel; private MenuItem saveButton;
private Button btnSave;
private MenuItem editButton; private MenuItem editButton;
private MenuItem expandButton; private MenuItem expandButton;
private MenuItem deleteButton; private MenuItem deleteButton;
@@ -130,29 +128,6 @@ public class DataEntryActivity extends AppCompatActivity {
btnLeft = (Button) findViewById(R.id.btnLeft); btnLeft = (Button) findViewById(R.id.btnLeft);
btnRight = (Button) findViewById(R.id.btnRight); 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); btnLeft.setVisibility(View.INVISIBLE);
btnRight.setVisibility(View.INVISIBLE); btnRight.setVisibility(View.INVISIBLE);
@@ -206,18 +181,32 @@ public class DataEntryActivity extends AppCompatActivity {
MenuInflater inflater = getMenuInflater(); MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.dataentry_menu, menu); 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) { for (int i = 0; i < menu.size(); ++i) {
MenuItem item = menu.getItem(i); MenuItem item = menu.getItem(i);
final Drawable drawable = item.getIcon(); final Drawable drawable = item.getIcon();
if (drawable == null) { if (drawable == null) {
continue; continue;
} }
final Drawable wrapped = DrawableCompat.wrap(drawable.mutate()); 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); item.setIcon(wrapped);
} }
saveButton = menu.findItem(R.id.saveButton);
editButton = menu.findItem(R.id.editButton); editButton = menu.findItem(R.id.editButton);
expandButton = menu.findItem(R.id.expandButton); expandButton = menu.findItem(R.id.expandButton);
deleteButton = menu.findItem(R.id.deleteButton); deleteButton = menu.findItem(R.id.deleteButton);
@@ -236,6 +225,17 @@ public class DataEntryActivity extends AppCompatActivity {
@Override @Override
public boolean onOptionsItemSelected(MenuItem item) { public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) { 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: case R.id.expandButton:
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
final boolean expand = !prefs.getBoolean(PREF_EXPAND, true); final boolean expand = !prefs.getBoolean(PREF_EXPAND, true);
@@ -337,39 +337,35 @@ public class DataEntryActivity extends AppCompatActivity {
switch (viewMode) { switch (viewMode) {
case VIEW: case VIEW:
saveButton.setVisible(false);
editButton.setVisible(true); editButton.setVisible(true);
expandButton.setVisible(true); expandButton.setVisible(true);
deleteButton.setVisible(true); deleteButton.setVisible(true);
btnCancel.setVisibility(View.GONE);
btnSave.setVisibility(View.GONE);
btnLeft.setVisibility(View.VISIBLE); btnLeft.setVisibility(View.VISIBLE);
btnRight.setVisibility(View.VISIBLE); btnRight.setVisibility(View.VISIBLE);
btnLeft.setEnabled(true);
btnRight.setEnabled(true);
dateTimeVisibility = View.GONE; dateTimeVisibility = View.GONE;
break; break;
case EDIT: case EDIT:
saveButton.setVisible(true);
editButton.setVisible(false); editButton.setVisible(false);
expandButton.setVisible(true); expandButton.setVisible(true);
deleteButton.setVisible(true); deleteButton.setVisible(true);
btnCancel.setVisibility(View.VISIBLE); btnLeft.setVisibility(View.VISIBLE);
btnSave.setVisibility(View.VISIBLE); btnRight.setVisibility(View.VISIBLE);
btnSave.setText(R.string.label_ok); btnLeft.setEnabled(false);
btnRight.setEnabled(false);
btnLeft.setVisibility(View.GONE);
btnRight.setVisibility(View.GONE);
break; break;
case ADD: case ADD:
saveButton.setVisible(true);
editButton.setVisible(false); editButton.setVisible(false);
expandButton.setVisible(false); expandButton.setVisible(false);
deleteButton.setVisible(false); deleteButton.setVisible(false);
btnCancel.setVisibility(View.VISIBLE);
btnSave.setVisibility(View.VISIBLE);
btnSave.setText(R.string.label_add);
btnLeft.setVisibility(View.GONE); btnLeft.setVisibility(View.GONE);
btnRight.setVisibility(View.GONE); btnRight.setVisibility(View.GONE);
break; break;

View File

@@ -15,15 +15,21 @@
*/ */
package com.health.openscale.gui.activities; package com.health.openscale.gui.activities;
import android.app.Activity;
import android.app.AlertDialog; import android.app.AlertDialog;
import android.app.DatePickerDialog; import android.app.DatePickerDialog;
import android.content.Context; import android.content.Context;
import android.content.DialogInterface; import android.content.DialogInterface;
import android.content.Intent; import android.content.Intent;
import android.graphics.Color;
import android.graphics.drawable.Drawable;
import android.os.Bundle; 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.view.View;
import android.widget.Button;
import android.widget.DatePicker; import android.widget.DatePicker;
import android.widget.EditText; import android.widget.EditText;
import android.widget.RadioGroup; import android.widget.RadioGroup;
@@ -39,7 +45,7 @@ import java.util.Calendar;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
public class UserSettingsActivity extends Activity { public class UserSettingsActivity extends AppCompatActivity {
public static String EXTRA_ID = "id"; public static String EXTRA_ID = "id";
public static String EXTRA_MODE = "mode"; public static String EXTRA_MODE = "mode";
@@ -58,9 +64,8 @@ public class UserSettingsActivity extends Activity {
private RadioGroup radioScaleUnit; private RadioGroup radioScaleUnit;
private RadioGroup radioGender; private RadioGroup radioGender;
private Button btnOk; private MenuItem saveButton;
private Button btnCancel; private MenuItem deleteButton;
private Button btnDelete;
private DateFormat dateFormat = DateFormat.getDateInstance(); private DateFormat dateFormat = DateFormat.getDateInstance();
@@ -72,6 +77,12 @@ public class UserSettingsActivity extends Activity {
setContentView(R.layout.activity_usersettings); setContentView(R.layout.activity_usersettings);
context = this; 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); txtUserName = (EditText) findViewById(R.id.txtUserName);
txtBodyHeight = (EditText) findViewById(R.id.txtBodyHeight); txtBodyHeight = (EditText) findViewById(R.id.txtBodyHeight);
radioScaleUnit = (RadioGroup) findViewById(R.id.groupScaleUnit); radioScaleUnit = (RadioGroup) findViewById(R.id.groupScaleUnit);
@@ -82,14 +93,6 @@ public class UserSettingsActivity extends Activity {
txtBirthday = (EditText) findViewById(R.id.txtBirthday); txtBirthday = (EditText) findViewById(R.id.txtBirthday);
txtGoalDate = (EditText) findViewById(R.id.txtGoalDate); 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(); Calendar birthdayCal = Calendar.getInstance();
birthdayCal.setTime(birthday); birthdayCal.setTime(birthday);
birthdayCal.add(Calendar.YEAR, -20); birthdayCal.add(Calendar.YEAR, -20);
@@ -126,15 +129,72 @@ public class UserSettingsActivity extends Activity {
datePicker.show(); 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) { if (getIntent().getExtras().getInt(EXTRA_MODE) == EDIT_USER_REQUEST) {
editMode(); editMode();
deleteButton.setVisible(true);
} }
else { else {
btnOk.setText(getResources().getString(R.string.label_add)); deleteButton.setVisible(false);
btnDelete.setVisibility(View.GONE);
} }
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() private void editMode()
@@ -145,6 +205,8 @@ public class UserSettingsActivity extends Activity {
ScaleUser scaleUser = openScale.getScaleUser(id); ScaleUser scaleUser = openScale.getScaleUser(id);
getSupportActionBar().setTitle(scaleUser.getUserName());
birthday = scaleUser.getBirthday(); birthday = scaleUser.getBirthday();
goal_date = scaleUser.getGoalDate(); goal_date = scaleUser.getGoalDate();
@@ -232,10 +294,8 @@ public class UserSettingsActivity extends Activity {
} }
}; };
private class onClickListenerDelete implements View.OnClickListener { private void deleteUser() {
@Override AlertDialog.Builder deleteAllDialog = new AlertDialog.Builder(context);
public void onClick(View v) {
AlertDialog.Builder deleteAllDialog = new AlertDialog.Builder(v.getContext());
deleteAllDialog.setMessage(getResources().getString(R.string.question_really_delete_user)); deleteAllDialog.setMessage(getResources().getString(R.string.question_really_delete_user));
@@ -273,11 +333,8 @@ public class UserSettingsActivity extends Activity {
deleteAllDialog.show(); deleteAllDialog.show();
} }
}
private class onClickListenerOk implements View.OnClickListener { private boolean saveUserData() {
@Override
public void onClick(View v) {
try { try {
if (validateInput()) { if (validateInput()) {
OpenScale openScale = OpenScale.getInstance(getApplicationContext()); OpenScale openScale = OpenScale.getInstance(getApplicationContext());
@@ -337,24 +394,12 @@ public class UserSettingsActivity extends Activity {
openScale.selectScaleUser(scaleUser.getId()); openScale.selectScaleUser(scaleUser.getId());
openScale.updateScaleData(); openScale.updateScaleData();
Intent returnIntent = new Intent(); return true;
setResult(RESULT_OK, returnIntent);
finish();
} }
} catch (NumberFormatException ex) { } catch (NumberFormatException ex) {
Toast.makeText(context, getResources().getString(R.string.error_value_range) + "(" + ex.getMessage() + ")", Toast.LENGTH_SHORT).show(); Toast.makeText(context, getResources().getString(R.string.error_value_range) + "(" + ex.getMessage() + ")", Toast.LENGTH_SHORT).show();
} }
}
}
private class onClickListenerCancel implements View.OnClickListener { return false;
@Override
public void onClick(View v) {
Intent returnIntent = new Intent();
setResult(RESULT_CANCELED, returnIntent);
finish();
}
} }
} }

Binary file not shown.

After

Width:  |  Height:  |  Size: 545 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 331 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 380 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 613 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 816 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1019 B

View File

@@ -68,33 +68,4 @@
</ScrollView> </ScrollView>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="5dp">
<Button
android:id="@+id/btnCancel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="5"
android:background="@drawable/flat_selector"
android:text="@string/label_cancel"
android:textColor="@android:color/white" />
<Space
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_weight="0.5" />
<Button
android:id="@+id/btnSave"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="5"
android:background="@drawable/flat_selector"
android:text="@string/label_add"
android:textColor="@android:color/white" />
</LinearLayout>
</LinearLayout> </LinearLayout>

View File

@@ -1,9 +1,18 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:orientation="vertical" android:orientation="vertical">
android:padding="5dp" >
<android.support.v7.widget.Toolbar
android:id="@+id/userEntryToolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
android:elevation="4dp"
app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/>
<ScrollView <ScrollView
android:layout_width="wrap_content" android:layout_width="wrap_content"
@@ -226,39 +235,7 @@
android:inputType="date" /> android:inputType="date" />
</TableRow> </TableRow>
</TableLayout> </TableLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<Button
android:id="@+id/btnCancel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="5"
android:background="@drawable/flat_selector"
android:text="@string/label_cancel"
android:layout_marginRight="10dp" />
<Button
android:id="@+id/btnDelete"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="5"
android:background="@drawable/flat_selector"
android:text="@string/label_delete"
android:layout_marginRight="10dp" />
<Button
android:id="@+id/btnOk"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="5"
android:background="@drawable/flat_selector"
android:text="@string/label_ok" />
</LinearLayout>
</LinearLayout> </LinearLayout>
</ScrollView> </ScrollView>

View File

@@ -3,19 +3,30 @@
xmlns:android="http://schemas.android.com/apk/res/android"> xmlns:android="http://schemas.android.com/apk/res/android">
<item <item
android:id="@+id/editButton" android:id="@+id/deleteButton"
android:title="@string/edit" android:title="@string/label_delete"
android:icon="@drawable/ic_editable" android:icon="@drawable/ic_delete"
android:iconTint="#FF4444"
app:showAsAction="ifRoom" /> app:showAsAction="ifRoom" />
<item <item
android:id="@+id/expandButton" android:id="@+id/expandButton"
android:title="@string/toggle_expand" android:title="@string/toggle_expand"
android:icon="@drawable/ic_expand" android:icon="@drawable/ic_expand"
android:iconTint="#FFBB33"
app:showAsAction="ifRoom" /> app:showAsAction="ifRoom" />
<item <item
android:id="@+id/deleteButton" android:id="@+id/saveButton"
android:title="@string/label_delete" android:title="@string/save"
android:icon="@drawable/ic_delete" android:icon="@drawable/ic_save"
android:iconTint="#FFFFFF"
app:showAsAction="always" />
<item
android:id="@+id/editButton"
android:title="@string/edit"
android:icon="@drawable/ic_editable"
android:iconTint="#99CC00"
app:showAsAction="ifRoom" /> app:showAsAction="ifRoom" />
</menu> </menu>

View File

@@ -0,0 +1,19 @@
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/deleteButton"
android:title="@string/label_delete"
android:icon="@drawable/ic_delete"
android:iconTint="#FF4444"
app:showAsAction="ifRoom" />
<item
android:id="@+id/saveButton"
android:title="@string/save"
android:icon="@drawable/ic_save"
android:iconTint="#FFFFFF"
app:showAsAction="always" />
</menu>

View File

@@ -214,5 +214,6 @@
<string name="customactivityoncrash_error_activity_error_details_clipboard_label">Error information</string> <string name="customactivityoncrash_error_activity_error_details_clipboard_label">Error information</string>
<string name="toggle_expand">Toggle expand</string> <string name="toggle_expand">Toggle expand</string>
<string name="edit">Edit</string> <string name="edit">Edit</string>
<string name="save">Save</string>
</resources> </resources>