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

Commit 60224bce authored by Evan Chen's avatar Evan Chen Committed by Android (Google) Code Review
Browse files

Merge "Make CompanionDeviceManager.apk to platform signed" into tm-dev

parents 99483fa8 954c4345
Loading
Loading
Loading
Loading
+1 −0
Original line number Original line Diff line number Diff line
@@ -34,6 +34,7 @@ license {
android_app {
android_app {
    name: "CompanionDeviceManager",
    name: "CompanionDeviceManager",
    defaults: ["platform_app_defaults"],
    defaults: ["platform_app_defaults"],
    certificate: "platform",
    srcs: ["src/**/*.java"],
    srcs: ["src/**/*.java"],


    static_libs: [
    static_libs: [
+1 −0
Original line number Original line Diff line number Diff line
@@ -31,6 +31,7 @@
    <uses-permission android:name="android.permission.RADIO_SCAN_WITHOUT_LOCATION"/>
    <uses-permission android:name="android.permission.RADIO_SCAN_WITHOUT_LOCATION"/>
    <uses-permission android:name="android.permission.QUERY_ALL_PACKAGES"/>
    <uses-permission android:name="android.permission.QUERY_ALL_PACKAGES"/>
    <uses-permission android:name="android.permission.HIDE_NON_SYSTEM_OVERLAY_WINDOWS"/>
    <uses-permission android:name="android.permission.HIDE_NON_SYSTEM_OVERLAY_WINDOWS"/>
    <uses-permission android:name="android.permission.INTERACT_ACROSS_USERS"/>


    <application
    <application
        android:allowClearUserData="true"
        android:allowClearUserData="true"
+22 −6
Original line number Original line Diff line number Diff line
@@ -37,6 +37,7 @@ import android.companion.AssociationRequest;
import android.companion.CompanionDeviceManager;
import android.companion.CompanionDeviceManager;
import android.companion.IAssociationRequestCallback;
import android.companion.IAssociationRequestCallback;
import android.content.Intent;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.net.MacAddress;
import android.net.MacAddress;
import android.os.Bundle;
import android.os.Bundle;
import android.os.Handler;
import android.os.Handler;
@@ -71,6 +72,9 @@ public class CompanionDeviceActivity extends AppCompatActivity {
    private static final String EXTRA_ASSOCIATION_REQUEST = "association_request";
    private static final String EXTRA_ASSOCIATION_REQUEST = "association_request";
    private static final String EXTRA_RESULT_RECEIVER = "result_receiver";
    private static final String EXTRA_RESULT_RECEIVER = "result_receiver";


    // Activity result: Internal Error.
    private static final int RESULT_INTERNAL_ERROR = 2;

    // AssociationRequestsProcessor -> UI
    // AssociationRequestsProcessor -> UI
    private static final int RESULT_CODE_ASSOCIATION_CREATED = 0;
    private static final int RESULT_CODE_ASSOCIATION_CREATED = 0;
    private static final String EXTRA_ASSOCIATION = "association";
    private static final String EXTRA_ASSOCIATION = "association";
@@ -191,6 +195,20 @@ public class CompanionDeviceActivity extends AppCompatActivity {
    private void initUI() {
    private void initUI() {
        if (DEBUG) Log.d(TAG, "initUI(), request=" + mRequest);
        if (DEBUG) Log.d(TAG, "initUI(), request=" + mRequest);


        final String packageName = mRequest.getPackageName();
        final int userId = mRequest.getUserId();
        final CharSequence appLabel;

        try {
            appLabel = getApplicationLabel(this, packageName, userId);
        } catch (PackageManager.NameNotFoundException e) {
            Log.w(TAG, "Package u" + userId + "/" + packageName + " not found.");

            CompanionDeviceDiscoveryService.stop(this);
            setResultAndFinish(null, RESULT_INTERNAL_ERROR);
            return;
        }

        setContentView(R.layout.activity_confirmation);
        setContentView(R.layout.activity_confirmation);


        mTitle = findViewById(R.id.title);
        mTitle = findViewById(R.id.title);
@@ -203,8 +221,6 @@ public class CompanionDeviceActivity extends AppCompatActivity {
        mButtonAllow.setOnClickListener(this::onPositiveButtonClick);
        mButtonAllow.setOnClickListener(this::onPositiveButtonClick);
        findViewById(R.id.btn_negative).setOnClickListener(this::onNegativeButtonClick);
        findViewById(R.id.btn_negative).setOnClickListener(this::onNegativeButtonClick);


        final CharSequence appLabel = getApplicationLabel(this, mRequest.getPackageName());

        if (mRequest.isSelfManaged()) {
        if (mRequest.isSelfManaged()) {
            initUiForSelfManagedAssociation(appLabel);
            initUiForSelfManagedAssociation(appLabel);
        } else if (mRequest.isSingleDevice()) {
        } else if (mRequest.isSingleDevice()) {
@@ -257,7 +273,7 @@ public class CompanionDeviceActivity extends AppCompatActivity {
        if (DEBUG) Log.i(TAG, "onAssociationCreated(), association=" + association);
        if (DEBUG) Log.i(TAG, "onAssociationCreated(), association=" + association);


        // Don't need to notify the app, CdmService has already done that. Just finish.
        // Don't need to notify the app, CdmService has already done that. Just finish.
        setResultAndFinish(association);
        setResultAndFinish(association, RESULT_OK);
    }
    }


    private void cancel(boolean discoveryTimeout) {
    private void cancel(boolean discoveryTimeout) {
@@ -284,10 +300,10 @@ public class CompanionDeviceActivity extends AppCompatActivity {
        }
        }


        // ... then set result and finish ("sending" onActivityResult()).
        // ... then set result and finish ("sending" onActivityResult()).
        setResultAndFinish(null);
        setResultAndFinish(null, RESULT_CANCELED);
    }
    }


    private void setResultAndFinish(@Nullable AssociationInfo association) {
    private void setResultAndFinish(@Nullable AssociationInfo association, int resultCode) {
        if (DEBUG) Log.i(TAG, "setResultAndFinish(), association=" + association);
        if (DEBUG) Log.i(TAG, "setResultAndFinish(), association=" + association);


        final Intent data = new Intent();
        final Intent data = new Intent();
@@ -297,7 +313,7 @@ public class CompanionDeviceActivity extends AppCompatActivity {
                data.putExtra(CompanionDeviceManager.EXTRA_DEVICE, mSelectedDevice.getDevice());
                data.putExtra(CompanionDeviceManager.EXTRA_DEVICE, mSelectedDevice.getDevice());
            }
            }
        }
        }
        setResult(association != null ? RESULT_OK : RESULT_CANCELED, data);
        setResult(resultCode, data);


        finish();
        finish();
    }
    }
+6 −7
Original line number Original line Diff line number Diff line
@@ -50,14 +50,13 @@ class Utils {
    }
    }


    static @NonNull CharSequence getApplicationLabel(
    static @NonNull CharSequence getApplicationLabel(
            @NonNull Context context, @NonNull String packageName) {
            @NonNull Context context, @NonNull String packageName, int userId)
            throws PackageManager.NameNotFoundException {
        final PackageManager packageManager = context.getPackageManager();
        final PackageManager packageManager = context.getPackageManager();
        final ApplicationInfo appInfo;

        try {
        final ApplicationInfo appInfo = packageManager.getApplicationInfoAsUser(
            appInfo = packageManager.getApplicationInfo(packageName, 0);
                packageName, PackageManager.ApplicationInfoFlags.of(0), userId);
        } catch (PackageManager.NameNotFoundException e) {

            throw new RuntimeException(e);
        }
        return packageManager.getApplicationLabel(appInfo);
        return packageManager.getApplicationLabel(appInfo);
    }
    }