summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorlambroslambrou@chromium.org <lambroslambrou@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-08-22 23:07:46 +0000
committerlambroslambrou@chromium.org <lambroslambrou@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-08-22 23:07:46 +0000
commit788807a0b9b6fa8a141a45f031e3add358991dd3 (patch)
tree7475a3b78dcd3b0cf7058b97bcb425ba72e2c397
parente74fd8e46df2b255e8d5d2bb4cb03d3c683dbda7 (diff)
downloadchromium_src-788807a0b9b6fa8a141a45f031e3add358991dd3.zip
chromium_src-788807a0b9b6fa8a141a45f031e3add358991dd3.tar.gz
chromium_src-788807a0b9b6fa8a141a45f031e3add358991dd3.tar.bz2
Don't show checkbox on Android if host doesn't support pairing
This stops the Android client from trying to send a pairing request to a host that doesn't support it. Review URL: https://chromiumcodereview.appspot.com/22859040 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@219140 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--remoting/android/java/src/org/chromium/chromoting/jni/JniInterface.java19
-rw-r--r--remoting/client/jni/chromoting_jni_instance.cc14
-rw-r--r--remoting/client/jni/chromoting_jni_runtime.cc5
-rw-r--r--remoting/client/jni/chromoting_jni_runtime.h2
4 files changed, 21 insertions, 19 deletions
diff --git a/remoting/android/java/src/org/chromium/chromoting/jni/JniInterface.java b/remoting/android/java/src/org/chromium/chromoting/jni/JniInterface.java
index 039bcb9..4508e58 100644
--- a/remoting/android/java/src/org/chromium/chromoting/jni/JniInterface.java
+++ b/remoting/android/java/src/org/chromium/chromoting/jni/JniInterface.java
@@ -186,7 +186,7 @@ public class JniInterface {
}
/** Prompts the user to enter a PIN. */
- private static void displayAuthenticationPrompt() {
+ private static void displayAuthenticationPrompt(boolean pairingSupported) {
AlertDialog.Builder pinPrompt = new AlertDialog.Builder(sContext);
pinPrompt.setTitle(sContext.getString(R.string.pin_entry_title));
pinPrompt.setMessage(sContext.getString(R.string.pin_entry_message));
@@ -195,16 +195,21 @@ public class JniInterface {
final View pinEntry = sContext.getLayoutInflater().inflate(R.layout.pin_dialog, null);
pinPrompt.setView(pinEntry);
+ final TextView pinTextView = (TextView)pinEntry.findViewById(R.id.pin_dialog_text);
+ final CheckBox pinCheckBox = (CheckBox)pinEntry.findViewById(R.id.pin_dialog_check);
+
+ if (!pairingSupported) {
+ pinCheckBox.setChecked(false);
+ pinCheckBox.setVisibility(View.GONE);
+ }
+
pinPrompt.setPositiveButton(
R.string.pin_entry_connect, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Log.i("jniiface", "User provided a PIN code");
- authenticationResponse(String.valueOf(
- ((TextView)
- pinEntry.findViewById(R.id.pin_dialog_text)).getText()),
- ((CheckBox)
- pinEntry.findViewById(R.id.pin_dialog_check)).isChecked());
+ authenticationResponse(String.valueOf(pinTextView.getText()),
+ pinCheckBox.isChecked());
}
});
@@ -222,7 +227,7 @@ public class JniInterface {
final AlertDialog pinDialog = pinPrompt.create();
- ((TextView)pinEntry.findViewById(R.id.pin_dialog_text)).setOnEditorActionListener(
+ pinTextView.setOnEditorActionListener(
new TextView.OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
diff --git a/remoting/client/jni/chromoting_jni_instance.cc b/remoting/client/jni/chromoting_jni_instance.cc
index 45a27d2..7e45f7c 100644
--- a/remoting/client/jni/chromoting_jni_instance.cc
+++ b/remoting/client/jni/chromoting_jni_instance.cc
@@ -49,16 +49,12 @@ ChromotingJniInstance::ChromotingJniInstance(ChromotingJniRuntime* jni_runtime,
base::Bind(&ChromotingJniInstance::FetchSecret, this);
client_config_.authentication_tag = host_id_;
- std::string pairing_id_str(pairing_id);
- std::string pairing_secret_str(pairing_secret);
- if (!pairing_id_str.empty() && !pairing_secret_str.empty()) {
- client_config_.client_pairing_id = pairing_id_str;
- client_config_.client_paired_secret = pairing_secret_str;
- client_config_.authentication_methods.push_back(
- protocol::AuthenticationMethod::FromString("spake2_pair"));
- }
+ client_config_.client_pairing_id = pairing_id;
+ client_config_.client_paired_secret = pairing_secret;
client_config_.authentication_methods.push_back(
+ protocol::AuthenticationMethod::FromString("spake2_pair"));
+ client_config_.authentication_methods.push_back(
protocol::AuthenticationMethod::FromString("spake2_hmac"));
client_config_.authentication_methods.push_back(
protocol::AuthenticationMethod::FromString("spake2_plain"));
@@ -294,7 +290,7 @@ void ChromotingJniInstance::FetchSecret(
}
pin_callback_ = callback;
- jni_runtime_->DisplayAuthenticationPrompt();
+ jni_runtime_->DisplayAuthenticationPrompt(pairable);
}
} // namespace remoting
diff --git a/remoting/client/jni/chromoting_jni_runtime.cc b/remoting/client/jni/chromoting_jni_runtime.cc
index dc509b3..059a4b2 100644
--- a/remoting/client/jni/chromoting_jni_runtime.cc
+++ b/remoting/client/jni/chromoting_jni_runtime.cc
@@ -123,13 +123,14 @@ void ChromotingJniRuntime::ReportConnectionStatus(
error);
}
-void ChromotingJniRuntime::DisplayAuthenticationPrompt() {
+void ChromotingJniRuntime::DisplayAuthenticationPrompt(bool pairing_supported) {
DCHECK(ui_task_runner_->BelongsToCurrentThread());
JNIEnv* env = base::android::AttachCurrentThread();
env->CallStaticVoidMethod(
class_,
- env->GetStaticMethodID(class_, "displayAuthenticationPrompt", "()V"));
+ env->GetStaticMethodID(class_, "displayAuthenticationPrompt", "(Z)V"),
+ pairing_supported);
}
void ChromotingJniRuntime::CommitPairingCredentials(const std::string& host,
diff --git a/remoting/client/jni/chromoting_jni_runtime.h b/remoting/client/jni/chromoting_jni_runtime.h
index 93f933f..f16d033 100644
--- a/remoting/client/jni/chromoting_jni_runtime.h
+++ b/remoting/client/jni/chromoting_jni_runtime.h
@@ -72,7 +72,7 @@ class ChromotingJniRuntime {
protocol::ErrorCode error);
// Pops up a dialog box asking the user to enter a PIN. Call on UI thread.
- void DisplayAuthenticationPrompt();
+ void DisplayAuthenticationPrompt(bool pairing_supported);
// Saves new pairing credentials to permanent storage. Call on UI thread.
void CommitPairingCredentials(const std::string& host,