public static void removeWpComUserRelatedData(Context context) {
    // cancel all Volley requests - do this before unregistering push since that uses
    // a Volley request
    VolleyUtils.cancelAllRequests(requestQueue);

    NotificationsUtils.unregisterDevicePushNotifications(context);
    try {
      GCMRegistrar.checkDevice(context);
      GCMRegistrar.unregister(context);
    } catch (Exception e) {
      AppLog.v(T.NOTIFS, "Could not unregister for GCM: " + e.getMessage());
    }

    // delete wpcom blogs
    wpDB.deleteWordPressComBlogs(context);

    // reset default account
    AccountHelper.getDefaultAccount().signout();

    // reset all reader-related prefs & data
    AppPrefs.reset();
    ReaderDatabase.reset();

    // Reset Stats Data
    StatsDatabaseHelper.getDatabase(context).reset();

    // Reset Simperium buckets (removes local data)
    SimperiumUtils.resetBucketsAndDeauthorize();
  }
  public static void registerForCloudMessaging(Context context) {
    String regId = gcmRegisterIfNot(context);

    // Register to WordPress.com notifications
    if (AccountHelper.isSignedInWordPressDotCom()) {
      if (!TextUtils.isEmpty(regId)) {
        // Send the token to WP.com in case it was invalidated
        NotificationsUtils.registerDeviceForPushNotifications(context, regId);
        AppLog.v(T.NOTIFS, "Already registered for GCM");
      }
    }

    // Register to Helpshift notifications
    HelpshiftHelper.getInstance().registerDeviceToken(context, regId);
    AnalyticsTracker.registerPushNotificationToken(regId);
  }
 /**
  * Check if user has valid credentials, and that at least 2 minutes are passed since the last
  * ping, then try to update the PN token.
  */
 private void updatePushNotificationTokenIfNotLimited() {
   // Synch Push Notifications settings
   if (isPushNotificationPingNeeded() && AccountHelper.isSignedInWordPressDotCom()) {
     String token = null;
     try {
       // Register for Google Cloud Messaging
       GCMRegistrar.checkDevice(mContext);
       GCMRegistrar.checkManifest(mContext);
       token = GCMRegistrar.getRegistrationId(mContext);
       String gcmId = BuildConfig.GCM_ID;
       if (gcmId == null || token == null || token.equals("")) {
         AppLog.e(T.NOTIFS, "Could not ping the PNs backend, Token or gmcID not found");
       } else {
         // Send the token to WP.com
         NotificationsUtils.registerDeviceForPushNotifications(mContext, token);
       }
     } catch (Exception e) {
       AppLog.e(T.NOTIFS, "Could not ping the PNs backend: " + e.getMessage());
     }
   }
 }