aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormarcinzelent <zelent.marcin@gmail.com>2018-04-25 11:25:27 +0200
committermarcinzelent <zelent.marcin@gmail.com>2018-04-25 11:25:27 +0200
commit3812f6ccf9d5796f25f81aeea942c25b58296d01 (patch)
tree29980d6d0fe24b8c4723aa14279a91919837ba3b /app/src/main/java/org
parente2f49fe23b2ae1a910ab7015167e5ed9a5e4988a (diff)
Fixed crash on reload of observations view
Diffstat (limited to 'app/src/main/java/org')
-rw-r--r--app/src/main/java/org/marcinzelent/liberavem/AllObservationsFragment.java2
-rw-r--r--app/src/main/java/org/marcinzelent/liberavem/DataKeeper.java33
-rw-r--r--app/src/main/java/org/marcinzelent/liberavem/MainActivity.java4
-rw-r--r--app/src/main/java/org/marcinzelent/liberavem/MyObservationsFragment.java2
-rw-r--r--app/src/main/java/org/marcinzelent/liberavem/ObservationsFragment.java2
5 files changed, 28 insertions, 15 deletions
diff --git a/app/src/main/java/org/marcinzelent/liberavem/AllObservationsFragment.java b/app/src/main/java/org/marcinzelent/liberavem/AllObservationsFragment.java
index af4331a..b54227c 100644
--- a/app/src/main/java/org/marcinzelent/liberavem/AllObservationsFragment.java
+++ b/app/src/main/java/org/marcinzelent/liberavem/AllObservationsFragment.java
@@ -39,7 +39,6 @@ public class AllObservationsFragment extends Fragment {
// Required empty public constructor
}
-
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.observations_list, container, false);
@@ -60,6 +59,7 @@ public class AllObservationsFragment extends Fragment {
}
);
+ DataKeeper.getInstance().addFragment(this);
DataKeeper.getInstance().downloadData(getActivity());
}
diff --git a/app/src/main/java/org/marcinzelent/liberavem/DataKeeper.java b/app/src/main/java/org/marcinzelent/liberavem/DataKeeper.java
index 2000eab..5fa975b 100644
--- a/app/src/main/java/org/marcinzelent/liberavem/DataKeeper.java
+++ b/app/src/main/java/org/marcinzelent/liberavem/DataKeeper.java
@@ -1,6 +1,7 @@
package org.marcinzelent.liberavem;
import android.app.Activity;
+import android.app.Fragment;
import android.widget.Toast;
import com.android.volley.Request;
@@ -28,6 +29,7 @@ public class DataKeeper {
private DataKeeper() {
}
+ private List<Object> fragments = new ArrayList<Object>();
private Bird[] birds;
private Observation[] observations;
@@ -98,18 +100,29 @@ public class DataKeeper {
Volley.newRequestQueue(activity).add(observationsRequest);
}
+ public void addFragment(Object fragment) {
+ fragments.add(fragment);
+ }
+
+ public void clearFragments() {
+ fragments.clear();
+ }
+
private void callPopulator(Activity activity) {
if (birds != null && observations != null) {
- MyObservationsFragment mo = (MyObservationsFragment) ((MainActivity)activity).getObservationFragments().get(0);
- List<Observation> myObservationsList = new ArrayList<>();
- for (Observation o : observations)
- if (o.getUserId().equals("Sminem")) myObservationsList.add(o);
-
- Observation[] myObservations = new Observation[myObservationsList.size()];
- myObservations = myObservationsList.toArray(myObservations);
- mo.populateList(myObservations, birds);
- AllObservationsFragment aof = (AllObservationsFragment) ((MainActivity)activity).getObservationFragments().get(1);
- aof.populateList(observations, birds);
+ for(Object fragment : fragments) {
+ if (fragment.getClass() == AllObservationsFragment.class)
+ ((AllObservationsFragment) fragment).populateList(observations, birds);
+ else {
+ List<Observation> myObservationsList = new ArrayList<>();
+ for (Observation o : observations)
+ if (o.getUserId().equals("Sminem")) myObservationsList.add(o);
+
+ Observation[] myObservations = new Observation[myObservationsList.size()];
+ myObservations = myObservationsList.toArray(myObservations);
+ ((MyObservationsFragment) fragment).populateList(myObservations, birds);
+ }
+ }
}
}
}
diff --git a/app/src/main/java/org/marcinzelent/liberavem/MainActivity.java b/app/src/main/java/org/marcinzelent/liberavem/MainActivity.java
index 4009f8c..b32358a 100644
--- a/app/src/main/java/org/marcinzelent/liberavem/MainActivity.java
+++ b/app/src/main/java/org/marcinzelent/liberavem/MainActivity.java
@@ -139,8 +139,4 @@ public class MainActivity extends AppCompatActivity
public void onFragmentInteraction(Uri uri) {
}
-
- public List<Fragment> getObservationFragments() {
- return observationsFragment.getChildFragmentManager().getFragments();
- }
}
diff --git a/app/src/main/java/org/marcinzelent/liberavem/MyObservationsFragment.java b/app/src/main/java/org/marcinzelent/liberavem/MyObservationsFragment.java
index b83d7b4..c3656e9 100644
--- a/app/src/main/java/org/marcinzelent/liberavem/MyObservationsFragment.java
+++ b/app/src/main/java/org/marcinzelent/liberavem/MyObservationsFragment.java
@@ -46,6 +46,8 @@ public class MyObservationsFragment extends Fragment {
}
}
);
+
+ DataKeeper.getInstance().addFragment(this);
}
public void populateList(final Observation[] observations, final Bird[] birds) {
diff --git a/app/src/main/java/org/marcinzelent/liberavem/ObservationsFragment.java b/app/src/main/java/org/marcinzelent/liberavem/ObservationsFragment.java
index 128cbe9..e2df607 100644
--- a/app/src/main/java/org/marcinzelent/liberavem/ObservationsFragment.java
+++ b/app/src/main/java/org/marcinzelent/liberavem/ObservationsFragment.java
@@ -64,6 +64,8 @@ public class ObservationsFragment extends Fragment {
mParam1 = getArguments().getString(ARG_PARAM1);
mParam2 = getArguments().getString(ARG_PARAM2);
}
+
+ DataKeeper.getInstance().clearFragments();
}
@Override