diff options
Diffstat (limited to 'src/com/android/packageinstaller/RemoveReceiver.java')
-rw-r--r-- | src/com/android/packageinstaller/RemoveReceiver.java | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/src/com/android/packageinstaller/RemoveReceiver.java b/src/com/android/packageinstaller/RemoveReceiver.java new file mode 100644 index 00000000..7d8064dd --- /dev/null +++ b/src/com/android/packageinstaller/RemoveReceiver.java @@ -0,0 +1,42 @@ +/* +** +** Copyright 2007, 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.packageinstaller; + +import android.content.BroadcastReceiver; +import android.content.Context; +import android.content.Intent; +import android.content.SharedPreferences; +import android.net.Uri; + +public class RemoveReceiver extends BroadcastReceiver { + + @Override + public void onReceive(Context context, Intent intent) { + if (Intent.ACTION_PACKAGE_FULLY_REMOVED.equals(intent.getAction())) { + Uri uri = intent.getData(); + String pkg = uri != null ? uri.getSchemeSpecificPart() : null; + if (pkg != null) { + SharedPreferences prefs = context.getSharedPreferences( + PackageInstallerActivity.PREFS_ALLOWED_SOURCES, + Context.MODE_PRIVATE); + if (prefs.getBoolean(pkg, false)) { + prefs.edit().remove(pkg).apply(); + } + } + } + } +} |