package com.sap.jam.mobile_sdk.views; import android.os.AsyncTask; import android.os.Bundle; import android.support.annotation.Nullable; import android.support.v4.app.Fragment; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ArrayAdapter; import android.widget.ListView; import com.github.scribejava.core.model.OAuthRequest; import com.github.scribejava.core.model.Response; import com.github.scribejava.core.model.Verb; import com.github.scribejava.core.oauth.OAuth10aService; import com.google.gson.Gson; import com.sap.jam.mobile_sdk.R; import com.sap.jam.mobile_sdk.session.JamAuthConfig; import java.util.ArrayList; import java.util.List; import java.util.Map; public class JamGroupsListRename extends Fragment { private ListView listView; private List<String> groupNames; @Nullable @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View rootView = inflater.inflate(R.layout.activity_jam_groups_list, container, false); listView = (ListView) rootView.findViewById(R.id.listView); loadGroups(); return rootView; } private void loadGroups() { AsyncTask network = new AsyncTask() { @Override protected Object doInBackground(Object[] params) { OAuth10aService service = JamAuthConfig.instance().getOAuth10aService(); final OAuthRequest request = new OAuthRequest(Verb.GET, JamAuthConfig.instance().getServerUrl() + "/api/v1/OData/Groups?$select=Id,Name", service); request.addHeader("Accept", "application/json"); service.signRequest(JamAuthConfig.instance().getOAuth10aAccessToken(), request); final Response response = request.send(); Log.w("TAG", response.getBody()); Gson gson = new Gson(); Map result = gson.fromJson(response.getBody(), Map.class); return result; } @Override protected void onPostExecute(Object o) { super.onPostExecute(o); Map result = (Map)o; List<Map> groups = (List) ((Map)result.get("d")).get("results"); // extract the group names and refresh UI groupNames = new ArrayList<>(); for (Map attr : groups) { groupNames.add((String) attr.get("Name")); } updateList(); } }; network.execute(); } private void updateList() { ArrayAdapter<String> itemsAdapter = new ArrayAdapter<String>(getActivity(), R.layout.item_group, groupNames); listView.setAdapter(itemsAdapter); } }