Search in sources :

Example 1 with MutableData

use of com.google.firebase.database.MutableData in project iNGAGE by davis123123.

the class ChatActivity method removeUpvote.

@Override
public void removeUpvote(int p) {
    ChatMessageHelper chatMessageHelper = (ChatMessageHelper) chatAdapter.getItem(p);
    String chat_key = chatMessageHelper.getMessageID();
    DatabaseReference message_root = root.child(chat_key);
    //get upvote data
    DatabaseReference upvote_count = message_root.child("upvotes");
    upvote_count.runTransaction(new Transaction.Handler() {

        @Override
        public Transaction.Result doTransaction(MutableData currentData) {
            Log.d("Data", String.valueOf(currentData));
            if (currentData.getValue() == null) {
                currentData.setValue(0);
            } else {
                currentData.setValue((Long) currentData.getValue() - 1);
            }
            //we can also abort by calling Transaction.abort()
            return Transaction.success(currentData);
        }

        //TODO:Error handle here
        @Override
        public void onComplete(DatabaseError databaseError, boolean b, DataSnapshot dataSnapshot) {
        }
    });
}
Also used : ChatMessageHelper(ingage.ingage20.helpers.ChatMessageHelper) DatabaseError(com.google.firebase.database.DatabaseError) Transaction(com.google.firebase.database.Transaction) DatabaseReference(com.google.firebase.database.DatabaseReference) MutableData(com.google.firebase.database.MutableData) DataSnapshot(com.google.firebase.database.DataSnapshot)

Example 2 with MutableData

use of com.google.firebase.database.MutableData in project iNGAGE by davis123123.

the class ChatActivity method onDownvoteClick.

@Override
public void onDownvoteClick(int p) {
    //Log.d("vote" , "down : ");
    ChatMessageHelper chatMessageHelper = (ChatMessageHelper) chatAdapter.getItem(p);
    String chat_key = chatMessageHelper.getMessageID();
    DatabaseReference message_root = root.child(chat_key);
    //get upvote data
    DatabaseReference downvote_count = message_root.child("downvotes");
    downvote_count.runTransaction(new Transaction.Handler() {

        @Override
        public Transaction.Result doTransaction(MutableData currentData) {
            Log.d("Data", String.valueOf(currentData));
            if (currentData.getValue() == null) {
                currentData.setValue(1);
            } else {
                currentData.setValue((Long) currentData.getValue() + 1);
            }
            //we can also abort by calling Transaction.abort()
            return Transaction.success(currentData);
        }

        //TODO:Error handle here
        @Override
        public void onComplete(DatabaseError databaseError, boolean b, DataSnapshot dataSnapshot) {
        }
    });
}
Also used : ChatMessageHelper(ingage.ingage20.helpers.ChatMessageHelper) DatabaseError(com.google.firebase.database.DatabaseError) Transaction(com.google.firebase.database.Transaction) DatabaseReference(com.google.firebase.database.DatabaseReference) MutableData(com.google.firebase.database.MutableData) DataSnapshot(com.google.firebase.database.DataSnapshot)

Example 3 with MutableData

use of com.google.firebase.database.MutableData in project MadMax by deviz92.

the class User method joinGroup.

public void joinGroup(String groupID, String inviterUID) {
    final DatabaseReference databaseReference = FirebaseUtils.getDatabaseReference();
    final String currentUID = this.getID();
    //Aggiungo gruppo alla lista gruppi dello user
    databaseReference.child("users").child(currentUID).child("groups").push();
    databaseReference.child("users").child(currentUID).child("groups").child(groupID).setValue("true");
    //Aggiungo user (con sottocampi admin e timestamp) alla lista membri del gruppo
    databaseReference.child("groups").child(groupID).child("members").push();
    databaseReference.child("groups").child(groupID).child("members").child(currentUID).push();
    databaseReference.child("groups").child(groupID).child("members").child(currentUID).child("admin").setValue(false);
    databaseReference.child("groups").child(groupID).child("members").child(currentUID).push();
    String timestamp = new SimpleDateFormat("yyyy.MM.dd.HH.mm.ss").format(new java.util.Date());
    databaseReference.child("groups").child(groupID).child("members").child(currentUID).child("timestamp").setValue(timestamp);
    // aggiunto da riky
    databaseReference.child("groups").child(groupID).child("members").child(currentUID).push();
    databaseReference.child("groups").child(groupID).child("members").child(currentUID).child("deleted").setValue(false);
    // aggiungo l'invitante agli amici se non lo è già
    if (!userFriends.containsKey(inviterUID)) {
        //todo aggiungere l'invitato tra gli amici dell'invitante
        addFriend(inviterUID);
    }
    //Incremento il numero di partecipanti
    databaseReference.child("groups").child(groupID).child("numberMembers").runTransaction(new Transaction.Handler() {

        @Override
        public Transaction.Result doTransaction(MutableData mutableData) {
            Integer numberMembers = mutableData.getValue(Integer.class);
            if (numberMembers == null) {
                return Transaction.success(mutableData);
            }
            // Set value and report transaction success
            mutableData.setValue(numberMembers + 1);
            return Transaction.success(mutableData);
        }

        @Override
        public void onComplete(DatabaseError databaseError, boolean b, DataSnapshot dataSnapshot) {
            // Transaction completed
            Log.d(TAG, "postTransaction:onComplete:" + databaseError);
        }
    });
}
Also used : DatabaseReference(com.google.firebase.database.DatabaseReference) DataSnapshot(com.google.firebase.database.DataSnapshot) DatabaseError(com.google.firebase.database.DatabaseError) Transaction(com.google.firebase.database.Transaction) MutableData(com.google.firebase.database.MutableData) SimpleDateFormat(java.text.SimpleDateFormat)

