OSDN Git Service

resolved conflicts for merge of 90c4833f to eclair-mr2
authorPatrick Scott <phanna@android.com>
Wed, 2 Dec 2009 13:16:25 +0000 (08:16 -0500)
committerPatrick Scott <phanna@android.com>
Wed, 2 Dec 2009 13:16:25 +0000 (08:16 -0500)
1  2 
src/com/android/deskclock/AlarmClock.java
src/com/android/deskclock/SetAlarm.java

@@@ -28,6 -28,7 +28,6 @@@ import android.graphics.Typeface
  import android.net.Uri;
  import android.os.Bundle;
  import android.os.Handler;
 -import android.provider.Settings;
  import android.view.ContextMenu;
  import android.view.ContextMenu.ContextMenuInfo;
  import android.view.LayoutInflater;
@@@ -35,6 -36,7 +35,6 @@@ import android.view.Menu
  import android.view.MenuItem;
  import android.view.View;
  import android.view.View.OnClickListener;
 -import android.view.View.OnCreateContextMenuListener;
  import android.view.ViewGroup;
  import android.widget.AdapterView;
  import android.widget.AdapterView.AdapterContextMenuInfo;
@@@ -54,11 -56,11 +54,11 @@@ import java.util.Calendar
   */
  public class AlarmClock extends Activity implements OnItemClickListener {
  
 -    final static String PREFERENCES = "AlarmClock";
 +    static final String PREFERENCES = "AlarmClock";
  
      /** This must be false for production.  If true, turns on logging,
          test code, etc. */
 -    final static boolean DEBUG = false;
 +    static final boolean DEBUG = false;
  
      private SharedPreferences mPrefs;
      private LayoutInflater mFactory;
@@@ -84,9 -86,9 +84,9 @@@
          public View newView(Context context, Cursor cursor, ViewGroup parent) {
              View ret = mFactory.inflate(R.layout.alarm_time, parent, false);
  
 -            DigitalClock digitalClock = (DigitalClock) ret.findViewById(R.id.digitalClock);
 +            DigitalClock digitalClock =
 +                    (DigitalClock) ret.findViewById(R.id.digitalClock);
              digitalClock.setLive(false);
 -            if (Log.LOGV) Log.v("newView " + cursor.getPosition());
              return ret;
          }
  
                      (CheckBox) indicator.findViewById(R.id.clock_onoff);
              clockOnOff.setChecked(alarm.enabled);
  
-             // Handle the "checkbox" click and toggle the alarm.
-             clockOnOff.setOnClickListener(new OnClickListener() {
-                     public void onClick(View v) {
-                         boolean isChecked = ((CheckBox) v).isChecked();
-                         updateIndicatorAndAlarm(isChecked, barOnOff, alarm);
-                     }
-             });
              // Clicking outside the "checkbox" should also change the state.
              indicator.setOnClickListener(new OnClickListener() {
                      public void onClick(View v) {
                      addNewAlarm();
                  }
              });
+         // Make the entire view selected when focused.
+         addAlarm.setOnFocusChangeListener(new View.OnFocusChangeListener() {
+                 public void onFocusChange(View v, boolean hasFocus) {
+                     v.setSelected(hasFocus);
+                 }
+         });
  
          ImageButton deskClock =
                  (ImageButton) findViewById(R.id.desk_clock_button);
  
          // Set the custom view on the menu.
          menu.setHeaderView(v);
+         // Change the text based on the state of the alarm.
+         if (alarm.enabled) {
+             menu.findItem(R.id.enable_alarm).setTitle(R.string.disable_alarm);
+         }
      }
  
      @Override
  
  package com.android.deskclock;
  
+ import android.app.AlertDialog;
  import android.app.TimePickerDialog;
  import android.content.Context;
+ import android.content.DialogInterface;
  import android.content.Intent;
  import android.media.RingtoneManager;
  import android.net.Uri;
