private static void addChildNotifications(
      JSONArray dataArray, String summaryGroup, SQLiteDatabase writableDb) {
    String[] retColumn = {NotificationTable.COLUMN_NAME_FULL_DATA};
    String[] whereArgs = {summaryGroup};

    Cursor cursor =
        writableDb.query(
            NotificationTable.TABLE_NAME,
            retColumn,
            NotificationTable.COLUMN_NAME_GROUP_ID
                + " = ? AND "
                + // Where String
                NotificationTable.COLUMN_NAME_DISMISSED
                + " = 0 AND "
                + NotificationTable.COLUMN_NAME_OPENED
                + " = 0 AND "
                + NotificationTable.COLUMN_NAME_IS_SUMMARY
                + " = 0",
            whereArgs,
            null,
            null,
            null);

    if (cursor.getCount() > 1) {
      cursor.moveToFirst();
      do {
        try {
          String jsonStr =
              cursor.getString(cursor.getColumnIndex(NotificationTable.COLUMN_NAME_FULL_DATA));
          dataArray.put(new JSONObject(jsonStr));
        } catch (Throwable t) {
          OneSignal.Log(
              OneSignal.LOG_LEVEL.ERROR,
              "Could not parse JSON of sub notification in group: " + summaryGroup);
        }
      } while (cursor.moveToNext());
    }
  }
  static void processIntent(Context inActivity, Intent inIntent) {
    activity = inActivity;
    intent = inIntent;

    String summaryGroup = intent.getStringExtra("summary");

    boolean dismissed = intent.getBooleanExtra("dismissed", false);

    OneSignalDbHelper dbHelper = new OneSignalDbHelper(activity);
    SQLiteDatabase writableDb = dbHelper.getWritableDatabase();

    JSONArray dataArray = null;
    if (!dismissed) {
      try {
        dataArray =
            NotificationBundleProcessor.newJsonArray(
                new JSONObject(intent.getStringExtra("onesignal_data")));
      } catch (Throwable t) {
        t.printStackTrace();
      }
    }

    // We just opened a summary notification.
    if (!dismissed && summaryGroup != null)
      addChildNotifications(dataArray, summaryGroup, writableDb);

    markNotificationsConsumed(writableDb);

    // Notification is not a summary type and is a single notification part of a group.
    if (summaryGroup == null && intent.getStringExtra("grp") != null)
      updateSummaryNotification(writableDb);

    writableDb.close();

    if (!dismissed) OneSignal.handleNotificationOpened(activity, dataArray);
  }