am 257eef3: Merge branch \'readonly-p4-donut\' into donut
Merge commit '257eef353dfc9519b63e3fe2616505c5534b460a' * commit '257eef353dfc9519b63e3fe2616505c5534b460a': AI 147845: Compatibility mode support. Part 1
This commit is contained in:
committed by
The Android Open Source Project
commit
4cc574be4e
@@ -161,6 +161,14 @@ public class ApplicationInfo extends PackageItemInfo implements Parcelable {
|
||||
*/
|
||||
public int uid;
|
||||
|
||||
|
||||
/**
|
||||
* The list of densities in DPI that application supprots. This
|
||||
* field is only set if the {@link PackageManager#GET_SUPPORTS_DENSITIES} flag was
|
||||
* used when retrieving the structure.
|
||||
*/
|
||||
public int[] supportsDensities;
|
||||
|
||||
/**
|
||||
* When false, indicates that all components within this application are
|
||||
* considered disabled, regardless of their individually set enabled status.
|
||||
@@ -181,8 +189,9 @@ public class ApplicationInfo extends PackageItemInfo implements Parcelable {
|
||||
pw.println(prefix + "sharedLibraryFiles=" + sharedLibraryFiles);
|
||||
pw.println(prefix + "dataDir=" + dataDir);
|
||||
pw.println(prefix + "enabled=" + enabled);
|
||||
pw.println(prefix+"manageSpaceActivityName="+manageSpaceActivityName);
|
||||
pw.println(prefix+"description=0x"+Integer.toHexString(descriptionRes));
|
||||
pw.println(prefix + "manageSpaceActivityName="+manageSpaceActivityName);
|
||||
pw.println(prefix + "description=0x"+Integer.toHexString(descriptionRes));
|
||||
pw.println(prefix + "supportsDensities=" + supportsDensities);
|
||||
super.dumpBack(pw, prefix);
|
||||
}
|
||||
|
||||
@@ -228,6 +237,7 @@ public class ApplicationInfo extends PackageItemInfo implements Parcelable {
|
||||
enabled = orig.enabled;
|
||||
manageSpaceActivityName = orig.manageSpaceActivityName;
|
||||
descriptionRes = orig.descriptionRes;
|
||||
supportsDensities = orig.supportsDensities;
|
||||
}
|
||||
|
||||
|
||||
@@ -257,6 +267,7 @@ public class ApplicationInfo extends PackageItemInfo implements Parcelable {
|
||||
dest.writeInt(enabled ? 1 : 0);
|
||||
dest.writeString(manageSpaceActivityName);
|
||||
dest.writeInt(descriptionRes);
|
||||
dest.writeIntArray(supportsDensities);
|
||||
}
|
||||
|
||||
public static final Parcelable.Creator<ApplicationInfo> CREATOR
|
||||
@@ -285,8 +296,9 @@ public class ApplicationInfo extends PackageItemInfo implements Parcelable {
|
||||
enabled = source.readInt() != 0;
|
||||
manageSpaceActivityName = source.readString();
|
||||
descriptionRes = source.readInt();
|
||||
supportsDensities = source.createIntArray();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Retrieve the textual description of the application. This
|
||||
* will call back on the given PackageManager to load the description from
|
||||
|
||||
@@ -165,6 +165,12 @@ public abstract class PackageManager {
|
||||
*/
|
||||
public static final int GET_CONFIGURATIONS = 0x00004000;
|
||||
|
||||
/**
|
||||
* {@link ApplicationInfo} flag: return the
|
||||
* {@link ApplicationInfo#supportsDensities} that the package supports.
|
||||
*/
|
||||
public static final int GET_SUPPORTS_DENSITIES = 0x00008000;
|
||||
|
||||
/**
|
||||
* Permission check result: this is returned by {@link #checkPermission}
|
||||
* if the permission has been granted to the given package.
|
||||
|
||||
@@ -45,6 +45,7 @@ import java.security.cert.CertificateEncodingException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Enumeration;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.jar.JarEntry;
|
||||
import java.util.jar.JarFile;
|
||||
|
||||
@@ -771,6 +772,14 @@ public class PackageParser {
|
||||
pkg.usesLibraries.toArray(pkg.usesLibraryFiles);
|
||||
}
|
||||
|
||||
int size = pkg.supportsDensityList.size();
|
||||
if (size > 0) {
|
||||
int densities[] = pkg.supportsDensities = new int[size];
|
||||
List<Integer> densityList = pkg.supportsDensityList;
|
||||
for (int i = 0; i < size; i++) {
|
||||
densities[i] = densityList.get(i);
|
||||
}
|
||||
}
|
||||
return pkg;
|
||||
}
|
||||
|
||||
@@ -1222,6 +1231,21 @@ public class PackageParser {
|
||||
|
||||
XmlUtils.skipCurrentTag(parser);
|
||||
|
||||
} else if (tagName.equals("supports-density")) {
|
||||
sa = res.obtainAttributes(attrs,
|
||||
com.android.internal.R.styleable.AndroidManifestSupportsDensity);
|
||||
|
||||
int density = sa.getInteger(
|
||||
com.android.internal.R.styleable.AndroidManifestSupportsDensity_density, -1);
|
||||
|
||||
sa.recycle();
|
||||
|
||||
if (density != -1 && !owner.supportsDensityList.contains(density)) {
|
||||
owner.supportsDensityList.add(density);
|
||||
}
|
||||
|
||||
XmlUtils.skipCurrentTag(parser);
|
||||
|
||||
} else {
|
||||
if (!RIGID_PARSER) {
|
||||
Log.w(TAG, "Problem in package " + mArchiveSourcePath + ":");
|
||||
@@ -2103,6 +2127,9 @@ public class PackageParser {
|
||||
// We store the application meta-data independently to avoid multiple unwanted references
|
||||
public Bundle mAppMetaData = null;
|
||||
|
||||
public final ArrayList<Integer> supportsDensityList = new ArrayList<Integer>();
|
||||
public int[] supportsDensities = null;
|
||||
|
||||
// If this is a 3rd party app, this is the path of the zip file.
|
||||
public String mPath;
|
||||
|
||||
@@ -2276,6 +2303,10 @@ public class PackageParser {
|
||||
&& p.usesLibraryFiles != null) {
|
||||
return true;
|
||||
}
|
||||
if ((flags & PackageManager.GET_SUPPORTS_DENSITIES) != 0
|
||||
&& p.supportsDensities != null) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -2293,6 +2324,9 @@ public class PackageParser {
|
||||
if ((flags & PackageManager.GET_SHARED_LIBRARY_FILES) != 0) {
|
||||
ai.sharedLibraryFiles = p.usesLibraryFiles;
|
||||
}
|
||||
if ((flags & PackageManager.GET_SUPPORTS_DENSITIES) != 0) {
|
||||
ai.supportsDensities = p.supportsDensities;
|
||||
}
|
||||
return ai;
|
||||
}
|
||||
|
||||
|
||||
@@ -953,7 +953,20 @@ public interface WindowManager extends ViewManager {
|
||||
sb.append('}');
|
||||
return sb.toString();
|
||||
}
|
||||
|
||||
|
||||
void scaleUp(float scale) {
|
||||
if (scale != 1.0f) {
|
||||
x *= scale;
|
||||
y *= scale;
|
||||
if (width > 0) {
|
||||
width *= scale;
|
||||
}
|
||||
if (height > 0) {
|
||||
height *= scale;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private CharSequence mTitle = "";
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user