|
16 | 16 |
|
17 | 17 | package com.android.server; |
18 | 18 |
|
| 19 | +import static android.provider.Settings.Secure.SCREENSAVER_ACTIVATE_ON_DOCK; |
| 20 | + |
19 | 21 | import com.android.server.power.PowerManagerService; |
20 | 22 |
|
21 | 23 | import android.bluetooth.BluetoothAdapter; |
@@ -51,6 +53,8 @@ class DockObserver extends UEventObserver { |
51 | 53 | private static final String DOCK_UEVENT_MATCH = "DEVPATH=/devices/virtual/switch/dock"; |
52 | 54 | private static final String DOCK_STATE_PATH = "/sys/class/switch/dock/state"; |
53 | 55 |
|
| 56 | + private static final int DEFAULT_DOCK = 1; |
| 57 | + |
54 | 58 | private static final int MSG_DOCK_STATE = 0; |
55 | 59 |
|
56 | 60 | private int mDockState = Intent.EXTRA_DOCK_STATE_UNDOCKED; |
@@ -131,6 +135,11 @@ private final void update() { |
131 | 135 | mHandler.sendEmptyMessage(MSG_DOCK_STATE); |
132 | 136 | } |
133 | 137 |
|
| 138 | + private static boolean isScreenSaverActivatedOnDock(Context context) { |
| 139 | + return 0 != Settings.Secure.getInt( |
| 140 | + context.getContentResolver(), SCREENSAVER_ACTIVATE_ON_DOCK, DEFAULT_DOCK); |
| 141 | + } |
| 142 | + |
134 | 143 | private final Handler mHandler = new Handler() { |
135 | 144 | @Override |
136 | 145 | public void handleMessage(Message msg) { |
@@ -210,10 +219,12 @@ public void handleMessage(Message msg) { |
210 | 219 | Slog.w(TAG, "Unable to awaken!", e); |
211 | 220 | } |
212 | 221 | } else { |
213 | | - try { |
214 | | - mgr.dream(); |
215 | | - } catch (RemoteException e) { |
216 | | - Slog.w(TAG, "Unable to dream!", e); |
| 222 | + if (isScreenSaverActivatedOnDock(mContext)) { |
| 223 | + try { |
| 224 | + mgr.dream(); |
| 225 | + } catch (RemoteException e) { |
| 226 | + Slog.w(TAG, "Unable to dream!", e); |
| 227 | + } |
217 | 228 | } |
218 | 229 | } |
219 | 230 | } else { |
|
0 commit comments