resolved conflicts for merge of ab48c22e to master

Change-Id: Ia69df4acb1eed7d728e310e4fde3f75a520377a0
This commit is contained in:
Freeman Ng
2011-06-08 13:33:42 -07:00
4 changed files with 149 additions and 218 deletions

View File

@@ -1,196 +1,68 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2010 The Android Open Source Project <!-- Copyright (C) 2011 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
You may obtain a copy of the License at You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0 http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS, distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and See the License for the specific language governing permissions and
limitations under the License. limitations under the License.
--> -->
<RelativeLayout
android:id="@+id/layout_root"
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingTop="@dimen/datetime_margin_top"
android:paddingLeft="@dimen/screen_margin_sides"
android:paddingRight="@dimen/screen_margin_sides"
android:paddingBottom="@dimen/datetime_margin_bottom">
<!-- Title: Set date & time--> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
<TextView android:id="@+id/layout_root"
android:id="@+id/title" android:layout_height="match_parent"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:minHeight="48dip"
android:layout_alignParentLeft="true"
android:layout_marginLeft="16dip"
android:layout_alignParentTop="true"
android:textSize="32dip"
android:textColor="#FF99cc00"
android:text="@string/date_and_time_settings_title_setup_wizard"
android:gravity="bottom" />
<!-- Divider -->
<View
android:id="@+id/top_divider"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="3dip" android:paddingTop="96dip"
android:layout_below="@id/title" android:paddingLeft="40dip"
android:layout_marginTop="6dip" android:paddingRight="40dip"
android:layout_marginBottom="17dip" android:paddingBottom="96dip"
android:background="@color/divider_color" /> android:orientation="vertical">
<RelativeLayout <FrameLayout android:id="@+id/timezone_dropdown_anchor"
android:id="@+id/timezone_auto_time" android:layout_height="0px"
android:layout_width="716dip" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_marginLeft="40dip"
android:layout_centerHorizontal="true" android:layout_marginRight="40dip"/>
android:layout_below="@id/top_divider">
<!-- timezone -->
<Button
android:id="@+id/time_zone_button"
style="?android:attr/dropDownSpinnerStyle"
android:layout_width="304dip"
android:layout_height="48dip"
android:layout_alignParentLeft="true"
android:layout_alignBottom="@+id/date_time_auto"
android:gravity="left|center_vertical"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textSize="20dip" />
<LinearLayout <LinearLayout android:layout_height="0px"
android:id="@+id/date_time_auto" android:layout_weight="1"
android:layout_width="wrap_content" android:layout_width="match_parent"
android:layout_height="wrap_content" android:orientation="vertical">
android:orientation="vertical"
android:layout_toRightOf="@id/time_zone_button"
android:layout_marginLeft="32dip"
android:layout_alignParentRight="true">
<RelativeLayout <fragment android:id="@+id/date_time_settings_fragment"
android:layout_width="match_parent" class="com.android.settings.DateTimeSettings"
android:layout_height="wrap_content" android:layout_width="match_parent"
android:layout_toRightOf="@id/time_zone_button" android:layout_height="match_parent" />
android:layout_alignParentRight="true">
<TextView
android:id="@+id/date_time_auto_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="?android:attr/listPreferredItemHeight"
android:layout_marginLeft="16dip"
android:text="@string/date_time_auto"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textSize="20dip"
android:layout_alignParentLeft="true"
android:layout_toLeftOf="@+id/date_time_auto_button"
android:gravity="left|center_vertical" />
<CheckBox
android:id="@+id/date_time_auto_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_alignParentRight="true" />
</RelativeLayout>
<!--
<Switch
android:id="@+id/date_time_auto_button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="?android:attr/listPreferredItemHeight"
android:layout_marginLeft="16dip"
android:text="@string/date_time_auto"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textSize="20dip" /> -->
<!-- Divider -->
<View
android:layout_width="match_parent"
android:layout_height="1px"
android:background="@color/divider_color" />
</LinearLayout>
</RelativeLayout>
<LinearLayout
android:layout_width="624dip"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_below="@+id/timezone_auto_time"
android:layout_marginTop="48dip"
android:orientation="horizontal">
<LinearLayout
android:layout_width="312dip"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:id="@+id/date_picker_title"
android:layout_width="match_parent"
android:layout_height="48dip"
android:text="@string/date_picker_title"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textSize="20dip"
android:clickable="false"
android:longClickable="false"
android:gravity="center" />
<DatePicker
android:id="@+id/date_picker"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/date_picker_title" />
</LinearLayout>
<!-- divider -->
<View
android:id="@+id/center_divider"
android:layout_width="1dip"
android:layout_height="match_parent"
android:background="@color/divider_color" />
<LinearLayout
android:layout_width="312dip"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:id="@+id/time_picker_title"
android:layout_width="match_parent"
android:layout_height="48dip"
android:text="@string/time_picker_title"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textSize="20dip"
android:gravity="center" />
<TimePicker
android:id="@+id/time_picker"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/time_picker_title" />
</LinearLayout>
</LinearLayout> </LinearLayout>
<View <RelativeLayout android:layout_height="wrap_content"
android:id="@+id/bottom_divider" android:layout_weight="0"
android:layout_width="match_parent" android:layout_width="match_parent">
android:layout_height="3dip"
android:layout_alignLeft="@id/timezone_auto_time"
android:layout_above="@+id/next_button"
android:layout_marginBottom="16dip"
android:background="@color/divider_color" />
<Button <View
android:id="@+id/next_button" android:id="@+id/bottom_divider"
style="@style/setup_wizard_button" android:layout_height="3dip"
android:layout_alignParentBottom="true" android:layout_width="match_parent"
android:layout_alignParentRight="true" android:layout_marginTop="0dip"
android:text="@string/next_label" /> android:layout_marginBottom="16dip"
</RelativeLayout> android:background="@color/divider_color"
android:layout_above="@+id/next_button"/>
<Button android:id="@+id/next_button"
android:layout_width="wrap_content"
android:minWidth="208dip"
android:layout_height="48dip"
android:layout_marginTop="10dip"
android:layout_alignParentRight="true"
android:text="@string/next_label"/>
</RelativeLayout>
</LinearLayout>

