Source:
<code>public static void fetchRevisionAuthorsDetails(final SiteModel site, List<String> authors, final FetchUsersCallback callback) { <START> com.wordpress.rest.RestRequest.Listener listener = new RestRequest.Listener() { <END> @Override public void onResponse(JSONObject jsonObject) { if (jsonObject != null && callback != null) { try { List<Person> people = new ArrayList<Person>(); Iterator<String> keys = jsonObject.keys(); while (keys.hasNext()) { String key = keys.next(); if (jsonObject.get(key) instanceof JSONObject) { JSONArray jsonArray = ((JSONObject) jsonObject.get(key)).getJSONArray("users"); people.addAll(peopleListFromJSON(jsonArray, site.getId(), Person.PersonType.USER)); } } callback.onSuccess(people, true); } catch (JSONException e) { AppLog.e(T.API, "JSON exception occurred while parsing the revision author details" + " from batch response for sites/%s/users: " + e); callback.onError(); } } } }; RestRequest.ErrorListener errorListener = new RestRequest.ErrorListener() { @Override public void onErrorResponse(VolleyError volleyError) { AppLog.e(T.API, volleyError); if (callback != null) { callback.onError(); } } }; Map<String, String> batchParams = new HashMap<>(); for (int i = 0; i < authors.size(); i++) { batchParams.put(String.format(Locale.US, "urls[%d]", i), String.format(Locale.US, "/sites/%d/users?search=%s&search_columns=ID", site.getSiteId(), authors.get(i))); } WordPress.getRestClientUtilsV1_1().get("batch/", batchParams, null, listener, errorListener); }</code><technical_language>suggestion RestRequest.Listener listener = new RestRequest.Listener() { add com.wordpress.rest.RestRequest.Listener com.wordpress.rest.RestRequest import statements fully-qualified type? fully-qualified type is common in PeopleUtils class, update instances for readability</technical_language>

Target:
public static void fetchRevisionAuthorsDetails(final SiteModel site, List<String> authors, final FetchUsersCallback callback) { RestRequest.Listener listener = new RestRequest.Listener() { @Override public void onResponse(JSONObject jsonObject) { if (jsonObject != null && callback != null) { try { List<Person> people = new ArrayList<>(); Iterator<String> keys = jsonObject.keys(); while (keys.hasNext()) { String key = keys.next(); if (jsonObject.get(key) instanceof JSONObject) { JSONArray jsonArray = ((JSONObject) jsonObject.get(key)).getJSONArray("users"); people.addAll(peopleListFromJSON(jsonArray, site.getId(), Person.PersonType.USER)); } } callback.onSuccess(people, true); } catch (JSONException e) { AppLog.e(T.API, "JSON exception occurred while parsing the revision author details" + " from batch response for sites/%s/users: " + e); callback.onError(); } } } }; RestRequest.ErrorListener errorListener = new RestRequest.ErrorListener() { @Override public void onErrorResponse(VolleyError volleyError) { AppLog.e(T.API, volleyError); if (callback != null) { callback.onError(); } } }; Map<String, String> batchParams = new HashMap<>(); for (int i = 0; i < authors.size(); i++) { batchParams.put(String.format(Locale.US, "urls[%d]", i), String.format(Locale.US, "/sites/%d/users?search=%s&search_columns=ID", site.getSiteId(), authors.get(i))); } WordPress.getRestClientUtilsV1_1().get("batch/", batchParams, null, listener, errorListener); }