亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? setalarm.java

?? Android app: AlartClock鬧鐘
?? JAVA
字號:
/* * Copyright (C) 2007 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.alarmclock;import android.app.Activity;import android.app.Dialog;import android.app.TimePickerDialog;import android.content.Context;import android.content.Intent;import android.database.ContentObserver;import android.media.Ringtone;import android.media.RingtoneManager;import android.net.Uri;import android.os.Bundle;import android.os.Handler;import android.preference.Preference;import android.preference.PreferenceActivity;import android.preference.CheckBoxPreference;import android.preference.PreferenceScreen;import android.text.format.DateFormat;import android.view.Menu;import android.view.MenuItem;import android.widget.TimePicker;import android.widget.Toast;/** * Manages each alarm */public class SetAlarm extends PreferenceActivity        implements Alarms.AlarmSettings, TimePickerDialog.OnTimeSetListener {    private CheckBoxPreference mAlarmOnPref;    private Preference mTimePref;    private AlarmPreference mAlarmPref;    private CheckBoxPreference mVibratePref;    private RepeatPreference mRepeatPref;    private ContentObserver mAlarmsChangeObserver;    private MenuItem mDeleteAlarmItem;    private MenuItem mTestAlarmItem;    private int mId;    private int mHour;    private int mMinutes;    private Alarms.DaysOfWeek mDaysOfWeek = new Alarms.DaysOfWeek();    private boolean mReportAlarmCalled;    private static final int DIALOG_TIMEPICKER = 0;    private class RingtoneChangedListener implements AlarmPreference.IRingtoneChangedListener {        public void onRingtoneChanged(Uri ringtoneUri) {            saveAlarm(false);        }    }    private class OnRepeatChangedObserver implements RepeatPreference.OnRepeatChangedObserver {        public void onRepeatChanged(Alarms.DaysOfWeek daysOfWeek) {            if (!mDaysOfWeek.equals(daysOfWeek)) {                mDaysOfWeek.set(daysOfWeek);                saveAlarm(true);            }        }        public Alarms.DaysOfWeek getDaysOfWeek() {            return mDaysOfWeek;        }    }    private class AlarmsChangeObserver extends ContentObserver {        public AlarmsChangeObserver() {            super(new Handler());        }        @Override        public void onChange(boolean selfChange) {            Alarms.getAlarm(getContentResolver(), SetAlarm.this, mId);        }    }    /**     * Set an alarm.  Requires an Alarms.ID to be passed in as an     * extra     */    @Override    protected void onCreate(Bundle icicle) {        super.onCreate(icicle);        addPreferencesFromResource(R.xml.alarm_prefs);        mAlarmOnPref = (CheckBoxPreference)findPreference("on");        mTimePref = findPreference("time");        mAlarmPref = (AlarmPreference) findPreference("alarm");        mVibratePref = (CheckBoxPreference) findPreference("vibrate");        mRepeatPref = (RepeatPreference) findPreference("setRepeat");        Intent i = getIntent();        mId = i.getIntExtra(Alarms.ID, -1);        if (Log.LOGV) Log.v("In SetAlarm, alarm id = " + mId);        mReportAlarmCalled = false;        /* load alarm details from database */        Alarms.getAlarm(getContentResolver(), this, mId);        /* This should never happen, but does occasionally with the monkey.         * I believe it's a race condition where a deleted alarm is opened         * before the alarm list is refreshed. */        if (!mReportAlarmCalled) {            Log.e("reportAlarm never called!");            finish();        }        mAlarmsChangeObserver = new AlarmsChangeObserver();        getContentResolver().registerContentObserver(                Alarms.AlarmColumns.CONTENT_URI, true, mAlarmsChangeObserver);        mAlarmPref.setRingtoneChangedListener(new RingtoneChangedListener());        mRepeatPref.setOnRepeatChangedObserver(new OnRepeatChangedObserver());    }    @Override    protected void onDestroy() {        super.onDestroy();        getContentResolver().unregisterContentObserver(mAlarmsChangeObserver);    }    @Override    protected Dialog onCreateDialog(int id) {        Dialog d;        switch (id) {        case DIALOG_TIMEPICKER:            d = new TimePickerDialog(                    SetAlarm.this,                    this,                    0,                    0,                    DateFormat.is24HourFormat(SetAlarm.this));            d.setTitle(getResources().getString(R.string.time));            break;        default:            d = null;        }        return d;    }    @Override    protected void onPrepareDialog(int id, Dialog dialog) {        super.onPrepareDialog(id, dialog);        switch (id) {        case DIALOG_TIMEPICKER:            TimePickerDialog timePicker = (TimePickerDialog)dialog;            timePicker.updateTime(mHour, mMinutes);            break;        }    }    @Override    public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) {        if (preference == mTimePref) {            showDialog(DIALOG_TIMEPICKER);        } else if (preference == mAlarmOnPref) {            saveAlarm(true);        } else if (preference == mVibratePref) {            saveAlarm(false);        }        return super.onPreferenceTreeClick(preferenceScreen, preference);    }    public void onTimeSet(TimePicker view, int hourOfDay, int minute) {        mHour = hourOfDay;        mMinutes = minute;        mAlarmOnPref.setChecked(true);        saveAlarm(true);    }    /**     * Alarms.AlarmSettings implementation.  Database feeds current     * settings in through this call     */    public void reportAlarm(            int idx, boolean enabled, int hour, int minutes,            Alarms.DaysOfWeek daysOfWeek, boolean vibrate,String message,            String alert) {        mHour = hour;        mMinutes = minutes;        mAlarmOnPref.setChecked(enabled);        mDaysOfWeek.set(daysOfWeek);        mVibratePref.setChecked(vibrate);        if (alert == null || alert.length() == 0) {            if (Log.LOGV) Log.v("****** reportAlarm null or 0-length alert");            mAlarmPref.mAlert = getDefaultAlarm();            if (mAlarmPref.mAlert == null) {                Log.e("****** Default Alarm null");            }        } else {            mAlarmPref.mAlert = Uri.parse(alert);            if (mAlarmPref.mAlert == null) {                Log.e("****** Parsed null alarm. URI: " + alert);            }        }        if (Log.LOGV) Log.v("****** reportAlarm uri " + alert + " alert " +                            mAlarmPref.mAlert);        updateTime();        updateRepeat();        updateAlarm(mAlarmPref.mAlert);        mReportAlarmCalled = true;    }    /**     * picks the first alarm available     */    private Uri getDefaultAlarm() {        RingtoneManager ringtoneManager = new RingtoneManager(this);        ringtoneManager.setType(RingtoneManager.TYPE_ALARM);        return ringtoneManager.getRingtoneUri(0);    }    private void updateTime() {        if (Log.LOGV) Log.v("updateTime " + mId);        mTimePref.setSummary(Alarms.formatTime(this, mHour, mMinutes, mDaysOfWeek));    }    private void updateAlarm(Uri ringtoneUri) {        if (Log.LOGV) Log.v("updateAlarm " + mId);        Ringtone ringtone = RingtoneManager.getRingtone(SetAlarm.this, ringtoneUri);        if (ringtone != null) {            mAlarmPref.setSummary(ringtone.getTitle(SetAlarm.this));        }    }    private void updateRepeat() {        if (Log.LOGV) Log.v("updateRepeat " + mId);        mRepeatPref.setSummary(mDaysOfWeek.toString(this, true));    }    private void saveAlarm(boolean popToast) {        if (mReportAlarmCalled && mAlarmPref.mAlert != null) {            String alertString = mAlarmPref.mAlert.toString();            saveAlarm(this, mId, mAlarmOnPref.isChecked(), mHour, mMinutes,                      mDaysOfWeek, mVibratePref.isChecked(), alertString,                      popToast);        }    }    /**     * Write alarm out to persistent store and pops toast if alarm     * enabled     */    private static void saveAlarm(            Context context, int id, boolean enabled, int hour, int minute,            Alarms.DaysOfWeek daysOfWeek, boolean vibrate, String alert,            boolean popToast) {        if (Log.LOGV) Log.v("** saveAlarm " + id + " " + enabled + " " + hour +                            " " + minute + " vibe " + vibrate);        // Fix alert string first        Alarms.setAlarm(context, id, enabled, hour, minute, daysOfWeek, vibrate,                        "", alert);        if (enabled && popToast) {            popAlarmSetToast(context, hour, minute, daysOfWeek);        }    }    /**     * Display a toast that tells the user how long until the alarm     * goes off.  This helps prevent "am/pm" mistakes.     */    static void popAlarmSetToast(Context context, int hour, int minute,                                 Alarms.DaysOfWeek daysOfWeek) {        String toastText = formatToast(context, hour, minute, daysOfWeek);        Toast toast = Toast.makeText(context, toastText, Toast.LENGTH_LONG);        ToastMaster.setToast(toast);        toast.show();    }    /**     * format "Alarm set for 2 days 7 hours and 53 minutes from     * now"     */    static String formatToast(Context context, int hour, int minute,                              Alarms.DaysOfWeek daysOfWeek) {        long alarm = Alarms.calculateAlarm(hour, minute,                                           daysOfWeek).getTimeInMillis();        long delta = alarm - System.currentTimeMillis();;        long hours = delta / (1000 * 60 * 60);        long minutes = delta / (1000 * 60) % 60;        long days = hours / 24;        hours = hours % 24;        String daySeq = (days == 0) ? "" :                (days == 1) ? context.getString(R.string.day) :                context.getString(R.string.days, Long.toString(days));        String minSeq = (minutes == 0) ? "" :                (minutes == 1) ? context.getString(R.string.minute) :                context.getString(R.string.minutes, Long.toString(minutes));        String hourSeq = (hours == 0) ? "" :                (hours == 1) ? context.getString(R.string.hour) :                context.getString(R.string.hours, Long.toString(hours));        boolean dispDays = days > 0;        boolean dispHour = hours > 0;        boolean dispMinute = minutes > 0;        String ret;        if (!(dispDays || dispHour || dispMinute)) {            ret = context.getString(R.string.subminute);        } else {            String parts[] = new String[5];            parts[0] = daySeq;            parts[1] = !dispDays ? "" :                    dispHour && dispMinute ? context.getString(R.string.space) :                    !dispHour && !dispMinute ? "" :                    context.getString(R.string.and);            parts[2] = dispHour ? hourSeq : "";            parts[3] = dispHour && dispMinute ? context.getString(R.string.and) : "";            parts[4] = dispMinute ? minSeq : "";            ret = context.getString(R.string.combiner, (Object[])parts);        }        ret = context.getString(R.string.alarm_set, ret);        /* if (Log.LOGV) Log.v("** TOAST daySeq " + daySeq + " hourSeq " + hourSeq +           " minSeq " + minSeq + " ret " + ret); */        return ret;    }    public boolean onCreateOptionsMenu(Menu menu) {        super.onCreateOptionsMenu(menu);        mDeleteAlarmItem = menu.add(0, 0, 0, R.string.delete_alarm);        mDeleteAlarmItem.setIcon(android.R.drawable.ic_menu_delete);        if (AlarmClock.DEBUG) {            mTestAlarmItem = menu.add(0, 0, 0, "test alarm");        }        return true;    }    public boolean onOptionsItemSelected(MenuItem item) {        if (item == mDeleteAlarmItem) {            Alarms.deleteAlarm(this, mId);            finish();            return true;        }        if (AlarmClock.DEBUG) {            if (item == mTestAlarmItem) {                setTestAlarm();                return true;            }        }        return false;    }    /**     * Test code: this is disabled for production build.  Sets     * this alarm to go off on the next minute     */    void setTestAlarm() {        // start with now        java.util.Calendar c = java.util.Calendar.getInstance();        c.setTimeInMillis(System.currentTimeMillis());        int nowHour = c.get(java.util.Calendar.HOUR_OF_DAY);        int nowMinute = c.get(java.util.Calendar.MINUTE);        int minutes = (nowMinute + 1) % 60;        int hour = nowHour + (nowMinute == 0? 1 : 0);        saveAlarm(this, mId, true, hour, minutes, mDaysOfWeek, true,                  mAlarmPref.mAlert.toString(), true);    }}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产99精品在线观看| 蜜桃久久精品一区二区| 精品免费国产一区二区三区四区| 欧美亚洲动漫另类| 在线日韩av片| 色婷婷久久久综合中文字幕| 日本高清不卡视频| 久久久久99精品国产片| 337p粉嫩大胆色噜噜噜噜亚洲| 日韩视频在线永久播放| 日韩精品在线一区二区| 精品国产百合女同互慰| 国产亚洲视频系列| 亚洲视频你懂的| 亚洲综合色噜噜狠狠| 天天操天天色综合| 蜜桃久久久久久| 粉嫩久久99精品久久久久久夜| 成人福利电影精品一区二区在线观看| a4yy欧美一区二区三区| 欧美日本在线观看| 精品久久人人做人人爽| 中文字幕中文字幕一区二区| 亚洲精品成人在线| 美女视频黄久久| 成人久久18免费网站麻豆| 欧洲视频一区二区| 欧美一级黄色大片| 国产精品久久久久久福利一牛影视 | 91视频.com| 欧美人妇做爰xxxⅹ性高电影| 日韩女优电影在线观看| 国产精品色哟哟网站| 亚洲一区二区影院| 激情深爱一区二区| 在线日韩一区二区| 26uuu欧美日本| 一区二区高清免费观看影视大全 | 国产精品久久久久7777按摩| 亚洲网友自拍偷拍| 国产寡妇亲子伦一区二区| 91久久精品午夜一区二区| 欧美成人女星排名| 一区二区三区色| 国产乱码字幕精品高清av | 日韩欧美一级二级三级久久久| 国产亲近乱来精品视频 | 国产在线看一区| 91福利区一区二区三区| 久久久久久久久久久久久夜| 亚洲福中文字幕伊人影院| 韩国一区二区三区| 69精品人人人人| 亚洲精选视频免费看| 国产不卡免费视频| 日韩欧美成人午夜| 亚洲超碰97人人做人人爱| 99热精品一区二区| 国产欧美精品一区二区三区四区| 日本美女一区二区| 欧美丝袜自拍制服另类| 国产精品国产精品国产专区不片| 麻豆免费精品视频| 欧美精品丝袜久久久中文字幕| 亚洲精品你懂的| 成人av在线电影| 久久久久久久综合色一本| 五月天激情小说综合| 欧洲一区二区av| 亚洲男同1069视频| 91免费国产在线观看| 国产精品电影院| 99久久精品国产网站| 国产三级欧美三级| 国产乱码字幕精品高清av| 精品sm捆绑视频| 视频在线观看国产精品| 欧美亚洲高清一区| 日韩高清在线不卡| 91麻豆精品国产91久久久资源速度| 亚洲尤物视频在线| 欧美日韩国产精品成人| 日韩精品视频网站| 日韩精品自拍偷拍| 国产高清无密码一区二区三区| 久久精品一区二区三区不卡牛牛| 国内精品国产三级国产a久久| 精品国产99国产精品| 国产精品一区2区| 成人欧美一区二区三区视频网页| 国产99久久久久久免费看农村| 欧美国产精品v| 91丨国产丨九色丨pron| 一区二区欧美在线观看| 69成人精品免费视频| 久久99久久久久久久久久久| 久久美女高清视频| 成人午夜私人影院| 夜夜精品视频一区二区| 91精品麻豆日日躁夜夜躁| 国产乱码一区二区三区| 中文字幕一区二区三区色视频 | 99re这里只有精品首页| 亚洲精品一二三四区| 欧美久久一二区| 九色porny丨国产精品| 国产午夜精品久久| 欧美日韩一区二区在线视频| 久久99久国产精品黄毛片色诱| 国产精品日产欧美久久久久| 精品视频一区 二区 三区| 激情小说亚洲一区| 亚洲影视在线播放| 久久免费精品国产久精品久久久久 | 激情久久久久久久久久久久久久久久| 国产日韩三级在线| 在线亚洲人成电影网站色www| 美女久久久精品| 亚洲天堂福利av| 日韩欧美国产精品一区| 99精品视频一区| 蜜桃91丨九色丨蝌蚪91桃色| 最新国产精品久久精品| 精品国产一区二区亚洲人成毛片| 91免费视频网| 岛国av在线一区| 美女看a上一区| 亚洲va中文字幕| 亚洲欧美自拍偷拍色图| 久久在线观看免费| 51久久夜色精品国产麻豆| 91美女片黄在线| 国产成人免费在线观看| 日韩成人伦理电影在线观看| 亚洲欧美在线高清| 国产偷国产偷亚洲高清人白洁| 在线播放欧美女士性生活| 色综合天天综合给合国产| 国产精品影视天天线| 免费观看成人av| 婷婷国产v国产偷v亚洲高清| 亚洲人快播电影网| 中文字幕亚洲区| 国产女人18毛片水真多成人如厕| 欧美不卡视频一区| 日韩一级免费观看| 欧美日本韩国一区| 欧美群妇大交群中文字幕| 欧美亚洲禁片免费| 在线观看亚洲一区| 色视频成人在线观看免| 91在线视频免费91| 91浏览器打开| 91精品办公室少妇高潮对白| 在线看国产日韩| 欧美中文字幕久久| 欧美亚洲国产bt| 欧美日韩成人高清| 欧美精品九九99久久| 欧美日韩国产天堂| 717成人午夜免费福利电影| 欧美精品1区2区3区| 91精品国产色综合久久ai换脸| 555www色欧美视频| 精品福利av导航| 欧美极品少妇xxxxⅹ高跟鞋| 国产精品久久久久久久久搜平片 | 3d动漫精品啪啪一区二区竹菊| 欧美精品成人一区二区三区四区| 这里只有精品免费| 日韩一区二区中文字幕| 久久一夜天堂av一区二区三区| 欧美国产一区视频在线观看| √…a在线天堂一区| 亚洲日韩欧美一区二区在线| 亚洲国产乱码最新视频| 日本vs亚洲vs韩国一区三区二区| 极品瑜伽女神91| 成人午夜激情在线| 在线观看成人免费视频| 日韩欧美电影一区| 国产精品的网站| 丝袜美腿亚洲综合| 高清国产一区二区三区| 色88888久久久久久影院按摩 | 国产**成人网毛片九色 | 精品成人在线观看| 亚洲视频香蕉人妖| 久久成人av少妇免费| 99久久伊人精品| 91精品国产全国免费观看| 午夜精品视频一区| 国产一区二三区| 国产福利一区二区三区| 精品视频在线视频| 亚洲国产经典视频| 免费成人在线视频观看| 色8久久精品久久久久久蜜| 亚洲精品一线二线三线| 亚洲一区二区视频|