blob: 8e7987b86b24a9b7ed3dcafe0274d0ae46bb0006 [file] [log] [blame]
// Copyright 2014 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package org.chromium.content.browser.input;
import android.content.Context;
import android.content.DialogInterface;
import android.widget.DatePicker;
/**
* The behavior of the DatePickerDialog changed after JellyBean so it now calls
* OndateSetListener.onDateSet() even when the dialog is dismissed (e.g. back button, tap
* outside). This class will call the listener instead of the DatePickerDialog only when the
* BUTTON_POSITIVE has been clicked.
*/
class ChromeDatePickerDialog extends android.app.DatePickerDialog {
private final OnDateSetListener mCallBack;
public ChromeDatePickerDialog(Context context,
OnDateSetListener callBack,
int year,
int monthOfYear,
int dayOfMonth) {
super(context, 0, callBack, year, monthOfYear, dayOfMonth);
mCallBack = callBack;
}
/**
* The superclass DatePickerDialog has null for OnDateSetListener so we need to call the
* listener manually.
*/
@Override
public void onClick(DialogInterface dialog, int which) {
if (which == BUTTON_POSITIVE && mCallBack != null) {
DatePicker datePicker = getDatePicker();
datePicker.clearFocus();
mCallBack.onDateSet(datePicker, datePicker.getYear(),
datePicker.getMonth(), datePicker.getDayOfMonth());
}
}
}