summaryrefslogtreecommitdiffstats
path: root/services
diff options
context:
space:
mode:
authorDianne Hackborn <hackbod@google.com>2010-11-12 18:03:47 -0800
committerDianne Hackborn <hackbod@google.com>2010-11-14 14:23:42 -0800
commit7eec10e6c99c30d5ee061fec08ac89ad4254ac32 (patch)
treeb196fb70709f29c6f6e60423578162f5dd189e63 /services
parent7c2ae6570321575ad74a25bdc72bea1ec6558660 (diff)
downloadframeworks_base-7eec10e6c99c30d5ee061fec08ac89ad4254ac32.zip
frameworks_base-7eec10e6c99c30d5ee061fec08ac89ad4254ac32.tar.gz
frameworks_base-7eec10e6c99c30d5ee061fec08ac89ad4254ac32.tar.bz2
Get rid of the extended themes.
We now decide whether to use a bitmap background based on whether the window's drawing is hardware accelerated. To do this, there is a new "state_accelerated" that state list drawables can be parameterized on, and the standard window background uses this to select a solid color or bitmap drawable as appropriate. Introduces a little hackery to have wm preview windows pretend like they are hardware accelerated even if they aren't, so the preview looks closer to the actual app. Also Add a DialogWhenLarge variation for the light theme. Change-Id: I215a79d5df65ba3eed52ab363cade9d8218a6588
Diffstat (limited to 'services')
-rw-r--r--services/java/com/android/server/WindowManagerService.java10
-rw-r--r--services/java/com/android/server/am/ActivityRecord.java5
-rw-r--r--services/java/com/android/server/am/ActivityStack.java8
3 files changed, 16 insertions, 7 deletions
diff --git a/services/java/com/android/server/WindowManagerService.java b/services/java/com/android/server/WindowManagerService.java
index fb87d69..5038770 100644
--- a/services/java/com/android/server/WindowManagerService.java
+++ b/services/java/com/android/server/WindowManagerService.java
@@ -3729,7 +3729,7 @@ public class WindowManagerService extends IWindowManager.Stub
public void setAppStartingWindow(IBinder token, String pkg,
int theme, CharSequence nonLocalizedLabel, int labelRes, int icon,
- IBinder transferFrom, boolean createIfNeeded) {
+ int windowFlags, IBinder transferFrom, boolean createIfNeeded) {
if (!checkCallingPermission(android.Manifest.permission.MANAGE_APP_TOKENS,
"setAppStartingIcon()")) {
throw new SecurityException("Requires MANAGE_APP_TOKENS permission");
@@ -3877,7 +3877,7 @@ public class WindowManagerService extends IWindowManager.Stub
mStartingIconInTransition = true;
wtoken.startingData = new StartingData(
pkg, theme, nonLocalizedLabel,
- labelRes, icon);
+ labelRes, icon, windowFlags);
Message m = mH.obtainMessage(H.ADD_STARTING, wtoken);
// Note: we really want to do sendMessageAtFrontOfQueue() because we
// want to process the message ASAP, before any other queued
@@ -8440,14 +8440,16 @@ public class WindowManagerService extends IWindowManager.Stub
final CharSequence nonLocalizedLabel;
final int labelRes;
final int icon;
+ final int windowFlags;
StartingData(String _pkg, int _theme, CharSequence _nonLocalizedLabel,
- int _labelRes, int _icon) {
+ int _labelRes, int _icon, int _windowFlags) {
pkg = _pkg;
theme = _theme;
nonLocalizedLabel = _nonLocalizedLabel;
labelRes = _labelRes;
icon = _icon;
+ windowFlags = _windowFlags;
}
}
@@ -8568,7 +8570,7 @@ public class WindowManagerService extends IWindowManager.Stub
view = mPolicy.addStartingWindow(
wtoken.token, sd.pkg,
sd.theme, sd.nonLocalizedLabel, sd.labelRes,
- sd.icon);
+ sd.icon, sd.windowFlags);
} catch (Exception e) {
Slog.w(TAG, "Exception when adding starting window", e);
}
diff --git a/services/java/com/android/server/am/ActivityRecord.java b/services/java/com/android/server/am/ActivityRecord.java
index 47be6a2..c2f8d67 100644
--- a/services/java/com/android/server/am/ActivityRecord.java
+++ b/services/java/com/android/server/am/ActivityRecord.java
@@ -36,6 +36,7 @@ import android.util.Log;
import android.util.Slog;
import android.util.TimeUtils;
import android.view.IApplicationToken;
+import android.view.WindowManager;
import java.io.PrintWriter;
import java.lang.ref.WeakReference;
@@ -68,6 +69,7 @@ class ActivityRecord extends IApplicationToken.Stub {
int labelRes; // the label information from the package mgr.
int icon; // resource identifier of activity's icon.
int theme; // resource identifier of activity's theme.
+ int windowFlags; // custom window flags for preview window.
TaskRecord task; // the task this is in.
long launchTime; // when we starting launching this activity
long startTime; // last time this activity was started
@@ -244,6 +246,9 @@ class ActivityRecord extends IApplicationToken.Stub {
}
icon = aInfo.getIconResource();
theme = aInfo.getThemeResource();
+ if ((aInfo.flags&ActivityInfo.FLAG_HARDWARE_ACCELERATED) != 0) {
+ windowFlags |= WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED;
+ }
if ((aInfo.flags&ActivityInfo.FLAG_MULTIPROCESS) != 0
&& _caller != null
&& (aInfo.applicationInfo.uid == Process.SYSTEM_UID
diff --git a/services/java/com/android/server/am/ActivityStack.java b/services/java/com/android/server/am/ActivityStack.java
index 463493b..51dc84e 100644
--- a/services/java/com/android/server/am/ActivityStack.java
+++ b/services/java/com/android/server/am/ActivityStack.java
@@ -1301,7 +1301,8 @@ public class ActivityStack {
mService.mWindowManager.setAppStartingWindow(
next, next.packageName, next.theme,
next.nonLocalizedLabel,
- next.labelRes, next.icon, null, true);
+ next.labelRes, next.icon, next.windowFlags,
+ null, true);
}
}
startSpecificActivityLocked(next, true, false);
@@ -1336,7 +1337,8 @@ public class ActivityStack {
mService.mWindowManager.setAppStartingWindow(
next, next.packageName, next.theme,
next.nonLocalizedLabel,
- next.labelRes, next.icon, null, true);
+ next.labelRes, next.icon, next.windowFlags,
+ null, true);
}
if (DEBUG_SWITCH) Slog.v(TAG, "Restarting: " + next);
}
@@ -1460,7 +1462,7 @@ public class ActivityStack {
}
mService.mWindowManager.setAppStartingWindow(
r, r.packageName, r.theme, r.nonLocalizedLabel,
- r.labelRes, r.icon, prev, showStartingIcon);
+ r.labelRes, r.icon, r.windowFlags, prev, showStartingIcon);
}
} else {
// If this is the first activity, don't do any fancy animations,