126f1eef7a9696e35f894bec90594d26d6a1d6b0frachelzhang/*
226f1eef7a9696e35f894bec90594d26d6a1d6b0frachelzhang * Copyright (C) 2014 The Android Open Source Project
326f1eef7a9696e35f894bec90594d26d6a1d6b0frachelzhang *
426f1eef7a9696e35f894bec90594d26d6a1d6b0frachelzhang * Licensed under the Apache License, Version 2.0 (the "License");
526f1eef7a9696e35f894bec90594d26d6a1d6b0frachelzhang * you may not use this file except in compliance with the License.
626f1eef7a9696e35f894bec90594d26d6a1d6b0frachelzhang * You may obtain a copy of the License at
726f1eef7a9696e35f894bec90594d26d6a1d6b0frachelzhang *
826f1eef7a9696e35f894bec90594d26d6a1d6b0frachelzhang *      http://www.apache.org/licenses/LICENSE-2.0
926f1eef7a9696e35f894bec90594d26d6a1d6b0frachelzhang *
1026f1eef7a9696e35f894bec90594d26d6a1d6b0frachelzhang * Unless required by applicable law or agreed to in writing, software
1126f1eef7a9696e35f894bec90594d26d6a1d6b0frachelzhang * distributed under the License is distributed on an "AS IS" BASIS,
1226f1eef7a9696e35f894bec90594d26d6a1d6b0frachelzhang * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1326f1eef7a9696e35f894bec90594d26d6a1d6b0frachelzhang * See the License for the specific language governing permissions and
1426f1eef7a9696e35f894bec90594d26d6a1d6b0frachelzhang * limitations under the License.
1526f1eef7a9696e35f894bec90594d26d6a1d6b0frachelzhang */
1626f1eef7a9696e35f894bec90594d26d6a1d6b0frachelzhang
1726f1eef7a9696e35f894bec90594d26d6a1d6b0frachelzhangpackage com.android.deskclock;
1826f1eef7a9696e35f894bec90594d26d6a1d6b0frachelzhang
1926f1eef7a9696e35f894bec90594d26d6a1d6b0frachelzhangimport android.app.Activity;
2026f1eef7a9696e35f894bec90594d26d6a1d6b0frachelzhangimport android.app.Dialog;
2126f1eef7a9696e35f894bec90594d26d6a1d6b0frachelzhangimport android.app.DialogFragment;
2226f1eef7a9696e35f894bec90594d26d6a1d6b0frachelzhangimport android.app.TimePickerDialog;
2326f1eef7a9696e35f894bec90594d26d6a1d6b0frachelzhangimport android.app.TimePickerDialog.OnTimeSetListener;
2426f1eef7a9696e35f894bec90594d26d6a1d6b0frachelzhangimport android.os.Bundle;
2526f1eef7a9696e35f894bec90594d26d6a1d6b0frachelzhangimport android.text.format.DateFormat;
2626f1eef7a9696e35f894bec90594d26d6a1d6b0frachelzhang
2726f1eef7a9696e35f894bec90594d26d6a1d6b0frachelzhangimport com.android.deskclock.provider.Alarm;
2826f1eef7a9696e35f894bec90594d26d6a1d6b0frachelzhang
2926f1eef7a9696e35f894bec90594d26d6a1d6b0frachelzhangimport java.util.Calendar;
3026f1eef7a9696e35f894bec90594d26d6a1d6b0frachelzhang
3126f1eef7a9696e35f894bec90594d26d6a1d6b0frachelzhangpublic class TimePickerFragment extends DialogFragment {
3226f1eef7a9696e35f894bec90594d26d6a1d6b0frachelzhang
3326f1eef7a9696e35f894bec90594d26d6a1d6b0frachelzhang    private Alarm mAlarm;
3426f1eef7a9696e35f894bec90594d26d6a1d6b0frachelzhang    private OnTimeSetListener mListener;
3526f1eef7a9696e35f894bec90594d26d6a1d6b0frachelzhang
3626f1eef7a9696e35f894bec90594d26d6a1d6b0frachelzhang    @Override
3726f1eef7a9696e35f894bec90594d26d6a1d6b0frachelzhang    public Dialog onCreateDialog(Bundle savedInstanceState) {
3826f1eef7a9696e35f894bec90594d26d6a1d6b0frachelzhang        final int hour, minute;
3926f1eef7a9696e35f894bec90594d26d6a1d6b0frachelzhang        if (mAlarm == null) {
4026f1eef7a9696e35f894bec90594d26d6a1d6b0frachelzhang            final Calendar c = Calendar.getInstance();
4126f1eef7a9696e35f894bec90594d26d6a1d6b0frachelzhang            hour = c.get(Calendar.HOUR_OF_DAY);
4226f1eef7a9696e35f894bec90594d26d6a1d6b0frachelzhang            minute = c.get(Calendar.MINUTE);
4326f1eef7a9696e35f894bec90594d26d6a1d6b0frachelzhang        } else {
4426f1eef7a9696e35f894bec90594d26d6a1d6b0frachelzhang            hour = mAlarm.hour;
4526f1eef7a9696e35f894bec90594d26d6a1d6b0frachelzhang            minute = mAlarm.minutes;
4626f1eef7a9696e35f894bec90594d26d6a1d6b0frachelzhang        }
4726f1eef7a9696e35f894bec90594d26d6a1d6b0frachelzhang
4826f1eef7a9696e35f894bec90594d26d6a1d6b0frachelzhang        return new TimePickerDialog(getActivity(), R.style.TimePickerTheme, mListener, hour, minute,
4926f1eef7a9696e35f894bec90594d26d6a1d6b0frachelzhang                DateFormat.is24HourFormat(getActivity()));
5026f1eef7a9696e35f894bec90594d26d6a1d6b0frachelzhang    }
5126f1eef7a9696e35f894bec90594d26d6a1d6b0frachelzhang
5226f1eef7a9696e35f894bec90594d26d6a1d6b0frachelzhang    @Override
5326f1eef7a9696e35f894bec90594d26d6a1d6b0frachelzhang    public void onAttach(Activity activity) {
5426f1eef7a9696e35f894bec90594d26d6a1d6b0frachelzhang        super.onAttach(activity);
5526f1eef7a9696e35f894bec90594d26d6a1d6b0frachelzhang        if (getTargetFragment() instanceof OnTimeSetListener) {
5626f1eef7a9696e35f894bec90594d26d6a1d6b0frachelzhang            setOnTimeSetListener((OnTimeSetListener) getTargetFragment());
5726f1eef7a9696e35f894bec90594d26d6a1d6b0frachelzhang        }
5826f1eef7a9696e35f894bec90594d26d6a1d6b0frachelzhang    }
5926f1eef7a9696e35f894bec90594d26d6a1d6b0frachelzhang
6026f1eef7a9696e35f894bec90594d26d6a1d6b0frachelzhang    public void setOnTimeSetListener(OnTimeSetListener listener) {
6126f1eef7a9696e35f894bec90594d26d6a1d6b0frachelzhang        mListener = listener;
6226f1eef7a9696e35f894bec90594d26d6a1d6b0frachelzhang    }
6326f1eef7a9696e35f894bec90594d26d6a1d6b0frachelzhang
6426f1eef7a9696e35f894bec90594d26d6a1d6b0frachelzhang    public void setAlarm(Alarm alarm) {
6526f1eef7a9696e35f894bec90594d26d6a1d6b0frachelzhang        mAlarm = alarm;
6626f1eef7a9696e35f894bec90594d26d6a1d6b0frachelzhang    }
6726f1eef7a9696e35f894bec90594d26d6a1d6b0frachelzhang}
68