import android.net.Uri;
import android.os.Build;
import android.os.Handler;
-import android.os.HandlerThread;
import android.os.Looper;
import android.os.SystemProperties;
import android.os.UserHandle;
import android.text.TextUtils;
import android.util.ArrayMap;
import android.util.ArraySet;
+import android.widget.Toast;
import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.messages.nano.SystemMessageProto.SystemMessage;
}
if (!mPluginMap.containsKey(listener)) return;
mPluginMap.remove(listener).destroy();
- stopListening();
+ if (mPluginMap.size() == 0) {
+ stopListening();
+ }
}
private void startListening() {
mContext.getSystemService(NotificationManager.class).notifyAsUser(pkg,
SystemMessage.NOTE_PLUGIN, nb.build(), UserHandle.ALL);
}
- clearClassLoader(pkg);
+ if (clearClassLoader(pkg)) {
+ Toast.makeText(mContext, "Reloading " + pkg, Toast.LENGTH_LONG).show();
+ }
if (!Intent.ACTION_PACKAGE_REMOVED.equals(intent.getAction())) {
for (PluginInstanceManager manager : mPluginMap.values()) {
manager.onPackageChange(pkg);
return classLoader;
}
- private void clearClassLoader(String pkg) {
- mClassLoaders.remove(pkg);
+ private boolean clearClassLoader(String pkg) {
+ return mClassLoaders.remove(pkg) != null;
}
ClassLoader getParentClassLoader() {