package com.buzzbuddy.android; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.util.Log; public class PackageReceiver extends BroadcastReceiver { private static final String TAG = PackageReceiver.class.getSimpleName(); private static final String PACKAGE_NAME = PackageReceiver.class.getPackage().getName(); @Override public void onReceive(final Context context, final Intent intent) { final String packageName = intent.getData().getEncodedSchemeSpecificPart(); Log.i(TAG, "Action: " + intent.getAction()); if (packageName.equals(PACKAGE_NAME)) { // if it's our own package, ignore it return; } final BuzzBuddyApp app = (BuzzBuddyApp) context.getApplicationContext(); // check to make sure this is not happening because of an update if (intent.getBooleanExtra(Intent.EXTRA_REPLACING, false) && !intent.getAction().equals(Intent.ACTION_PACKAGE_REPLACED)) { Log.d(TAG, "app is being replaced (updated), not added"); return; } Log.d(TAG, "refreshing app list"); if (intent.getAction().equals(Intent.ACTION_PACKAGE_REMOVED)) { // pass in package name so that it can be deleted from the // database Log.d(TAG, "passing in package name to be removed from database"); app.refreshAppList(intent.getData().getEncodedSchemeSpecificPart()); } else { Log.d(TAG, "passing in null, not deleting from database"); app.refreshAppList(null); } } }