示例#1
0
    protected void onPostExecute(Integer result) {
      if (isCancelled()) return;
      else {

        if (users == null || twitterPage == 1) {
          twitterFeedSearch.clear();
        }

        try {

          if (users != null) {
            for (twitter4j.User u : users) {
              TwitterFeed feed = new TwitterFeed(String.valueOf(u.getId()));
              feed.setDisplayName(u.getName());
              feed.setChannelHandle("@" + u.getScreenName());
              feed.setThumbnail(u.getProfileImageURL());

              twitterFeedSearch.add(feed);
            }

            searchBusy = false;
          } else if (jsonTokenStream != null) {

            //  Log error and clear the adapter
            Object json = new JSONTokener(jsonTokenStream).nextValue();
            if (json instanceof JSONObject) {
              if (Var.isJsonArray(((JSONObject) json), "errors")) {
                JSONArray errors = ((JSONObject) json).getJSONArray("errors");
                if (errors.length() > 0) {
                  Log.d(TAG, jsonTokenStream);

                  if (Var.isJsonString(errors.getJSONObject(0), "message")) {
                    String message = errors.getJSONObject(0).getString("message");
                    int code = errors.getJSONObject(0).getInt("code");

                    searchMessage_tv.setVisibility(View.VISIBLE);
                    if (code == 88) searchMessage_tv.setText(R.string.rate_limit_error);
                    if (code == 34) searchMessage_tv.setText(R.string.page_does_not_exist_error);
                    else searchMessage_tv.setText(message);
                  }
                }
              }
            } else if (json instanceof JSONArray) {

              if (!twitter.hasAccessToken()) {

                JSONArray results = new JSONArray(jsonTokenStream);
                for (int i = 0; i < results.length(); i++) {
                  JSONObject item = results.getJSONObject(i);

                  if (Var.isJsonString(item, "id")) {

                    TwitterFeed feed = new TwitterFeed(item.getString("id"));
                    if (Var.isJsonString(item, "name")) feed.setDisplayName(item.getString("name"));
                    if (Var.isJsonString(item, "screen_name"))
                      feed.setChannelHandle("@" + item.getString("screen_name"));
                    if (Var.isJsonString(item, "profile_image_url"))
                      feed.setThumbnail(
                          item.getString("profile_image_url").replace("_normal", "_bigger"));

                    twitterFeedSearch.add(feed);
                  }
                }
              }
            }
          }
          searchAdapter.notifyDataSetChanged();
        } catch (Exception e) {
          Log.e("Tweet", "Error retrieving JSON stream" + e.getMessage());
          e.printStackTrace();
        }
      }
    }