summaryrefslogtreecommitdiffstats
path: root/src/com/android/deskclock/DeskClock.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/deskclock/DeskClock.java')
-rw-r--r--src/com/android/deskclock/DeskClock.java31
1 files changed, 26 insertions, 5 deletions
diff --git a/src/com/android/deskclock/DeskClock.java b/src/com/android/deskclock/DeskClock.java
index 88030cd4d..4c0217419 100644
--- a/src/com/android/deskclock/DeskClock.java
+++ b/src/com/android/deskclock/DeskClock.java
@@ -165,7 +165,7 @@ public class DeskClock extends Activity {
private int mBatteryLevel = -1;
private boolean mPluggedIn = false;
- private boolean mInDock = false;
+ private boolean mLaunchedFromDock = false;
private int mIdleTimeoutEpoch = 0;
@@ -183,6 +183,16 @@ public class DeskClock extends Activity {
handleBatteryUpdate(
intent.getIntExtra("status", BATTERY_STATUS_UNKNOWN),
intent.getIntExtra("level", 0));
+ } else if (Intent.ACTION_DOCK_EVENT.equals(action)) {
+ int state = intent.getIntExtra(Intent.EXTRA_DOCK_STATE, -1);
+ if (DEBUG) Log.d(LOG_TAG, "ACTION_DOCK_EVENT, state=" + state);
+ if (state == Intent.EXTRA_DOCK_STATE_UNDOCKED) {
+ if (mLaunchedFromDock) {
+ // moveTaskToBack(false);
+ finish();
+ }
+ mLaunchedFromDock = false;
+ }
}
}
};
@@ -534,9 +544,19 @@ public class DeskClock extends Activity {
}
@Override
+ public void onNewIntent(Intent newIntent) {
+ super.onNewIntent(newIntent);
+ if (DEBUG) Log.d(LOG_TAG, "onNewIntent with intent: " + newIntent);
+
+ // update our intent so that we can consult it to determine whether or
+ // not the most recent launch was via a dock event
+ setIntent(newIntent);
+ }
+
+ @Override
public void onResume() {
super.onResume();
- if (DEBUG) Log.d(LOG_TAG, "onResume");
+ if (DEBUG) Log.d(LOG_TAG, "onResume with intent: " + getIntent());
// reload the date format in case the user has changed settings
// recently
@@ -545,14 +565,15 @@ public class DeskClock extends Activity {
IntentFilter filter = new IntentFilter();
filter.addAction(Intent.ACTION_DATE_CHANGED);
filter.addAction(Intent.ACTION_BATTERY_CHANGED);
+ filter.addAction(Intent.ACTION_DOCK_EVENT);
filter.addAction(ACTION_MIDNIGHT);
+ registerReceiver(mIntentReceiver, filter);
Calendar today = Calendar.getInstance();
today.add(Calendar.DATE, 1);
mMidnightIntent = PendingIntent.getBroadcast(this, 0, new Intent(ACTION_MIDNIGHT), 0);
AlarmManager am = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
am.setRepeating(AlarmManager.RTC, today.getTimeInMillis(), AlarmManager.INTERVAL_DAY, mMidnightIntent);
- registerReceiver(mIntentReceiver, filter);
// un-dim when resuming
mDimmed = false;
@@ -571,13 +592,13 @@ public class DeskClock extends Activity {
final boolean launchedFromDock
= getIntent().hasCategory(Intent.CATEGORY_DESK_DOCK);
- if (supportsWeather() && launchedFromDock && !mInDock) {
+ if (supportsWeather() && launchedFromDock && !mLaunchedFromDock) {
// policy: fetch weather if launched via dock connection
if (DEBUG) Log.d(LOG_TAG, "Device now docked; forcing weather to refresh right now");
requestWeatherDataFetch();
}
- mInDock = launchedFromDock;
+ mLaunchedFromDock = launchedFromDock;
}
@Override