@@@ -47,15 -49,14 +49,14 @@@ public class SetAlarm extends Preferenc
          implements TimePickerDialog.OnTimeSetListener {
  
      private EditTextPreference mLabel;
+     private CheckBoxPreference mEnabledPref;
      private Preference mTimePref;
      private AlarmPreference mAlarmPref;
      private CheckBoxPreference mVibratePref;
      private RepeatPreference mRepeatPref;
-     private MenuItem mDeleteAlarmItem;
      private MenuItem mTestAlarmItem;
  
      private int     mId;
-     private boolean mEnabled;
      private int     mHour;
      private int     mMinutes;
  
@@@ -80,6 -81,7 +81,7 @@@
                          return true;
                      }
                  });
+         mEnabledPref = (CheckBoxPreference) findPreference("enabled");
          mTimePref = findPreference("time");
          mAlarmPref = (AlarmPreference) findPreference("alarm");
          mVibratePref = (CheckBoxPreference) findPreference("vibrate");
  
          /* load alarm details from database */
          Alarm alarm = Alarms.getAlarm(getContentResolver(), mId);
-         mEnabled = alarm.enabled;
 +        // Bad alarm, bail to avoid a NPE.
 +        if (alarm == null) {
 +            finish();
 +            return;
 +        }
+         mEnabledPref.setChecked(alarm.enabled);
          mLabel.setText(alarm.label);
          mLabel.setSummary(alarm.label);
          mHour = alarm.hour;
          Button b = (Button) v.findViewById(R.id.alarm_save);
          b.setOnClickListener(new View.OnClickListener() {
                  public void onClick(View v) {
-                     mEnabled = true;
 +                    // Enable the alarm when clicking "Done"
++                    mEnabledPref.setChecked(true);
                      saveAlarm();
                      finish();
                  }
                      finish();
                  }
          });
+         b = (Button) v.findViewById(R.id.alarm_delete);
+         b.setOnClickListener(new View.OnClickListener() {
+                 public void onClick(View v) {
+                     deleteAlarm();
+                 }
+         });
  
          // Replace the old content view with our new one.
          setContentView(ll);
          mMinutes = minute;
          updateTime();
          // If the time has been changed, enable the alarm.
-         mEnabled = true;
+         mEnabledPref.setChecked(true);
      }
  
      private void updateTime() {
  
      private void saveAlarm() {
          final String alert = mAlarmPref.getAlertString();
-         long time = Alarms.setAlarm(this, mId, mEnabled, mHour, mMinutes,
-                 mRepeatPref.getDaysOfWeek(), mVibratePref.isChecked(),
+         long time = Alarms.setAlarm(this, mId, mEnabledPref.isChecked(), mHour,
+                 mMinutes, mRepeatPref.getDaysOfWeek(), mVibratePref.isChecked(),
                  mLabel.getText(), alert);
  
-         if (mEnabled) {
+         if (mEnabledPref.isChecked()) {
              popAlarmSetToast(this, time);
          }
      }
  
+     private void deleteAlarm() {
+         new AlertDialog.Builder(this)
+                 .setTitle(getString(R.string.delete_alarm))
+                 .setMessage(getString(R.string.delete_alarm_confirm))
+                 .setPositiveButton(android.R.string.ok,
+                         new DialogInterface.OnClickListener() {
+                             public void onClick(DialogInterface d, int w) {
+                                 Alarms.deleteAlarm(SetAlarm.this, mId);
+                                 finish();
+                             }
+                         })
+                 .setNegativeButton(android.R.string.cancel, null)
+                 .show();
+     }
      /**
       * Write alarm out to persistent store and pops toast if alarm
       * enabled.
      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");
          }
      }
  
      public boolean onOptionsItemSelected(MenuItem item) {
-         if (item == mDeleteAlarmItem) {
-             Alarms.deleteAlarm(this, mId);
-             finish();
-             return true;
-         }
          if (AlarmClock.DEBUG) {
              if (item == mTestAlarmItem) {
                  setTestAlarm();