@SuppressWarnings("unchecked")
  public void onScroll(
      AbsListView absListView, int firstVisible, int visibleCount, int totalCount) {

    boolean loadMore = /* maybe add a padding */ firstVisible + visibleCount >= totalCount - 1;

    //        Log.d("onScroll:","loadMore f=" + firstVisible + ", vc=" + visibleCount + ", tc="
    // +totalCount);
    if (loadMore) {
      // Debug.startMethodTracing("list" + firstVisible);
      ListAdapter adapter = absListView.getAdapter();
      if (adapter instanceof StatusAdapter) {
        StatusAdapter sta = (StatusAdapter) adapter;
        if (totalCount > 0) {
          Object item = sta.getItem(totalCount - 1);
          int i = 0;
          if (item instanceof DirectMessage) {
            DirectMessage message = (DirectMessage) item;

            List<DirectMessage> messages = th.getDirectsFromDb(message.getId(), 7);
            for (DirectMessage direct : messages) {
              sta.insert(direct, totalCount + i);
              directs.add(direct);
              i++;
            }
          } else if (item instanceof Status) {
            Status last = (Status) item;
            if (statuses == null) statuses = new ArrayList<Status>();

            List<Status> newStatuses = th.getStatuesFromDb(last.getId(), 7, list_id);
            // TODO add checking for old
            List<Long> readIds = obtainReadIds(newStatuses);
            sta.readIds.addAll(readIds);
            for (Status status : newStatuses) {
              if (!matchesFilter(status)) {
                sta.insert(status, totalCount + i);
                statuses.add(status);
                i++;
              }
            }
          }
          sta.notifyDataSetChanged();
        }
      }
      // Debug.stopMethodTracing();
    }
  }
Ejemplo n.º 2
0
 public void testDirectMessagesAsJSON() throws Exception {
   HttpClientImpl http = new HttpClientImpl();
   List<DirectMessage> directMessages =
       DirectMessageJSONImpl.createDirectMessageList(
           http.get("http://twitter4j.org/en/testcases/direct_messages.json"), conf);
   DirectMessage dm = directMessages.get(0);
   Assert.assertEquals(new java.util.Date(1248177356000l), dm.getCreatedAt());
   Assert.assertEquals(6358482, dm.getRecipient().getId());
   Assert.assertEquals(246928323, dm.getId());
   Assert.assertEquals(6358482, dm.getRecipientId());
   Assert.assertEquals("twit4j", dm.getRecipientScreenName());
   Assert.assertEquals(6377362, dm.getSender().getId());
   Assert.assertEquals(6377362, dm.getSenderId());
   Assert.assertEquals("twit4j2", dm.getSenderScreenName());
   Assert.assertEquals("Tue Jul 21 20:55:39 KST 2009:directmessage test", dm.getText());
   assertDeserializedFormIsEqual(directMessages);
 }
Ejemplo n.º 3
0
  /**
   * remove any direct messages (dm in twitter slang) that were sent and received by the user prior
   * to a certain date)
   */
  public void deleteDirectMessages() {
    try {
      boolean found = true;
      int start = 1;
      int increment = twitterConfig.getIncrementCount();
      // Removing messages sent to user
      while (found) {
        found = false;
        ResponseList<DirectMessage> responses =
            twitter.getDirectMessages(new Paging(start, start + increment));
        for (DirectMessage dm : responses) {
          if (earlier.getTime() > dm.getCreatedAt().getTime()) {
            twitter.destroyDirectMessage(dm.getId());
            logger.debug("delete dm: " + dm.getId());
            found = true;
          }
        }
      }
      found = true;
      start = 1;
      increment = twitterConfig.getIncrementCount();
      // Removing messages sent by user.
      while (found) {
        found = false;
        ResponseList<DirectMessage> responses =
            twitter.getSentDirectMessages(new Paging(start, start + increment));
        for (DirectMessage dm : responses) {
          if (earlier.getTime() > dm.getCreatedAt().getTime()) {
            twitter.destroyDirectMessage(dm.getId());
            logger.debug("delete dm: " + dm.getId());
            found = true;
          }
        }
      }

    } catch (TwitterException e) {
      logger.error("Twitter exception occurred", e);
    }
  }