Search in sources :

Example 6 with DataSnapshot

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

the class PendingExpenseDetailActivity method onCreate.

@Override
protected void onCreate(Bundle savedInstanceState) {
    Log.d(TAG, "OnCreate");
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_pending_expense_detail);
    //setInterface((OnItemClickInterface) this);
    Intent intent = getIntent();
    expenseID = intent.getStringExtra("expenseID");
    // intent.getStringExtra("userID");
    userID = MainActivity.getCurrentUser().getID();
    toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);
    toolbar.setBackgroundColor(0x0000FF00);
    // Get a support ActionBar corresponding to this toolbar
    ActionBar ab = getSupportActionBar();
    // Enable the Up button
    ab.setDisplayHomeAsUpEnabled(true);
    imageView = (ImageView) findViewById(R.id.img_photo);
    amountTextView = (TextView) findViewById(R.id.tv_amount);
    creatorNameTextView = (TextView) findViewById(R.id.tv_creator_name);
    groupTextView = (TextView) findViewById(R.id.tv_group_name);
    expenseNameTextView = (TextView) findViewById(R.id.tv_pending_name);
    moveExpenseButton = (Button) findViewById(R.id.btn_move_expense);
    //Click on button to move from pending to real expense
    moveExpenseButton.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            //Only the creator of pending expense can move it
            if (creatorID.equals(userID)) {
                databaseReference.child("proposedExpenses").child(expenseID).addListenerForSingleValueEvent(new ValueEventListener() {

                    @Override
                    public void onDataChange(DataSnapshot dataSnapshot) {
                        ArrayList<String> participants = new ArrayList<String>();
                        String expenseName = dataSnapshot.child("description").getValue(String.class);
                        String groupID = dataSnapshot.child("groupID").getValue(String.class);
                        Double amount = dataSnapshot.child("amount").getValue(Double.class);
                        String currency = dataSnapshot.child("currency").getValue(String.class);
                        String creatorID = dataSnapshot.child("creatorID").getValue(String.class);
                        String expensePhoto = dataSnapshot.child("expensePhoto").getValue(String.class);
                        for (DataSnapshot participantSnap : dataSnapshot.child("participants").getChildren()) participants.add(participantSnap.getKey());
                        Expense newExpense = new Expense();
                        newExpense.setDescription(expenseName);
                        newExpense.setAmount(amount);
                        newExpense.setCurrency(currency);
                        newExpense.setGroupID(groupID);
                        newExpense.setCreatorID(creatorID);
                        newExpense.setEquallyDivided(true);
                        newExpense.setDeleted(false);
                        newExpense.setExpensePhoto(expensePhoto);
                        Double amountPerMember = 1 / (double) participants.size();
                        for (String participant : participants) {
                            newExpense.getParticipants().put(participant, amountPerMember);
                            //Delete expense from his proposed expenses
                            databaseReference.child("users").child(participant).child("proposedExpenses").child(expenseID).setValue(false);
                        }
                        String timeStamp = new SimpleDateFormat("yyyy.MM.dd.HH.mm.ss").format(new java.util.Date());
                        newExpense.setTimestamp(timeStamp);
                        //Add expense to db
                        FirebaseUtils.getInstance().addExpenseFirebase(newExpense, null, null);
                        //Delete pending expense from proposed expenses list
                        databaseReference.child("proposedExpenses").child(expenseID).child("deleted").setValue(true);
                        //Delete pending expense from group
                        databaseReference.child("groups").child(groupID).child("proposedExpenses").child(expenseID).setValue(false);
                        Intent myIntent = new Intent(PendingExpenseDetailActivity.this, GroupDetailActivity.class);
                        myIntent.putExtra("groupID", groupID);
                        myIntent.putExtra("userID", userID);
                        finish();
                        startActivity(myIntent);
                    }

                    @Override
                    public void onCancelled(DatabaseError databaseError) {
                    }
                });
            } else {
                Toast.makeText(PendingExpenseDetailActivity.this, "Only the proposer can move it to expenses", Toast.LENGTH_SHORT).show();
                return;
            }
        }
    });
    RecyclerView.ItemDecoration divider = new InsetDivider.Builder(this).orientation(InsetDivider.VERTICAL_LIST).dividerHeight(getResources().getDimensionPixelSize(R.dimen.divider_height)).color(ContextCompat.getColor(getApplicationContext(), R.color.colorDivider)).insets(getResources().getDimensionPixelSize(R.dimen.divider_inset), 0).overlay(true).build();
    recyclerView = (RecyclerView) findViewById(R.id.rv_skeleton);
    layoutManager = new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false);
    recyclerView.setLayoutManager(layoutManager);
    recyclerView.addItemDecoration(divider);
    //todo mettere a posto
    votersViewAdapter = new VotersViewAdapter(voters, this);
    recyclerView.setAdapter(votersViewAdapter);
    //Retrieve data of this pending expense
    databaseReference.child("proposedExpenses").child(expenseID).addListenerForSingleValueEvent(new ValueEventListener() {

        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            String expenseName = dataSnapshot.child("description").getValue(String.class);
            String groupName = dataSnapshot.child("groupName").getValue(String.class);
            Double amount = dataSnapshot.child("amount").getValue(Double.class);
            expenseNameTextView.setText(expenseName);
            groupTextView.setText(groupName);
            amountTextView.setText(amount.toString());
            creatorID = dataSnapshot.child("creatorID").getValue(String.class);
            databaseReference.child("users").child(creatorID).addListenerForSingleValueEvent(new ValueEventListener() {

                @Override
                public void onDataChange(DataSnapshot creatorSnapshot) {
                    creatorNameTextView.setText(creatorSnapshot.child("name").getValue(String.class) + " " + creatorSnapshot.child("surname").getValue(String.class));
                }

                @Override
                public void onCancelled(DatabaseError databaseError) {
                }
            });
            DecimalFormat df = new DecimalFormat("#.##");
            amountTextView.setText(df.format(amount) + " €");
            //Show list of voters for this pending expense
            for (DataSnapshot voterSnap : dataSnapshot.child("participants").getChildren()) {
                String vote = voterSnap.child("vote").getValue(String.class);
                FirebaseUtils.getInstance().getVoter(voterSnap.getKey(), vote, voters, votersViewAdapter);
            }
        }

        @Override
        public void onCancelled(DatabaseError databaseError) {
        }
    });
}
Also used : DecimalFormat(java.text.DecimalFormat) ArrayList(java.util.ArrayList) Intent(android.content.Intent) DataSnapshot(com.google.firebase.database.DataSnapshot) LinearLayoutManager(android.support.v7.widget.LinearLayoutManager) ImageView(android.widget.ImageView) View(android.view.View) RecyclerView(android.support.v7.widget.RecyclerView) TextView(android.widget.TextView) DatabaseError(com.google.firebase.database.DatabaseError) Expense(com.polito.mad17.madmax.entities.Expense) RecyclerView(android.support.v7.widget.RecyclerView) ValueEventListener(com.google.firebase.database.ValueEventListener) SimpleDateFormat(java.text.SimpleDateFormat) ActionBar(android.support.v7.app.ActionBar)

