fix datetime setup problem. DO NOT MERGE
- remove bat if clause for xl
- use HOUR_OF_DAY instead of HOUR
Bug: 3487947
Change-Id: I532bdb72f62ecbc776411496dd96e72d9c16b997
diff --git a/src/com/android/settings/DateTimeSettingsSetupWizard.java b/src/com/android/settings/DateTimeSettingsSetupWizard.java
index c3d3bfd..15e4d76 100644
--- a/src/com/android/settings/DateTimeSettingsSetupWizard.java
+++ b/src/com/android/settings/DateTimeSettingsSetupWizard.java
@@ -18,13 +18,16 @@
import android.app.Activity;
import android.app.AlarmManager;
+import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
+import android.content.IntentFilter;
import android.content.pm.ActivityInfo;
import android.content.res.Configuration;
import android.os.Bundle;
import android.provider.Settings;
import android.provider.Settings.SettingNotFoundException;
+import android.text.format.DateFormat;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
@@ -68,7 +71,7 @@
@Override
protected void onCreate(Bundle savedInstanceState) {
- requestWindowFeature(Window.FEATURE_NO_TITLE);
+ requestWindowFeature(Window.FEATURE_NO_TITLE);
super.onCreate(savedInstanceState);
setContentView(R.layout.date_time_settings_setupwizard);
mXLargeScreenSize = (getResources().getConfiguration().screenLayout
@@ -136,6 +139,22 @@
}
@Override
+ public void onResume() {
+ super.onResume();
+ 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);
+ }
+
+ @Override
+ public void onPause() {
+ super.onPause();
+ unregisterReceiver(mIntentReceiver);
+ }
+
+ @Override
public void onClick(View view) {
switch (view.getId()) {
case R.id.time_zone_button: {
@@ -163,13 +182,12 @@
alarm.setTimeZone(mSelectedTimeZone.getID());
}
- // Note: in non-XL, Date & Time is stored by DatePickerDialog/TimePickerDialog,
- // so we don't need to save those values there, while in XL, we need to as
- // we don't use those Dialogs.
- DateTimeSettings.setDate(mDatePicker.getYear(), mDatePicker.getMonth(),
- mDatePicker.getDayOfMonth());
- DateTimeSettings.setTime(
- mTimePicker.getCurrentHour(), mTimePicker.getCurrentMinute());
+ if (!mAutoDateTimeButton.isChecked()) {
+ DateTimeSettings.setDate(mDatePicker.getYear(), mDatePicker.getMonth(),
+ mDatePicker.getDayOfMonth());
+ DateTimeSettings.setTime(
+ mTimePicker.getCurrentHour(), mTimePicker.getCurrentMinute());
+ }
}
} // $FALL-THROUGH$
case R.id.skip_button: {
@@ -197,11 +215,9 @@
}
} else */
if (buttonView == mAutoDateTimeButton) {
- if (!mXLargeScreenSize) {
- Settings.System.putInt(getContentResolver(),
- Settings.System.AUTO_TIME,
- isChecked ? 1 : 0);
- }
+ Settings.System.putInt(getContentResolver(),
+ Settings.System.AUTO_TIME,
+ isChecked ? 1 : 0);
mTimePicker.setEnabled(!autoEnabled);
mDatePicker.setEnabled(!autoEnabled);
}
@@ -224,7 +240,7 @@
// mTimeZoneButton.setText(DateTimeSettings.getTimeZoneText(tz));
mDatePicker.updateDate(now.get(Calendar.YEAR), now.get(Calendar.MONTH),
now.get(Calendar.DAY_OF_MONTH));
- mTimePicker.setCurrentHour(now.get(Calendar.HOUR));
+ mTimePicker.setCurrentHour(now.get(Calendar.HOUR_OF_DAY));
mTimePicker.setCurrentMinute(now.get(Calendar.MINUTE));
mTimeZonePopup.dismiss();
}
@@ -246,4 +262,20 @@
return true;
}
}*/
+
+ private void updateTimeAndDateDisplay() {
+ final Calendar now = Calendar.getInstance();
+ mTimeZoneButton.setText(now.getTimeZone().getDisplayName());
+ mDatePicker.updateDate(now.get(Calendar.YEAR), now.get(Calendar.MONTH),
+ now.get(Calendar.DAY_OF_MONTH));
+ mTimePicker.setCurrentHour(now.get(Calendar.HOUR_OF_DAY));
+ mTimePicker.setCurrentMinute(now.get(Calendar.MINUTE));
+ }
+
+ private BroadcastReceiver mIntentReceiver = new BroadcastReceiver() {
+ @Override
+ public void onReceive(Context context, Intent intent) {
+ updateTimeAndDateDisplay();
+ }
+ };
}