summaryrefslogtreecommitdiffstats
path: root/src/com/android/packageinstaller/InstallAppProgress.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/packageinstaller/InstallAppProgress.java')
-rwxr-xr-xsrc/com/android/packageinstaller/InstallAppProgress.java37
1 files changed, 32 insertions, 5 deletions
diff --git a/src/com/android/packageinstaller/InstallAppProgress.java b/src/com/android/packageinstaller/InstallAppProgress.java
index 45d8391b..08a6d1dd 100755
--- a/src/com/android/packageinstaller/InstallAppProgress.java
+++ b/src/com/android/packageinstaller/InstallAppProgress.java
@@ -32,6 +32,7 @@ import android.content.pm.ResolveInfo;
import android.content.pm.PackageManager.NameNotFoundException;
import android.content.res.Resources;
import android.graphics.drawable.Drawable;
+import android.graphics.drawable.LevelListDrawable;
import android.net.Uri;
import android.os.Bundle;
import android.os.Handler;
@@ -61,6 +62,7 @@ public class InstallAppProgress extends Activity implements View.OnClickListener
private ProgressBar mProgressBar;
private View mOkPanel;
private TextView mStatusTextView;
+ private TextView mExplanationTextView;
private Button mDoneButton;
private Button mLaunchButton;
private final int INSTALL_COMPLETE = 1;
@@ -76,10 +78,12 @@ public class InstallAppProgress extends Activity implements View.OnClickListener
mProgressBar.setVisibility(View.INVISIBLE);
// Show the ok button
int centerTextLabel;
- Drawable centerTextDrawable = null;
- if(msg.arg1 == PackageManager.INSTALL_SUCCEEDED) {
+ int centerExplanationLabel = -1;
+ LevelListDrawable centerTextDrawable = (LevelListDrawable) getResources()
+ .getDrawable(R.drawable.ic_result_status);
+ if (msg.arg1 == PackageManager.INSTALL_SUCCEEDED) {
mLaunchButton.setVisibility(View.VISIBLE);
- centerTextDrawable = getResources().getDrawable(R.drawable.button_indicator_finish);
+ centerTextDrawable.setLevel(0);
centerTextLabel = R.string.install_done;
// Enable or disable launch button
mLaunchIntent = getPackageManager().getLaunchIntentForPackage(
@@ -102,8 +106,8 @@ public class InstallAppProgress extends Activity implements View.OnClickListener
return;
} else {
// Generic error handling for all other error codes.
- centerTextDrawable = Resources.getSystem().getDrawable(
- com.android.internal.R.drawable.ic_bullet_key_permission);
+ centerTextDrawable.setLevel(1);
+ centerExplanationLabel = getExplanationFromErrorCode(msg.arg1);
centerTextLabel = R.string.install_failed;
mLaunchButton.setVisibility(View.INVISIBLE);
}
@@ -114,6 +118,12 @@ public class InstallAppProgress extends Activity implements View.OnClickListener
mStatusTextView.setCompoundDrawables(centerTextDrawable, null, null, null);
}
mStatusTextView.setText(centerTextLabel);
+ if (centerExplanationLabel != -1) {
+ mExplanationTextView.setText(centerExplanationLabel);
+ mExplanationTextView.setVisibility(View.VISIBLE);
+ } else {
+ mExplanationTextView.setVisibility(View.GONE);
+ }
mDoneButton.setOnClickListener(InstallAppProgress.this);
mOkPanel.setVisibility(View.VISIBLE);
break;
@@ -123,6 +133,22 @@ public class InstallAppProgress extends Activity implements View.OnClickListener
}
};
+ private int getExplanationFromErrorCode(int errCode) {
+ Log.d(TAG, "Installation error code: " + errCode);
+ switch (errCode) {
+ case PackageManager.INSTALL_FAILED_INVALID_APK:
+ return R.string.install_failed_invalid_apk;
+ case PackageManager.INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES:
+ return R.string.install_failed_inconsistent_certificates;
+ case PackageManager.INSTALL_FAILED_OLDER_SDK:
+ return R.string.install_failed_older_sdk;
+ case PackageManager.INSTALL_FAILED_CPU_ABI_INCOMPATIBLE:
+ return R.string.install_failed_cpu_abi_incompatible;
+ default:
+ return -1;
+ }
+ }
+
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
@@ -194,6 +220,7 @@ public class InstallAppProgress extends Activity implements View.OnClickListener
PackageUtil.initSnippetForNewApp(this, as, R.id.app_snippet);
mStatusTextView = (TextView)findViewById(R.id.center_text);
mStatusTextView.setText(R.string.installing);
+ mExplanationTextView = (TextView) findViewById(R.id.center_explanation);
mProgressBar = (ProgressBar) findViewById(R.id.progress_bar);
mProgressBar.setIndeterminate(true);
// Hide button till progress is being displayed