Example 7 with DataSnapshot

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

the class PendingExpenseDetailActivity method onOptionsItemSelected.

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    Log.d(TAG, "Clicked item: " + item.getItemId());
    switch(item.getItemId()) {
        case R.id.one:
            Log.d(TAG, "clicked Modify expense");
            Toast.makeText(PendingExpenseDetailActivity.this, "Functionality still not available", Toast.LENGTH_SHORT).show();
            return true;
        case R.id.two:
            Log.d(TAG, "clicked Remove Expense");
            final Intent intent = new Intent(this, MainActivity.class);
            databaseReference.child("proposedExpenses").child(expenseID).child("creatorID").addListenerForSingleValueEvent(new ValueEventListener() {

                @Override
                public void onDataChange(DataSnapshot dataSnapshot) {
                    if (MainActivity.getCurrentUser().getID().matches(dataSnapshot.getValue(String.class))) {
                        FirebaseUtils.getInstance().removePendingExpenseFirebase(expenseID, getApplicationContext());
                        // add event for PENDING_EXPENSE_REMOVE
                        databaseReference.child("proposedExpenses").child(expenseID).addListenerForSingleValueEvent(new ValueEventListener() {

                            @Override
                            public void onDataChange(DataSnapshot dataSnapshot) {
                                User currentUser = MainActivity.getCurrentUser();
                                Event event = new Event(dataSnapshot.child("groupID").getValue(String.class), Event.EventType.PENDING_EXPENSE_REMOVE, currentUser.getName() + " " + currentUser.getSurname(), dataSnapshot.child("description").getValue(String.class));
                                event.setDate(new SimpleDateFormat("yyyy.MM.dd").format(new java.util.Date()));
                                event.setTime(new SimpleDateFormat("HH:mm").format(new java.util.Date()));
                                FirebaseUtils.getInstance().addEvent(event);
                                startActivity(intent);
                            }

                            @Override
                            public void onCancelled(DatabaseError databaseError) {
                                Log.w(TAG, databaseError.toException());
                            }
                        });
                    } else
                        Toast.makeText(getApplicationContext(), "You are not the proposal creator", Toast.LENGTH_SHORT).show();
                }

                @Override
                public void onCancelled(DatabaseError databaseError) {
                }
            });
            return true;
        case android.R.id.home:
            Log.d(TAG, "Clicked up button on PendingExpenseDetailActivity");
            finish();
            Intent myIntent = new Intent(PendingExpenseDetailActivity.this, MainActivity.class);
            myIntent.putExtra("UID", MainActivity.getCurrentUser().getID());
            myIntent.putExtra("currentFragment", 2);
            startActivity(myIntent);
            return (true);
        default:
            return super.onOptionsItemSelected(item);
    }
}
Also used : User(com.polito.mad17.madmax.entities.User) DatabaseError(com.google.firebase.database.DatabaseError) Event(com.polito.mad17.madmax.entities.Event) Intent(android.content.Intent) ValueEventListener(com.google.firebase.database.ValueEventListener) DataSnapshot(com.google.firebase.database.DataSnapshot) SimpleDateFormat(java.text.SimpleDateFormat)

