mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-11 20:35:50 +00:00
Bug 1266683 - Part 4 - Forward private browsing state to GeckoInputConnection and use it there. r=jchen
MozReview-Commit-ID: 4BxZ9HyzDh2 --HG-- extra : rebase_source : 53312aa13caa79dd20e9d04b556e19a9750cfd44
This commit is contained in:
parent
641e43da0b
commit
9983e4f87d
@ -15,7 +15,8 @@ interface IGeckoEditableParent {
|
||||
void notifyIME(IGeckoEditableChild child, int type);
|
||||
|
||||
// Notify a change in editor state or type.
|
||||
void notifyIMEContext(int state, String typeHint, String modeHint, String actionHint);
|
||||
void notifyIMEContext(int state, String typeHint, String modeHint, String actionHint,
|
||||
boolean inPrivateBrowsing);
|
||||
|
||||
// Notify a change in editor selection.
|
||||
void onSelectionChange(IBinder token, int start, int end);
|
||||
|
@ -1127,12 +1127,14 @@ final class GeckoEditable extends IGeckoEditableParent.Stub
|
||||
|
||||
@Override // IGeckoEditableParent
|
||||
public void notifyIMEContext(final int state, final String typeHint,
|
||||
final String modeHint, final String actionHint) {
|
||||
final String modeHint, final String actionHint,
|
||||
final boolean inPrivateBrowsing) {
|
||||
// On Gecko or binder thread.
|
||||
if (DEBUG) {
|
||||
Log.d(LOGTAG, "notifyIMEContext(" +
|
||||
getConstantName(GeckoEditableListener.class, "IME_STATE_", state) +
|
||||
", \"" + typeHint + "\", \"" + modeHint + "\", \"" + actionHint + "\")");
|
||||
", \"" + typeHint + "\", \"" + modeHint + "\", \"" + actionHint + "\", " +
|
||||
"inPrivateBrowsing=" + inPrivateBrowsing + ")");
|
||||
}
|
||||
|
||||
// Don't check token for notifyIMEContext, because the calls all come
|
||||
@ -1145,7 +1147,7 @@ final class GeckoEditable extends IGeckoEditableParent.Stub
|
||||
if (mListener == null) {
|
||||
return;
|
||||
}
|
||||
mListener.notifyIMEContext(state, typeHint, modeHint, actionHint);
|
||||
mListener.notifyIMEContext(state, typeHint, modeHint, actionHint, inPrivateBrowsing);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
@ -169,7 +169,7 @@ final class GeckoEditableChild extends JNIObject implements IGeckoEditableChild
|
||||
}
|
||||
|
||||
try {
|
||||
mEditableParent.notifyIMEContext(state, typeHint, modeHint, actionHint);
|
||||
mEditableParent.notifyIMEContext(state, typeHint, modeHint, actionHint, inPrivateBrowsing);
|
||||
} catch (final RemoteException e) {
|
||||
Log.e(LOGTAG, "Remote call failed", e);
|
||||
}
|
||||
|
@ -37,7 +37,7 @@ interface GeckoEditableListener {
|
||||
int IME_STATE_PLUGIN = 3;
|
||||
|
||||
void notifyIME(int type);
|
||||
void notifyIMEContext(int state, String typeHint, String modeHint, String actionHint);
|
||||
void notifyIMEContext(int state, String typeHint, String modeHint, String actionHint, boolean inPrivateBrowsing);
|
||||
void onSelectionChange();
|
||||
void onTextChange();
|
||||
void onDefaultKeyEvent(KeyEvent event);
|
||||
|
@ -65,6 +65,7 @@ class GeckoInputConnection
|
||||
private String mIMETypeHint = "";
|
||||
private String mIMEModeHint = "";
|
||||
private String mIMEActionHint = "";
|
||||
private boolean mInPrivateBrowsing;
|
||||
private boolean mFocused;
|
||||
|
||||
private String mCurrentInputMethod = "";
|
||||
@ -609,6 +610,10 @@ class GeckoInputConnection
|
||||
outAttrs.actionLabel = mIMEActionHint;
|
||||
}
|
||||
|
||||
if (mInPrivateBrowsing) {
|
||||
outAttrs.imeOptions |= InputMethods.IME_FLAG_NO_PERSONALIZED_LEARNING;
|
||||
}
|
||||
|
||||
Context context = getView().getContext();
|
||||
DisplayMetrics metrics = context.getResources().getDisplayMetrics();
|
||||
if (Math.min(metrics.widthPixels, metrics.heightPixels) > INLINE_IME_MIN_DISPLAY_SIZE) {
|
||||
@ -938,7 +943,8 @@ class GeckoInputConnection
|
||||
}
|
||||
|
||||
@Override
|
||||
public void notifyIMEContext(int state, String typeHint, String modeHint, String actionHint) {
|
||||
public void notifyIMEContext(int state, String typeHint, String modeHint, String actionHint,
|
||||
boolean inPrivateBrowsing) {
|
||||
// For some input type we will use a widget to display the ui, for those we must not
|
||||
// display the ime. We can display a widget for date and time types and, if the sdk version
|
||||
// is 11 or greater, for datetime/month/week as well.
|
||||
@ -965,6 +971,7 @@ class GeckoInputConnection
|
||||
mIMETypeHint = (typeHint == null) ? "" : typeHint;
|
||||
mIMEModeHint = (modeHint == null) ? "" : modeHint;
|
||||
mIMEActionHint = (actionHint == null) ? "" : actionHint;
|
||||
mInPrivateBrowsing = inPrivateBrowsing;
|
||||
|
||||
// These fields are reset here and will be updated when restartInput is called below
|
||||
mUpdateRequest = null;
|
||||
|
Loading…
Reference in New Issue
Block a user