Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/acomminos/Plumble.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Comminos <andrew@comminos.com>2016-01-16 08:30:58 +0300
committerAndrew Comminos <andrew@comminos.com>2016-01-16 08:30:58 +0300
commit704cc8367bf0ed6554e7a5b8821d8fea2610dff7 (patch)
treea2bc745d4dfdd237f810e48e97b84ff1f084c11a
parentd4c880a140811779c0b171fb2ff75c589f6f1ad5 (diff)
Prompt for server password on reject.
-rw-r--r--app/src/main/java/com/morlunk/mumbleclient/app/PlumbleActivity.java33
1 files changed, 33 insertions, 0 deletions
diff --git a/app/src/main/java/com/morlunk/mumbleclient/app/PlumbleActivity.java b/app/src/main/java/com/morlunk/mumbleclient/app/PlumbleActivity.java
index 938bd4f..acab493 100644
--- a/app/src/main/java/com/morlunk/mumbleclient/app/PlumbleActivity.java
+++ b/app/src/main/java/com/morlunk/mumbleclient/app/PlumbleActivity.java
@@ -39,6 +39,7 @@ import android.support.v4.app.FragmentTransaction;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.ActionBarActivity;
import android.support.v7.app.ActionBarDrawerToggle;
+import android.text.InputType;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.MenuItem;
@@ -52,6 +53,7 @@ import android.widget.Toast;
import com.morlunk.jumble.IJumbleService;
import com.morlunk.jumble.JumbleService;
import com.morlunk.jumble.model.Server;
+import com.morlunk.jumble.protobuf.Mumble;
import com.morlunk.jumble.util.JumbleException;
import com.morlunk.jumble.util.JumbleObserver;
import com.morlunk.jumble.util.MumbleURLParser;
@@ -639,6 +641,37 @@ public class PlumbleActivity extends ActionBarActivity implements ListView.OnIte
}
}
});
+ } else if (error.getReason() == JumbleException.JumbleDisconnectReason.REJECT &&
+ (error.getReject().getType() == Mumble.Reject.RejectType.WrongUserPW ||
+ error.getReject().getType() == Mumble.Reject.RejectType.WrongServerPW)) {
+ // FIXME(acomminos): Long conditional.
+ final EditText passwordField = new EditText(this);
+ passwordField.setInputType(InputType.TYPE_CLASS_TEXT |
+ InputType.TYPE_TEXT_VARIATION_PASSWORD);
+ passwordField.setHint(R.string.password);
+ ab.setTitle(R.string.invalid_password);
+ ab.setMessage(error.getMessage());
+ ab.setView(passwordField);
+ ab.setPositiveButton(R.string.reconnect, new DialogInterface.OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialog, int which) {
+ Server server = getService().getConnectedServer();
+ if (server == null)
+ return;
+ String password = passwordField.getText().toString();
+ server.setPassword(password);
+ if (server.isSaved())
+ mDatabase.updateServer(server);
+ connectToServer(server);
+ }
+ });
+ ab.setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialog, int which) {
+ if (getService() != null)
+ getService().markErrorShown();
+ }
+ });
} else {
ab.setMessage(error.getMessage());
ab.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {