mercredi 7 décembre 2016

How to compare values stored in List

I'm retrieving some long values and storing it in List<Long> l.

Here is the logged out value of List<Long> l:

D/lng: [2197, -1007, 4003]

Then, I'm trying to compare it with long values like <=900 or >900.

Here's how:

public void filterRequests(final List<Long> l) {

        final int size = l.size();

                Log.d("lng", String.valueOf(l));

                AlertDialog.Builder builder = new AlertDialog.Builder(this);

                LayoutInflater inflater = this.getLayoutInflater();
                View addD = inflater.inflate(R.layout.filter_dialog, null);
                chkBoxLiveRqsts = (AppCompatCheckBox) addD.findViewById(R.id.chkBoxLiveRqsts);
                chkBoxSFLRqsts = (AppCompatCheckBox) addD.findViewById(R.id.chkBoxSFLRqsts);

                builder.setTitle("Filter based on");
                builder.setView(addVenueDialog);
                builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialogInterface, int i) {

                        if (isNetworkAvailable()) {
                            if (chkBoxLiveRqsts.isChecked()) {

                                geoQuery = geoFireSportRequests.queryAtLocation(new GeoLocation(currentLatDouble, currentLngDouble), 5);
                                geoQuery.addGeoQueryEventListener(new GeoQueryEventListener() {
                                    @Override
                                    public void onKeyEntered(String key, GeoLocation location) {

                                        firebaseDatabase.child(key).addValueEventListener(new ValueEventListener() {
                                            @Override
                                            public void onDataChange(DataSnapshot dataSnapshot) {
                                                if (dataSnapshot.getValue() != null) {
                                                    for (int i = 0; i < size; i++){
                                                        if (l.get(i) <= 900) {
                                                            Map<String, String> newRequest = (Map<String, String>) dataSnapshot.getValue();
                                                            postedBy = newRequest.get("postedBy");
                                                            userEmail = newRequest.get("userEmail");
                                                            currentLatitude = newRequest.get("currentLat");
                                                            currentLongitude = newRequest.get("currentLng");
                                                            playStartDay = newRequest.get("playStartDay");
                                                            playStartTime = newRequest.get("playStartTime");
                                                            playEndDay = newRequest.get("playEndDay");
                                                            playEndTime = newRequest.get("playEndTime");

                                                            prepareDataOfSportRequests();
                                                        } else {
                                                        }
                                                    }
                                                    progressDialogAdding.dismiss();
                                                } else {
                                                }
                                            }

                                            @Override
                                            public void onCancelled(DatabaseError databaseError) {
                                            }
                                        });
                                    }

                                    @Override
                                    public void onKeyExited(String key) {

                                    }

                                    @Override
                                    public void onKeyMoved(String key, GeoLocation location) {

                                    }

                                    @Override
                                    public void onGeoQueryReady() {

                                    }

                                    @Override
                                    public void onGeoQueryError(DatabaseError error) {

                                    }
                                });
                            } else if (chkBoxSFLRqsts.isChecked()) {
                                fastItemAdapter.clear();

                                geoQuery = geoFireSportRequests.queryAtLocation(new GeoLocation(currentLatDouble, currentLngDouble), 5);
                                geoQuery.addGeoQueryEventListener(new GeoQueryEventListener() {
                                    @Override
                                    public void onKeyEntered(String key, GeoLocation location) {

                                        firebaseDatabase.child(key).addValueEventListener(new ValueEventListener() {
                                            @Override
                                            public void onDataChange(DataSnapshot dataSnapshot) {
                                                if (dataSnapshot.getValue() != null) {
                                                    for (int i = 0; i < size; i++) {
                                                        if (l.get(i) > 900) {
                                                            Map<String, String> newRequest = (Map<String, String>) dataSnapshot.getValue();
                                                            postedBy = newRequest.get("postedBy");
                                                            userEmail = newRequest.get("userEmail");
                                                            currentLatitude = newRequest.get("currentLat");
                                                            currentLongitude = newRequest.get("currentLng");
                                                            playStartDay = newRequest.get("playStartDay");
                                                            playStartTime = newRequest.get("playStartTime");
                                                            playEndDay = newRequest.get("playEndDay");
                                                            playEndTime = newRequest.get("playEndTime");

                                                            prepareDataOfSR();

                                                        } else {
                                                        }
                                                    }
                                                    progressDialogAdding.dismiss();
                                                } else {
                                                }
                                            }

                                            @Override
                                            public void onCancelled(DatabaseError databaseError) {
                                            }
                                        });
                                    }

                                    @Override
                                    public void onKeyExited(String key) {

                                    }

                                    @Override
                                    public void onKeyMoved(String key, GeoLocation location) {

                                    }

                                    @Override
                                    public void onGeoQueryReady() {

                                    }

                                    @Override
                                    public void onGeoQueryError(DatabaseError error) {

                                    }
                                });
                            } 
                        } else {
                            Snackbar snackbar = Snackbar
                                    .make(coordinatorLayout, "No internet connection", Snackbar.LENGTH_SHORT);
                            snackbar.show();
                            progressDialogAdding.dismiss();
                        }
                    }
                });
                dialog = builder.create();
            dialog.show();
    }

The problem is that if (l.get(i) <= 900) or if (l.get(i) > 900) both is not working even when the l.get(i) has values both <=900 and >900, see: D/lng: [2197, -1007, 4003].

I know I'm doing something wrongly here...

Please let me know what is going wrong?

Aucun commentaire:

Enregistrer un commentaire