Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(365)

Unified Diff: content/public/android/java/src/org/chromium/content/browser/InputDialogContainer.java

Issue 11434087: Prevent double notifications from the date/time dialogs. This seems to have been happening in m18 a… (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 8 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/public/android/java/src/org/chromium/content/browser/InputDialogContainer.java
diff --git a/content/public/android/java/src/org/chromium/content/browser/InputDialogContainer.java b/content/public/android/java/src/org/chromium/content/browser/InputDialogContainer.java
index 389b4fd9adb75e30af47ebdd2fa92f0da95e4d03..56fd85f3da834ec16c8fdf59ac10590afc346633 100644
--- a/content/public/android/java/src/org/chromium/content/browser/InputDialogContainer.java
+++ b/content/public/android/java/src/org/chromium/content/browser/InputDialogContainer.java
@@ -64,7 +64,10 @@ class InputDialogContainer {
private static int sTextInputTypeTime;
private Context mContext;
- private boolean mDialogCanceled;
+
+ // Prevents sending two notifications (from onClick and from onDismiss)
olilan 2012/12/05 14:27:46 onDismiss isn't sending a notification. Perhaps "o
+ private boolean mDialogAlreadyDismissed;
+
private AlertDialog mDialog;
private InputActionDelegate mInputActionDelegate;
@@ -118,7 +121,7 @@ class InputDialogContainer {
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
- mDialogCanceled = true;
+ mDialogAlreadyDismissed = true;
}
});
@@ -127,7 +130,7 @@ class InputDialogContainer {
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
- mDialogCanceled = true;
+ mDialogAlreadyDismissed = true;
mInputActionDelegate.replaceText("");
}
});
@@ -138,7 +141,7 @@ class InputDialogContainer {
mInputActionDelegate.clearFocus();
}
});
- mDialogCanceled = false;
+ mDialogAlreadyDismissed = false;
mDialog.show();
}
@@ -200,7 +203,7 @@ class InputDialogContainer {
private class DateListener implements OnDateSetListener {
@Override
public void onDateSet(DatePicker view, int year, int month, int monthDay) {
- if (!mDialogCanceled) {
+ if (!mDialogAlreadyDismissed) {
setFieldDateTimeValue(year, month, monthDay, HOUR_DEFAULT, MINUTE_DEFAULT,
HTML_DATE_FORMAT);
}
@@ -210,7 +213,7 @@ class InputDialogContainer {
private class TimeListener implements OnTimeSetListener {
@Override
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
- if (!mDialogCanceled) {
+ if (!mDialogAlreadyDismissed) {
setFieldDateTimeValue(YEAR_DEFAULT, MONTH_DEFAULT, MONTHDAY_DEFAULT,
hourOfDay, minute, HTML_TIME_FORMAT);
}
@@ -228,7 +231,7 @@ class InputDialogContainer {
public void onDateTimeSet(DatePicker dateView, TimePicker timeView,
int year, int month, int monthDay,
int hourOfDay, int minute) {
- if (!mDialogCanceled) {
+ if (!mDialogAlreadyDismissed) {
setFieldDateTimeValue(year, month, monthDay, hourOfDay, minute,
mLocal ? HTML_DATE_TIME_LOCAL_FORMAT : HTML_DATE_TIME_FORMAT);
}
@@ -238,7 +241,7 @@ class InputDialogContainer {
private class MonthListener implements OnMonthSetListener {
@Override
public void onMonthSet(MonthPicker view, int year, int month) {
- if (!mDialogCanceled) {
+ if (!mDialogAlreadyDismissed) {
setFieldDateTimeValue(year, month, MONTHDAY_DEFAULT,
HOUR_DEFAULT, MINUTE_DEFAULT, HTML_MONTH_FORMAT);
}
@@ -247,6 +250,10 @@ class InputDialogContainer {
private void setFieldDateTimeValue(int year, int month, int monthDay, int hourOfDay,
int minute, String dateFormat) {
+ // Just in case more than one signal is triggered by the dialog so that
+ // no more than one callback is sent to the native side.
+ mDialogAlreadyDismissed = true;
+
Time time = new Time();
time.year = year;
time.month = month;

Powered by Google App Engine
This is Rietveld 408576698