Example usage for android.content Intent ACTION_PACKAGE_REMOVED

List of usage examples for android.content Intent ACTION_PACKAGE_REMOVED

Introduction

In this page you can find the example usage for android.content Intent ACTION_PACKAGE_REMOVED.

Prototype

String ACTION_PACKAGE_REMOVED

To view the source code for android.content Intent ACTION_PACKAGE_REMOVED.

Click Source Link

Document

Broadcast Action: An existing application package has been removed from the device.

Usage

From source file:net.digitalfeed.pdroidalternative.intenthandler.PackageChangeHandler.java

@Override
public void onReceive(Context context, Intent intent) {
    Log.d("PDroidAlternative", "PackageChangeHandler event received");
    //Get the package name. If this fails, then the intent didn't contain the
    //essential data and should be ignored
    String packageName;//from w  w w.  j  ava2  s. c o m
    Uri inputUri = Uri.parse(intent.getDataString());
    if (!inputUri.getScheme().equals("package")) {
        Log.d("PDroidAlternative", "Intent scheme was not 'package'");
        return;
    }
    packageName = inputUri.getSchemeSpecificPart();

    //If a package is being removed, we only want to delete the related
    //info it is not being updated/replaced by a newer version
    if (intent.getAction().equals(Intent.ACTION_PACKAGE_REMOVED)) {
        if (!intent.getBooleanExtra(Intent.EXTRA_REPLACING, false)) {
            Log.d("PDroidAlternative", "Triggering application deletion for package:" + packageName);
            DBInterface.getInstance(context).deleteApplicationRecord(packageName);
        }
    } else if (intent.getAction().equals(Intent.ACTION_PACKAGE_ADDED)) {
        //If the package is just getting updated, then we only need to notify the user
        //if the permissions have changed

        if (intent.getBooleanExtra(Intent.EXTRA_REPLACING, false)) {
            //TODO: check if the permissions have changed
            Log.d("PDroidAlternative", "PackageChangeHandler: App being replaced: " + packageName);
            Application oldApp = Application.fromDatabase(context, packageName);
            Application newApp = Application.fromPackageName(context, packageName);
            if (havePermissionsChanged(context, oldApp, newApp)) {
                //TODO: Handle permission change
                /*
                 * This is an app for which the permissions have been updated, 
                 * so we need to update the database to include only correct permissions.
                 * Maybe we should have some way of flagging new ones?
                 */
                newApp.setStatusFlags(
                        (newApp.getStatusFlags() | oldApp.getStatusFlags() | Application.STATUS_FLAG_UPDATED)
                                & ~Application.STATUS_FLAG_NEW);
                DBInterface.getInstance(context).updateApplicationRecord(newApp);
                displayNotification(context, NotificationType.update, packageName,
                        DBInterface.getInstance(context).getApplicationLabel(packageName));
            }
        } else {
            /*
             * This is a new app, not an app being replaced. We need to add it to the
             * database, then display a notification for it
             */
            Log.d("PDroidAlternative", "PackageChangeHandler: New app added: " + packageName);
            /*
             * I'm not sure if we really want to be doing all this processing here, but
             * we do need to record a list of new/updated apps to write to the database
             * when the app next starts, or the intent is executed - or we do it now
             */
            //get the application from the system, not from the database
            Application app = Application.fromPackageName(context, packageName);
            app.setStatusFlags(app.getStatusFlags() | Application.STATUS_FLAG_NEW);
            DBInterface.getInstance(context).addApplicationRecord(app);
            Log.d("PDroidAlternative", "PackageChangeHandler: New app record added: " + packageName);
            displayNotification(context, NotificationType.newinstall, packageName, app.getLabel());
            Log.d("PDroidAlternative", "PackageChangeHandler: Notification presented: " + packageName);
        }
    }
}

From source file:org.wso2.iot.agent.events.listeners.ApplicationStateListener.java

@Override
public void onReceive(Context context, final Intent intent) {
    String status = null;/*  ww w  . j a  v a  2s .  c  om*/
    ApplicationStatus applicationState;
    this.context = context;
    switch (intent.getAction()) {
    case Intent.ACTION_PACKAGE_ADDED:
        status = "added";
        applyEnforcement(intent.getData().getEncodedSchemeSpecificPart());
        break;
    case Intent.ACTION_PACKAGE_REMOVED:
        status = "removed";
        break;
    case Intent.ACTION_PACKAGE_REPLACED:
        status = "upgraded";
        break;
    case Intent.ACTION_PACKAGE_DATA_CLEARED:
        status = "dataCleared";
        break;
    default:
        Log.i(TAG, "Invalid intent received");
    }
    if (status != null) {
        String packageName = intent.getData().getEncodedSchemeSpecificPart();
        applicationState = new ApplicationStatus();
        applicationState.setState(status);
        applicationState.setPackageName(packageName);
        try {
            String appState = CommonUtils.toJSON(applicationState);
            publishEvent(appState, Constants.EventListeners.APPLICATION_STATE);
            if (Constants.DEBUG_MODE_ENABLED) {
                Log.d(TAG, appState);
            }
        } catch (AndroidAgentException e) {
            Log.e(TAG, "Could not convert to JSON");
        }
        if (Intent.ACTION_PACKAGE_REPLACED.equals(intent.getAction())
                && Constants.AGENT_PACKAGE.equals(packageName)) {
            Intent broadcastIntent = new Intent();
            broadcastIntent.setAction(Constants.AGENT_UPDATED_BROADCAST_ACTION);
            context.sendBroadcast(broadcastIntent);
        }
    }
}

