step 1 dependencies:
//RETROFIT
implementation 'com.squareup.retrofit2:retrofit:2.9.0'
implementation 'com.squareup.retrofit2:converter-gson:2.9.0'
implementation "com.squareup.okhttp3:okhttp:4.7.2"
implementation 'com.squareup.okhttp3:logging-interceptor:4.7.2'
step 2 Utils class
public class Utils {
private static Utils singleton;
public Dialog dialog;
public static Utils getInstance() {
if (singleton == null) {
singleton = new Utils();
}
return singleton;
}
public ApiInterfaces initializeWebServiceCall(Context context) {
Gson gson = new GsonBuilder().setLenient().create();
HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor();
interceptor.setLevel(HttpLoggingInterceptor.Level.BODY);
OkHttpClient client = new OkHttpClient.Builder().connectTimeout(1, TimeUnit.MINUTES).readTimeout(1, TimeUnit.MINUTES).addInterceptor(interceptor).build();
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(ApiEndPoint.BASE_URL)
.client(client)
.addConverterFactory(GsonConverterFactory.create(gson))
.build();
ApiInterfaces mRestAPI = retrofit.create(ApiInterfaces.class);
return mRestAPI;
}
}
step 3 interface
public interface ApiInterfaces {
@FormUrlEncoded
@POST(ApiEndPoint.BASE_URL + "address_list")
Call address_list(@Field("user_id") String user_id);
}
step 4 api calling
private RecyclerView rec_address;
private ArrayList AddressList = new ArrayList();
Call call = Utils.getInstance().initializeWebServiceCall(SelectAddressActivity.this).address_list(id);
call.enqueue(new Callback() {
@Override
public void onResponse(Call call, Response response) {
if (response.body() != null) {
if (!SelectAddressActivity.this.isFinishing() && pd.isShowing())
pd.dismiss();
String status, message, id, pincode, house_no, city, area, state, user_id, name, mobile_no, alt_mobile_no;
String address;
status = response.body().getStatus();
message = response.body().getMessage();
Log.d("response12", "SUCCESS:" + status + "\n MESSAGE:" + message);
if (response.body().getStatus().equalsIgnoreCase("success")) {
pd.dismiss();
// Toast.makeText(AddAddressActivity.this, response.body().getMessage(), Toast.LENGTH_LONG).show();
ArrayList list = response.body().getDataList();
Log.d("fugweut325ncv", list.toString() + "\n " + list.size());
for (int i = 0; i < list.size(); i++) {
id = list.get(i).getId();
pincode = list.get(i).getPincode();
house_no = list.get(i).getHouse_no();
city = list.get(i).getCity();
area = list.get(i).getArea();
state = list.get(i).getState();
name = list.get(i).getName();
mobile_no = list.get(i).getMobile_no();
alt_mobile_no = list.get(i).getAlt_mobile_no();
AddressBean.AddressData adata = new AddressBean.AddressData(id, pincode, house_no, city, area, state, name, mobile_no, alt_mobile_no);
AddressList.add(adata);
Log.d("dutgwihv", "PINCODE" + pincode + "\n HOUSE NO:" + house_no + "CITY:" +
city + "\n AREA" + area + "\n STATE" + state + "\n name:" + name + "\n mobile:"
+ mobile_no + "alternate:" + alt_mobile_no);
if (alt_mobile_no.equals("0")) {
address = "Name:" + name + "\nMobile Number:" + mobile_no + "\nAddress:" + house_no + ", " + area + ", " + city + ", " + state + "- " + pincode;
} else {
address = " Name:" + name + "\n Mobile Number:" + mobile_no + "," + alt_mobile_no + "\n Address:" + house_no + ", " + area + ", " + city + ", " + state + "- " + pincode;
}
}
AddressAdapter adapter = new AddressAdapter(SelectAddressActivity.this, AddressList);
rec_address.setLayoutManager(new GridLayoutManager(SelectAddressActivity.this, 1));
rec_address.setItemAnimator(new DefaultItemAnimator());
rec_address.setAdapter(adapter);
} else {
pd.dismiss();
Toast.makeText(SelectAddressActivity.this, response.body().getMessage(), Toast.LENGTH_LONG).show();
}
} else {
if (!SelectAddressActivity.this.isFinishing() && pd.isShowing()) {
pd.dismiss();
Toast.makeText(SelectAddressActivity.this, response.body().getMessage(), Toast.LENGTH_LONG).show();
}
}
}
@Override
public void onFailure(Call call, Throwable t) {
if (!SelectAddressActivity.this.isFinishing() && pd.isShowing())
pd.dismiss();
AlertDialog.Builder b1 = ApiEndPoint.getAlertDialog(SelectAddressActivity.this, "Time Out", ApiEndPoint.getMessage(), R.mipmap.ic_launcher, "Cancel");
b1.setPositiveButton("Retry", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
sendAddressListRequest();
}
});
b1.create().show();
}
});
step 5 bean class
public class AddressBean implements Parcelable{
@SerializedName("status")
@Expose
private String status;
@SerializedName("message")
@Expose
private String message;
@SerializedName("data")
@Expose
private ArrayList DataList;
protected AddressBean(Parcel in) {
status = in.readString();
message = in.readString();
DataList = in.createTypedArrayList(AddressData.CREATOR);
}
public static final Creator CREATOR = new Creator() {
@Override
public AddressBean createFromParcel(Parcel in) {
return new AddressBean(in);
}
@Override
public AddressBean[] newArray(int size) {
return new AddressBean[size];
}
};
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
public ArrayList getDataList() {
return DataList;
}
public void setDataList(ArrayList dataList) {
DataList = dataList;
}
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel parcel, int i) {
parcel.writeString(status);
parcel.writeString(message);
parcel.writeTypedList(DataList);
}
public static class AddressData implements Parcelable {
public AddressData() {
}
public AddressData(String id, String pincode, String house_no, String city, String area, String state, String name, String mobile_no, String alt_mobile_no) {
this.id = id;
this.pincode = pincode;
this.house_no = house_no;
this.city = city;
this.area = area;
this.state = state;
this.name = name;
this.mobile_no = mobile_no;
this.alt_mobile_no = alt_mobile_no;
}
@SerializedName("id")
@Expose
private String id;
@SerializedName("pincode")
@Expose
private String pincode;
@SerializedName("house_no")
@Expose
private String house_no;
@SerializedName("city")
@Expose
private String city;
@SerializedName("area")
@Expose
private String area;
@SerializedName("state")
@Expose
private String state;
@SerializedName("name")
@Expose
private String name;
@SerializedName("mobile_no")
@Expose
private String mobile_no;
@SerializedName("alt_mobile_no")
@Expose
private String alt_mobile_no;
protected AddressData(Parcel in) {
id = in.readString();
pincode = in.readString();
house_no = in.readString();
city = in.readString();
area = in.readString();
state = in.readString();
name = in.readString();
mobile_no = in.readString();
alt_mobile_no = in.readString();
}
public static final Creator CREATOR = new Creator() {
@Override
public AddressData createFromParcel(Parcel in) {
return new AddressData(in);
}
@Override
public AddressData[] newArray(int size) {
return new AddressData[size];
}
};
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getPincode() {
return pincode;
}
public void setPincode(String pincode) {
this.pincode = pincode;
}
public String getHouse_no() {
return house_no;
}
public void setHouse_no(String house_no) {
this.house_no = house_no;
}
public String getCity() {
return city;
}
public void setCity(String city) {
this.city = city;
}
public String getArea() {
return area;
}
public void setArea(String area) {
this.area = area;
}
public String getState() {
return state;
}
public void setState(String state) {
this.state = state;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getMobile_no() {
return mobile_no;
}
public void setMobile_no(String mobile_no) {
this.mobile_no = mobile_no;
}
public String getAlt_mobile_no() {
return alt_mobile_no;
}
public void setAlt_mobile_no(String alt_mobile_no) {
this.alt_mobile_no = alt_mobile_no;
}
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel parcel, int i) {
parcel.writeString(id);
parcel.writeString(pincode);
parcel.writeString(house_no);
parcel.writeString(city);
parcel.writeString(area);
parcel.writeString(state);
parcel.writeString(name);
parcel.writeString(mobile_no);
parcel.writeString(alt_mobile_no);
}
}
}