OSDN Git Service

Check in code for Wallace Wang
[android-x86/packages-apps-AlarmClock.git] / src / com / android / alarmclock / SetAlarm.java
index 807b469..d32d5a9 100644 (file)
@@ -98,7 +98,7 @@ public class SetAlarm extends PreferenceActivity
     @Override
     protected void onCreate(Bundle icicle) {
         super.onCreate(icicle);
-
+        AlarmClock.setVolumeControlForPlatform(this);
         addPreferencesFromResource(R.xml.alarm_prefs);
         mLabel = (EditTextPreference) findPreference("label");
         mLabel.setOnPreferenceChangeListener(
@@ -114,6 +114,7 @@ public class SetAlarm extends PreferenceActivity
         mTimePref = findPreference("time");
         mAlarmPref = (AlarmPreference) findPreference("alarm");
         mVibratePref = (CheckBoxPreference) findPreference("vibrate");
+        mVibratePref.setEnabled(!AlarmClock.isVolumeAdjustable());
         mRepeatPref = (RepeatPreference) findPreference("setRepeat");
 
         Intent i = getIntent();
@@ -217,7 +218,7 @@ public class SetAlarm extends PreferenceActivity
         mMinutes = minutes;
         mAlarmOnPref.setChecked(enabled);
         mDaysOfWeek.set(daysOfWeek);
-        mVibratePref.setChecked(vibrate);
+        mVibratePref.setChecked(vibrate && !AlarmClock.isVolumeAdjustable());
 
         if (alert == null || alert.length() == 0) {
             if (Log.LOGV) Log.v("****** reportAlarm null or 0-length alert");
@@ -276,12 +277,18 @@ public class SetAlarm extends PreferenceActivity
      * contain the old value (i.e. during the preference value change).
      */
     private void saveAlarm(boolean popToast, String label) {
-        if (mReportAlarmCalled && mAlarmPref.mAlert != null) {
-            String alertString = mAlarmPref.mAlert.toString();
-            saveAlarm(this, mId, mAlarmOnPref.isChecked(), mHour, mMinutes,
-                      mDaysOfWeek, mVibratePref.isChecked(), label, alertString,
-                      popToast);
-        }
+       if (mReportAlarmCalled) {
+               if(mAlarmPref.mAlert != null){
+                       String alertString = mAlarmPref.mAlert.toString();
+                       saveAlarm(this, mId, mAlarmOnPref.isChecked(), mHour, mMinutes,
+                               mDaysOfWeek, mVibratePref.isChecked(), label, alertString,
+                               popToast);
+               }else{
+                       saveAlarm(this, mId, mAlarmOnPref.isChecked(), mHour, mMinutes,
+                               mDaysOfWeek, mVibratePref.isChecked(), label, label,
+                               popToast);
+               }
+       }
     }
 
     /**
@@ -347,26 +354,12 @@ public class SetAlarm extends PreferenceActivity
         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);
-        }
+        int index = (dispDays ? 1 : 0) |
+                    (dispHour ? 2 : 0) |
+                    (dispMinute ? 4 : 0);
 
-        ret = context.getString(R.string.alarm_set, ret);
-        /* if (Log.LOGV) Log.v("** TOAST daySeq " + daySeq + " hourSeq " + hourSeq +
-           " minSeq " + minSeq + " ret " + ret); */
-        return ret;
+        String[] formats = context.getResources().getStringArray(R.array.alarm_set);
+        return String.format(formats[index], daySeq, hourSeq, minSeq);
     }
 
     public boolean onCreateOptionsMenu(Menu menu) {