From source file:com.lullabot.android.apps.iosched.ui.SessionDetailFragment.java

@Override
public void onResume() {
    super.onResume();

    // Start listening for time updates to adjust "now" bar. TIME_TICK is
    // triggered once per minute, which is how we move the bar over time.
    final IntentFilter filter = new IntentFilter();
    filter.addAction(Intent.ACTION_PACKAGE_ADDED);
    filter.addAction(Intent.ACTION_PACKAGE_REMOVED);
    filter.addAction(Intent.ACTION_PACKAGE_REPLACED);
    filter.addDataScheme("package");
    getActivity().registerReceiver(mPackageChangesReceiver, filter);
}

From source file:tw.idv.gasolin.pycontw2012.ui.SessionDetailFragment.java

@Override
public void onResume() {
    super.onResume();

    // Start listening for time updates to adjust "now" bar. TIME_TICK is
    // triggered once per minute, which is how we move the bar over time.
    final IntentFilter filter = new IntentFilter();
    filter.addAction(Intent.ACTION_PACKAGE_ADDED);
    filter.addAction(Intent.ACTION_PACKAGE_REMOVED);
    filter.addAction(Intent.ACTION_PACKAGE_REPLACED);
    filter.addDataScheme("package");
}

From source file:com.nbplus.vbroadlauncher.ShowApplicationActivity.java

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    overridePendingTransition(R.anim.fade_in, R.anim.fade_out);
    setContentView(R.layout.activity_show_application);

    IntentFilter filter = new IntentFilter();
    filter.addAction(Intent.ACTION_PACKAGE_ADDED);
    filter.addAction(Intent.ACTION_PACKAGE_REMOVED);
    filter.addDataScheme("package");

    showProgressDialog();// w  ww.j a  v  a 2  s  .c  om
    registerReceiver(mPackageInstallReceiver, filter);
    mLoadAsyncTask = new InstalledApplicationTask(this, mHandler);
    mLoadAsyncTask.execute();

    // ViewPager .
    // ??? ? ? ? .
    mViewPager = (NbplusViewPager) findViewById(R.id.viewPager);
    mIndicator = (LinePageIndicator) findViewById(R.id.indicator);

    mAppPagerAdapter = new AppPagerAdapter(this, getSupportFragmentManager());
    mViewPager.setAdapter(mAppPagerAdapter);
    mViewPager.setSwipeable(true);
    mIndicator.setViewPager(mViewPager);
    mIndicator.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
        @Override
        public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

        }

        @Override
        public void onPageSelected(int position) {
            Log.d(TAG, ">> page selected position = " + position);
        }

        @Override
        public void onPageScrollStateChanged(int state) {

        }
    });
}

From source file:com.goliathonline.android.kegbot.ui.DrinkDetailFragment.java

@Override
public void onResume() {
    super.onResume();
    updateNotesTab();/*from   w w  w  . j a  v a 2s  .  co  m*/

    // Start listening for time updates to adjust "now" bar. TIME_TICK is
    // triggered once per minute, which is how we move the bar over time.
    final IntentFilter filter = new IntentFilter();
    filter.addAction(Intent.ACTION_PACKAGE_ADDED);
    filter.addAction(Intent.ACTION_PACKAGE_REMOVED);
    filter.addAction(Intent.ACTION_PACKAGE_REPLACED);
    filter.addDataScheme("package");
    getActivity().registerReceiver(mPackageChangesReceiver, filter);
}

From source file:com.google.android.apps.iosched2.ui.SessionDetailFragment.java

@Override
public void onResume() {
    super.onResume();
    SetupHelper.loadCurrentSetup(getActivity());

    updateNotesTab();/* w ww.j  a  v  a  2s  .  c o  m*/

    // Start listening for time updates to adjust "now" bar. TIME_TICK is
    // triggered once per minute, which is how we move the bar over time.
    final IntentFilter filter = new IntentFilter();
    filter.addAction(Intent.ACTION_PACKAGE_ADDED);
    filter.addAction(Intent.ACTION_PACKAGE_REMOVED);
    filter.addAction(Intent.ACTION_PACKAGE_REPLACED);
    filter.addDataScheme("package");
    getActivity().registerReceiver(mPackageChangesReceiver, filter);
}

