mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 732169 - Refactor message processing prompts. r=lucasr
This commit is contained in:
parent
1559619ad7
commit
0395008ae9
@ -80,13 +80,49 @@ public class Prompt implements OnClickListener, OnCancelListener, OnItemClickLis
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void show(JSONObject message) {
|
public void show(JSONObject message) {
|
||||||
processMessage(message);
|
String title = message.optString("title");
|
||||||
|
String text = message.optString("text");
|
||||||
|
mGuid = message.optString("guid");
|
||||||
|
|
||||||
|
mButtons = getStringArray(message, "buttons");
|
||||||
|
|
||||||
|
JSONArray inputs = getSafeArray(message, "inputs");
|
||||||
|
mInputs = new PromptInput[inputs.length()];
|
||||||
|
for (int i = 0; i < mInputs.length; i++) {
|
||||||
|
try {
|
||||||
|
mInputs[i] = PromptInput.getInput(inputs.getJSONObject(i));
|
||||||
|
mInputs[i].setListener(this);
|
||||||
|
} catch(Exception ex) { }
|
||||||
|
}
|
||||||
|
|
||||||
|
PromptListItem[] menuitems = PromptListItem.getArray(message.optJSONArray("listitems"));
|
||||||
|
String selected = message.optString("choiceMode");
|
||||||
|
|
||||||
|
int choiceMode = ListView.CHOICE_MODE_NONE;
|
||||||
|
if ("single".equals(selected)) {
|
||||||
|
choiceMode = ListView.CHOICE_MODE_SINGLE;
|
||||||
|
} else if ("multiple".equals(selected)) {
|
||||||
|
choiceMode = ListView.CHOICE_MODE_MULTIPLE;
|
||||||
|
}
|
||||||
|
|
||||||
|
show(title, text, menuitems, choiceMode);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void show(String title, String text, PromptListItem[] listItems, int choiceMode) {
|
||||||
public void show(String title, String text, PromptListItem[] listItems, int choiceMode) {
|
|
||||||
ThreadUtils.assertOnUiThread();
|
ThreadUtils.assertOnUiThread();
|
||||||
|
|
||||||
|
try {
|
||||||
|
create(title, text, listItems, choiceMode);
|
||||||
|
} catch(IllegalStateException ex) {
|
||||||
|
Log.i(LOGTAG, "Error building dialog", ex);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
mDialog.show();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void create(String title, String text, PromptListItem[] listItems, int choiceMode)
|
||||||
|
throws IllegalStateException {
|
||||||
GeckoAppShell.getLayerView().abortPanning();
|
GeckoAppShell.getLayerView().abortPanning();
|
||||||
|
|
||||||
AlertDialog.Builder builder = new AlertDialog.Builder(mContext);
|
AlertDialog.Builder builder = new AlertDialog.Builder(mContext);
|
||||||
@ -121,7 +157,6 @@ public class Prompt implements OnClickListener, OnCancelListener, OnItemClickLis
|
|||||||
|
|
||||||
mDialog = builder.create();
|
mDialog = builder.create();
|
||||||
mDialog.setOnCancelListener(Prompt.this);
|
mDialog.setOnCancelListener(Prompt.this);
|
||||||
mDialog.show();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setButtons(String[] buttons) {
|
public void setButtons(String[] buttons) {
|
||||||
@ -425,37 +460,6 @@ public class Prompt implements OnClickListener, OnCancelListener, OnItemClickLis
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Handles parsing the initial JSON sent to show dialogs
|
|
||||||
*/
|
|
||||||
private void processMessage(JSONObject geckoObject) {
|
|
||||||
String title = geckoObject.optString("title");
|
|
||||||
String text = geckoObject.optString("text");
|
|
||||||
mGuid = geckoObject.optString("guid");
|
|
||||||
|
|
||||||
mButtons = getStringArray(geckoObject, "buttons");
|
|
||||||
|
|
||||||
JSONArray inputs = getSafeArray(geckoObject, "inputs");
|
|
||||||
mInputs = new PromptInput[inputs.length()];
|
|
||||||
for (int i = 0; i < mInputs.length; i++) {
|
|
||||||
try {
|
|
||||||
mInputs[i] = PromptInput.getInput(inputs.getJSONObject(i));
|
|
||||||
mInputs[i].setListener(this);
|
|
||||||
} catch(Exception ex) { }
|
|
||||||
}
|
|
||||||
|
|
||||||
PromptListItem[] menuitems = PromptListItem.getArray(geckoObject.optJSONArray("listitems"));
|
|
||||||
String selected = geckoObject.optString("choiceMode");
|
|
||||||
|
|
||||||
int choiceMode = ListView.CHOICE_MODE_NONE;
|
|
||||||
if ("single".equals(selected)) {
|
|
||||||
choiceMode = ListView.CHOICE_MODE_SINGLE;
|
|
||||||
} else if ("multiple".equals(selected)) {
|
|
||||||
choiceMode = ListView.CHOICE_MODE_MULTIPLE;
|
|
||||||
}
|
|
||||||
|
|
||||||
show(title, text, menuitems, choiceMode);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Called when the prompt inputs on the dialog change
|
// Called when the prompt inputs on the dialog change
|
||||||
@Override
|
@Override
|
||||||
public void onChange(PromptInput input) {
|
public void onChange(PromptInput input) {
|
||||||
|
Loading…
Reference in New Issue
Block a user