import
android.os.Bundle;
import
android.view.View;
import
android.widget.ProgressBar;
import
android.widget.Toast;
import
androidx.appcompat.app.AppCompatActivity;
import
androidx.core.widget.NestedScrollView;
import
androidx.recyclerview.widget.LinearLayoutManager;
import
androidx.recyclerview.widget.RecyclerView;
import
com.android.volley.Request;
import
com.android.volley.RequestQueue;
import
com.android.volley.Response;
import
com.android.volley.VolleyError;
import
com.android.volley.toolbox.JsonObjectRequest;
import
com.android.volley.toolbox.Volley;
import
org.json.JSONArray;
import
org.json.JSONException;
import
org.json.JSONObject;
import
java.util.ArrayList;
public
class
MainActivity
extends
AppCompatActivity {
private
ArrayList<UserModal> userModalArrayList;
private
UserRVAdapter userRVAdapter;
private
RecyclerView userRV;
private
ProgressBar loadingPB;
@Override
protected
void
onCreate(Bundle savedInstanceState) {
super
.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
userModalArrayList =
new
ArrayList<>();
userRV = findViewById(R.id.idRVUsers);
loadingPB = findViewById(R.id.idPBLoading);
getDataFromAPI();
}
private
void
getDataFromAPI() {
RequestQueue queue = Volley.newRequestQueue(MainActivity.
this
);
JsonObjectRequest jsonObjectRequest =
new
JsonObjectRequest(Request.Method.GET, url,
null
,
new
Response.Listener<JSONObject>() {
@Override
public
void
onResponse(JSONObject response) {
loadingPB.setVisibility(View.GONE);
try
{
JSONObject feedObj = response.getJSONObject(
"feed"
);
JSONArray entryArray = feedObj.getJSONArray(
"entry"
);
for
(
int
i=
0
; i<entryArray.length(); i++){
JSONObject entryObj = entryArray.getJSONObject(i);
String firstName = entryObj.getJSONObject(
"gsx$firstname"
).getString(
"$t"
);
String lastName = entryObj.getJSONObject(
"gsx$lastname"
).getString(
"$t"
);
String email = entryObj.getJSONObject(
"gsx$email"
).getString(
"$t"
);
String avatar = entryObj.getJSONObject(
"gsx$avatar"
).getString(
"$t"
);
userModalArrayList.add(
new
UserModal(firstName, lastName, email, avatar));
userRVAdapter =
new
UserRVAdapter(userModalArrayList, MainActivity.
this
);
userRV.setLayoutManager(
new
LinearLayoutManager(MainActivity.
this
));
userRV.setAdapter(userRVAdapter);
}
}
catch
(JSONException e) {
e.printStackTrace();
}
}
},
new
Response.ErrorListener() {
@Override
public
void
onErrorResponse(VolleyError error) {
Toast.makeText(MainActivity.
this
,
"Fail to get data.."
, Toast.LENGTH_SHORT).show();
}
});
queue.add(jsonObjectRequest);
}
}