Example 8 with DataSnapshot

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

the class NewExpenseActivity method onOptionsItemSelected.

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    DatabaseReference groupRef;
    int itemThatWasClickedId = item.getItemId();
    if (itemThatWasClickedId == R.id.action_save) {
        if (!validateForm())
            return true;
        //display message if text field is empty
        Toast.makeText(getBaseContext(), "Saved expense", Toast.LENGTH_SHORT).show();
        final Expense newExpense = new Expense();
        newExpense.setDescription(description.getText().toString());
        newExpense.setAmount(Double.valueOf(amount.getText().toString()));
        newExpense.setCurrency(currency.getSelectedItem().toString());
        newExpense.setGroupID(groupID);
        newExpense.setCreatorID(userID);
        newExpense.setEquallyDivided(true);
        newExpense.setDeleted(false);
        Log.d(TAG, "Before first access to firebase");
        groupRef = databaseReference.child("groups");
        groupRef.child(groupID).child("members").addListenerForSingleValueEvent(new ValueEventListener() {

            @Override
            public void onDataChange(DataSnapshot membersSnapshot) {
                int participantsCount = 0;
                //Attenzione! Non contare i membri eliminati tra i partecipanti alla spesa
                for (DataSnapshot memberSnap : membersSnapshot.getChildren()) {
                    if (!memberSnap.child("deleted").getValue(Boolean.class)) {
                        participantsCount++;
                    }
                }
                Double amountPerMember = 1 / (double) participantsCount;
                for (DataSnapshot member : membersSnapshot.getChildren()) {
                    //Aggiungo alla spesa solo i membri non eliminati dal gruppo
                    if (!member.child("deleted").getValue(Boolean.class)) {
                        newExpense.getParticipants().put(member.getKey(), amountPerMember);
                    }
                }
                String timeStamp = new SimpleDateFormat("yyyy.MM.dd.HH.mm.ss").format(new java.util.Date());
                newExpense.setTimestamp(timeStamp);
                //Aggiungo una pending expense
                if (callingActivity.equals("ChooseGroupActivity")) {
                    newExpense.setGroupName(groupName);
                    if (groupImage != null)
                        newExpense.setGroupImage(groupImage);
                    FirebaseUtils.getInstance().addPendingExpenseFirebase(newExpense, expensePhoto, billPhoto);
                    //todo qui
                    Intent myIntent = new Intent(NewExpenseActivity.this, MainActivity.class);
                    myIntent.putExtra("UID", MainActivity.getCurrentUser().getID());
                    myIntent.putExtra("currentFragment", 2);
                    startActivity(myIntent);
                    // add event for PENDING_EXPENSE_ADD
                    User currentUser = MainActivity.getCurrentUser();
                    Event event = new Event(groupID, Event.EventType.PENDING_EXPENSE_ADD, currentUser.getName() + " " + currentUser.getSurname(), newExpense.getDescription(), newExpense.getAmount());
                    event.setDate(new SimpleDateFormat("yyyy.MM.dd").format(new java.util.Date()));
                    event.setTime(new SimpleDateFormat("HH:mm").format(new java.util.Date()));
                    FirebaseUtils.getInstance().addEvent(event);
                } else //Aggiungo una spesa normale
                {
                    FirebaseUtils.getInstance().addExpenseFirebase(newExpense, expensePhoto, billPhoto);
                    // add event for EXPENSE_ADD
                    User currentUser = MainActivity.getCurrentUser();
                    Event event = new Event(newExpense.getGroupID(), Event.EventType.EXPENSE_ADD, currentUser.getName() + " " + currentUser.getSurname(), newExpense.getDescription(), newExpense.getAmount());
                    event.setDate(new SimpleDateFormat("yyyy.MM.dd").format(new java.util.Date()));
                    event.setTime(new SimpleDateFormat("HH:mm").format(new java.util.Date()));
                    FirebaseUtils.getInstance().addEvent(event);
                }
            }

            @Override
            public void onCancelled(DatabaseError error) {
                // Failed to read value
                Log.w(TAG, "Failed to read value.", error.toException());
            }
        });
    }
    this.finish();
    return super.onOptionsItemSelected(item);
}
Also used : User(com.polito.mad17.madmax.entities.User) DatabaseReference(com.google.firebase.database.DatabaseReference) Intent(android.content.Intent) MainActivity(com.polito.mad17.madmax.activities.MainActivity) DataSnapshot(com.google.firebase.database.DataSnapshot) DatabaseError(com.google.firebase.database.DatabaseError) Expense(com.polito.mad17.madmax.entities.Expense) Event(com.polito.mad17.madmax.entities.Event) MotionEvent(android.view.MotionEvent) ValueEventListener(com.google.firebase.database.ValueEventListener) SimpleDateFormat(java.text.SimpleDateFormat)

Example 9 with DataSnapshot

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

the class ExpenseCommentsFragment method onCreateView.

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    RecyclerView recyclerView;
    RecyclerView.LayoutManager layoutManager;
    String expenseID;
    View view = inflater.inflate(R.layout.skeleton_list, container, false);
    Bundle fragmentArguments = getArguments();
    expenseID = fragmentArguments.getString("expenseID");
    RecyclerView.ItemDecoration divider = new InsetDivider.Builder(getContext()).orientation(InsetDivider.VERTICAL_LIST).dividerHeight(getResources().getDimensionPixelSize(R.dimen.divider_height)).color(getResources().getColor(R.color.colorDivider)).insets(getResources().getDimensionPixelSize(R.dimen.divider_inset), 0).overlay(true).build();
    recyclerView = (RecyclerView) view.findViewById(R.id.rv_skeleton);
    layoutManager = new LinearLayoutManager(getActivity(), LinearLayoutManager.VERTICAL, false);
    recyclerView.setLayoutManager(layoutManager);
    recyclerView.addItemDecoration(divider);
    expenseCommentsViewAdapter = new ExpenseCommentsViewAdapter(this.getContext(), this, commentsMap, getFragmentManager());
    recyclerView.setAdapter(expenseCommentsViewAdapter);
    DatabaseReference expenseRef = databaseReference.child("expenses");
    expenseRef.child(expenseID).child("comments").addValueEventListener(new ValueEventListener() {

        @Override
        public void onDataChange(DataSnapshot commentSnapshot) {
            for (DataSnapshot comment : commentSnapshot.getChildren()) {
                FirebaseUtils.getInstance().getComment(comment.getKey(), commentsMap, expenseCommentsViewAdapter);
                Log.d(TAG, comment.getKey());
            }
            expenseCommentsViewAdapter.update(commentsMap);
        }

        @Override
        public void onCancelled(DatabaseError error) {
            // Failed to read value
            Log.w(TAG, "Failed to read value.", error.toException());
        }
    });
    return view;
}
Also used : DatabaseReference(com.google.firebase.database.DatabaseReference) Bundle(android.os.Bundle) LinearLayoutManager(android.support.v7.widget.LinearLayoutManager) DataSnapshot(com.google.firebase.database.DataSnapshot) RecyclerView(android.support.v7.widget.RecyclerView) View(android.view.View) DatabaseError(com.google.firebase.database.DatabaseError) RecyclerView(android.support.v7.widget.RecyclerView) ValueEventListener(com.google.firebase.database.ValueEventListener)

Example 10 with DataSnapshot

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

the class ExpenseDetailActivity method onCreate.

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_expense_detail);
    Intent intent = getIntent();
    groupID = intent.getStringExtra("groupID");
    userID = intent.getStringExtra("userID");
    expenseID = intent.getStringExtra("expenseID");
    fab = (FloatingActionButton) findViewById(R.id.fab);
    updateFab(0);
    toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);
    toolbar.setBackgroundColor(0x0000FF00);
    // Get a support ActionBar corresponding to this toolbar
    ActionBar ab = getSupportActionBar();
    // Enable the Up button
    ab.setDisplayHomeAsUpEnabled(true);
    // insert tabs and current fragment in the main layout
    //mainView.addView(getLayoutInflater().inflate(R.layout.activity_expense_detail, null));
    TabLayout tabLayout = (TabLayout) findViewById(R.id.tab_layout);
    tabLayout.addTab(tabLayout.newTab().setText(R.string.expense_detail));
    tabLayout.addTab(tabLayout.newTab().setText(R.string.comments));
    tabLayout.setTabGravity(TabLayout.GRAVITY_FILL);
    viewPager = (ViewPager) findViewById(R.id.expense_detail_view_pager);
    viewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tabLayout));
    tabLayout.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {

        @Override
        public void onTabSelected(TabLayout.Tab tab) {
            Log.d(TAG, String.valueOf(tab.getPosition()));
            updateFab(tab.getPosition());
            viewPager.setCurrentItem(tab.getPosition());
        }

        @Override
        public void onTabUnselected(TabLayout.Tab tab) {
        }

        @Override
        public void onTabReselected(TabLayout.Tab tab) {
        }
    });
    ExpenseDetailPagerAdapter adapter = new ExpenseDetailPagerAdapter(getSupportFragmentManager(), tabLayout.getTabCount(), expenseID);
    viewPager.setAdapter(adapter);
    viewPager.setCurrentItem(0);
    //Set data of upper part of Activity
    imageView = (ImageView) findViewById(R.id.img_photo);
    amountTextView = (TextView) findViewById(R.id.tv_amount);
    creatorNameTextView = (TextView) findViewById(R.id.tv_creator_name);
    expenseNameTextView = (TextView) findViewById(R.id.tv_pending_name);
    balanceTextTextView = (TextView) findViewById(R.id.tv_balance_text);
    balanceTextView = (TextView) findViewById(R.id.tv_balance);
    payExpenseButton = (Button) findViewById(R.id.btn_pay_debt);
    payExpenseButton.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            Log.d(TAG, "Clicked payButton");
            if (expenseBalance >= 0) {
                Toast.makeText(ExpenseDetailActivity.this, "You have no debts to pay for this expense", Toast.LENGTH_SHORT).show();
            } else {
                Intent intent = new Intent(ExpenseDetailActivity.this, PayExpenseActivity.class);
                intent.putExtra("groupID", groupID);
                intent.putExtra("userID", userID);
                intent.putExtra("debt", expenseBalance);
                intent.putExtra("expenseID", expenseID);
                intent.putExtra("expenseName", expenseName);
                intent.putExtra("expenseCurrency", currency);
                startActivity(intent);
                finish();
            }
        }
    });
    //Retrieve data of this expense
    databaseReference.child("expenses").child(expenseID).addListenerForSingleValueEvent(new ValueEventListener() {

        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            expenseName = dataSnapshot.child("description").getValue(String.class);
            Double amount = dataSnapshot.child("amount").getValue(Double.class);
            currency = dataSnapshot.child("currency").getValue(String.class);
            expenseNameTextView.setText(expenseName);
            DecimalFormat df = new DecimalFormat("#.##");
            amountTextView.setText(df.format(amount) + " " + currency);
            //Retrieve my balance for this expense
            Double dueImport = Double.parseDouble(String.valueOf(dataSnapshot.child("participants").child(userID).child("fraction").getValue())) * dataSnapshot.child("amount").getValue(Double.class);
            Double alreadyPaid = dataSnapshot.child("participants").child(userID).child("alreadyPaid").getValue(Double.class);
            expenseBalance = alreadyPaid - dueImport;
            expenseBalance = Math.floor(expenseBalance * 100) / 100;
            if (expenseBalance > 0) {
                balanceTextTextView.setText("For this expense you should receive");
                balanceTextView.setText(expenseBalance.toString() + " " + currency);
            } else if (expenseBalance < 0) {
                balanceTextTextView.setText("For this expense you should pay");
                Double absBalance = abs(expenseBalance);
                balanceTextView.setText(absBalance.toString() + " " + currency);
            } else if (expenseBalance == 0) {
                balanceTextTextView.setText("For this expense you have no debts");
                balanceTextView.setText("0" + " " + currency);
            }
            //Retrieve name and surname of creator
            String creatorID = dataSnapshot.child("creatorID").getValue(String.class);
            databaseReference.child("users").child(creatorID).addListenerForSingleValueEvent(new ValueEventListener() {

                @Override
                public void onDataChange(DataSnapshot dataSnapshot) {
                    String name = dataSnapshot.child("name").getValue(String.class);
                    String surname = dataSnapshot.child("surname").getValue(String.class);
                    creatorNameTextView.setText(name + " " + surname);
                }

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

        @Override
        public void onCancelled(DatabaseError databaseError) {
        }
    });
}
Also used : DecimalFormat(java.text.DecimalFormat) ExpenseDetailPagerAdapter(com.polito.mad17.madmax.activities.ExpenseDetailPagerAdapter) Intent(android.content.Intent) DataSnapshot(com.google.firebase.database.DataSnapshot) ImageView(android.widget.ImageView) View(android.view.View) TextView(android.widget.TextView) DatabaseError(com.google.firebase.database.DatabaseError) TabLayout(android.support.design.widget.TabLayout) ValueEventListener(com.google.firebase.database.ValueEventListener) ActionBar(android.support.v7.app.ActionBar)

Aggregations

DataSnapshot (com.google.firebase.database.DataSnapshot)47 DatabaseError (com.google.firebase.database.DatabaseError)40 ValueEventListener (com.google.firebase.database.ValueEventListener)34 DatabaseReference (com.google.firebase.database.DatabaseReference)14 View (android.view.View)13 LinearLayoutManager (android.support.v7.widget.LinearLayoutManager)11 RecyclerView (android.support.v7.widget.RecyclerView)11 Intent (android.content.Intent)10 Bundle (android.os.Bundle)10 User (com.polito.mad17.madmax.entities.User)10 MutableData (com.google.firebase.database.MutableData)6 Transaction (com.google.firebase.database.Transaction)6 SimpleDateFormat (java.text.SimpleDateFormat)6 Event (com.polito.mad17.madmax.entities.Event)5 ChatMessageHelper (ingage.ingage20.helpers.ChatMessageHelper)5 HashMap (java.util.HashMap)5 TextView (android.widget.TextView)4 ArrayList (java.util.ArrayList)4 ActionBar (android.support.v7.app.ActionBar)3 MenuItem (android.view.MenuItem)3