diff options
author | Joe Onorato <joeo@android.com> | 2009-07-30 10:15:07 -0700 |
---|---|---|
committer | Joe Onorato <joeo@android.com> | 2009-07-30 10:15:07 -0700 |
commit | fca7c88f9dba895d9f6cf52c6f0e656445063e3e (patch) | |
tree | 149d776e169783fb7a44325c981e11afaa7c0ffe /src/com/android/launcher2/UninstallShortcutReceiver.java | |
parent | 1b12645748c88076e2a124d5bc5550c65bf11cd0 (diff) | |
download | android_packages_apps_Trebuchet-fca7c88f9dba895d9f6cf52c6f0e656445063e3e.tar.gz android_packages_apps_Trebuchet-fca7c88f9dba895d9f6cf52c6f0e656445063e3e.tar.bz2 android_packages_apps_Trebuchet-fca7c88f9dba895d9f6cf52c6f0e656445063e3e.zip |
Move com/android/launcher -> com/android/launcher2
Diffstat (limited to 'src/com/android/launcher2/UninstallShortcutReceiver.java')
-rw-r--r-- | src/com/android/launcher2/UninstallShortcutReceiver.java | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/src/com/android/launcher2/UninstallShortcutReceiver.java b/src/com/android/launcher2/UninstallShortcutReceiver.java new file mode 100644 index 000000000..9fd6298bd --- /dev/null +++ b/src/com/android/launcher2/UninstallShortcutReceiver.java @@ -0,0 +1,80 @@ +/* + * Copyright (C) 2008 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.launcher; + +import android.content.BroadcastReceiver; +import android.content.Context; +import android.content.Intent; +import android.content.ContentResolver; +import android.database.Cursor; +import android.net.Uri; +import android.widget.Toast; + +import java.net.URISyntaxException; + +public class UninstallShortcutReceiver extends BroadcastReceiver { + private static final String ACTION_UNINSTALL_SHORTCUT = + "com.android.launcher.action.UNINSTALL_SHORTCUT"; + + public void onReceive(Context context, Intent data) { + if (!ACTION_UNINSTALL_SHORTCUT.equals(data.getAction())) { + return; + } + + Intent intent = data.getParcelableExtra(Intent.EXTRA_SHORTCUT_INTENT); + String name = data.getStringExtra(Intent.EXTRA_SHORTCUT_NAME); + boolean duplicate = data.getBooleanExtra(Launcher.EXTRA_SHORTCUT_DUPLICATE, true); + + if (intent != null && name != null) { + final ContentResolver cr = context.getContentResolver(); + Cursor c = cr.query(LauncherSettings.Favorites.CONTENT_URI, + new String[] { LauncherSettings.Favorites._ID, LauncherSettings.Favorites.INTENT }, + LauncherSettings.Favorites.TITLE + "=?", new String[] { name }, null); + + final int intentIndex = c.getColumnIndexOrThrow(LauncherSettings.Favorites.INTENT); + final int idIndex = c.getColumnIndexOrThrow(LauncherSettings.Favorites._ID); + + boolean changed = false; + + try { + while (c.moveToNext()) { + try { + if (intent.filterEquals(Intent.parseUri(c.getString(intentIndex), 0))) { + final long id = c.getLong(idIndex); + final Uri uri = LauncherSettings.Favorites.getContentUri(id, false); + cr.delete(uri, null, null); + changed = true; + if (!duplicate) { + break; + } + } + } catch (URISyntaxException e) { + // Ignore + } + } + } finally { + c.close(); + } + + if (changed) { + cr.notifyChange(LauncherSettings.Favorites.CONTENT_URI, null); + Toast.makeText(context, context.getString(R.string.shortcut_uninstalled, name), + Toast.LENGTH_SHORT).show(); + } + } + } +} |