diff options
-rw-r--r-- | AndroidManifest.xml | 4 | ||||
-rw-r--r-- | res/drawable-hdpi/appwidget_clock_hour.png | bin | 431 -> 410 bytes | |||
-rw-r--r-- | res/drawable-hdpi/appwidget_clock_minute.png | bin | 289 -> 410 bytes | |||
-rw-r--r-- | res/drawable-hdpi/divider_vertical_dark.9.png | bin | 0 -> 2807 bytes | |||
-rw-r--r-- | res/drawable-hdpi/divider_vertical_dark_opaque.9.png | bin | 0 -> 120 bytes | |||
-rw-r--r-- | res/drawable-mdpi/appwidget_clock_hour.png | bin | 325 -> 316 bytes | |||
-rw-r--r-- | res/drawable-mdpi/appwidget_clock_minute.png | bin | 219 -> 305 bytes | |||
-rw-r--r-- | res/drawable-mdpi/divider_vertical_dark.9.png | bin | 0 -> 2807 bytes | |||
-rw-r--r-- | res/drawable-mdpi/divider_vertical_dark_opaque.9.png | bin | 0 -> 120 bytes | |||
-rw-r--r-- | res/layout/alarm_time.xml | 2 | ||||
-rw-r--r-- | res/values/strings.xml | 4 | ||||
-rw-r--r-- | res/values/themes.xml | 26 | ||||
-rw-r--r-- | res/xml/settings.xml | 5 | ||||
-rw-r--r-- | src/com/android/deskclock/AlarmAlert.java | 30 | ||||
-rw-r--r-- | src/com/android/deskclock/AlarmKlaxon.java | 2 | ||||
-rw-r--r-- | src/com/android/deskclock/DeskClock.java | 91 | ||||
-rw-r--r-- | src/com/android/deskclock/SettingsActivity.java | 10 |
17 files changed, 150 insertions, 24 deletions
diff --git a/AndroidManifest.xml b/AndroidManifest.xml index 293d0fe9c..109c0ee2c 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -15,7 +15,7 @@ <activity android:name="DeskClock" android:label="@string/app_label" - android:theme="@android:style/Theme.Wallpaper.NoTitleBar" + android:theme="@style/Theme.Wallpaper.NoTitleBar" android:icon="@drawable/ic_widget_analog_clock" android:launchMode="singleInstance" android:configChanges="orientation|keyboardHidden|keyboard|navigation"> @@ -68,7 +68,7 @@ with the wallpaper background. --> <activity android:name="AlarmAlertFullScreen" android:excludeFromRecents="true" - android:theme="@android:style/Theme.Wallpaper.NoTitleBar" + android:theme="@style/Theme.Wallpaper.NoTitleBar" android:launchMode="singleInstance" android:taskAffinity="" android:configChanges="orientation|keyboardHidden|keyboard|navigation"/> diff --git a/res/drawable-hdpi/appwidget_clock_hour.png b/res/drawable-hdpi/appwidget_clock_hour.png Binary files differindex d357e8c9f..b9207eb58 100644 --- a/res/drawable-hdpi/appwidget_clock_hour.png +++ b/res/drawable-hdpi/appwidget_clock_hour.png diff --git a/res/drawable-hdpi/appwidget_clock_minute.png b/res/drawable-hdpi/appwidget_clock_minute.png Binary files differindex dd675805f..d8ca8c3ed 100644 --- a/res/drawable-hdpi/appwidget_clock_minute.png +++ b/res/drawable-hdpi/appwidget_clock_minute.png diff --git a/res/drawable-hdpi/divider_vertical_dark.9.png b/res/drawable-hdpi/divider_vertical_dark.9.png Binary files differnew file mode 100644 index 000000000..702b8785c --- /dev/null +++ b/res/drawable-hdpi/divider_vertical_dark.9.png diff --git a/res/drawable-hdpi/divider_vertical_dark_opaque.9.png b/res/drawable-hdpi/divider_vertical_dark_opaque.9.png Binary files differnew file mode 100644 index 000000000..8f35315ae --- /dev/null +++ b/res/drawable-hdpi/divider_vertical_dark_opaque.9.png diff --git a/res/drawable-mdpi/appwidget_clock_hour.png b/res/drawable-mdpi/appwidget_clock_hour.png Binary files differindex 608682300..d80ae0595 100644 --- a/res/drawable-mdpi/appwidget_clock_hour.png +++ b/res/drawable-mdpi/appwidget_clock_hour.png diff --git a/res/drawable-mdpi/appwidget_clock_minute.png b/res/drawable-mdpi/appwidget_clock_minute.png Binary files differindex 8ec61bcc3..9f8416c05 100644 --- a/res/drawable-mdpi/appwidget_clock_minute.png +++ b/res/drawable-mdpi/appwidget_clock_minute.png diff --git a/res/drawable-mdpi/divider_vertical_dark.9.png b/res/drawable-mdpi/divider_vertical_dark.9.png Binary files differnew file mode 100644 index 000000000..702b8785c --- /dev/null +++ b/res/drawable-mdpi/divider_vertical_dark.9.png diff --git a/res/drawable-mdpi/divider_vertical_dark_opaque.9.png b/res/drawable-mdpi/divider_vertical_dark_opaque.9.png Binary files differnew file mode 100644 index 000000000..8f35315ae --- /dev/null +++ b/res/drawable-mdpi/divider_vertical_dark_opaque.9.png diff --git a/res/layout/alarm_time.xml b/res/layout/alarm_time.xml index 5c3b19b78..bddb0e3a7 100644 --- a/res/layout/alarm_time.xml +++ b/res/layout/alarm_time.xml @@ -51,7 +51,7 @@ </com.android.deskclock.DontPressWithParentLayout> <ImageView - android:src="@*android:drawable/divider_vertical_dark" + android:src="@drawable/divider_vertical_dark" android:background="?android:attr/windowBackground" android:layout_width="wrap_content" android:layout_height="fill_parent" diff --git a/res/values/strings.xml b/res/values/strings.xml index 4d9d57f55..35546de84 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -247,7 +247,11 @@ present on the device, we show nothing at all. --> <string name="weather_fetch_failure">Weather information currently unavailable.</string> + <string name="alarm_requires_unlock_title">Alarm requires unlock</string> + <string name="alarm_requires_unlock_summary">Must unlock phone to disable or snooze alarm</string> + <string name="menu_item_dock_settings" msgid="9161438664257429372">Dock settings</string> </resources> + diff --git a/res/values/themes.xml b/res/values/themes.xml new file mode 100644 index 000000000..7b5272ddd --- /dev/null +++ b/res/values/themes.xml @@ -0,0 +1,26 @@ +<?xml version="1.0" encoding="utf-8"?> + +<resources> + <!-- Default theme for windows that want to have the user's selected + wallpaper appear behind them. --> + <style name="Theme.Wallpaper" parent="android:Theme"> + <item name="android:windowBackground">@android:color/transparent</item> +<!-- + <item name="android:colorBackgroundCacheHint">@null</item> + <item name="android:windowShowWallpaper">true</item> +--> + </style> + + <!-- Variant of the translucent theme with no title bar --> + <style name="Theme.Wallpaper.NoTitleBar"> + <item name="android:windowNoTitle">true</item> + </style> + + <!-- Variant of the translucent theme that has no title bar and + fills the entire screen --> + <style name="Theme.Wallpaper.NoTitleBar.Fullscreen"> + <item name="android:windowFullscreen">true</item> + <item name="android:windowContentOverlay">@null</item> + </style> +</resources> + diff --git a/res/xml/settings.xml b/res/xml/settings.xml index e49126c05..52d93a5bc 100644 --- a/res/xml/settings.xml +++ b/res/xml/settings.xml @@ -23,6 +23,11 @@ android:title="@string/alarm_in_silent_mode_title" android:summary="@string/alarm_in_silent_mode_summary" /> + <CheckBoxPreference + android:key="alarm_requires_unlock" + android:title="@string/alarm_requires_unlock_title" + android:summary="@string/alarm_requires_unlock_summary" /> + <VolumePreference android:title="@string/alarm_volume_title" android:summary="@string/alarm_volume_summary" diff --git a/src/com/android/deskclock/AlarmAlert.java b/src/com/android/deskclock/AlarmAlert.java index 6319dff70..29e556000 100644 --- a/src/com/android/deskclock/AlarmAlert.java +++ b/src/com/android/deskclock/AlarmAlert.java @@ -16,29 +16,26 @@ package com.android.deskclock; +import java.util.Calendar; + import android.app.Activity; import android.app.Notification; import android.app.NotificationManager; import android.app.PendingIntent; -import android.content.Context; import android.content.BroadcastReceiver; +import android.content.Context; import android.content.Intent; import android.content.IntentFilter; -import android.content.SharedPreferences; -import android.content.res.Configuration; import android.os.Bundle; import android.preference.PreferenceManager; +import android.provider.Settings; import android.view.KeyEvent; -import android.view.View; -import android.view.ViewGroup; import android.view.LayoutInflater; -import android.view.Window; +import android.view.View; import android.view.WindowManager; import android.widget.Button; -import android.widget.Toast; import android.widget.TextView; - -import java.util.Calendar; +import android.widget.Toast; /** * Alarm Clock alarm alert: pops visible indicator and plays alarm @@ -77,11 +74,18 @@ public class AlarmAlert extends Activity { DEFAULT_VOLUME_BEHAVIOR); mVolumeBehavior = Integer.parseInt(vol); + final boolean requireUnlock = Settings.System.getInt(getContentResolver(), SettingsActivity.KEY_ALARM_REQUIRES_UNLOCK, 0) == 1; + requestWindowFeature(android.view.Window.FEATURE_NO_TITLE); - getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED - | WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD - | WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON - | WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON); +// getWindow().addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD +// | WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON +// | WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON); + getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); + + if (!requireUnlock) { + getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED); + } + updateLayout(); // Register to get the alarm killed intent. diff --git a/src/com/android/deskclock/AlarmKlaxon.java b/src/com/android/deskclock/AlarmKlaxon.java index 040dc24df..eaa8159dd 100644 --- a/src/com/android/deskclock/AlarmKlaxon.java +++ b/src/com/android/deskclock/AlarmKlaxon.java @@ -41,7 +41,7 @@ import android.telephony.TelephonyManager; public class AlarmKlaxon extends Service { /** Play alarm up to 10 minutes before silencing */ - private static final int ALARM_TIMEOUT_SECONDS = 10 * 60; + private static final int ALARM_TIMEOUT_SECONDS = 30 * 60; private static final long[] sVibratePattern = new long[] { 500, 500 }; diff --git a/src/com/android/deskclock/DeskClock.java b/src/com/android/deskclock/DeskClock.java index de96e9b9a..202d24c81 100644 --- a/src/com/android/deskclock/DeskClock.java +++ b/src/com/android/deskclock/DeskClock.java @@ -21,6 +21,7 @@ import android.app.AlarmManager; import android.app.AlertDialog; import android.app.PendingIntent; import android.content.BroadcastReceiver; +import android.content.ComponentName; import android.content.Context; import android.content.DialogInterface; import android.content.Intent; @@ -73,6 +74,11 @@ import static android.os.BatteryManager.BATTERY_STATUS_CHARGING; import static android.os.BatteryManager.BATTERY_STATUS_FULL; import static android.os.BatteryManager.BATTERY_STATUS_UNKNOWN; +import android.graphics.Bitmap; +import android.graphics.Canvas; +import android.graphics.PixelFormat; +import android.graphics.ColorFilter; + import java.io.IOException; import java.io.InputStream; import java.util.Calendar; @@ -80,6 +86,7 @@ import java.util.Date; import java.util.Locale; import java.util.Random; +import java.text.SimpleDateFormat; /** * DeskClock clock view for desk docks. */ @@ -253,9 +260,9 @@ public class DeskClock extends Activity { if (DEBUG) Log.d(LOG_TAG, (hold ? "hold" : " releas") + "ing wake lock"); Window win = getWindow(); WindowManager.LayoutParams winParams = win.getAttributes(); - winParams.flags |= WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD; +// winParams.flags |= WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD; winParams.flags |= WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED; - winParams.flags |= WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON; +// winParams.flags |= WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON; if (hold) winParams.flags |= WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON; else @@ -571,7 +578,14 @@ public class DeskClock extends Activity { // reload the date format in case the user has changed settings // recently - mDateFormat = getString(com.android.internal.R.string.full_wday_month_day_no_year); +// mDateFormat = getString(com.android.internal.R.string.full_wday_month_day_no_year); + + final SimpleDateFormat dateFormat + = (SimpleDateFormat)java.text.DateFormat.getDateInstance(java.text.DateFormat.FULL); + mDateFormat = dateFormat.toPattern() + .replace("MMMM", "MMM") // we want "Sep", not "September" + .replace("EEEE", "EEE") // we want "Fri", no "Friday" + .replaceAll("EEE$", "(EEE)"); IntentFilter filter = new IntentFilter(); filter.addAction(Intent.ACTION_DATE_CHANGED); @@ -653,6 +667,12 @@ public class DeskClock extends Activity { setContentView(R.layout.desk_clock); + // set wallpaper as background by nobunobuta for Donut + Window window = getWindow(); + final BitmapDrawable drawable = (BitmapDrawable) getWallpaper(); + window.setBackgroundDrawable( + new FastBitmapDrawable(drawable.getBitmap())); + mTime = (DigitalClock) findViewById(R.id.time); mDate = (TextView) findViewById(R.id.date); mBatteryDisplay = (TextView) findViewById(R.id.battery); @@ -696,9 +716,13 @@ public class DeskClock extends Activity { musicButton.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { try { - Intent musicAppQuery = getPackageManager() - .getLaunchIntentForPackage(MUSIC_PACKAGE_ID) - .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK|Intent.FLAG_ACTIVITY_CLEAR_TOP); +// Intent musicAppQuery = getPackageManager() +// .getLaunchIntentForPackage(MUSIC_PACKAGE_ID) +// .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK|Intent.FLAG_ACTIVITY_CLEAR_TOP); + Intent musicAppQuery = new Intent(Intent.ACTION_MAIN); + musicAppQuery.setComponent(new ComponentName(MUSIC_PACKAGE_ID,"com.android.music.MusicBrowserActivity")); + musicAppQuery.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK|Intent.FLAG_ACTIVITY_CLEAR_TOP); + if (musicAppQuery != null) { startActivity(musicAppQuery); } @@ -798,4 +822,59 @@ public class DeskClock extends Activity { initViews(); } + /** + * Used to put wallpaper on the background of the lock screen. Centers it Horizontally and + * vertically. + */ + static private class FastBitmapDrawable extends Drawable { + private Bitmap mBitmap; + private int mOpacity; + + private FastBitmapDrawable(Bitmap bitmap) { + mBitmap = bitmap; + mOpacity = mBitmap.hasAlpha() ? PixelFormat.TRANSLUCENT : PixelFormat.OPAQUE; + } + + @Override + public void draw(Canvas canvas) { + canvas.drawBitmap( + mBitmap, + (getBounds().width() - mBitmap.getWidth()) / 2, + (getBounds().height() - mBitmap.getHeight()) / 2, + null); + } + + @Override + public int getOpacity() { + return mOpacity; + } + + @Override + public void setAlpha(int alpha) { + } + + @Override + public void setColorFilter(ColorFilter cf) { + } + + @Override + public int getIntrinsicWidth() { + return mBitmap.getWidth(); + } + + @Override + public int getIntrinsicHeight() { + return mBitmap.getHeight(); + } + + @Override + public int getMinimumWidth() { + return mBitmap.getWidth(); + } + + @Override + public int getMinimumHeight() { + return mBitmap.getHeight(); + } + } } diff --git a/src/com/android/deskclock/SettingsActivity.java b/src/com/android/deskclock/SettingsActivity.java index f28d1e73b..1924bbfda 100644 --- a/src/com/android/deskclock/SettingsActivity.java +++ b/src/com/android/deskclock/SettingsActivity.java @@ -40,7 +40,10 @@ public class SettingsActivity extends PreferenceActivity "snooze_duration"; static final String KEY_VOLUME_BEHAVIOR = "volume_button_setting"; - + static final String KEY_ALARM_REQUIRES_UNLOCK = + "alarm_requires_unlock"; + + @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -73,6 +76,11 @@ public class SettingsActivity extends PreferenceActivity ringerModeStreamTypes); return true; + + } else if (KEY_ALARM_REQUIRES_UNLOCK.equals(preference.getKey())) { + CheckBoxPreference pref = (CheckBoxPreference) preference; + Settings.System.putInt(getContentResolver(), KEY_ALARM_REQUIRES_UNLOCK, pref.isChecked() ? 1 : 0); + return true; } return super.onPreferenceTreeClick(preferenceScreen, preference); |