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(); } } }