зеркало из https://github.com/mozilla/gecko-dev.git
Bug 781318 - Autofocus textboxes in prompts. r=mbrubeck
This commit is contained in:
Родитель
6b32a462f2
Коммит
44a38b093d
|
@ -36,6 +36,7 @@ import android.widget.LinearLayout;
|
|||
import android.widget.ListView;
|
||||
import android.widget.Spinner;
|
||||
import android.widget.TextView;
|
||||
import android.view.inputmethod.InputMethodManager;
|
||||
|
||||
import java.util.concurrent.SynchronousQueue;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
@ -83,6 +84,7 @@ public class PromptService implements OnClickListener, OnCancelListener, OnItemC
|
|||
private String label = "";
|
||||
private String type = "";
|
||||
private String hint = "";
|
||||
private Boolean autofocus = false;
|
||||
private JSONObject mJSONInput = null;
|
||||
private View view = null;
|
||||
|
||||
|
@ -97,6 +99,9 @@ public class PromptService implements OnClickListener, OnCancelListener, OnItemC
|
|||
try {
|
||||
hint = aJSONInput.getString("hint");
|
||||
} catch(Exception ex) { }
|
||||
try {
|
||||
autofocus = aJSONInput.getBoolean("autofocus");
|
||||
} catch(Exception ex) { }
|
||||
}
|
||||
|
||||
public View getView() {
|
||||
|
@ -125,6 +130,18 @@ public class PromptService implements OnClickListener, OnCancelListener, OnItemC
|
|||
if (!hint.equals("")) {
|
||||
input.setHint(hint);
|
||||
}
|
||||
|
||||
if (autofocus) {
|
||||
input.setOnFocusChangeListener(new View.OnFocusChangeListener() {
|
||||
public void onFocusChange(View v, boolean hasFocus) {
|
||||
if (hasFocus) {
|
||||
((InputMethodManager) GeckoApp.mAppContext.getSystemService(Context.INPUT_METHOD_SERVICE)).showSoftInput(v, 0);
|
||||
}
|
||||
}
|
||||
});
|
||||
input.requestFocus();
|
||||
}
|
||||
|
||||
view = (View)input;
|
||||
} else if (type.equals("menulist")) {
|
||||
Spinner spinner = new Spinner(GeckoApp.mAppContext);
|
||||
|
|
|
@ -248,7 +248,7 @@ Prompt.prototype = {
|
|||
},
|
||||
|
||||
nsIPrompt_prompt: function nsIPrompt_prompt(aTitle, aText, aValue, aCheckMsg, aCheckState) {
|
||||
let inputs = [{ type: "textbox", value: aValue.value }];
|
||||
let inputs = [{ type: "textbox", value: aValue.value, autofocus: true }];
|
||||
let data = this.commonPrompt(aTitle, aText, null, aCheckMsg, aCheckState, inputs);
|
||||
|
||||
let ok = data.button == 0;
|
||||
|
@ -261,7 +261,7 @@ Prompt.prototype = {
|
|||
|
||||
nsIPrompt_promptPassword: function nsIPrompt_promptPassword(
|
||||
aTitle, aText, aPassword, aCheckMsg, aCheckState) {
|
||||
let inputs = [{ type: "password", hint: PromptUtils.getLocaleString("password", "passwdmgr"), value: aPassword.value || "" }];
|
||||
let inputs = [{ type: "password", hint: PromptUtils.getLocaleString("password", "passwdmgr"), value: aPassword.value || "", autofocus: true }];
|
||||
let data = this.commonPrompt(aTitle, aText, null, aCheckMsg, aCheckState, inputs);
|
||||
|
||||
let ok = data.button == 0;
|
||||
|
@ -274,7 +274,7 @@ Prompt.prototype = {
|
|||
|
||||
nsIPrompt_promptUsernameAndPassword: function nsIPrompt_promptUsernameAndPassword(
|
||||
aTitle, aText, aUsername, aPassword, aCheckMsg, aCheckState) {
|
||||
let inputs = [{ type: "textbox", hint: PromptUtils.getLocaleString("username", "passwdmgr"), value: aUsername.value },
|
||||
let inputs = [{ type: "textbox", hint: PromptUtils.getLocaleString("username", "passwdmgr"), value: aUsername.value, autofocus: true },
|
||||
{ type: "password", hint: PromptUtils.getLocaleString("password", "passwdmgr"), value: aPassword.value }];
|
||||
let data = this.commonPrompt(aTitle, aText, null, aCheckMsg, aCheckState, inputs);
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче