import
android.os.Bundle;
import
android.view.View;
import
android.widget.ProgressBar;
import
android.widget.Toast;
import
androidx.appcompat.app.AppCompatActivity;
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
RequestQueue mRequestQueue;
private
ArrayList<InstaModal> instaModalArrayList;
private
ProgressBar progressBar;
@Override
protected
void
onCreate(Bundle savedInstanceState) {
super
.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
progressBar = findViewById(R.id.idLoadingPB);
instaModalArrayList =
new
ArrayList<>();
getInstagramData();
}
private
void
getInstagramData() {
mRequestQueue = Volley.newRequestQueue(MainActivity.
this
);
mRequestQueue.getCache().clear();
String url =
"Enter your URL"
;
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) {
progressBar.setVisibility(View.GONE);
try
{
JSONArray dataArray = response.getJSONArray(
"data"
);
for
(
int
i =
0
; i < dataArray.length(); i++) {
JSONObject dataObj = dataArray.getJSONObject(i);
String id = dataObj.getString(
"id"
);
String media_type = dataObj.getString(
"media_type"
);
String permalink = dataObj.getString(
"permalink"
);
String media_url = dataObj.getString(
"media_url"
);
String username = dataObj.getString(
"username"
);
String caption = dataObj.getString(
"caption"
);
String timestamp = dataObj.getString(
"timestamp"
);
int
likesCount =
100
+ (i *
10
);
InstaModal instaModal =
new
InstaModal(id, media_type, permalink, media_url, username, caption, timestamp, author_url, likesCount);
instaModalArrayList.add(instaModal);
InstagramFeedRVAdapter adapter =
new
InstagramFeedRVAdapter(instaModalArrayList, MainActivity.
this
);
RecyclerView instRV = findViewById(R.id.idRVInstaFeeds);
LinearLayoutManager linearLayoutManager =
new
LinearLayoutManager(MainActivity.
this
, RecyclerView.VERTICAL,
false
);
instRV.setLayoutManager(linearLayoutManager);
instRV.setAdapter(adapter);
}
}
catch
(JSONException e) {
e.printStackTrace();
Toast.makeText(MainActivity.
this
,
"Fail to get Data.."
+ e.getMessage(), Toast.LENGTH_SHORT).show();
}
}
},
new
Response.ErrorListener() {
@Override
public
void
onErrorResponse(VolleyError error) {
Toast.makeText(MainActivity.
this
,
"Fail to get Data.."
+ error, Toast.LENGTH_SHORT).show();
}
});
queue.add(jsonObjectRequest);
}
}