From source file:com.linkbubble.MainService.java

@Override
public void onCreate() {

    mDestroyAllActivities = true;/*from  www  .  j av a  2 s.  c  o  m*/
    mRestoreComplete = false;

    setTheme(Settings.get().getDarkThemeEnabled() ? R.style.MainServiceThemeDark
            : R.style.MainServiceThemeLight);

    super.onCreate();
    Fabric.with(this, new Crashlytics());
    CrashTracking.log("MainService.onCreate()");

    showDefaultNotification();

    Config.init(this);
    Settings.get().onOrientationChange();

    try {
        WebIconDatabase.getInstance().open(getDir("icons", MODE_PRIVATE).getPath());
    } catch (RuntimeException exc) {
        CrashTracking.logHandledException(exc);
    }

    MainApplication.mDestroyActivitySharedLock = new Object();
    MainApplication.mActivityDestroyed = false;

    MainController.create(this, new MainController.EventHandler() {
        @Override
        public void onDestroy() {
            Settings.get().saveBubbleRestingPoint();
            stopSelf();
            CrashTracking.log("MainService.onCreate(): onDestroy()");
        }
    });

    //Intent i = new Intent();
    //i.setData(Uri.parse("https://t.co/uxMl3bWtMP"));
    //i.setData(Uri.parse("http://t.co/oOyu7GBZMU"));
    //i.setData(Uri.parse("http://goo.gl/abc57"));
    //i.setData(Uri.parse("https://bitly.com/QtQET"));
    //i.setData(Uri.parse("http://www.duckduckgo.com"));
    //openUrl("https://www.duckduckgo.com");
    //openUrl("http://www.duckduckgo.com", true);
    //openUrl("https://t.co/uxMl3bWtMP", true);

    IntentFilter filter = new IntentFilter();
    filter.addAction(BCAST_CONFIGCHANGED);
    registerReceiver(mBroadcastReceiver, filter);

    registerReceiver(mDialogReceiver, new IntentFilter(Intent.ACTION_CLOSE_SYSTEM_DIALOGS));

    filter = new IntentFilter(Intent.ACTION_PACKAGE_ADDED);
    filter.addAction(Intent.ACTION_PACKAGE_REMOVED);
    filter.addDataScheme("package");

    filter = new IntentFilter(Intent.ACTION_SCREEN_ON);
    filter.addAction(Intent.ACTION_SCREEN_OFF);
    filter.addAction(Intent.ACTION_USER_PRESENT);
    registerReceiver(mScreenReceiver, filter);

    MainApplication.registerForBus(this, this);
}

From source file:com.android.settingslib.drawer.SettingsDrawerActivity.java

@Override
protected void onResume() {
    super.onResume();

    if (mDrawerLayout != null) {
        final IntentFilter filter = new IntentFilter(Intent.ACTION_PACKAGE_ADDED);
        /**/*from  w w  w.  j a  va 2  s . c  o  m*/
         * xinsi
         *
         * Intent.ACTION_PACKAGE_REMOVED:
         * Broadcast Action: An existing application package has been removed from the device.
         *
         * Intent.ACTION_PACKAGE_REPLACED:
         * Broadcast Action: A new version of an application package has been installed,
         * replacing an existing version that was previously installed.
         */
        filter.addAction(Intent.ACTION_PACKAGE_REMOVED);
        filter.addAction(Intent.ACTION_PACKAGE_CHANGED);
        filter.addAction(Intent.ACTION_PACKAGE_REPLACED);
        filter.addDataScheme("package");
        registerReceiver(mPackageReceiver, filter);

        new CategoriesUpdater().execute();
    }
    final Intent intent = getIntent();
    if (intent != null) {
        if (intent.hasExtra(EXTRA_SHOW_MENU)) {
            if (intent.getBooleanExtra(EXTRA_SHOW_MENU, false)) {
                // Intent explicitly set to show menu.
                showMenuIcon();
            }
        } else if (isTopLevelTile(intent)) {
            showMenuIcon();
        }
    }
}

From source file:com.example.android.home.Home.java

/**
 * Registers various intent receivers. The current implementation registers
 * only a wallpaper intent receiver to let other applications change the
 * wallpaper.//from   ww w.ja  v a2  s .  c  o  m
 */
private void registerIntentReceivers() {
    IntentFilter filter = new IntentFilter(Intent.ACTION_WALLPAPER_CHANGED);
    registerReceiver(mWallpaperReceiver, filter);

    filter = new IntentFilter(Intent.ACTION_PACKAGE_ADDED);
    filter.addAction(Intent.ACTION_PACKAGE_REMOVED);
    filter.addAction(Intent.ACTION_PACKAGE_CHANGED);
    filter.addDataScheme("package");
    registerReceiver(mApplicationsReceiver, filter);
}