/*
* Copyright (C) 2016 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/
package com.android.talkbacktests.testsession;
import android.app.AlertDialog;
import android.app.DatePickerDialog;
import android.app.TimePickerDialog;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.DatePicker;
import android.widget.NumberPicker;
import android.widget.TextView;
import android.widget.TimePicker;
import com.android.talkbacktests.R;
import java.text.SimpleDateFormat;
import java.util.Calendar;
public class ValuePickerTest extends BaseTestContent implements View.OnClickListener,
DatePickerDialog.OnDateSetListener, TimePickerDialog.OnTimeSetListener,
NumberPicker.OnValueChangeListener {
private static final SimpleDateFormat DATE_FORMAT = new SimpleDateFormat("EEEE, MMMM d, yyyy");
private static final SimpleDateFormat TIME_FORMAT = new SimpleDateFormat("hh:mm a");
private DatePickerDialog mDatePickerDialog;
private TimePickerDialog mTimePickerDialog;
private AlertDialog mNumberPickerDialog;
private TextView mDateSummary;
private TextView mTimeSummary;
private TextView mNumberSummary;
private Calendar mCalendar;
public ValuePickerTest(Context context, String subtitle, String description) {
super(context, subtitle, description);
}
@Override
public View getView(final LayoutInflater inflater, ViewGroup container, Context context) {
mCalendar = Calendar.getInstance();
View view = inflater.inflate(R.layout.test_value_picker, container, false);
view.findViewById(R.id.test_date_picker_button).setOnClickListener(this);
view.findViewById(R.id.test_time_picker_button).setOnClickListener(this);
view.findViewById(R.id.test_number_picker_button).setOnClickListener(this);
mDateSummary = (TextView) view.findViewById(R.id.test_date_picker_description);
mTimeSummary = (TextView) view.findViewById(R.id.test_time_picker_description);
mNumberSummary = (TextView) view.findViewById(R.id.test_number_picker_description);
mDatePickerDialog = new DatePickerDialog(context, this,
mCalendar.get(Calendar.YEAR),
mCalendar.get(Calendar.MONTH),
mCalendar.get(Calendar.DAY_OF_MONTH));
mTimePickerDialog = new TimePickerDialog(context, this,
mCalendar.get(Calendar.HOUR_OF_DAY),
mCalendar.get(Calendar.MINUTE),
false);
mDateSummary.setText(DATE_FORMAT.format(mCalendar.getTime()));
mTimeSummary.setText(TIME_FORMAT.format(mCalendar.getTime()));
mNumberSummary.setText("0");
NumberPicker np = new NumberPicker(context);
np.setMaxValue(100);
np.setMinValue(0);
np.setValue(0);
np.setWrapSelectorWheel(false);
np.setOnValueChangedListener(this);
AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setTitle(R.string.number_picker_title);
builder.setView(np);
builder.setNeutralButton(R.string.alert_ok_button, null);
mNumberPickerDialog = builder.create();
return view;
}
@Override
public void onClick(View view) {
switch (view.getId()) {
case R.id.test_date_picker_button:
mDatePickerDialog.show();
break;
case R.id.test_time_picker_button:
mTimePickerDialog.show();
break;
case R.id.test_number_picker_button:
mNumberPickerDialog.show();
break;
}
}
@Override
public void onDateSet(DatePicker datePicker, int year, int month, int date) {
mCalendar.set(year, month, date);
mDateSummary.setText(DATE_FORMAT.format(mCalendar.getTime()));
}
@Override
public void onTimeSet(TimePicker timePicker, int hour, int minute) {
mCalendar.set(Calendar.HOUR_OF_DAY, hour);
mCalendar.set(Calendar.MINUTE, minute);
mTimeSummary.setText(TIME_FORMAT.format(mCalendar.getTime()));
}
@Override
public void onValueChange(NumberPicker numberPicker, int oldVal, int newVal) {
mNumberSummary.setText(newVal + "");
}
}