use of com.polito.mad17.madmax.entities.User in project MadMax by deviz92.
the class NewMemberActivity method onCreate.
@Override
protected void onCreate(Bundle savedInstanceState) {
Log.d(TAG, "onCreate di NewMemeberAcitivity");
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_new_member);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
buttonInvite = (Button) findViewById(R.id.btn_new_friend);
Intent intent = getIntent();
groupID = intent.getStringExtra("groupID");
groupName = intent.getStringExtra("groupName");
Log.d(TAG, groupID);
friendsListView = (ListView) findViewById(R.id.lv_friends);
friendsAdapter = new HashMapFriendsAdapter(friends);
addedFriendsListView = (ListView) findViewById(R.id.lv_added_members);
addedAdapter = new HashMapFriendsAdapter(alreadySelected);
addedFriendsListView.setAdapter(addedAdapter);
databaseReference.child("users").child(MainActivity.getCurrentUID()).child("friends").addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
Boolean alreadyAdded = false;
for (DataSnapshot friendSnapshot : dataSnapshot.getChildren()) {
if (friendSnapshot.hasChild("sharedGroups")) {
if (friendSnapshot.child("sharedGroups").hasChild(groupID)) {
alreadyAdded = friendSnapshot.child("sharedGroups").child(groupID).getValue(Boolean.class);
}
}
// se sono già nel gruppo => vengono inseriti nell'addedAdapter
if (alreadyAdded) {
FirebaseUtils.getInstance().getFriendInviteToGroup(friendSnapshot.getKey(), groupID, alreadySelected, addedAdapter);
} else // altrimenti vengono inseriti nella lista friendsAdapter degli amici disponibili
{
FirebaseUtils.getInstance().getFriendInviteToGroup(friendSnapshot.getKey(), "", friends, friendsAdapter);
}
}
friendsListView.setAdapter(friendsAdapter);
addedFriendsListView.setAdapter(addedAdapter);
}
@Override
public void onCancelled(DatabaseError databaseError) {
Log.w(TAG, databaseError.getMessage());
}
});
// When i click on one friend of the list
friendsListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
User item = friendsAdapter.getItem(position).getValue();
friends.remove(item.getID());
friendsAdapter.update(friends);
friendsAdapter.notifyDataSetChanged();
alreadySelected.put(item.getID(), item);
addedAdapter.update(alreadySelected);
addedAdapter.notifyDataSetChanged();
}
});
// When i click on one added friend of the list
addedFriendsListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
User item = addedAdapter.getItem(position).getValue();
alreadySelected.remove(item.getID());
addedAdapter.update(alreadySelected);
addedAdapter.notifyDataSetChanged();
friends.put(item.getID(), item);
friendsAdapter.update(friends);
friendsAdapter.notifyDataSetChanged();
}
});
buttonInvite.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Log.d(TAG, "button clicked");
Log.d(TAG, "invite a member to join the group");
// String deepLink = getString(R.string.invitation_deep_link) + "?groupToBeAddedID=" + groupID+ "?inviterToGroupUID=" + MainActivity.getCurrentUID();
Uri.Builder builder = Uri.parse(getString(R.string.invitation_deep_link)).buildUpon().appendQueryParameter("groupToBeAddedID", groupID).appendQueryParameter("inviterID", MainActivity.getCurrentUID());
Intent intent = new AppInviteInvitation.IntentBuilder(getString(R.string.invitation_title)).setDeepLink(builder.build()).setMessage(// .setCustomImage(Uri.parse(getString(R.string.invitation_custom_image)))
getString(R.string.invitationToGroup_message)).setCallToActionText(// todo vedere perchè non mostra questo link
getString(R.string.invitationToGroup)).build();
startActivityForResult(intent, MainActivity.REQUEST_INVITE_GROUP);
}
});
}
use of com.polito.mad17.madmax.entities.User in project MadMax by deviz92.
the class NewMemberActivity method onOptionsItemSelected.
// When I click SAVE
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int itemThatWasClickedId = item.getItemId();
if (itemThatWasClickedId == R.id.action_save) {
for (User newMemeber : alreadySelected.values()) {
FirebaseUtils.getInstance().joinGroupFirebase(newMemeber.getID(), groupID);
// add event for GROUP_MEMBER_ADD
User currentUser = MainActivity.getCurrentUser();
Event event = new Event(groupID, Event.EventType.GROUP_MEMBER_ADD, currentUser.getName() + " " + currentUser.getSurname(), newMemeber.getName() + " " + newMemeber.getSurname());
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);
}
for (User user : friends.values()) {
if (user.getIsInGroupForInvite().equals(groupID)) {
FirebaseUtils.getInstance().removeMemberFirebase(user.getID(), groupID);
// add event for GROUP_MEMBER_REMOVE
User currentUser = MainActivity.getCurrentUser();
Event event = new Event(groupID, Event.EventType.GROUP_MEMBER_REMOVE, currentUser.getName() + " " + currentUser.getSurname(), user.getName() + " " + user.getSurname());
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);
}
}
friends.clear();
alreadySelected.clear();
Toast.makeText(getApplicationContext(), getString(R.string.member_add), Toast.LENGTH_SHORT).show();
Intent intent = new Intent(this, MainActivity.class);
startActivity(intent);
finish();
return true;
}
return super.onOptionsItemSelected(item);
}
use of com.polito.mad17.madmax.entities.User in project MadMax by deviz92.
the class PayExpenseActivity method onOptionsItemSelected.
@Override
public boolean onOptionsItemSelected(MenuItem item) {
Intent intent;
switch(item.getItemId()) {
// Respond to the action bar's Up/Home button
case android.R.id.home:
Log.d(TAG, "Clicked up button");
/*
Intent intent = new Intent(this, GroupDetailActivity.class);
intent.putExtra("groupID", groupID);
intent.putExtra("userID", userID);
startActivity(intent);
*/
onBackPressed();
return true;
case R.id.action_save:
Log.d(TAG, "Clicked pay expense");
Double money = null;
String text = amountEditText.getText().toString();
if (!text.isEmpty()) {
try {
// it means it is double
money = Double.parseDouble(text);
} catch (Exception e1) {
// this means it is not double
e1.printStackTrace();
}
}
if (money != null) {
if (money > debt) {
Toast.makeText(PayExpenseActivity.this, getString(R.string.cannot_pay_more), Toast.LENGTH_SHORT).show();
return true;
} else if (money <= 0) {
Toast.makeText(PayExpenseActivity.this, getString(R.string.invalid_amount), Toast.LENGTH_SHORT).show();
return true;
} else {
Toast.makeText(PayExpenseActivity.this, getString(R.string.paid), Toast.LENGTH_SHORT).show();
payDebtForExpense(userID, expenseID, money);
// add event for USER_PAY
User currentUser = MainActivity.getCurrentUser();
String userID = currentUser.getID();
Event event = new Event(groupID, Event.EventType.USER_PAY, userID, money + " €");
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);
intent = new Intent(this, ExpenseDetailActivity.class);
intent.putExtra("groupID", groupID);
intent.putExtra("userID", userID);
intent.putExtra("expenseID", expenseID);
finish();
startActivity(intent);
return true;
}
} else {
Log.d(TAG, "Error: money is null");
}
return true;
}
return super.onOptionsItemSelected(item);
}
use of com.polito.mad17.madmax.entities.User in project MadMax by deviz92.
the class SplittersViewAdapter method onBindViewHolder.
@Override
public void onBindViewHolder(final SplittersViewAdapter.ItemSplittersViewAdapter holder, final int position) {
final Map.Entry<String, User> item = getItem(position);
String photo = item.getValue().getProfileImage();
if (photo != null) {
Glide.with(context).load(photo).placeholder(R.drawable.user_default).centerCrop().bitmapTransform(new CropCircleTransformation(context)).diskCacheStrategy(DiskCacheStrategy.ALL).into(holder.imageView);
} else {
Glide.with(context).load(R.drawable.user_default).centerCrop().bitmapTransform(new CropCircleTransformation(context)).diskCacheStrategy(DiskCacheStrategy.ALL).into(holder.imageView);
}
Log.d(TAG, "Nome: " + item.getValue().getName());
Log.d(TAG, "Cognome: " + item.getValue().getSurname());
holder.nameTextView.setText(item.getValue().getName() + " " + item.getValue().getSurname());
holder.currencyTextView.setText(item.getValue().getExpenseCurrency());
holder.amountEditText.setText(item.getValue().getSplitPart().toString());
// update MyCustomEditTextListener every time we bind a new item
// so that it knows what item in mDataset to update
holder.myCustomEditTextListener.updateUser(item);
}
use of com.polito.mad17.madmax.entities.User in project MadMax by deviz92.
the class EventsViewAdapter method onBindViewHolder.
@Override
public void onBindViewHolder(final EventViewHolder eventViewHolder, int position) {
final Event event = getItem(position).getValue();
User currentUser = MainActivity.getCurrentUser();
DatabaseReference databaseReference = FirebaseUtils.getDatabaseReference();
switch(event.getEventType()) {
case GROUP_ADD:
eventViewHolder.imageView.setImageResource(R.drawable.group_add);
event.setDescription(event.getSubject() + " " + context.getString(R.string.GROUP_ADD) + " \"" + event.getObject() + "\"");
break;
/*case GROUP_REMOVE:
eventViewHolder.imageView.setImageResource(R.drawable.group_remove);
event.setDescription("\"" + event.getSubject() + "\" " + context.getString(R.string.GROUP_REMOVE) + " \"" + event.getObject() + "\"");
break;*/
case GROUP_EDIT:
eventViewHolder.imageView.setImageResource(R.drawable.group_edit);
event.setDescription(event.getSubject() + " " + context.getString(R.string.GROUP_EDIT) + " \"" + event.getObject() + "\"");
break;
case GROUP_MEMBER_ADD:
eventViewHolder.imageView.setImageResource(R.drawable.user_add);
event.setDescription(event.getSubject() + " " + context.getString(R.string.GROUP_MEMBER_ADD) + " " + event.getObject());
break;
case GROUP_MEMBER_REMOVE:
eventViewHolder.imageView.setImageResource(R.drawable.user_remove);
event.setDescription(event.getSubject() + " " + context.getString(R.string.GROUP_MEMBER_REMOVE) + " " + event.getObject());
break;
case EXPENSE_ADD:
eventViewHolder.imageView.setImageResource(R.drawable.expense_add);
event.setDescription(event.getSubject() + " " + context.getString(R.string.EXPENSE_ADD) + " \"" + event.getObject() + "\"");
break;
case EXPENSE_REMOVE:
eventViewHolder.imageView.setImageResource(R.drawable.expense_remove);
event.setDescription(event.getSubject() + " " + context.getString(R.string.EXPENSE_REMOVE) + " \"" + event.getObject() + "\"");
break;
case EXPENSE_EDIT:
eventViewHolder.imageView.setImageResource(R.drawable.expense_edit);
event.setDescription(event.getSubject() + " " + context.getString(R.string.EXPENSE_EDIT) + " \"" + event.getObject() + "\"");
break;
case PENDING_EXPENSE_ADD:
eventViewHolder.imageView.setImageResource(R.drawable.expense_add);
event.setDescription(event.getSubject() + " " + context.getString(R.string.PENDING_EXPENSE_ADD) + " \"" + event.getObject() + "\"");
break;
case PENDING_EXPENSE_REMOVE:
eventViewHolder.imageView.setImageResource(R.drawable.expense_remove);
event.setDescription(event.getSubject() + " " + context.getString(R.string.PENDING_EXPENSE_REMOVE) + " \"" + event.getObject() + "\"");
break;
case PENDING_EXPENSE_EDIT:
eventViewHolder.imageView.setImageResource(R.drawable.expense_edit);
event.setDescription(event.getSubject() + " " + context.getString(R.string.PENDING_EXPENSE_EDIT) + " \"" + event.getObject() + "\"");
break;
case PENDING_EXPENSE_VOTE_UP:
eventViewHolder.imageView.setImageResource(R.drawable.thumb_up_black);
event.setDescription(event.getSubject() + " " + context.getString(R.string.PENDING_EXPENSE_VOTE) + " \"" + event.getObject() + "\"");
break;
case PENDING_EXPENSE_VOTE_DOWN:
eventViewHolder.imageView.setImageResource(R.drawable.thumb_down_black);
event.setDescription(event.getSubject() + " " + context.getString(R.string.PENDING_EXPENSE_VOTE) + " \"" + event.getObject() + "\"");
break;
case PENDING_EXPENSE_APPROVED:
eventViewHolder.imageView.setImageResource(R.drawable.expense_add);
event.setDescription(context.getString(R.string.PENDING_EXPENSE) + " \"" + event.getObject() + "\" " + context.getString(R.string.PENDING_EXPENSE_APPROVED));
break;
case PENDING_EXPENSE_NEGLECTED:
eventViewHolder.imageView.setImageResource(R.drawable.pending_expense_neglected);
event.setDescription(context.getString(R.string.PENDING_EXPENSE) + " \"" + event.getObject() + "\" " + context.getString(R.string.PENDING_EXPENSE_NEGLECTED));
break;
/*case FRIEND_INVITE:
eventViewHolder.imageView.setImageResource(R.drawable.user_add);
event.setDescription(context.getString(R.string.FRIEND_INVITE) + " \"" + event.getObject() + "\"");
break;*/
case FRIEND_GROUP_INVITE:
eventViewHolder.imageView.setImageResource(R.drawable.user_add);
event.setDescription(context.getString(R.string.FRIEND_GROUP_INVITE) + " " + event.getObject());
break;
case // instead of the username the subject must be the ID of the user
USER_PAY:
eventViewHolder.imageView.setImageResource(R.drawable.user_pay);
if (currentUser.getID().equals(event.getSubject())) {
event.setDescription(context.getString(R.string.ME_PAY) + " " + event.getObject());
} else {
databaseReference.child("users").child(event.getSubject()).addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
event.setDescription(dataSnapshot.child("name").getValue(String.class) + " " + dataSnapshot.child("surname").getValue(String.class) + " " + context.getString(R.string.FRIEND_PAY) + " " + event.getObject());
}
@Override
public void onCancelled(DatabaseError databaseError) {
Log.w(TAG, databaseError.toException());
}
});
}
break;
case // instead of the username the subject must be the ID of the user
USER_COMMENT_ADD:
eventViewHolder.imageView.setImageResource(R.drawable.user_comment);
if (currentUser.getID().equals(event.getSubject())) {
event.setDescription(context.getString(R.string.ME_COMMENT_ADD) + " \"" + event.getObject() + "\"");
} else {
databaseReference.child("users").child(event.getSubject()).addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
event.setDescription(dataSnapshot.child("name").getValue(String.class) + " " + dataSnapshot.child("surname").getValue(String.class) + " " + context.getString(R.string.FRIEND_COMMENT_ADD) + " \"" + event.getObject() + "\"");
}
@Override
public void onCancelled(DatabaseError databaseError) {
Log.w(TAG, databaseError.toException());
}
});
}
break;
default:
eventViewHolder.imageView.setImageResource(R.drawable.event_default);
event.setDescription("\"" + event.getSubject() + "\" " + context.getString(R.string.did) + " \"" + event.getObject() + "\"");
}
eventViewHolder.descriptionTextView.setText(event.getDescription());
eventViewHolder.timestampTextView.setText(context.getString(R.string.day) + " " + event.getDate() + " " + context.getString(R.string.at) + " " + event.getTime());
}
Aggregations