mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 779741 - Move character encoding menu logic to BrowserApp. r=sriram
This commit is contained in:
parent
989331d766
commit
1ea6a14083
@ -15,6 +15,8 @@ import org.json.JSONException;
|
|||||||
import org.json.JSONObject;
|
import org.json.JSONObject;
|
||||||
|
|
||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
|
import android.app.AlertDialog;
|
||||||
|
import android.content.DialogInterface;
|
||||||
import android.content.SharedPreferences;
|
import android.content.SharedPreferences;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.database.Cursor;
|
import android.database.Cursor;
|
||||||
@ -199,6 +201,8 @@ abstract public class BrowserApp extends GeckoApp
|
|||||||
mBrowserToolbar.setTitle(savedInstanceState.getString(SAVED_STATE_TITLE));
|
mBrowserToolbar.setTitle(savedInstanceState.getString(SAVED_STATE_TITLE));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
registerEventListener("CharEncoding:Data");
|
||||||
|
registerEventListener("CharEncoding:State");
|
||||||
registerEventListener("Feedback:LastUrl");
|
registerEventListener("Feedback:LastUrl");
|
||||||
registerEventListener("Feedback:OpenPlayStore");
|
registerEventListener("Feedback:OpenPlayStore");
|
||||||
registerEventListener("Feedback:MaybeLater");
|
registerEventListener("Feedback:MaybeLater");
|
||||||
@ -210,6 +214,8 @@ abstract public class BrowserApp extends GeckoApp
|
|||||||
if (mAboutHomeContent != null)
|
if (mAboutHomeContent != null)
|
||||||
mAboutHomeContent.onDestroy();
|
mAboutHomeContent.onDestroy();
|
||||||
|
|
||||||
|
unregisterEventListener("CharEncoding:Data");
|
||||||
|
unregisterEventListener("CharEncoding:State");
|
||||||
unregisterEventListener("Feedback:LastUrl");
|
unregisterEventListener("Feedback:LastUrl");
|
||||||
unregisterEventListener("Feedback:OpenPlayStore");
|
unregisterEventListener("Feedback:OpenPlayStore");
|
||||||
unregisterEventListener("Feedback:MaybeLater");
|
unregisterEventListener("Feedback:MaybeLater");
|
||||||
@ -356,6 +362,49 @@ abstract public class BrowserApp extends GeckoApp
|
|||||||
removeAddonMenuItem(id);
|
removeAddonMenuItem(id);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
} else if (event.equals("CharEncoding:Data")) {
|
||||||
|
final JSONArray charsets = message.getJSONArray("charsets");
|
||||||
|
int selected = message.getInt("selected");
|
||||||
|
|
||||||
|
final int len = charsets.length();
|
||||||
|
final String[] titleArray = new String[len];
|
||||||
|
for (int i = 0; i < len; i++) {
|
||||||
|
JSONObject charset = charsets.getJSONObject(i);
|
||||||
|
titleArray[i] = charset.getString("title");
|
||||||
|
}
|
||||||
|
|
||||||
|
final AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(this);
|
||||||
|
dialogBuilder.setSingleChoiceItems(titleArray, selected, new AlertDialog.OnClickListener() {
|
||||||
|
public void onClick(DialogInterface dialog, int which) {
|
||||||
|
try {
|
||||||
|
JSONObject charset = charsets.getJSONObject(which);
|
||||||
|
GeckoAppShell.sendEventToGecko(GeckoEvent.createBroadcastEvent("CharEncoding:Set", charset.getString("code")));
|
||||||
|
dialog.dismiss();
|
||||||
|
} catch (JSONException e) {
|
||||||
|
Log.e(LOGTAG, "error parsing json", e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
dialogBuilder.setNegativeButton(R.string.button_cancel, new AlertDialog.OnClickListener() {
|
||||||
|
public void onClick(DialogInterface dialog, int which) {
|
||||||
|
dialog.dismiss();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
mMainHandler.post(new Runnable() {
|
||||||
|
public void run() {
|
||||||
|
dialogBuilder.show();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
} else if (event.equals("CharEncoding:State")) {
|
||||||
|
final boolean visible = message.getString("visible").equals("true");
|
||||||
|
GeckoPreferences.setCharEncodingState(visible);
|
||||||
|
final Menu menu = mMenu;
|
||||||
|
mMainHandler.post(new Runnable() {
|
||||||
|
public void run() {
|
||||||
|
if (menu != null)
|
||||||
|
menu.findItem(R.id.char_encoding).setVisible(visible);
|
||||||
|
}
|
||||||
|
});
|
||||||
} else if (event.equals("Feedback:OpenPlayStore")) {
|
} else if (event.equals("Feedback:OpenPlayStore")) {
|
||||||
Intent intent = new Intent(Intent.ACTION_VIEW);
|
Intent intent = new Intent(Intent.ACTION_VIEW);
|
||||||
intent.setData(Uri.parse("market://details?id=" + getPackageName()));
|
intent.setData(Uri.parse("market://details?id=" + getPackageName()));
|
||||||
|
@ -917,49 +917,6 @@ abstract public class GeckoApp
|
|||||||
String host = message.getString("host");
|
String host = message.getString("host");
|
||||||
JSONArray permissions = message.getJSONArray("permissions");
|
JSONArray permissions = message.getJSONArray("permissions");
|
||||||
showSiteSettingsDialog(host, permissions);
|
showSiteSettingsDialog(host, permissions);
|
||||||
} else if (event.equals("CharEncoding:Data")) {
|
|
||||||
final JSONArray charsets = message.getJSONArray("charsets");
|
|
||||||
int selected = message.getInt("selected");
|
|
||||||
|
|
||||||
final int len = charsets.length();
|
|
||||||
final String[] titleArray = new String[len];
|
|
||||||
for (int i = 0; i < len; i++) {
|
|
||||||
JSONObject charset = charsets.getJSONObject(i);
|
|
||||||
titleArray[i] = charset.getString("title");
|
|
||||||
}
|
|
||||||
|
|
||||||
final AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(this);
|
|
||||||
dialogBuilder.setSingleChoiceItems(titleArray, selected, new AlertDialog.OnClickListener() {
|
|
||||||
public void onClick(DialogInterface dialog, int which) {
|
|
||||||
try {
|
|
||||||
JSONObject charset = charsets.getJSONObject(which);
|
|
||||||
GeckoAppShell.sendEventToGecko(GeckoEvent.createBroadcastEvent("CharEncoding:Set", charset.getString("code")));
|
|
||||||
dialog.dismiss();
|
|
||||||
} catch (JSONException e) {
|
|
||||||
Log.e(LOGTAG, "error parsing json", e);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
dialogBuilder.setNegativeButton(R.string.button_cancel, new AlertDialog.OnClickListener() {
|
|
||||||
public void onClick(DialogInterface dialog, int which) {
|
|
||||||
dialog.dismiss();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
mMainHandler.post(new Runnable() {
|
|
||||||
public void run() {
|
|
||||||
dialogBuilder.show();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
} else if (event.equals("CharEncoding:State")) {
|
|
||||||
final boolean visible = message.getString("visible").equals("true");
|
|
||||||
GeckoPreferences.setCharEncodingState(visible);
|
|
||||||
final Menu menu = mMenu;
|
|
||||||
mMainHandler.post(new Runnable() {
|
|
||||||
public void run() {
|
|
||||||
if (menu != null)
|
|
||||||
menu.findItem(R.id.char_encoding).setVisible(visible);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
} else if (event.equals("Update:Restart")) {
|
} else if (event.equals("Update:Restart")) {
|
||||||
doRestart("org.mozilla.gecko.restart_update");
|
doRestart("org.mozilla.gecko.restart_update");
|
||||||
} else if (event.equals("Tab:ViewportMetadata")) {
|
} else if (event.equals("Tab:ViewportMetadata")) {
|
||||||
@ -1636,8 +1593,6 @@ abstract public class GeckoApp
|
|||||||
registerEventListener("ToggleChrome:Show");
|
registerEventListener("ToggleChrome:Show");
|
||||||
registerEventListener("ToggleChrome:Focus");
|
registerEventListener("ToggleChrome:Focus");
|
||||||
registerEventListener("Permissions:Data");
|
registerEventListener("Permissions:Data");
|
||||||
registerEventListener("CharEncoding:Data");
|
|
||||||
registerEventListener("CharEncoding:State");
|
|
||||||
registerEventListener("Update:Restart");
|
registerEventListener("Update:Restart");
|
||||||
registerEventListener("Tab:HasTouchListener");
|
registerEventListener("Tab:HasTouchListener");
|
||||||
registerEventListener("Tab:ViewportMetadata");
|
registerEventListener("Tab:ViewportMetadata");
|
||||||
@ -2078,8 +2033,6 @@ abstract public class GeckoApp
|
|||||||
unregisterEventListener("ToggleChrome:Show");
|
unregisterEventListener("ToggleChrome:Show");
|
||||||
unregisterEventListener("ToggleChrome:Focus");
|
unregisterEventListener("ToggleChrome:Focus");
|
||||||
unregisterEventListener("Permissions:Data");
|
unregisterEventListener("Permissions:Data");
|
||||||
unregisterEventListener("CharEncoding:Data");
|
|
||||||
unregisterEventListener("CharEncoding:State");
|
|
||||||
unregisterEventListener("Update:Restart");
|
unregisterEventListener("Update:Restart");
|
||||||
unregisterEventListener("Tab:HasTouchListener");
|
unregisterEventListener("Tab:HasTouchListener");
|
||||||
unregisterEventListener("Tab:ViewportMetadata");
|
unregisterEventListener("Tab:ViewportMetadata");
|
||||||
|
Loading…
Reference in New Issue
Block a user