Skip to content

Commit 90ea9c2

Browse files
committed
Merge remote-tracking branch 'CONFIDENTIAL/version-3.0.0-dev' into dev
# Conflicts: # database/src/main/java/com/firebase/ui/database/FirebaseArray.java
2 parents e30ca58 + e5fbab8 commit 90ea9c2

File tree

2 files changed

+14
-9
lines changed

2 files changed

+14
-9
lines changed

database/src/main/java/com/firebase/ui/database/FirebaseArray.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,8 @@
2727
/**
2828
* This class implements a collection on top of a Firebase location.
2929
*/
30-
public class FirebaseArray<T> extends CachingObservableSnapshotArray<T> implements ChildEventListener, ValueEventListener {
31-
30+
public class FirebaseArray<T> extends CachingObservableSnapshotArray<T>
31+
implements ChildEventListener, ValueEventListener {
3232
private Query mQuery;
3333
private List<DataSnapshot> mSnapshots = new ArrayList<>();
3434

database/src/main/java/com/firebase/ui/database/FirebaseIndexArray.java

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,8 @@
2929
import java.util.List;
3030
import java.util.Map;
3131

32-
public class FirebaseIndexArray<T> extends CachingObservableSnapshotArray<T> implements ChangeEventListener {
32+
public class FirebaseIndexArray<T> extends CachingObservableSnapshotArray<T>
33+
implements ChangeEventListener {
3334
private static final String TAG = "FirebaseIndexArray";
3435

3536
private DatabaseReference mDataRef;
@@ -108,7 +109,7 @@ protected void onDestroy() {
108109
public void onChildChanged(ChangeEventType type, DataSnapshot snapshot, int index, int oldIndex) {
109110
switch (type) {
110111
case ADDED:
111-
onKeyAdded(snapshot);
112+
onKeyAdded(snapshot, index);
112113
break;
113114
case MOVED:
114115
onKeyMoved(snapshot, index, oldIndex);
@@ -176,16 +177,16 @@ private boolean isKeyAtIndex(String key, int index) {
176177
return index >= 0 && index < size() && mDataSnapshots.get(index).getKey().equals(key);
177178
}
178179

179-
protected void onKeyAdded(DataSnapshot data) {
180+
private void onKeyAdded(DataSnapshot data, int newIndex) {
180181
String key = data.getKey();
181182
DatabaseReference ref = mDataRef.child(key);
182183

183184
mKeysWithPendingUpdate.add(key);
184185
// Start listening
185-
mRefs.put(ref, ref.addValueEventListener(new DataRefListener()));
186+
mRefs.put(ref, ref.addValueEventListener(new DataRefListener(newIndex)));
186187
}
187188

188-
protected void onKeyMoved(DataSnapshot data, int index, int oldIndex) {
189+
private void onKeyMoved(DataSnapshot data, int index, int oldIndex) {
189190
String key = data.getKey();
190191

191192
// We can't use `returnOrFindIndexForKey(...)` for `oldIndex` or it might find the updated
@@ -201,7 +202,7 @@ protected void onKeyMoved(DataSnapshot data, int index, int oldIndex) {
201202
}
202203
}
203204

204-
protected void onKeyRemoved(DataSnapshot data, int index) {
205+
private void onKeyRemoved(DataSnapshot data, int index) {
205206
String key = data.getKey();
206207
ValueEventListener listener = mRefs.remove(mDataRef.getRef().child(key));
207208
if (listener != null) mDataRef.child(key).removeEventListener(listener);
@@ -255,10 +256,14 @@ public String toString() {
255256
/**
256257
* A ValueEventListener attached to the joined child data.
257258
*/
258-
protected class DataRefListener implements ValueEventListener {
259+
private final class DataRefListener implements ValueEventListener {
259260
/** Cached index to skip searching for the current index on each update */
260261
private int currentIndex;
261262

263+
public DataRefListener(int index) {
264+
currentIndex = index;
265+
}
266+
262267
@Override
263268
public void onDataChange(DataSnapshot snapshot) {
264269
String key = snapshot.getKey();

0 commit comments

Comments
 (0)