summaryrefslogtreecommitdiffstats
path: root/src/com/android/packageinstaller/UninstallAppProgress.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/packageinstaller/UninstallAppProgress.java')
-rwxr-xr-xsrc/com/android/packageinstaller/UninstallAppProgress.java35
1 files changed, 27 insertions, 8 deletions
diff --git a/src/com/android/packageinstaller/UninstallAppProgress.java b/src/com/android/packageinstaller/UninstallAppProgress.java
index 397236a6..68d053ae 100755
--- a/src/com/android/packageinstaller/UninstallAppProgress.java
+++ b/src/com/android/packageinstaller/UninstallAppProgress.java
@@ -21,11 +21,14 @@ import android.content.Context;
import android.content.Intent;
import android.content.pm.ApplicationInfo;
import android.content.pm.IPackageDeleteObserver;
+import android.content.pm.IPackageDeleteObserver2;
import android.content.pm.IPackageManager;
+import android.content.pm.PackageInstaller;
import android.content.pm.PackageManager;
import android.content.pm.UserInfo;
import android.os.Bundle;
import android.os.Handler;
+import android.os.IBinder;
import android.os.Message;
import android.os.RemoteException;
import android.os.ServiceManager;
@@ -52,35 +55,50 @@ import java.util.List;
public class UninstallAppProgress extends Activity implements OnClickListener {
private final String TAG="UninstallAppProgress";
private boolean localLOGV = false;
+
private ApplicationInfo mAppInfo;
private boolean mAllUsers;
private UserHandle mUser;
+ private IBinder mCallback;
+
private TextView mStatusTextView;
private Button mOkButton;
private Button mDeviceManagerButton;
private ProgressBar mProgressBar;
private View mOkPanel;
private volatile int mResultCode = -1;
- private final int UNINSTALL_COMPLETE = 1;
- public final static int SUCCEEDED=1;
- public final static int FAILED=0;
+
+ private static final int UNINSTALL_COMPLETE = 1;
+
private Handler mHandler = new Handler() {
public void handleMessage(Message msg) {
switch (msg.what) {
case UNINSTALL_COMPLETE:
+ mResultCode = msg.arg1;
+ final String packageName = (String) msg.obj;
+
+ if (mCallback != null) {
+ final IPackageDeleteObserver2 observer = IPackageDeleteObserver2.Stub
+ .asInterface(mCallback);
+ try {
+ observer.onPackageDeleted(mAppInfo.packageName, mResultCode,
+ packageName);
+ } catch (RemoteException ignored) {
+ }
+ finish();
+ return;
+ }
+
if (getIntent().getBooleanExtra(Intent.EXTRA_RETURN_RESULT, false)) {
Intent result = new Intent();
- result.putExtra(Intent.EXTRA_INSTALL_RESULT, msg.arg1);
- setResult(msg.arg1 == PackageManager.DELETE_SUCCEEDED
+ result.putExtra(Intent.EXTRA_INSTALL_RESULT, mResultCode);
+ setResult(mResultCode == PackageManager.DELETE_SUCCEEDED
? Activity.RESULT_OK : Activity.RESULT_FIRST_USER,
result);
finish();
return;
}
- mResultCode = msg.arg1;
- final String packageName = (String) msg.obj;
-
// Update the status text
final String statusText;
switch (msg.arg1) {
@@ -169,6 +187,7 @@ public class UninstallAppProgress extends Activity implements OnClickListener {
+ "request uninstall for user " + mUser);
}
}
+ mCallback = intent.getIBinderExtra(PackageInstaller.EXTRA_CALLBACK);
initView();
}