From c1a90e6b1607eaf15cacbc329ce51dec56ceb2fe Mon Sep 17 00:00:00 2001 From: Wallace Wang Date: Sat, 6 Feb 2010 01:46:54 +0800 Subject: [PATCH] set alarm volume adjustable and disable vibrate for platform --- src/com/android/deskclock/AlarmAlert.java | 2 +- src/com/android/deskclock/AlarmClock.java | 17 +++++++++++++++++ src/com/android/deskclock/DeskClock.java | 1 + src/com/android/deskclock/SetAlarm.java | 4 +++- src/com/android/deskclock/SettingsActivity.java | 1 + 5 files changed, 23 insertions(+), 2 deletions(-) diff --git a/src/com/android/deskclock/AlarmAlert.java b/src/com/android/deskclock/AlarmAlert.java index 6319dff..4475db9 100644 --- a/src/com/android/deskclock/AlarmAlert.java +++ b/src/com/android/deskclock/AlarmAlert.java @@ -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 diff --git a/src/com/android/deskclock/AlarmClock.java b/src/com/android/deskclock/AlarmClock.java index adfe740..70b33b0 100644 --- a/src/com/android/deskclock/AlarmClock.java +++ b/src/com/android/deskclock/AlarmClock.java @@ -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; + } } diff --git a/src/com/android/deskclock/DeskClock.java b/src/com/android/deskclock/DeskClock.java index de96e9b..6bef005 100644 --- a/src/com/android/deskclock/DeskClock.java +++ b/src/com/android/deskclock/DeskClock.java @@ -785,6 +785,7 @@ public class DeskClock extends Activity { @Override protected void onCreate(Bundle icicle) { super.onCreate(icicle); + AlarmClock.setVolumeControlForPlatform(this); mRNG = new Random(); diff --git a/src/com/android/deskclock/SetAlarm.java b/src/com/android/deskclock/SetAlarm.java index ce07cc1..28cfe5b 100644 --- a/src/com/android/deskclock/SetAlarm.java +++ b/src/com/android/deskclock/SetAlarm.java @@ -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(); diff --git a/src/com/android/deskclock/SettingsActivity.java b/src/com/android/deskclock/SettingsActivity.java index f28d1e7..aad10e2 100644 --- a/src/com/android/deskclock/SettingsActivity.java +++ b/src/com/android/deskclock/SettingsActivity.java @@ -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); } -- 2.11.0