Я пытаюсь вставить значения в область и показать это RecyclerView, если нет подключения к Интернету. Если во время установки есть Интернет, он будет вызывать webservice. После этого данные будут отображаться из базы данных каждый раз.работает, но проблема в том, что данные повторяются в RecyclerView (т.е. дважды). Я не могу понять, в чем проблема. Мой код ниже
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
mOnFragmnetSwitch = (Config.OnFragmnetSwitch) getActivity();
View mFragmentView = inflater.inflate(R.layout.fragment_home, container, false);
mCategoryListRecyclerView = (ParallaxRecyclerView) mFragmentView.findViewById(R.id.recyclerView);
mTopicsArrayList = new ArrayList<>();
realm = Realm.getDefaultInstance();
RealmResults<Topics> topiclist = realm.where(Topics.class).findAll();
for (Topics s : topiclist) {
mTopicsArrayList.add(s);
}
if (mTopicsArrayList.size() == 0) {
if (isNetworkAvailable()) {
new WebserviceCall(HomeFragment.this, AppConstants.Methods.getTopics).execute(new String[]{getSharedPreference(AppConstants.SharedKey.DEVICE_ID), getSharedPreference(AppConstants.SharedKey.USER_ID)});
} else {
Snackbar.make(mFragmentView, "Connet to the internet and try again!", Snackbar.LENGTH_LONG)
.setAction("Action", null).show();
}
}else {
setupFunctioning();
}
return mFragmentView;
}
private void setupFunctioning() {
Log.d("count",String.valueOf(count));
mCategoryListRecyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
mCategoryListRecyclerView.setHasFixedSize(true);
mCategoryListRecyclerView.setAdapter(new ParallaxRecyclerAdapter(context, HomeFragment.this, mTopicsArrayList));
}
@Override
public void onWebServiceCall(JSONObject mJsonObject, int method) {
mTopicsArrayList = new ArrayList<>();
try {
JSONArray mJsonTopicArray = mJsonObject.getJSONArray(AppConstants.APIKeys.TOPICS_LIST);
for (int i = 0; i < mJsonTopicArray.length(); i++) {
final Topics mTopics = new Topics();
mTopics.setId(mJsonTopicArray.getJSONObject(i).getString(AppConstants.APIKeys.ID));
mTopics.setTitle(mJsonTopicArray.getJSONObject(i).getString(AppConstants.APIKeys.TOPICS));
mTopics.setImage(mJsonTopicArray.getJSONObject(i).getString(AppConstants.APIKeys.TOPICS_IMAGE));
mTopics.setDescription(mJsonTopicArray.getJSONObject(i).getString(AppConstants.APIKeys.DESCRIPTION));
try {
realm = Realm.getDefaultInstance();
realm.executeTransaction(new Realm.Transaction() {
@Override
public void execute(Realm realm) {
realm.copyToRealm(mTopics);
}
});
} finally {
if (realm != null) {
realm.close();
}
}
mTopicsArrayList.add(mTopics);
}
count=1;
setupFunctioning();
} catch (JSONException e) {
Log.d("gggggg", "enter");
e.printStackTrace();
} catch (Exception e) {
Log.d("gggggg", "ff");
e.printStackTrace();
}
}
@Override
public void onResume() {
super.onResume();
mOnFragmnetSwitch.loadTitle("Home");
HomeActivity.fragment = HomeFragment.this;
}
@Override
public void onDestroy() {
super.onDestroy();
realm.close();
}
Кто-нибудь, пожалуйста, помогите мне найти проблему.