From 74cb65d47b1c93f38742b190026d8c5fa2541de8 Mon Sep 17 00:00:00 2001 From: Robert Horvath Date: Wed, 13 May 2020 17:11:35 +0200 Subject: Add PackageInstaller#uninstallExistingPackage API to TvSystem To be used for profile management applications. Forwards calls to the hidden system API. Bug: 149465312 Test: m Change-Id: I3148a46fe89756b8800bccf2e78c3ae4be5fca5f --- Android.bp | 1 + api/current.txt | 9 ++++++ .../tv/tvsystem/pm/TvPackageInstaller.java | 36 ++++++++++++++++++++++ 3 files changed, 46 insertions(+) create mode 100644 java/com/android/libraries/tv/tvsystem/pm/TvPackageInstaller.java diff --git a/Android.bp b/Android.bp index 9bc6cab..aaef313 100644 --- a/Android.bp +++ b/Android.bp @@ -18,6 +18,7 @@ java_sdk_library { api_packages: [ "com.android.libraries.tv.tvsystem", "com.android.libraries.tv.tvsystem.display", + "com.android.libraries.tv.tvsystem.pm", "com.android.libraries.tv.tvsystem.user", "com.android.libraries.tv.tvsystem.wifi" ], diff --git a/api/current.txt b/api/current.txt index ee6a075..09cb6e8 100644 --- a/api/current.txt +++ b/api/current.txt @@ -28,6 +28,15 @@ package com.android.libraries.tv.tvsystem.display { } +package com.android.libraries.tv.tvsystem.pm { + + public final class TvPackageInstaller { + ctor public TvPackageInstaller(android.content.pm.PackageManager); + method @RequiresPermission(android.Manifest.permission.DELETE_PACKAGES) public void uninstallExistingPackage(@NonNull String, android.content.IntentSender); + } + +} + package com.android.libraries.tv.tvsystem.user { public interface ITvUserManager { diff --git a/java/com/android/libraries/tv/tvsystem/pm/TvPackageInstaller.java b/java/com/android/libraries/tv/tvsystem/pm/TvPackageInstaller.java new file mode 100644 index 0000000..8cd21ec --- /dev/null +++ b/java/com/android/libraries/tv/tvsystem/pm/TvPackageInstaller.java @@ -0,0 +1,36 @@ +/* + * Copyright (C) 2020 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.android.libraries.tv.tvsystem.pm; + +import android.Manifest; +import android.annotation.NonNull; +import android.annotation.RequiresPermission; +import android.content.IntentSender; +import android.content.pm.PackageInstaller; +import android.content.pm.PackageManager; + +public final class TvPackageInstaller { + private final PackageInstaller mPackageInstaller; + + public TvPackageInstaller(PackageManager packageManager) { + mPackageInstaller = packageManager.getPackageInstaller(); + } + + @RequiresPermission(Manifest.permission.DELETE_PACKAGES) + public void uninstallExistingPackage(@NonNull String packageName, IntentSender statusReceiver) { + mPackageInstaller.uninstallExistingPackage(packageName, statusReceiver); + } +} -- cgit v1.2.3