summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--res/values/strings.xml2
-rw-r--r--src/com/android/launcher2/DeleteZone.java15
2 files changed, 15 insertions, 2 deletions
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 0a704f812..392584cda 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -168,4 +168,6 @@
<string name="default_browser_url" translatable="false">
http://www.google.com/m?client=ms-{CID}&amp;source=android-home-hotseat</string>
+ <!-- Text to inform the user that they can't uninstall a system application -->
+ <string name="uninstall_system_app_text">This is a system application and cannot be uninstalled.</string>
</resources>
diff --git a/src/com/android/launcher2/DeleteZone.java b/src/com/android/launcher2/DeleteZone.java
index 91ff56fd4..5322f6bc4 100644
--- a/src/com/android/launcher2/DeleteZone.java
+++ b/src/com/android/launcher2/DeleteZone.java
@@ -27,7 +27,6 @@ import android.graphics.Rect;
import android.graphics.RectF;
import android.graphics.drawable.TransitionDrawable;
import android.util.AttributeSet;
-import android.util.Log;
import android.view.View;
import android.view.animation.AccelerateInterpolator;
import android.view.animation.AlphaAnimation;
@@ -35,6 +34,7 @@ import android.view.animation.Animation;
import android.view.animation.AnimationSet;
import android.view.animation.TranslateAnimation;
import android.widget.ImageView;
+import android.widget.Toast;
public class DeleteZone extends ImageView implements DropTarget, DragController.DragListener {
private static final int ORIENTATION_HORIZONTAL = 1;
@@ -59,6 +59,8 @@ public class DeleteZone extends ImageView implements DropTarget, DragController.
private View mHandle;
private final Paint mTrashPaint = new Paint();
+ private Context mContext = null;
+
public DeleteZone(Context context, AttributeSet attrs) {
this(context, attrs, 0);
}
@@ -66,6 +68,8 @@ public class DeleteZone extends ImageView implements DropTarget, DragController.
public DeleteZone(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
+ mContext = context;
+
final int srcColor = context.getResources().getColor(R.color.delete_color_filter);
mTrashPaint.setColorFilter(new PorterDuffColorFilter(srcColor, PorterDuff.Mode.SRC_ATOP));
@@ -97,7 +101,14 @@ public class DeleteZone extends ImageView implements DropTarget, DragController.
// On x-large screens, you can uninstall an app by dragging from all apps
if (item instanceof ApplicationInfo && LauncherApplication.isScreenXLarge()) {
ApplicationInfo appInfo = (ApplicationInfo)item;
- mLauncher.startApplicationUninstallActivity(appInfo.componentName);
+ if ((appInfo.flags & ApplicationInfo.DOWNLOADED_FLAG) != 0) {
+ mLauncher.startApplicationUninstallActivity(appInfo.componentName);
+ } else {
+ // System applications cannot be installed. For now, show a toast explaining that.
+ // We may give them the option of disabling apps this way.
+ int messageId = R.string.uninstall_system_app_text;
+ Toast.makeText(mContext, messageId, Toast.LENGTH_SHORT).show();
+ }
}
if (item.container == -1) return;