Search in sources :

Example 1 with Notification

use of com.cmput301w18t05.taskzilla.Notification in project Taskzilla by CMPUT301W18T05.

the class ViewTaskActivity method thePinkButton.

/**
 * thePinkButton
 * when the task is requested or bidded
 * there will be a pink button where the requester can decline one of the existing bids
 * onclick it shows a dialog with a listview of existing bids and a button to confirm declination
 *
 * @param view the view this button is in
 * @author myapplestory
 */
public void thePinkButton(android.view.View view) {
    final AlertDialog mBuilder = new AlertDialog.Builder(ViewTaskActivity.this).create();
    final View mView = getLayoutInflater().inflate(R.layout.dialog_decline_bid, null);
    final ListView declineBidListView = mView.findViewById(R.id.DeclineBidList);
    final Button declineBidButton = mView.findViewById(R.id.DeclineBidButton);
    ArrayList<String> tempList = new ArrayList<>();
    selectedBid = null;
    if (BidList.isEmpty()) {
        tempList.add("No bids :'(");
        ArrayAdapter<String> adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, tempList);
        declineBidListView.setAdapter(adapter);
        declineBidButton.setText("SAD");
        declineBidButton.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View view) {
                mBuilder.dismiss();
            }
        });
    } else {
        for (Bid bid : BidList) {
            ProfileController controller = new ProfileController(mView, getBaseContext());
            controller.setUserID(bid.getUserId());
            controller.getUserRequest();
            DecimalFormat cents = new DecimalFormat("#0.00");
            tempList.add("Best bidder: " + controller.getUser().getName() + "\nBid Amount: $" + cents.format(bid.getBidAmount()));
        }
        ArrayAdapter<String> adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_single_choice, tempList);
        declineBidListView.setAdapter(adapter);
        declineBidListView.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
        declineBidButton.setText("DECLINE BID");
        declineBidListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {

            @Override
            public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
                selectedBid = BidList.get(i);
            }
        });
        declineBidButton.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View view) {
                if (selectedBid == null) {
                    Toast.makeText(ViewTaskActivity.this, "Select a bid before declining", Toast.LENGTH_SHORT).show();
                    return;
                }
                RemoveBidRequest removeRequest = new RemoveBidRequest(selectedBid);
                RequestManager.getInstance().invokeRequest(removeRequest);
                String temp = "Your bid has been declined!";
                Notification notification = new Notification("Bid Declined", task.getRequesterId(), selectedBid.getUserId(), taskID, taskName, temp, currentUser.getInstance());
                NotificationManager.getInstance().sendNotification(notification);
                BidList.remove(selectedBid);
                updateBidsList();
                if (BidList.size() == 1) {
                    EditButton.setVisibility(View.VISIBLE);
                    task.setStatus("requested");
                    TaskStatus.setText("requested");
                    updateBidsList();
                } else {
                    Float bestBidTemp = -1.0f;
                    String bestBidderIdTemp = "-1";
                    for (Bid bid : BidList) {
                        if (bestBidTemp == -1.0f) {
                            bestBidTemp = bid.getBidAmount();
                            GetUserRequest request = new GetUserRequest(bid.getUserId());
                            RequestManager.getInstance().invokeRequest(getApplicationContext(), request);
                            User tempBidder = request.getResult();
                            bestBidderIdTemp = tempBidder.getId();
                        }
                        if (bid.getBidAmount() < bestBidTemp && !task.getBestBidder().equals(bid.getUserId())) {
                            Log.i("CHANGE", bid.getBidAmount().toString());
                            bestBidTemp = bid.getBidAmount();
                            GetUserRequest request = new GetUserRequest(bid.getUserId());
                            RequestManager.getInstance().invokeRequest(getApplicationContext(), request);
                            User tempBidder = request.getResult();
                            bestBidderIdTemp = tempBidder.getId();
                        }
                    }
                    task.setBestBid(bestBidTemp);
                    task.setBestBidder(bestBidderIdTemp);
                    task.updateThis();
                }
                setProviderField();
                mBuilder.dismiss();
            }
        });
    }
    mBuilder.setView(mView);
    mBuilder.show();
}
Also used : AlertDialog(android.support.v7.app.AlertDialog) ProfileController(com.cmput301w18t05.taskzilla.controller.ProfileController) GetUserRequest(com.cmput301w18t05.taskzilla.request.command.GetUserRequest) User(com.cmput301w18t05.taskzilla.User) com.cmput301w18t05.taskzilla.currentUser(com.cmput301w18t05.taskzilla.currentUser) DecimalFormat(java.text.DecimalFormat) ArrayList(java.util.ArrayList) Notification(com.cmput301w18t05.taskzilla.Notification) ListView(android.widget.ListView) ExpandableListView(android.widget.ExpandableListView) ImageButton(android.widget.ImageButton) Button(android.widget.Button) Bid(com.cmput301w18t05.taskzilla.Bid) View(android.view.View) AdapterView(android.widget.AdapterView) TextView(android.widget.TextView) ListView(android.widget.ListView) RecyclerView(android.support.v7.widget.RecyclerView) ScrollView(android.widget.ScrollView) ExpandableListView(android.widget.ExpandableListView) RemoveBidRequest(com.cmput301w18t05.taskzilla.request.command.RemoveBidRequest) AdapterView(android.widget.AdapterView) ArrayAdapter(android.widget.ArrayAdapter)

Example 2 with Notification

use of com.cmput301w18t05.taskzilla.Notification in project Taskzilla by CMPUT301W18T05.

the class NotificationsController method removeAllNotificationRequest.

/**
 *  Removes all notifications from the elasticsearch server and clears arraylist containing all
 *  notifications
 */
public void removeAllNotificationRequest() {
    GetNotificationsByUserIdRequest request = new GetNotificationsByUserIdRequest(cUser.getId());
    RequestManager.getInstance().invokeRequest(request);
    for (Notification n : request.getResult()) {
        RemoveNotificationRequest removeNotificationRequest = new RemoveNotificationRequest(n.getId());
        RequestManager.getInstance().invokeRequest(removeNotificationRequest);
    }
    notificationList.clear();
    view.notifyChange();
}
Also used : GetNotificationsByUserIdRequest(com.cmput301w18t05.taskzilla.request.command.GetNotificationsByUserIdRequest) RemoveNotificationRequest(com.cmput301w18t05.taskzilla.request.command.RemoveNotificationRequest) Notification(com.cmput301w18t05.taskzilla.Notification)

Example 3 with Notification

use of com.cmput301w18t05.taskzilla.Notification in project Taskzilla by CMPUT301W18T05.

the class NotificationsController method removeNotificationRequest.

/**
 *  Removes notification user clicked on.
 *
 * @param id    Notification to be removed from elasticsearch server
 * @param pos   Position in arraylist containing the notification
 */
public void removeNotificationRequest(String id, Integer pos) {
    RemoveNotificationRequest request = new RemoveNotificationRequest(id);
    RequestManager.getInstance().invokeRequest(ctx, request);
    notificationList.remove(pos);
    view.notifyChange();
}
Also used : RemoveNotificationRequest(com.cmput301w18t05.taskzilla.request.command.RemoveNotificationRequest)

Example 4 with Notification

use of com.cmput301w18t05.taskzilla.Notification in project Taskzilla by CMPUT301W18T05.

the class NotificationsController method getNotificationsRequest.

/**
 * Sends a notification request to the manager which gets all notifications by userid
 */
public void getNotificationsRequest() {
    GetNotificationsByUserIdRequest request = new GetNotificationsByUserIdRequest(cUser.getId());
    RequestManager.getInstance().invokeRequest(ctx, request);
    notificationList.clear();
    notificationList.addAll(request.getResult());
    view.notifyChange();
}
Also used : GetNotificationsByUserIdRequest(com.cmput301w18t05.taskzilla.request.command.GetNotificationsByUserIdRequest)

Example 5 with Notification

use of com.cmput301w18t05.taskzilla.Notification in project Taskzilla by CMPUT301W18T05.

the class NotificationManager method sendNotification.

/**
 *  This method invokes a request to the requestmanager which inserts the notification to the
 *  elasticsearch server
 *
 * @param notification  Notification to be inserted
 * @see   AddNotificationRequest
 */
public void sendNotification(Notification notification) {
    AddNotificationRequest task = new AddNotificationRequest(notification);
    RequestManager.getInstance().invokeRequest(task);
}
Also used : AddNotificationRequest(com.cmput301w18t05.taskzilla.request.command.AddNotificationRequest)

Aggregations

View (android.view.View)2 AdapterView (android.widget.AdapterView)2 ListView (android.widget.ListView)2 Notification (com.cmput301w18t05.taskzilla.Notification)2 AddNotificationRequest (com.cmput301w18t05.taskzilla.request.command.AddNotificationRequest)2 GetNotificationsByUserIdRequest (com.cmput301w18t05.taskzilla.request.command.GetNotificationsByUserIdRequest)2 RemoveBidRequest (com.cmput301w18t05.taskzilla.request.command.RemoveBidRequest)2 RemoveNotificationRequest (com.cmput301w18t05.taskzilla.request.command.RemoveNotificationRequest)2 AlertDialog (android.app.AlertDialog)1 DialogInterface (android.content.DialogInterface)1 ConstraintLayout (android.support.constraint.ConstraintLayout)1 AlertDialog (android.support.v7.app.AlertDialog)1 RecyclerView (android.support.v7.widget.RecyclerView)1 ArrayAdapter (android.widget.ArrayAdapter)1 Button (android.widget.Button)1 ExpandableListView (android.widget.ExpandableListView)1 ImageButton (android.widget.ImageButton)1 ScrollView (android.widget.ScrollView)1 TextView (android.widget.TextView)1 Bid (com.cmput301w18t05.taskzilla.Bid)1