Use nonlocalized label when installing packages.
Also invoke the right method based on if its an installed application
or not. just move the if condition prior to initializing the view
diff --git a/src/com/android/packageinstaller/InstallAppProgress.java b/src/com/android/packageinstaller/InstallAppProgress.java
index c5a3c5b..0bd3802 100755
--- a/src/com/android/packageinstaller/InstallAppProgress.java
+++ b/src/com/android/packageinstaller/InstallAppProgress.java
@@ -123,18 +123,6 @@
     public void initView() {
         requestWindowFeature(Window.FEATURE_NO_TITLE);
         setContentView(R.layout.op_progress);
-        // Initialize views
-        PackageUtil.initSnippetForInstalledApp(this, mAppInfo, R.id.app_snippet);
-        mStatusTextView = (TextView)findViewById(R.id.center_text);
-        mStatusTextView.setText(R.string.installing);
-        mProgressBar = (ProgressBar) findViewById(R.id.progress_bar);
-        mProgressBar.setIndeterminate(true);
-        // Hide button till progress is being displayed
-        mOkPanel = (View)findViewById(R.id.buttons_panel);
-        mDoneButton = (Button)findViewById(R.id.done_button);
-        mLaunchButton = (Button)findViewById(R.id.launch_button);
-        mOkPanel.setVisibility(View.INVISIBLE);
-        // Set flag to replace package if already existing
         int installFlags = 0;
         PackageManager pm = getPackageManager();
         try {
@@ -147,7 +135,23 @@
         }
         if((installFlags & PackageManager.INSTALL_REPLACE_EXISTING )!= 0) {
             Log.w(TAG, "Replacing package:" + mAppInfo.packageName);
+            // Initialize views
+            PackageUtil.initSnippetForInstalledApp(this, mAppInfo,
+                    R.id.app_snippet);
+        } else {
+            PackageUtil.initSnippetForNewApp(this, mAppInfo,
+                    R.id.app_snippet, mPackageURI);
         }
+        mStatusTextView = (TextView)findViewById(R.id.center_text);
+        mStatusTextView.setText(R.string.installing);
+        mProgressBar = (ProgressBar) findViewById(R.id.progress_bar);
+        mProgressBar.setIndeterminate(true);
+        // Hide button till progress is being displayed
+        mOkPanel = (View)findViewById(R.id.buttons_panel);
+        mDoneButton = (Button)findViewById(R.id.done_button);
+        mLaunchButton = (Button)findViewById(R.id.launch_button);
+        mOkPanel.setVisibility(View.INVISIBLE);
+
         String installerPackageName = getIntent().getStringExtra(
                 Intent.EXTRA_INSTALLER_PACKAGE_NAME);
         
diff --git a/src/com/android/packageinstaller/PackageUtil.java b/src/com/android/packageinstaller/PackageUtil.java
index 362c963..1e80204 100644
--- a/src/com/android/packageinstaller/PackageUtil.java
+++ b/src/com/android/packageinstaller/PackageUtil.java
@@ -123,17 +123,27 @@
         CharSequence label = null;
         // Try to load the label from the package's resources. If an app has not explicitly
         // specified any label, just use the package name.
-        try {
-            label = res.getText(appInfo.labelRes);
-        } catch (Resources.NotFoundException e) {
+        if (appInfo.labelRes != 0) {
+            try {
+                label = res.getText(appInfo.labelRes);
+            } catch (Resources.NotFoundException e) {
+            }
+        }
+        if ((label == null) && (appInfo.nonLocalizedLabel != null)) {
+            label = appInfo.nonLocalizedLabel;
+        } else {
             label = appInfo.packageName;
         }
         Drawable icon = null;
         // Try to load the icon from the package's resources. If an app has not explicitly
         // specified any resource, just use the default icon for now.
-        try {
-            icon = res.getDrawable(appInfo.icon);
-        } catch (Resources.NotFoundException e) {
+        if (appInfo.icon != 0) {
+            try {
+                icon = res.getDrawable(appInfo.icon);
+            } catch (Resources.NotFoundException e) {
+            }
+        }
+        if (icon == null) {
             icon = pContext.getPackageManager().getDefaultActivityIcon();
         }
         ((ImageView)appSnippet.findViewById(R.id.app_icon)).setImageDrawable(icon);