Fix fake targetSdkVersion
The ApplicationInfo instance is reused, so we can't change its targetSdkVersion without affecting subsequent usage.
This commit is contained in:
parent
4669b8ea37
commit
95debe778b
@ -154,6 +154,10 @@ public class LibraryActivity
|
|||||||
* If true, return target GINGERBREAD from getApplicationInfo().
|
* If true, return target GINGERBREAD from getApplicationInfo().
|
||||||
*/
|
*/
|
||||||
boolean mFakeTarget;
|
boolean mFakeTarget;
|
||||||
|
/**
|
||||||
|
* ApplicationInfo with targetSdkVersion set to Gingerbread.
|
||||||
|
*/
|
||||||
|
private ApplicationInfo mFakeInfo;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onCreate(Bundle state)
|
public void onCreate(Bundle state)
|
||||||
@ -1101,9 +1105,16 @@ public class LibraryActivity
|
|||||||
@Override
|
@Override
|
||||||
public ApplicationInfo getApplicationInfo()
|
public ApplicationInfo getApplicationInfo()
|
||||||
{
|
{
|
||||||
ApplicationInfo info = super.getApplicationInfo();
|
ApplicationInfo info;
|
||||||
if (mFakeTarget) {
|
if (mFakeTarget) {
|
||||||
info.targetSdkVersion = Build.VERSION_CODES.GINGERBREAD;
|
info = mFakeInfo;
|
||||||
|
if (info == null) {
|
||||||
|
info = new ApplicationInfo(super.getApplicationInfo());
|
||||||
|
info.targetSdkVersion = Build.VERSION_CODES.GINGERBREAD;
|
||||||
|
mFakeInfo = info;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
info = super.getApplicationInfo();
|
||||||
}
|
}
|
||||||
return info;
|
return info;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user