[automerge] Make CompanionDeviceManager.apk to platform signed 2p: 954c43458b

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/16961998

Change-Id: I61e4bcd82d0743578ce4fcf00b85ce13e1bb32a0
This commit is contained in:
Evan Chen
2022-02-21 01:58:02 +00:00
committed by Presubmit Automerger Backend
4 changed files with 30 additions and 13 deletions

View File

@@ -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: [

View File

@@ -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"

View File

@@ -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();
} }

View File

@@ -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);
} }