Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 062c7e1a authored by Eugene Susla's avatar Eugene Susla
Browse files

Mirgate default SMS app handling to RoleManager

This includes laying down some groundwork to make the remaining migrations
more straightforward

Test: atest RoleManagerTest && atest SmsManagerTest
Change-Id: I826502080defa0f397c8f2fb053f50956c46a184
parent bbd2c1a3
Loading
Loading
Loading
Loading
+8 −1
Original line number Diff line number Diff line
@@ -56,6 +56,8 @@ public class Role {

    private static final String LOG_TAG = Role.class.getSimpleName();

    private static final boolean DEBUG = false;

    private static final String PACKAGE_NAME_ANDROID_SYSTEM = "android";

    /**
@@ -345,7 +347,12 @@ public class Role {
        }
    }

    private static void killApp(@NonNull String packageName, @NonNull Context context) {
    private void killApp(@NonNull String packageName, @NonNull Context context) {
        if (DEBUG) {
            Log.i(LOG_TAG, "Killing " + packageName + " due to "
                    + Thread.currentThread().getStackTrace()[3].getMethodName()
                    + "(" + mName + ")");
        }
        ApplicationInfo applicationInfo = PackageUtils.getApplicationInfo(packageName, context);
        if (applicationInfo == null) {
            Log.w(LOG_TAG, "Cannot get ApplicationInfo for package: " + packageName);
+10 −1
Original line number Diff line number Diff line
@@ -182,12 +182,19 @@ public class RoleControllerServiceImpl extends RoleControllerService {
            return;
        }

        boolean added = false;
        if (role.isExclusive()) {
            List<String> currentPackageNames = mRoleManager.getRoleHolders(roleName);
            int currentPackageNamesSize = currentPackageNames.size();
            for (int i = 0; i < currentPackageNamesSize; i++) {
                String currentPackageName = currentPackageNames.get(i);

                if (currentPackageName.equals(packageName)) {
                    Log.i(LOG_TAG, packageName + " already holds " + roleName);
                    added = true;
                    continue;
                }

                boolean removed = removeRoleHolderInternal(role, currentPackageName);
                if (!removed) {
                    Log.e(LOG_TAG, "Failed to remove current holder from role holders in"
@@ -202,7 +209,9 @@ public class RoleControllerServiceImpl extends RoleControllerService {
        // TODO: STOPSHIP: Pass in appropriate arguments.
        role.grant(packageName, true, true, false, this);

        boolean added = mRoleManager.addRoleHolderFromController(roleName, packageName);
        if (!added) {
            added = mRoleManager.addRoleHolderFromController(roleName, packageName);
        }
        if (!added) {
            Log.e(LOG_TAG, "Failed to add package to role holders in RoleManager, package: "
                    + packageName + ", role: " + roleName);