diff --git a/res/drawable-hdpi/ic_content_save.png b/res/drawable-hdpi/ic_content_save.png
new file mode 100644
index 0000000..306d55a
Binary files /dev/null and b/res/drawable-hdpi/ic_content_save.png differ
diff --git a/res/drawable-mdpi/ic_content_save.png b/res/drawable-mdpi/ic_content_save.png
new file mode 100644
index 0000000..ad07695
Binary files /dev/null and b/res/drawable-mdpi/ic_content_save.png differ
diff --git a/res/drawable-xhdpi/ic_content_save.png b/res/drawable-xhdpi/ic_content_save.png
new file mode 100644
index 0000000..2720602
Binary files /dev/null and b/res/drawable-xhdpi/ic_content_save.png differ
diff --git a/res/layout/fragment_set_password.xml b/res/layout/fragment_set_password.xml
index fdaaf63..ac5389d 100644
--- a/res/layout/fragment_set_password.xml
+++ b/res/layout/fragment_set_password.xml
@@ -7,64 +7,37 @@
android:paddingRight="10dp"
android:paddingTop="10dp" >
-
-
-
-
-
-
-
-
-
-
-
-
+ android:textColor="@color/error_color" />
\ No newline at end of file
diff --git a/res/menu/set_password.xml b/res/menu/set_password.xml
new file mode 100644
index 0000000..c6e9c6f
--- /dev/null
+++ b/res/menu/set_password.xml
@@ -0,0 +1,11 @@
+
+
\ No newline at end of file
diff --git a/res/values/strings.xml b/res/values/strings.xml
index c945aa5..ad41744 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -55,9 +55,9 @@
I2CP port
Change password
- Old password:
- New password:
- Confirm new password:
+ Old password
+ New password
+ Confirm new password
Password changed successfully
Identities
diff --git a/src/i2p/bote/config/SetPasswordFragment.java b/src/i2p/bote/config/SetPasswordFragment.java
index 2ed43ff..25eaec7 100644
--- a/src/i2p/bote/config/SetPasswordFragment.java
+++ b/src/i2p/bote/config/SetPasswordFragment.java
@@ -12,10 +12,12 @@ import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.view.LayoutInflater;
+import android.view.Menu;
+import android.view.MenuInflater;
+import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.view.inputmethod.InputMethodManager;
-import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
@@ -50,12 +52,16 @@ public class SetPasswordFragment extends Fragment {
static final String PASSWORD_WAITER_TAG = "passwordWaiterTask";
private FragmentManager mFM;
- Button mSubmit;
+ MenuItem mSave;
+ EditText mOldField;
+ EditText mNewField;
+ EditText mConfirmField;
TextView mError;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
+ setHasOptionsMenu(true);
mFM = getFragmentManager();
PasswordWaiterFrag f = (PasswordWaiterFrag) mFM.findFragmentByTag(PASSWORD_WAITER_TAG);
@@ -73,39 +79,48 @@ public class SetPasswordFragment extends Fragment {
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
- final EditText oldField = (EditText) view.findViewById(R.id.password_old);
- final EditText newField = (EditText) view.findViewById(R.id.password_new);
- final EditText confirmField = (EditText) view.findViewById(R.id.password_confirm);
- mSubmit = (Button) view.findViewById(R.id.submit_password);
+ mOldField = (EditText) view.findViewById(R.id.password_old);
+ mNewField = (EditText) view.findViewById(R.id.password_new);
+ mConfirmField = (EditText) view.findViewById(R.id.password_confirm);
mError = (TextView) view.findViewById(R.id.error);
+ }
- // If task is running, disable the submit button.
+ @Override
+ public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
+ inflater.inflate(R.menu.set_password, menu);
+ mSave = menu.findItem(R.id.action_set_password);
+
+ // If task is running, disable the save button.
PasswordWaiterFrag f = (PasswordWaiterFrag) mFM.findFragmentByTag(PASSWORD_WAITER_TAG);
- if (f != null) {
- mSubmit.setEnabled(false);
+ if (f != null)
+ mSave.setVisible(false);
+ }
+
+ @Override
+ public boolean onOptionsItemSelected(MenuItem item) {
+ switch (item.getItemId()) {
+ case R.id.action_set_password:
+ String oldPassword = mOldField.getText().toString();
+ String newPassword = mNewField.getText().toString();
+ String confirmNewPassword = mConfirmField.getText().toString();
+
+ InputMethodManager imm = (InputMethodManager)getActivity().getSystemService(Context.INPUT_METHOD_SERVICE);
+ imm.hideSoftInputFromWindow(mNewField.getWindowToken(), 0);
+
+ mSave.setVisible(false);
+ mError.setText("");
+
+ PasswordWaiterFrag f = PasswordWaiterFrag.newInstance(oldPassword, newPassword, confirmNewPassword);
+ f.setTask(new PasswordWaiter());
+ f.setTargetFragment(SetPasswordFragment.this, PASSWORD_WAITER);
+ mFM.beginTransaction()
+ .replace(R.id.password_waiter_frag, f, PASSWORD_WAITER_TAG)
+ .commit();
+ return true;
+
+ default:
+ return super.onOptionsItemSelected(item);
}
-
- mSubmit.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- String oldPassword = oldField.getText().toString();
- String newPassword = newField.getText().toString();
- String confirmNewPassword = confirmField.getText().toString();
-
- InputMethodManager imm = (InputMethodManager)getActivity().getSystemService(Context.INPUT_METHOD_SERVICE);
- imm.hideSoftInputFromWindow(newField.getWindowToken(), 0);
-
- mSubmit.setEnabled(false);
- mError.setText("");
-
- PasswordWaiterFrag f = PasswordWaiterFrag.newInstance(oldPassword, newPassword, confirmNewPassword);
- f.setTask(new PasswordWaiter());
- f.setTargetFragment(SetPasswordFragment.this, PASSWORD_WAITER);
- mFM.beginTransaction()
- .replace(R.id.password_waiter_frag, f, PASSWORD_WAITER_TAG)
- .commit();
- }
- });
}
@Override
@@ -114,7 +129,7 @@ public class SetPasswordFragment extends Fragment {
if (resultCode == Activity.RESULT_OK) {
mCallbacks.onTaskFinished();
} else if (resultCode == Activity.RESULT_CANCELED) {
- mSubmit.setEnabled(true);
+ mSave.setVisible(true);
mError.setText(data.getStringExtra("error"));
}
}