Example 4 with MutableData

use of com.google.firebase.database.MutableData in project iNGAGE by davis123123.

the class ChatActivity method removeDownvote.

@Override
public void removeDownvote(int p) {
    ChatMessageHelper chatMessageHelper = (ChatMessageHelper) chatAdapter.getItem(p);
    String chat_key = chatMessageHelper.getMessageID();
    DatabaseReference message_root = root.child(chat_key);
    //get upvote data
    DatabaseReference downvote_count = message_root.child("downvotes");
    downvote_count.runTransaction(new Transaction.Handler() {

        @Override
        public Transaction.Result doTransaction(MutableData currentData) {
            Log.d("Data", String.valueOf(currentData));
            if (currentData.getValue() == null) {
                currentData.setValue(0);
            } else {
                currentData.setValue((Long) currentData.getValue() - 1);
            }
            //we can also abort by calling Transaction.abort()
            return Transaction.success(currentData);
        }

        //TODO:Error handle here
        @Override
        public void onComplete(DatabaseError databaseError, boolean b, DataSnapshot dataSnapshot) {
        }
    });
}
Also used : ChatMessageHelper(ingage.ingage20.helpers.ChatMessageHelper) DatabaseError(com.google.firebase.database.DatabaseError) Transaction(com.google.firebase.database.Transaction) DatabaseReference(com.google.firebase.database.DatabaseReference) MutableData(com.google.firebase.database.MutableData) DataSnapshot(com.google.firebase.database.DataSnapshot)

Example 5 with MutableData

use of com.google.firebase.database.MutableData in project pratilipi by Pratilipi.

the class FirebaseApi method updateUserNotificationData.

public static void updateUserNotificationData(Long userId, final List<Long> notifIdListToAdd, final List<Long> notifIdListToRemove, final Async async) {
    initialiseFirebase();
    DatabaseReference databaseReference = FirebaseDatabase.getInstance().getReference().child(DATABASE_NOTIFICATION_TABLE).child(userId.toString());
    databaseReference.runTransaction(new Transaction.Handler() {

        @Override
        public Transaction.Result doTransaction(MutableData mutableData) {
            // Current list of notificationIds with Firebase
            List<Long> notifIdList = new LinkedList<>();
            if (mutableData.getValue() != null) {
                NotificationDB notifDB = mutableData.getValue(NotificationDB.class);
                if (notifDB.getNewNotificationCount() > 0)
                    notifIdList = notifDB.getNotificationIdList();
            }
            // Add/Remove notificationIds
            // Remove ids first to avoid duplicates
            notifIdList.removeAll(notifIdListToAdd);
            notifIdList.removeAll(notifIdListToRemove);
            notifIdList.addAll(notifIdListToAdd);
            // Updating Firebase
            mutableData.setValue(new NotificationDB(notifIdList));
            return Transaction.success(mutableData);
        }

        @Override
        public void onComplete(DatabaseError databaseError, boolean committed, DataSnapshot dataSnapshot) {
            if (committed) {
                // Transaction successful
                async.exec();
            //				} else if( databaseError == null ) { // Transaction aborted
            } else {
                // Transaction failed
                logger.log(Level.SEVERE, "Transaction failed with error code : " + databaseError.getCode());
            }
        }
    });
}
Also used : DatabaseError(com.google.firebase.database.DatabaseError) Transaction(com.google.firebase.database.Transaction) DatabaseReference(com.google.firebase.database.DatabaseReference) List(java.util.List) LinkedList(java.util.LinkedList) MutableData(com.google.firebase.database.MutableData) DataSnapshot(com.google.firebase.database.DataSnapshot)

Aggregations

DataSnapshot (com.google.firebase.database.DataSnapshot)6 DatabaseError (com.google.firebase.database.DatabaseError)6 DatabaseReference (com.google.firebase.database.DatabaseReference)6 MutableData (com.google.firebase.database.MutableData)6 Transaction (com.google.firebase.database.Transaction)6 ChatMessageHelper (ingage.ingage20.helpers.ChatMessageHelper)4 SimpleDateFormat (java.text.SimpleDateFormat)1 LinkedList (java.util.LinkedList)1 List (java.util.List)1