Merge "Avoid print stack trace." into sc-dev
This commit is contained in:
@@ -37,6 +37,7 @@ import static com.android.server.wm.CompatModePackages.DOWNSCALE_90;
|
|||||||
|
|
||||||
import android.Manifest;
|
import android.Manifest;
|
||||||
import android.annotation.NonNull;
|
import android.annotation.NonNull;
|
||||||
|
import android.annotation.Nullable;
|
||||||
import android.annotation.RequiresPermission;
|
import android.annotation.RequiresPermission;
|
||||||
import android.app.ActivityManager;
|
import android.app.ActivityManager;
|
||||||
import android.app.GameManager;
|
import android.app.GameManager;
|
||||||
@@ -73,6 +74,7 @@ import com.android.internal.compat.CompatibilityOverrideConfig;
|
|||||||
import com.android.internal.compat.IPlatformCompat;
|
import com.android.internal.compat.IPlatformCompat;
|
||||||
import com.android.server.ServiceThread;
|
import com.android.server.ServiceThread;
|
||||||
import com.android.server.SystemService;
|
import com.android.server.SystemService;
|
||||||
|
import com.android.server.SystemService.TargetUser;
|
||||||
|
|
||||||
import java.io.FileDescriptor;
|
import java.io.FileDescriptor;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -196,6 +198,7 @@ public final class GameManagerService extends IGameManagerService.Stub {
|
|||||||
final int userId = (int) msg.obj;
|
final int userId = (int) msg.obj;
|
||||||
final String[] packageNames = getInstalledGamePackageNames(userId);
|
final String[] packageNames = getInstalledGamePackageNames(userId);
|
||||||
updateConfigsForUser(userId, packageNames);
|
updateConfigsForUser(userId, packageNames);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -212,7 +215,7 @@ public final class GameManagerService extends IGameManagerService.Stub {
|
|||||||
@Override
|
@Override
|
||||||
public void onPropertiesChanged(Properties properties) {
|
public void onPropertiesChanged(Properties properties) {
|
||||||
final String[] packageNames = properties.getKeyset().toArray(new String[0]);
|
final String[] packageNames = properties.getKeyset().toArray(new String[0]);
|
||||||
updateConfigsForUser(mContext.getUserId(), packageNames);
|
updateConfigsForUser(ActivityManager.getCurrentUser(), packageNames);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -496,6 +499,11 @@ public final class GameManagerService extends IGameManagerService.Stub {
|
|||||||
public void onUserStopping(@NonNull TargetUser user) {
|
public void onUserStopping(@NonNull TargetUser user) {
|
||||||
mService.onUserStopping(user.getUserIdentifier());
|
mService.onUserStopping(user.getUserIdentifier());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onUserSwitching(@Nullable TargetUser from, @NonNull TargetUser to) {
|
||||||
|
mService.onUserSwitching(from, to.getUserIdentifier());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean isValidPackageName(String packageName, int userId) {
|
private boolean isValidPackageName(String packageName, int userId) {
|
||||||
@@ -503,7 +511,6 @@ public final class GameManagerService extends IGameManagerService.Stub {
|
|||||||
return mPackageManager.getPackageUidAsUser(packageName, userId)
|
return mPackageManager.getPackageUidAsUser(packageName, userId)
|
||||||
== Binder.getCallingUid();
|
== Binder.getCallingUid();
|
||||||
} catch (PackageManager.NameNotFoundException e) {
|
} catch (PackageManager.NameNotFoundException e) {
|
||||||
e.printStackTrace();
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -567,7 +574,6 @@ public final class GameManagerService extends IGameManagerService.Stub {
|
|||||||
return GameManager.GAME_MODE_UNSUPPORTED;
|
return GameManager.GAME_MODE_UNSUPPORTED;
|
||||||
}
|
}
|
||||||
} catch (PackageManager.NameNotFoundException e) {
|
} catch (PackageManager.NameNotFoundException e) {
|
||||||
e.printStackTrace();
|
|
||||||
return GameManager.GAME_MODE_UNSUPPORTED;
|
return GameManager.GAME_MODE_UNSUPPORTED;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -606,7 +612,6 @@ public final class GameManagerService extends IGameManagerService.Stub {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
} catch (PackageManager.NameNotFoundException e) {
|
} catch (PackageManager.NameNotFoundException e) {
|
||||||
e.printStackTrace();
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -639,14 +644,12 @@ public final class GameManagerService extends IGameManagerService.Stub {
|
|||||||
|
|
||||||
void onUserStarting(int userId) {
|
void onUserStarting(int userId) {
|
||||||
synchronized (mLock) {
|
synchronized (mLock) {
|
||||||
if (mSettings.containsKey(userId)) {
|
if (!mSettings.containsKey(userId)) {
|
||||||
return;
|
GameManagerSettings userSettings =
|
||||||
|
new GameManagerSettings(Environment.getDataSystemDeDirectory(userId));
|
||||||
|
mSettings.put(userId, userSettings);
|
||||||
|
userSettings.readPersistentDataLocked();
|
||||||
}
|
}
|
||||||
|
|
||||||
GameManagerSettings userSettings =
|
|
||||||
new GameManagerSettings(Environment.getDataSystemDeDirectory(userId));
|
|
||||||
mSettings.put(userId, userSettings);
|
|
||||||
userSettings.readPersistentDataLocked();
|
|
||||||
}
|
}
|
||||||
final Message msg = mHandler.obtainMessage(POPULATE_GAME_MODE_SETTINGS);
|
final Message msg = mHandler.obtainMessage(POPULATE_GAME_MODE_SETTINGS);
|
||||||
msg.obj = userId;
|
msg.obj = userId;
|
||||||
@@ -664,6 +667,22 @@ public final class GameManagerService extends IGameManagerService.Stub {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void onUserSwitching(TargetUser from, int toUserId) {
|
||||||
|
if (from != null) {
|
||||||
|
synchronized (mLock) {
|
||||||
|
final int fromUserId = from.getUserIdentifier();
|
||||||
|
if (mSettings.containsKey(fromUserId)) {
|
||||||
|
final Message msg = mHandler.obtainMessage(REMOVE_SETTINGS);
|
||||||
|
msg.obj = fromUserId;
|
||||||
|
mHandler.sendMessage(msg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
final Message msg = mHandler.obtainMessage(POPULATE_GAME_MODE_SETTINGS);
|
||||||
|
msg.obj = toUserId;
|
||||||
|
mHandler.sendMessage(msg);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @hide
|
* @hide
|
||||||
*/
|
*/
|
||||||
@@ -856,11 +875,25 @@ public final class GameManagerService extends IGameManagerService.Stub {
|
|||||||
public void onReceive(@NonNull final Context context, @NonNull final Intent intent) {
|
public void onReceive(@NonNull final Context context, @NonNull final Intent intent) {
|
||||||
final Uri data = intent.getData();
|
final Uri data = intent.getData();
|
||||||
try {
|
try {
|
||||||
|
final int userId = getSendingUserId();
|
||||||
|
if (userId != ActivityManager.getCurrentUser()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
final String packageName = data.getSchemeSpecificPart();
|
final String packageName = data.getSchemeSpecificPart();
|
||||||
|
try {
|
||||||
|
final ApplicationInfo applicationInfo = mPackageManager
|
||||||
|
.getApplicationInfoAsUser(
|
||||||
|
packageName, PackageManager.MATCH_ALL, userId);
|
||||||
|
if (applicationInfo.category != ApplicationInfo.CATEGORY_GAME) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
} catch (PackageManager.NameNotFoundException e) {
|
||||||
|
// Ignore the exception.
|
||||||
|
}
|
||||||
switch (intent.getAction()) {
|
switch (intent.getAction()) {
|
||||||
case ACTION_PACKAGE_ADDED:
|
case ACTION_PACKAGE_ADDED:
|
||||||
case ACTION_PACKAGE_CHANGED:
|
case ACTION_PACKAGE_CHANGED:
|
||||||
updateConfigsForUser(mContext.getUserId(), packageName);
|
updateConfigsForUser(userId, packageName);
|
||||||
break;
|
break;
|
||||||
case ACTION_PACKAGE_REMOVED:
|
case ACTION_PACKAGE_REMOVED:
|
||||||
disableCompatScale(packageName);
|
disableCompatScale(packageName);
|
||||||
@@ -873,11 +906,12 @@ public final class GameManagerService extends IGameManagerService.Stub {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
} catch (NullPointerException e) {
|
} catch (NullPointerException e) {
|
||||||
Slog.e(TAG, "Failed to get package name for new package", e);
|
Slog.e(TAG, "Failed to get package name for new package");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
mContext.registerReceiver(packageReceiver, packageFilter);
|
mContext.registerReceiverForAllUsers(packageReceiver, packageFilter,
|
||||||
|
/* broadcastPermission= */ null, /* scheduler= */ null);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void registerDeviceConfigListener() {
|
private void registerDeviceConfigListener() {
|
||||||
|
|||||||
Reference in New Issue
Block a user