package com.fahmyuliono.bismillah;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import android.os.Bundle;
import android.util.Log;
import android.view.Gravity;
import android.view.View;
import android.widget.Toast;
import com.google.android.gms.tasks.OnCompleteListener;
import com.google.android.gms.tasks.Task;
import com.google.firebase.iid.FirebaseInstanceId;
import com.google.firebase.iid.InstanceIdResult;
import com.google.firebase.messaging.FirebaseMessaging;
import com.google.gson.Gson;
import com.google.gson.JsonObject;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
import retrofit2.Retrofit;
import retrofit2.converter.gson.GsonConverterFactory;
public class MainActivity extends AppCompatActivity {
private String TAG = "-->";
private RecyclerView container1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
FirebaseMessaging.getInstance().subscribeToTopic("berita");
container1 = findViewById(R.id.conteiner1);
Retrofit retrofit = new Retrofit.Builder()
.addConverterFactory(GsonConverterFactory.create())
.baseUrl("https://kitasehat.herokuapp.com/")
.build();
PemanggilApi pemanggilApi = retrofit.create(PemanggilApi.class);
Call<List<JsonObject>> terima = pemanggilApi.contennya();
terima.enqueue(new Callback<List<JsonObject>>() {
@Override
public void onResponse(Call<List<JsonObject>> call, Response<List<JsonObject>> response) {
List<JsonObject> wadah = response.body();
List<Map<String,Object>> terima = new ArrayList<>();
for (JsonObject pecahan1 : wadah){
Map<String,Object> maka = new Gson().fromJson(pecahan1.toString(),HashMap.class);
Map<String,Object> tr = new HashMap<>();
for (Map.Entry<String,Object> entry : maka.entrySet()){
tr.put(entry.getKey(),entry.getValue());
}
terima.add(tr);
}
MyRecyclerAdapter myRecyclerAdapter = new MyRecyclerAdapter(MainActivity.this,terima);
container1.setLayoutManager(new LinearLayoutManager(MainActivity.this,RecyclerView.VERTICAL,true));
container1.setAdapter(myRecyclerAdapter);
container1.smoothScrollToPosition(terima.size()-1);
myRecyclerAdapter.setKetikaBeritaDiKlick(new MyRecyclerAdapter.KetikaBeritaDiKlick() {
@Override
public void maka(View view, int posisi) {
Toast.makeText(getApplicationContext(),String.valueOf(posisi),Toast.LENGTH_SHORT).show();
}
});
}
@Override
public void onFailure(Call<List<JsonObject>> call, Throwable t) {
}
});
}
}
package com.fahmyuliono.bismillah;
import com.google.gson.JsonObject;
import java.util.List;
import java.util.Map;
import retrofit2.Call;
import retrofit2.http.GET;
public interface PemanggilApi {
@GET("/api/content")
Call<List<JsonObject>> contennya();
}
package com.fahmyuliono.bismillah;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import java.util.List;
import java.util.Map;
public class MyRecyclerAdapter extends RecyclerView.Adapter<MyRecyclerAdapter.VHolder> {
private List<Map<String,Object>> mapList;
private LayoutInflater inflater;
private KetikaBeritaDiKlick ketikaBeritaDiKlick;
public MyRecyclerAdapter(Context context, List<Map<String, Object>> list){
this.inflater = LayoutInflater.from(context);
this.mapList = list;
}
@NonNull
@Override
public VHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
return new VHolder(inflater.inflate(R.layout.layout_berita,parent,false));
}
@Override
public void onBindViewHolder(@NonNull VHolder holder, int position) {
Map<String,Object> terima = mapList.get(position);
holder.judulnya.setText(String.valueOf(terima.get("judul")));
holder.isinya.setText(String.valueOf(terima.get("isi")));
}
@Override
public int getItemCount() {
return mapList.size();
}
class VHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
private TextView judulnya;
private ImageView gambarnya;
private TextView isinya;
VHolder(@NonNull View itemView) {
super(itemView);
judulnya = itemView.findViewById(R.id.judul);
gambarnya = itemView.findViewById(R.id.gambar);
isinya = itemView.findViewById(R.id.isi);
itemView.setOnClickListener(this);
}
@Override
public void onClick(View v) {
ketikaBeritaDiKlick.maka(v,getAdapterPosition());
}
}
private String getId(int pos){
return String.valueOf(mapList.get(pos));
}
public void setKetikaBeritaDiKlick(KetikaBeritaDiKlick ketikaBeritaDiKlick) {
this.ketikaBeritaDiKlick = ketikaBeritaDiKlick;
}
interface KetikaBeritaDiKlick{
void maka(View view,int posisi);
}
}