Search in sources :

Example 1 with Expense

use of com.polito.mad17.madmax.entities.Expense 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 2 with Expense

use of com.polito.mad17.madmax.entities.Expense 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 3 with Expense

use of com.polito.mad17.madmax.entities.Expense in project MadMax by deviz92.

the class PendingExpenseViewAdapter method onBindViewHolder.

@Override
public void onBindViewHolder(final PendingExpenseViewAdapter.ItemExpensesViewHolder holder, int position) {
    if (position == (pendingExpenses.size() - 1)) {
        Log.d(TAG, "item.getKey().equals(\"nullGroup\")");
        holder.imageView.setVisibility(View.GONE);
        holder.nameTextView.setText("");
        holder.groupTextView.setText("");
        holder.yesTextView.setText("");
        holder.noTextView.setText("");
        holder.participantsCountTextView.setText("");
        holder.amountTextView.setText("");
        holder.partecipantsImageView.setVisibility(View.GONE);
        holder.thumbUpButton.setVisibility(View.GONE);
        holder.thumbDownButton.setVisibility(View.GONE);
    } else {
        Expense expense = getItem(position).getValue();
        String p = expense.getGroupImage();
        if (p != null) {
            //int photoUserId = Integer.parseInt(p);
            //holder.imageView.setImageResource(photoUserId);
            Glide.with(layoutInflater.getContext()).load(p).centerCrop().bitmapTransform(new CropCircleTransformation(layoutInflater.getContext())).diskCacheStrategy(DiskCacheStrategy.ALL).into(holder.imageView);
        } else {
            Glide.with(layoutInflater.getContext()).load(R.drawable.group_default).centerCrop().bitmapTransform(new CropCircleTransformation(layoutInflater.getContext())).diskCacheStrategy(DiskCacheStrategy.ALL).into(holder.imageView);
        }
        holder.nameTextView.setText(expense.getDescription());
        holder.groupTextView.setText(expense.getGroupName());
        holder.yesTextView.setText(expense.getYes().toString());
        holder.noTextView.setText(expense.getNo().toString());
        holder.participantsCountTextView.setText(expense.getParticipantsCount().toString());
        holder.imageView.setVisibility(View.VISIBLE);
        holder.partecipantsImageView.setVisibility(View.VISIBLE);
        holder.thumbUpButton.setVisibility(View.VISIBLE);
        holder.thumbDownButton.setVisibility(View.VISIBLE);
        DecimalFormat df = new DecimalFormat("#.##");
        Double amount = expense.getAmount();
        holder.amountTextView.setText(df.format(amount) + " " + expense.getCurrency());
        if (expense.getMyVote().equals("yes")) {
            holder.thumbUpButton.setBackgroundResource(R.drawable.thumb_up_blue);
            holder.thumbDownButton.setBackgroundResource(R.drawable.thumb_down_black);
        } else if (expense.getMyVote().equals("no")) {
            holder.thumbUpButton.setBackgroundResource(R.drawable.thumb_up_black);
            holder.thumbDownButton.setBackgroundResource(R.drawable.thumb_down_blue);
        } else if (expense.getMyVote().equals("null")) {
            holder.thumbUpButton.setBackgroundResource(R.drawable.thumb_up_black);
            holder.thumbDownButton.setBackgroundResource(R.drawable.thumb_down_black);
        }
    }
}
Also used : Expense(com.polito.mad17.madmax.entities.Expense) DecimalFormat(java.text.DecimalFormat) CropCircleTransformation(com.polito.mad17.madmax.entities.CropCircleTransformation)

Example 4 with Expense

use of com.polito.mad17.madmax.entities.Expense 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 5 with Expense

use of com.polito.mad17.madmax.entities.Expense 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

Intent (android.content.Intent)6 DataSnapshot (com.google.firebase.database.DataSnapshot)6 DatabaseError (com.google.firebase.database.DatabaseError)6 ValueEventListener (com.google.firebase.database.ValueEventListener)6 Expense (com.polito.mad17.madmax.entities.Expense)6 SimpleDateFormat (java.text.SimpleDateFormat)4 View (android.view.View)3 ViewGroup (android.view.ViewGroup)3 ImageView (android.widget.ImageView)3 TextView (android.widget.TextView)3 CropCircleTransformation (com.polito.mad17.madmax.entities.CropCircleTransformation)3 Event (com.polito.mad17.madmax.entities.Event)3 Group (com.polito.mad17.madmax.entities.Group)3 User (com.polito.mad17.madmax.entities.User)3 DecimalFormat (java.text.DecimalFormat)3 SharedPreferences (android.content.SharedPreferences)2 ActionBar (android.support.v7.app.ActionBar)2 HashMap (java.util.HashMap)2 Bundle (android.os.Bundle)1 FloatingActionButton (android.support.design.widget.FloatingActionButton)1