OSDN Git Service

set alarm volume adjustable and disable vibrate for platform eclair-x86
authorWallace Wang <wallage@qq.com>
Fri, 5 Feb 2010 17:46:54 +0000 (01:46 +0800)
committerChih-Wei Huang <cwhuang@linux.org.tw>
Sat, 17 Apr 2010 15:13:01 +0000 (23:13 +0800)
src/com/android/deskclock/AlarmAlert.java
src/com/android/deskclock/AlarmClock.java
src/com/android/deskclock/DeskClock.java
src/com/android/deskclock/SetAlarm.java
src/com/android/deskclock/SettingsActivity.java

index 6319dff..4475db9 100644 (file)
@@ -67,7 +67,7 @@ public class AlarmAlert extends Activity {
     @Override
     protected void onCreate(Bundle icicle) {
         super.onCreate(icicle);
-
+        AlarmClock.setVolumeControlForPlatform(this);
         mAlarm = getIntent().getParcelableExtra(Alarms.ALARM_INTENT_EXTRA);
 
         // Get the volume/camera button behavior setting
index adfe740..70b33b0 100644 (file)
@@ -48,6 +48,8 @@ import android.widget.ImageButton;
 import android.widget.ImageView;
 import android.widget.ListView;
 import android.widget.TextView;
+import android.os.SystemProperties;
+import android.media.AudioManager;
 
 import java.util.Calendar;
 
@@ -66,6 +68,7 @@ public class AlarmClock extends Activity implements OnItemClickListener {
     private LayoutInflater mFactory;
     private ListView mAlarmsList;
     private Cursor mCursor;
+    private static boolean volumeAdjustable;
 
     private void updateIndicatorAndAlarm(boolean enabled, ImageView bar,
             Alarm alarm) {
@@ -199,6 +202,8 @@ public class AlarmClock extends Activity implements OnItemClickListener {
     @Override
     protected void onCreate(Bundle icicle) {
         super.onCreate(icicle);
+        volumeAdjustable=SystemProperties.getBoolean("ro.alarm.volume.adjustable",false);
+        AlarmClock.setVolumeControlForPlatform(this);
 
         mFactory = LayoutInflater.from(this);
         mPrefs = getSharedPreferences(PREFERENCES, 0);
@@ -324,4 +329,16 @@ public class AlarmClock extends Activity implements OnItemClickListener {
         intent.putExtra(Alarms.ALARM_ID, (int) id);
         startActivity(intent);
     }
+
+    public static void setVolumeControlForPlatform(Activity context){
+           if (isVolumeAdjustable()){
+               context.setVolumeControlStream(AudioManager.STREAM_ALARM);
+           }else{
+               //Use default stream type,the default type use a fixed volume
+               context.setVolumeControlStream(AudioManager.USE_DEFAULT_STREAM_TYPE);
+           }
+    }
+    public static boolean isVolumeAdjustable(){
+       return  volumeAdjustable;
+    }
 }
index de96e9b..6bef005 100644 (file)
@@ -785,6 +785,7 @@ public class DeskClock extends Activity {
     @Override
     protected void onCreate(Bundle icicle) {
         super.onCreate(icicle);
+        AlarmClock.setVolumeControlForPlatform(this);
 
         mRNG = new Random();
 
index ce07cc1..28cfe5b 100644 (file)
@@ -67,6 +67,7 @@ public class SetAlarm extends PreferenceActivity
     @Override
     protected void onCreate(Bundle icicle) {
         super.onCreate(icicle);
+        AlarmClock.setVolumeControlForPlatform(this);
 
         addPreferencesFromResource(R.xml.alarm_prefs);
 
@@ -85,6 +86,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();
@@ -101,7 +103,7 @@ public class SetAlarm extends PreferenceActivity
         mHour = alarm.hour;
         mMinutes = alarm.minutes;
         mRepeatPref.setDaysOfWeek(alarm.daysOfWeek);
-        mVibratePref.setChecked(alarm.vibrate);
+        mVibratePref.setChecked(alarm.vibrate && !AlarmClock.isVolumeAdjustable());
         // Give the alert uri to the preference.
         mAlarmPref.setAlert(alarm.alert);
         updateTime();
index f28d1e7..aad10e2 100644 (file)
@@ -44,6 +44,7 @@ public class SettingsActivity extends PreferenceActivity
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
+        AlarmClock.setVolumeControlForPlatform(this);
         addPreferencesFromResource(R.xml.settings);
     }