summaryrefslogtreecommitdiffstats
path: root/src/com/android/settings/DateTimeSettings.java
diff options
context:
space:
mode:
authorThe Android Open Source Project <initial-contribution@android.com>2009-03-03 18:28:52 -0800
committerThe Android Open Source Project <initial-contribution@android.com>2009-03-03 18:28:52 -0800
commit4e14e5ccbf1ef27220419849133d482a546d5c04 (patch)
tree4b825dc642cb6eb9a060e54bf8d69288fbee4904 /src/com/android/settings/DateTimeSettings.java
parenta578a6c4ad2924236a8882e3eb794474d57ca450 (diff)
downloadpackages_apps_Settings-4e14e5ccbf1ef27220419849133d482a546d5c04.zip
packages_apps_Settings-4e14e5ccbf1ef27220419849133d482a546d5c04.tar.gz
packages_apps_Settings-4e14e5ccbf1ef27220419849133d482a546d5c04.tar.bz2
auto import from //depot/cupcake/@135843
Diffstat (limited to 'src/com/android/settings/DateTimeSettings.java')
-rw-r--r--src/com/android/settings/DateTimeSettings.java366
1 files changed, 0 insertions, 366 deletions
diff --git a/src/com/android/settings/DateTimeSettings.java b/src/com/android/settings/DateTimeSettings.java
deleted file mode 100644
index e78215a..0000000
--- a/src/com/android/settings/DateTimeSettings.java
+++ /dev/null
@@ -1,366 +0,0 @@
-/*
- * Copyright (C) 2008 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.settings;
-
-import android.app.Dialog;
-import android.app.DatePickerDialog;
-import android.app.TimePickerDialog;
-import android.content.BroadcastReceiver;
-import android.content.Context;
-import android.content.Intent;
-import android.content.IntentFilter;
-import android.content.SharedPreferences;
-import android.content.SharedPreferences.OnSharedPreferenceChangeListener;
-import android.os.Bundle;
-import android.os.SystemClock;
-import android.preference.CheckBoxPreference;
-import android.preference.ListPreference;
-import android.preference.Preference;
-import android.preference.PreferenceActivity;
-import android.preference.PreferenceScreen;
-import android.provider.Settings;
-import android.provider.Settings.SettingNotFoundException;
-import android.text.format.DateFormat;
-import android.widget.DatePicker;
-import android.widget.TimePicker;
-
-import java.util.Calendar;
-import java.util.Date;
-import java.util.TimeZone;
-
-public class DateTimeSettings
- extends PreferenceActivity
- implements OnSharedPreferenceChangeListener,
- TimePickerDialog.OnTimeSetListener , DatePickerDialog.OnDateSetListener {
-
- private static final String HOURS_12 = "12";
- private static final String HOURS_24 = "24";
-
- private Calendar mDummyDate;
- private static final String KEY_DATE_FORMAT = "date_format";
- private static final String KEY_AUTO_TIME = "auto_time";
-
- private static final int DIALOG_DATEPICKER = 0;
- private static final int DIALOG_TIMEPICKER = 1;
-
- private CheckBoxPreference mAutoPref;
- private Preference mTimePref;
- private Preference mTime24Pref;
- private Preference mTimeZone;
- private Preference mDatePref;
- private ListPreference mDateFormat;
-
- @Override
- protected void onCreate(Bundle icicle) {
- super.onCreate(icicle);
-
- addPreferencesFromResource(R.xml.date_time_prefs);
-
- initUI();
- }
-
- private void initUI() {
- boolean autoEnabled = getAutoState();
-
- mDummyDate = Calendar.getInstance();
- mDummyDate.set(mDummyDate.get(Calendar.YEAR), 11, 31, 13, 0, 0);
-
- mAutoPref = (CheckBoxPreference) findPreference(KEY_AUTO_TIME);
- mAutoPref.setChecked(autoEnabled);
- mTimePref = findPreference("time");
- mTime24Pref = findPreference("24 hour");
- mTimeZone = findPreference("timezone");
- mDatePref = findPreference("date");
- mDateFormat = (ListPreference) findPreference(KEY_DATE_FORMAT);
-
- int currentFormatIndex = -1;
- String [] dateFormats = getResources().getStringArray(R.array.date_format_values);
- String [] formattedDates = new String[dateFormats.length];
- String currentFormat = getDateFormat();
- // Initialize if DATE_FORMAT is not set in the system settings
- // This can happen after a factory reset (or data wipe)
- if (currentFormat == null) {
- currentFormat = getResources().getString(R.string.default_date_format);
- setDateFormat(currentFormat);
- }
- for (int i = 0; i < formattedDates.length; i++) {
- formattedDates[i] = DateFormat.format(dateFormats[i], mDummyDate).toString();
- if (currentFormat.equals(dateFormats[i])) currentFormatIndex = i;
- }
-
- mDateFormat.setEntries(formattedDates);
- mDateFormat.setEntryValues(R.array.date_format_values);
- mDateFormat.setValue(currentFormat);
-
- mTimePref.setEnabled(!autoEnabled);
- mDatePref.setEnabled(!autoEnabled);
- mTimeZone.setEnabled(!autoEnabled);
-
- getPreferenceScreen().getSharedPreferences().registerOnSharedPreferenceChangeListener(this);
- }
-
-
- @Override
- protected void onResume() {
- super.onResume();
-
- ((CheckBoxPreference)mTime24Pref).setChecked(is24Hour());
-
- // Register for time ticks and other reasons for time change
- IntentFilter filter = new IntentFilter();
- filter.addAction(Intent.ACTION_TIME_TICK);
- filter.addAction(Intent.ACTION_TIME_CHANGED);
- filter.addAction(Intent.ACTION_TIMEZONE_CHANGED);
- registerReceiver(mIntentReceiver, filter, null, null);
-
- updateTimeAndDateDisplay();
- }
-
- @Override
- protected void onPause() {
- super.onPause();
- unregisterReceiver(mIntentReceiver);
- }
-
- private void updateTimeAndDateDisplay() {
- java.text.DateFormat shortDateFormat = DateFormat.getDateFormat(this);
- Date now = Calendar.getInstance().getTime();
- Date dummyDate = mDummyDate.getTime();
- mTimePref.setSummary(DateFormat.getTimeFormat(this).format(now));
- mTimeZone.setSummary(getTimeZoneText());
- mDatePref.setSummary(shortDateFormat.format(now));
- mDateFormat.setSummary(shortDateFormat.format(dummyDate));
- }
-
- public void onDateSet(DatePicker view, int year, int month, int day) {
- Calendar c = Calendar.getInstance();
-
- c.set(Calendar.YEAR, year);
- c.set(Calendar.MONTH, month);
- c.set(Calendar.DAY_OF_MONTH, day);
- long when = c.getTimeInMillis();
-
- if (when / 1000 < Integer.MAX_VALUE) {
- SystemClock.setCurrentTimeMillis(when);
- }
- updateTimeAndDateDisplay();
- }
-
- public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
- Calendar c = Calendar.getInstance();
-
- c.set(Calendar.HOUR_OF_DAY, hourOfDay);
- c.set(Calendar.MINUTE, minute);
- long when = c.getTimeInMillis();
-
- if (when / 1000 < Integer.MAX_VALUE) {
- SystemClock.setCurrentTimeMillis(when);
- }
- updateTimeAndDateDisplay();
- timeUpdated();
- }
-
- public void onSharedPreferenceChanged(SharedPreferences preferences, String key) {
- if (key.equals(KEY_DATE_FORMAT)) {
- String format = preferences.getString(key,
- getResources().getString(R.string.default_date_format));
- Settings.System.putString(getContentResolver(),
- Settings.System.DATE_FORMAT, format);
- updateTimeAndDateDisplay();
- } else if (key.equals(KEY_AUTO_TIME)) {
- boolean autoEnabled = preferences.getBoolean(key, true);
- Settings.System.putInt(getContentResolver(),
- Settings.System.AUTO_TIME,
- autoEnabled ? 1 : 0);
- mTimePref.setEnabled(!autoEnabled);
- mDatePref.setEnabled(!autoEnabled);
- mTimeZone.setEnabled(!autoEnabled);
- }
- }
-
- @Override
- public Dialog onCreateDialog(int id) {
- Dialog d;
-
- switch (id) {
- case DIALOG_DATEPICKER: {
- final Calendar calendar = Calendar.getInstance();
- d = new DatePickerDialog(
- this,
- this,
- calendar.get(Calendar.YEAR),
- calendar.get(Calendar.MONTH),
- calendar.get(Calendar.DAY_OF_MONTH));
- d.setTitle(getResources().getString(R.string.date_time_changeDate_text));
- break;
- }
- case DIALOG_TIMEPICKER: {
- final Calendar calendar = Calendar.getInstance();
- d = new TimePickerDialog(
- this,
- this,
- calendar.get(Calendar.HOUR_OF_DAY),
- calendar.get(Calendar.MINUTE),
- DateFormat.is24HourFormat(this));
- d.setTitle(getResources().getString(R.string.date_time_changeTime_text));
- break;
- }
- default:
- d = null;
- break;
- }
-
- return d;
- }
-
- @Override
- public void onPrepareDialog(int id, Dialog d) {
- switch (id) {
- case DIALOG_DATEPICKER: {
- DatePickerDialog datePicker = (DatePickerDialog)d;
- final Calendar calendar = Calendar.getInstance();
- datePicker.updateDate(
- calendar.get(Calendar.YEAR),
- calendar.get(Calendar.MONTH),
- calendar.get(Calendar.DAY_OF_MONTH));
- break;
- }
- case DIALOG_TIMEPICKER: {
- TimePickerDialog timePicker = (TimePickerDialog)d;
- final Calendar calendar = Calendar.getInstance();
- timePicker.updateTime(
- calendar.get(Calendar.HOUR_OF_DAY),
- calendar.get(Calendar.MINUTE));
- break;
- }
- default:
- break;
- }
- }
-
- @Override
- public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) {
- if (preference == mDatePref) {
- showDialog(DIALOG_DATEPICKER);
- } else if (preference == mTimePref) {
- // The 24-hour mode may have changed, so recreate the dialog
- removeDialog(DIALOG_TIMEPICKER);
- showDialog(DIALOG_TIMEPICKER);
- } else if (preference == mTime24Pref) {
- set24Hour(((CheckBoxPreference)mTime24Pref).isChecked());
- updateTimeAndDateDisplay();
- timeUpdated();
- } else if (preference == mTimeZone) {
- Intent intent = new Intent();
- intent.setClass(this, ZoneList.class);
- startActivityForResult(intent, 0);
- }
- return false;
- }
-
- @Override
- protected void onActivityResult(int requestCode, int resultCode,
- Intent data) {
- updateTimeAndDateDisplay();
- }
-
- private void timeUpdated() {
- Intent timeChanged = new Intent(Intent.ACTION_TIME_CHANGED);
- sendBroadcast(timeChanged);
- }
-
- /* Get & Set values from the system settings */
-
- private boolean is24Hour() {
- return DateFormat.is24HourFormat(this);
- }
-
- private void set24Hour(boolean is24Hour) {
- Settings.System.putString(getContentResolver(),
- Settings.System.TIME_12_24,
- is24Hour? HOURS_24 : HOURS_12);
- }
-
- private String getDateFormat() {
- return Settings.System.getString(getContentResolver(),
- Settings.System.DATE_FORMAT);
- }
-
- private boolean getAutoState() {
- try {
- return Settings.System.getInt(getContentResolver(),
- Settings.System.AUTO_TIME) > 0;
- } catch (SettingNotFoundException snfe) {
- return true;
- }
- }
-
- private void setDateFormat(String format) {
- Settings.System.putString(getContentResolver(), Settings.System.DATE_FORMAT, format);
- }
-
- /* Helper routines to format timezone */
-
- private String getTimeZoneText() {
- TimeZone tz = java.util.Calendar.getInstance().getTimeZone();
- boolean daylight = tz.inDaylightTime(new Date());
- StringBuilder sb = new StringBuilder();
-
- sb.append(formatOffset(tz.getRawOffset() +
- (daylight ? tz.getDSTSavings() : 0))).
- append(", ").
- append(tz.getDisplayName(daylight, TimeZone.LONG));
-
- return sb.toString();
- }
-
- private char[] formatOffset(int off) {
- off = off / 1000 / 60;
-
- char[] buf = new char[9];
- buf[0] = 'G';
- buf[1] = 'M';
- buf[2] = 'T';
-
- if (off < 0) {
- buf[3] = '-';
- off = -off;
- } else {
- buf[3] = '+';
- }
-
- int hours = off / 60;
- int minutes = off % 60;
-
- buf[4] = (char) ('0' + hours / 10);
- buf[5] = (char) ('0' + hours % 10);
-
- buf[6] = ':';
-
- buf[7] = (char) ('0' + minutes / 10);
- buf[8] = (char) ('0' + minutes % 10);
-
- return buf;
- }
-
- private BroadcastReceiver mIntentReceiver = new BroadcastReceiver() {
- @Override
- public void onReceive(Context context, Intent intent) {
- updateTimeAndDateDisplay();
- }
- };
-}