I try to get xml data then I parse it to JSON, I use OkHttp as a connection. I managed to get data from LOG but I can't display it in my RecyclerView, when I LOG to adapter and the result is size 0
I set the response to the model and sharedpreference
The point of the problem is that I just don't understand how to take the response from the presenter then I set it to the adapter in the main Fragment.
public class ParentCategories {
@SerializedName("idkategori")
@Expose
private String idkategori;
@SerializedName("namakategori")
@Expose
private String namakategori;
@SerializedName("fileicon")
@Expose
private String fileicon;
@SerializedName("subkategori")
@Expose
private SubCategories subkategori;
public ParentCategories(Parcel in) {
    this.idkategori = in.readString();
    this.namakategori = in.readString();
    this.fileicon = in.readString();
}
public ParentCategories() {
}
public String getIdkategori() {
    return idkategori;
}
public void setIdkategori(String idkategori) {
    this.idkategori = idkategori;
}
public String getNamakategori() {
    return namakategori;
}
public void setNamakategori(String namakategori) {
    this.namakategori = namakategori;
}
public String getFileicon() {
    return fileicon;
}
public void setFileicon(String fileicon) {
    this.fileicon = fileicon;
}
public SubCategories getSubkategori() {
    return subkategori;
}
public void setSubkategori(SubCategories subkategori) {
    this.subkategori = subkategori;
}
}
public class CategoriesPresenter {
....
public void onResponse(Call call, Response response) throws IOException {
                String mMessage = response.body().string();
                JSONObject jsonObj = null;
                try {
                    jsonObj = XML.toJSONObject(mMessage);
                    JSONObject jsonObject = new JSONObject(jsonObj.toString());
                    JSONObject object = jsonObject.getJSONObject("posh");
                    String attr2 = object.getString("resultcode");
                    com.davestpay.apphdi.helper.Log.d("hasil", String.valueOf(object));
                    if (attr2.equalsIgnoreCase("0000")) {
                        String idAgen = object.getString("idagen");
                        int jumlahKategori = object.getInt("jumlahkategori");
                        JSONArray category = object.getJSONArray("kategori");
                        List<ParentCategories> parentCategories = new ArrayList<ParentCategories>();
                        for (int i = 0; i < category.length(); i++) {
                            ParentCategories categories = new ParentCategories();
                            JSONObject c = category.getJSONObject(i);
                            Log.d(TAG, "onResponseC: "+c);
                            String idKategori = c.getString("idkategori");
                            String namaKategori = c.getString("namakategori");
                            Log.d(TAG, "onResponseNamaKategori: "+namaKategori);
                            String fileIcon = c.getString("fileicon");
                            JSONObject subCategories = c.getJSONObject("subkategori");
                            JSONArray subCategory = subCategories.getJSONArray("kategori2");
                            Log.d(TAG, "onResponseSubCategories: "+subCategory);
                            for (int subCatPosition = 0; subCatPosition < subCategory.length(); subCatPosition++) {
                                SecondCategories secondCategories = new SecondCategories();
                                List<SecondCategories> listSecondCategories = new ArrayList<>();
                                JSONObject sc = subCategory.getJSONObject(subCatPosition);
                                String secIdKategori = sc.getString("idkategori");
                                String secNamaKategori = sc.getString("namakategori");
                                String secFileIcon = sc.getString("fileicon");
                                secondCategories.setIdkategori(secIdKategori);
                                secondCategories.setNamakategori(secNamaKategori);
                                secondCategories.setFileicon(secFileIcon);
                                listSecondCategories.add(secondCategories);
                            }
                            categories.setIdkategori(idKategori);
                            categories.setNamakategori(namaKategori);
                            categories.setFileicon(fileIcon);
                            parentCategories.add(categories);
                            Log.d(TAG, "onResponseFinalCategories: "+parentCategories);
                        }
                        iCategories.onSuccessCategories(parentCategories);
                        preferenceHelper.clear(PreferenceHelper.CATEGORIES);
                        preferenceHelper.putList(PreferenceHelper.CATEGORIES, parentCategories);
                    } else {
                        Log.d(TAG, "onResponse: ");
                    }
                } catch (JSONException e) {
                    com.davestpay.apphdi.helper.Log.e("JSON exception", e.getMessage());
                    e.printStackTrace();
                }
            }
}
private void getInit() {
        if (preferenceHelper != null) {
            idAgen = preferenceHelper.getString(PreferenceHelper.ID_AGEN);
            namaAgen = preferenceHelper.getString(PreferenceHelper.NAMA_AGEN);
            password = preferenceHelper.getString(PreferenceHelper.PASSWORD);
            categories = preferenceHelper.getList(PreferenceHelper.CATEGORIES, ParentCategories[].class);
        }
        authPresenter = new AuthPresenter(getContext());
        presenter = new CategoriesPresenter();
        presenter.setBaseView(this);
        presenter.onCreate(getContext());
        if (authPresenter.isLoggedIn()) {
//            kategori.setText(categories.toString());
            presenter.getCategories(idAgen, password, counter);
        }
        kategori = mView.findViewById(R.id.kategori);
        categories = new ArrayList<>();
        rvMain = mView.findViewById(R.id.rv_categories);
        adapter = new CategoriesListViewAdapter(getContext(), categories);
        layoutManager = new LinearLayoutManager(getdActivity());
        adapter.notifyDataSetChanged();
        rvMain.setLayoutManager(layoutManager);
        rvMain.setAdapter(adapter);
    }