View File

@@ -1,11 +1,11 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2010 The Android Open Source Project <!-- Copyright (C) 2011 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
You may obtain a copy of the License at You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0 http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS, distributed under the License is distributed on an "AS IS" BASIS,

View File

@@ -60,6 +60,9 @@ public class DateTimeSettings extends SettingsPreferenceFragment
private static final int DIALOG_DATEPICKER = 0; private static final int DIALOG_DATEPICKER = 0;
private static final int DIALOG_TIMEPICKER = 1; private static final int DIALOG_TIMEPICKER = 1;
// have we been launched from the setup wizard?
protected static final String EXTRA_IS_FIRST_RUN = "firstRun";
private CheckBoxPreference mAutoTimePref; private CheckBoxPreference mAutoTimePref;
private Preference mTimePref; private Preference mTimePref;
private Preference mTime24Pref; private Preference mTime24Pref;
@@ -81,15 +84,18 @@ public class DateTimeSettings extends SettingsPreferenceFragment
boolean autoTimeEnabled = getAutoState(Settings.System.AUTO_TIME); boolean autoTimeEnabled = getAutoState(Settings.System.AUTO_TIME);
boolean autoTimeZoneEnabled = getAutoState(Settings.System.AUTO_TIME_ZONE); boolean autoTimeZoneEnabled = getAutoState(Settings.System.AUTO_TIME_ZONE);
Intent intent = getActivity().getIntent();
boolean isFirstRun = intent.getBooleanExtra(EXTRA_IS_FIRST_RUN, false);
mDummyDate = Calendar.getInstance(); mDummyDate = Calendar.getInstance();
mDummyDate.set(mDummyDate.get(Calendar.YEAR), 11, 31, 13, 0, 0); mDummyDate.set(mDummyDate.get(Calendar.YEAR), 11, 31, 13, 0, 0);
mAutoTimePref = (CheckBoxPreference) findPreference(KEY_AUTO_TIME); mAutoTimePref = (CheckBoxPreference) findPreference(KEY_AUTO_TIME);
mAutoTimePref.setChecked(autoTimeEnabled); mAutoTimePref.setChecked(autoTimeEnabled);
mAutoTimeZonePref = (CheckBoxPreference) findPreference(KEY_AUTO_TIME_ZONE); mAutoTimeZonePref = (CheckBoxPreference) findPreference(KEY_AUTO_TIME_ZONE);
// Override auto-timezone if it's a wifi-only device. // Override auto-timezone if it's a wifi-only device or if we're still in setup wizard.
// TODO: Remove this when auto-timezone is implemented based on wifi-location. // TODO: Remove the wifiOnly test when auto-timezone is implemented based on wifi-location.
if (Utils.isWifiOnly()) { if (Utils.isWifiOnly() || isFirstRun) {
getPreferenceScreen().removePreference(mAutoTimeZonePref); getPreferenceScreen().removePreference(mAutoTimeZonePref);
autoTimeZoneEnabled = false; autoTimeZoneEnabled = false;
} }
@@ -100,6 +106,10 @@ public class DateTimeSettings extends SettingsPreferenceFragment
mTimeZone = findPreference("timezone"); mTimeZone = findPreference("timezone");
mDatePref = findPreference("date"); mDatePref = findPreference("date");
mDateFormat = (ListPreference) findPreference(KEY_DATE_FORMAT); mDateFormat = (ListPreference) findPreference(KEY_DATE_FORMAT);
if (isFirstRun) {
getPreferenceScreen().removePreference(mTime24Pref);
getPreferenceScreen().removePreference(mDateFormat);
}
String [] dateFormats = getResources().getStringArray(R.array.date_format_values); String [] dateFormats = getResources().getStringArray(R.array.date_format_values);
String [] formattedDates = new String[dateFormats.length]; String [] formattedDates = new String[dateFormats.length];
@@ -158,7 +168,7 @@ public class DateTimeSettings extends SettingsPreferenceFragment
.unregisterOnSharedPreferenceChangeListener(this); .unregisterOnSharedPreferenceChangeListener(this);
} }
private void updateTimeAndDateDisplay(Context context) { public void updateTimeAndDateDisplay(Context context) {
java.text.DateFormat shortDateFormat = DateFormat.getDateFormat(context); java.text.DateFormat shortDateFormat = DateFormat.getDateFormat(context);
final Calendar now = Calendar.getInstance(); final Calendar now = Calendar.getInstance();
Date dummyDate = mDummyDate.getTime(); Date dummyDate = mDummyDate.getTime();

View File

@@ -18,6 +18,8 @@ package com.android.settings;
import android.app.Activity; import android.app.Activity;
import android.app.AlarmManager; import android.app.AlarmManager;
import android.app.Fragment;
import android.app.FragmentTransaction;
import android.content.BroadcastReceiver; import android.content.BroadcastReceiver;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
@@ -25,6 +27,8 @@ import android.content.IntentFilter;
import android.content.pm.ActivityInfo; import android.content.pm.ActivityInfo;
import android.content.res.Configuration; import android.content.res.Configuration;
import android.os.Bundle; import android.os.Bundle;
import android.preference.Preference;
import android.preference.PreferenceFragment;
import android.provider.Settings; import android.provider.Settings;
import android.provider.Settings.SettingNotFoundException; import android.provider.Settings.SettingNotFoundException;
import android.util.Log; import android.util.Log;
@@ -38,6 +42,7 @@ import android.widget.Button;
import android.widget.CompoundButton; import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener; import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.DatePicker; import android.widget.DatePicker;
import android.widget.LinearLayout;
import android.widget.ListPopupWindow; import android.widget.ListPopupWindow;
import android.widget.SimpleAdapter; import android.widget.SimpleAdapter;
import android.widget.TextView; import android.widget.TextView;
@@ -47,14 +52,18 @@ import java.util.Calendar;
import java.util.TimeZone; import java.util.TimeZone;
public class DateTimeSettingsSetupWizard extends Activity public class DateTimeSettingsSetupWizard extends Activity
implements OnClickListener, OnItemClickListener, OnCheckedChangeListener{ implements OnClickListener, OnItemClickListener, OnCheckedChangeListener,
PreferenceFragment.OnPreferenceStartFragmentCallback {
private static final String TAG = DateTimeSettingsSetupWizard.class.getSimpleName(); private static final String TAG = DateTimeSettingsSetupWizard.class.getSimpleName();
// force the first status of auto datetime flag. // force the first status of auto datetime flag.
private static final String EXTRA_INITIAL_AUTO_DATETIME_VALUE = private static final String EXTRA_INITIAL_AUTO_DATETIME_VALUE =
"extra_initial_auto_datetime_value"; "extra_initial_auto_datetime_value";
private boolean mXLargeScreenSize; // If we have enough screen real estate, we use a radically different layout with
// big date and time pickers right on the screen, which requires very different handling.
// Otherwise, we use the standard date time settings fragment.
private boolean mUsingXLargeLayout;
/* Available only in XL */ /* Available only in XL */
private CompoundButton mAutoDateTimeButton; private CompoundButton mAutoDateTimeButton;
@@ -74,20 +83,25 @@ public class DateTimeSettingsSetupWizard extends Activity
requestWindowFeature(Window.FEATURE_NO_TITLE); requestWindowFeature(Window.FEATURE_NO_TITLE);
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
setContentView(R.layout.date_time_settings_setupwizard); setContentView(R.layout.date_time_settings_setupwizard);
mXLargeScreenSize = (getResources().getConfiguration().screenLayout
& Configuration.SCREENLAYOUT_SIZE_MASK) // we know we've loaded the special xlarge layout because it has controls
>= Configuration.SCREENLAYOUT_SIZE_LARGE; // not present in the standard layout
if (mXLargeScreenSize) { mUsingXLargeLayout = findViewById(R.id.time_zone_button) != null;
if (mUsingXLargeLayout) {
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE);
initUiForXl(); initUiForXl();
} else { } else {
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_PORTRAIT);
findViewById(R.id.next_button).setOnClickListener(this); findViewById(R.id.next_button).setOnClickListener(this);
} }
mTimeZoneAdapter = ZonePicker.constructTimezoneAdapter(this, false,
R.layout.date_time_setup_custom_list_item_2);
final View layoutRoot = findViewById(R.id.layout_root);
layoutRoot.setSystemUiVisibility(View.STATUS_BAR_DISABLE_BACK);
} }
public void initUiForXl() { public void initUiForXl() {
final View layoutRoot = findViewById(R.id.layout_root);
layoutRoot.setSystemUiVisibility(View.STATUS_BAR_DISABLE_BACK);
// Currently just comment out codes related to auto timezone. // Currently just comment out codes related to auto timezone.
// TODO: Remove them when we are sure they are unnecessary. // TODO: Remove them when we are sure they are unnecessary.
/* /*
@@ -98,16 +112,12 @@ public class DateTimeSettingsSetupWizard extends Activity
mAutoTimeZoneButton.setText(autoTimeZoneEnabled ? R.string.zone_auto_summaryOn : mAutoTimeZoneButton.setText(autoTimeZoneEnabled ? R.string.zone_auto_summaryOn :
R.string.zone_auto_summaryOff);*/ R.string.zone_auto_summaryOff);*/
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE);
final TimeZone tz = TimeZone.getDefault(); final TimeZone tz = TimeZone.getDefault();
mSelectedTimeZone = tz; mSelectedTimeZone = tz;
mTimeZoneButton = (Button)findViewById(R.id.time_zone_button); mTimeZoneButton = (Button)findViewById(R.id.time_zone_button);
mTimeZoneButton.setText(tz.getDisplayName()); mTimeZoneButton.setText(tz.getDisplayName());
// mTimeZoneButton.setText(DateTimeSettings.getTimeZoneText(tz)); // mTimeZoneButton.setText(DateTimeSettings.getTimeZoneText(tz));
mTimeZoneButton.setOnClickListener(this); mTimeZoneButton.setOnClickListener(this);
mTimeZoneAdapter = ZonePicker.constructTimezoneAdapter(this, false,
R.layout.date_time_setup_custom_list_item_2);
final boolean autoDateTimeEnabled; final boolean autoDateTimeEnabled;
final Intent intent = getIntent(); final Intent intent = getIntent();
@@ -159,22 +169,11 @@ public class DateTimeSettingsSetupWizard extends Activity
public void onClick(View view) { public void onClick(View view) {
switch (view.getId()) { switch (view.getId()) {
case R.id.time_zone_button: { case R.id.time_zone_button: {
mTimeZonePopup = new ListPopupWindow(this, null); showTimezonePicker(R.id.time_zone_button);
mTimeZonePopup.setWidth(mTimeZoneButton.getWidth());
mTimeZonePopup.setAnchorView(mTimeZoneButton);
mTimeZonePopup.setAdapter(mTimeZoneAdapter);
mTimeZonePopup.setOnItemClickListener(this);
mTimeZonePopup.setModal(true);
mTimeZonePopup.show();
break; break;
} }
case R.id.next_button: { case R.id.next_button: {
if (mXLargeScreenSize) { if (mSelectedTimeZone != null) {
/* Settings.System.putInt(getContentResolver(), Settings.System.AUTO_TIME_ZONE,
mAutoTimeZoneButton.isChecked() ? 1 : 0); */
Settings.System.putInt(getContentResolver(), Settings.System.AUTO_TIME,
mAutoDateTimeButton.isChecked() ? 1 : 0);
final TimeZone systemTimeZone = TimeZone.getDefault(); final TimeZone systemTimeZone = TimeZone.getDefault();
if (!systemTimeZone.equals(mSelectedTimeZone)) { if (!systemTimeZone.equals(mSelectedTimeZone)) {
Log.i(TAG, "Another TimeZone is selected by a user. Changing system TimeZone."); Log.i(TAG, "Another TimeZone is selected by a user. Changing system TimeZone.");
@@ -182,7 +181,10 @@ public class DateTimeSettingsSetupWizard extends Activity
getSystemService(Context.ALARM_SERVICE); getSystemService(Context.ALARM_SERVICE);
alarm.setTimeZone(mSelectedTimeZone.getID()); alarm.setTimeZone(mSelectedTimeZone.getID());
} }
}
if (mAutoDateTimeButton != null) {
Settings.System.putInt(getContentResolver(), Settings.System.AUTO_TIME,
mAutoDateTimeButton.isChecked() ? 1 : 0);
if (!mAutoDateTimeButton.isChecked()) { if (!mAutoDateTimeButton.isChecked()) {
DateTimeSettings.setDate(mDatePicker.getYear(), mDatePicker.getMonth(), DateTimeSettings.setDate(mDatePicker.getYear(), mDatePicker.getMonth(),
mDatePicker.getDayOfMonth()); mDatePicker.getDayOfMonth());
@@ -204,7 +206,7 @@ public class DateTimeSettingsSetupWizard extends Activity
final boolean autoEnabled = isChecked; // just for readibility. final boolean autoEnabled = isChecked; // just for readibility.
/*if (buttonView == mAutoTimeZoneButton) { /*if (buttonView == mAutoTimeZoneButton) {
// In XL screen, we save all the state only when the next button is pressed. // In XL screen, we save all the state only when the next button is pressed.
if (!mXLargeScreenSize) { if (!mUsingXLargeLayout) {
Settings.System.putInt(getContentResolver(), Settings.System.putInt(getContentResolver(),
Settings.System.AUTO_TIME_ZONE, Settings.System.AUTO_TIME_ZONE,
isChecked ? 1 : 0); isChecked ? 1 : 0);
@@ -234,18 +236,62 @@ public class DateTimeSettingsSetupWizard extends Activity
@Override @Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) { public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
final TimeZone tz = ZonePicker.obtainTimeZoneFromItem(parent.getItemAtPosition(position)); final TimeZone tz = ZonePicker.obtainTimeZoneFromItem(parent.getItemAtPosition(position));
mSelectedTimeZone = tz; if (mUsingXLargeLayout) {
mSelectedTimeZone = tz;
final Calendar now = Calendar.getInstance(tz); final Calendar now = Calendar.getInstance(tz);
mTimeZoneButton.setText(tz.getDisplayName()); if (mTimeZoneButton != null) {
// mTimeZoneButton.setText(DateTimeSettings.getTimeZoneText(tz)); mTimeZoneButton.setText(tz.getDisplayName());
mDatePicker.updateDate(now.get(Calendar.YEAR), now.get(Calendar.MONTH), }
now.get(Calendar.DAY_OF_MONTH)); // mTimeZoneButton.setText(DateTimeSettings.getTimeZoneText(tz));
mTimePicker.setCurrentHour(now.get(Calendar.HOUR_OF_DAY)); mDatePicker.updateDate(now.get(Calendar.YEAR), now.get(Calendar.MONTH),
mTimePicker.setCurrentMinute(now.get(Calendar.MINUTE)); now.get(Calendar.DAY_OF_MONTH));
mTimePicker.setCurrentHour(now.get(Calendar.HOUR_OF_DAY));
mTimePicker.setCurrentMinute(now.get(Calendar.MINUTE));
} else {
// in prefs mode, we actually change the setting right now, as opposed to waiting
// until Next is pressed in xLarge mode
final AlarmManager alarm = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
alarm.setTimeZone(tz.getID());
DateTimeSettings settingsFragment = (DateTimeSettings) getFragmentManager().
findFragmentById(R.id.date_time_settings_fragment);
settingsFragment.updateTimeAndDateDisplay(this);
}
mTimeZonePopup.dismiss(); mTimeZonePopup.dismiss();
} }
/**
* If this is called, that means we're in prefs style portrait mode for a large display
* and the user has tapped on the time zone preference. If we were a PreferenceActivity,
* we'd then launch the timezone fragment in a new activity, but we aren't, and here
* on a tablet display, we really want more of a popup picker look' like the one we use
* for the xlarge version of this activity. So we just take this opportunity to launch that.
*
* TODO: For phones, we might want to change this to do the "normal" opening
* of the zonepicker fragment in its own activity. Or we might end up just
* creating a separate DateTimeSettingsSetupWizardPhone activity that subclasses
* PreferenceActivity in the first place to handle all that automatically.
*/
@Override
public boolean onPreferenceStartFragment(PreferenceFragment caller, Preference pref) {
showTimezonePicker(R.id.timezone_dropdown_anchor);
return true;
}
private void showTimezonePicker(int anchorViewId) {
View anchorView = findViewById(anchorViewId);
if (anchorView == null) {
Log.e(TAG, "Unable to find zone picker anchor view " + anchorViewId);
return;
}
mTimeZonePopup = new ListPopupWindow(this, null);
mTimeZonePopup.setWidth(anchorView.getWidth());
mTimeZonePopup.setAnchorView(anchorView);
mTimeZonePopup.setAdapter(mTimeZoneAdapter);
mTimeZonePopup.setOnItemClickListener(this);
mTimeZonePopup.setModal(true);
mTimeZonePopup.show();
}
private boolean isAutoDateTimeEnabled() { private boolean isAutoDateTimeEnabled() {
try { try {
return Settings.System.getInt(getContentResolver(), Settings.System.AUTO_TIME) > 0; return Settings.System.getInt(getContentResolver(), Settings.System.AUTO_TIME) > 0;
@@ -265,6 +311,9 @@ public class DateTimeSettingsSetupWizard extends Activity
}*/ }*/
private void updateTimeAndDateDisplay() { private void updateTimeAndDateDisplay() {
if (!mUsingXLargeLayout) {
return;
}
final Calendar now = Calendar.getInstance(); final Calendar now = Calendar.getInstance();
mTimeZoneButton.setText(now.getTimeZone().getDisplayName()); mTimeZoneButton.setText(now.getTimeZone().getDisplayName());
mDatePicker.updateDate(now.get(Calendar.YEAR), now.get(Calendar.MONTH), mDatePicker.updateDate(now.get(Calendar.YEAR), now.get(Calendar.MONTH),