Search in sources :

Example 6 with User

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

the class EditTaskActivity method onCreate.

/**
 * Activity uses the activity_edit_task.xml layout
 * Initialize a task with edited fields
 */
@Override
protected void onCreate(Bundle savedInstanceState) {
    task = new Task();
    ctx = getApplicationContext();
    super.onCreate(savedInstanceState);
    setTitle("Edit Task");
    setContentView(R.layout.activity_edit_task);
    Double taskLat = Double.parseDouble(getIntent().getStringExtra("Lat"));
    Double taskLon = Double.parseDouble(getIntent().getStringExtra("Lon"));
    taskLocation = new LatLng(taskLat, taskLon);
    // Obtain the SupportMapFragment and get notified when the map is ready to be used.
    SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.dragdropMap2);
    mapFragment.getMapAsync(this);
    locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
    currentLocationButton = findViewById(R.id.currentLocationButton);
    autocompleteFragment = (PlaceAutocompleteFragment) getFragmentManager().findFragmentById(R.id.place_autocomplete_fragment);
    autocompleteFragment.setOnPlaceSelectedListener(new PlaceSelectionListener() {

        /**
         * When the user searchs a location
         * set the hint and the taskLocation
         * @param place
         */
        @Override
        public void onPlaceSelected(Place place) {
            // TODO: Get info about the selected place.
            autocompleteFragment.setHint(place.getName());
            taskLocation = place.getLatLng();
        }

        @Override
        public void onError(Status status) {
            // TODO: Handle the error.
            taskLocation = null;
            Log.i("err", "An error occurred: " + status);
        }
    });
    autocompleteFragment.setHint(getIntent().getStringExtra("Lat") + ", " + getIntent().getStringExtra("Lon"));
    autocompleteFragment.setText(getIntent().getStringExtra("Lat") + ", " + getIntent().getStringExtra("Lon"));
    getLocation();
    autocompleteFragment.setBoundsBias(new LatLngBounds(new LatLng(lat - 0.25, lon - 0.25), new LatLng(lat + 0.25, lon + 0.25)));
    currentLocationButton.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View view) {
            setCurrentLocation();
        }
    });
    AppColors appColors = AppColors.getInstance();
    ActionBar actionBar = getSupportActionBar();
    actionBar.setBackgroundDrawable(new ColorDrawable(Color.parseColor(appColors.getActionBarColor())));
    actionBar.setTitle(Html.fromHtml("<font color='" + appColors.getActionBarTextColor() + "'>Taskzilla</font>"));
    EditText TaskNameText = findViewById(R.id.TaskName);
    EditText DescriptionText = findViewById(R.id.Description);
    String taskName = getIntent().getStringExtra("task Name");
    String taskDescription = getIntent().getStringExtra("Description");
    // Dummy
    task.setName(taskName);
    // Dummy
    task.setDescription(taskDescription);
    TaskNameText.setText(task.getName());
    DescriptionText.setText(task.getDescription());
    photos = new ArrayList<>();
    ArrayList<String> photosString = getIntent().getStringArrayListExtra("photos");
    for (int i = 0; i < photosString.size(); i++) {
        Log.i("test", photosString.get(i));
        photos.add(new Photo(photosString.get(i)));
    }
    recyclerPhotosView = findViewById(R.id.listOfPhotos);
    layoutManager = new LinearLayoutManager(ctx, LinearLayoutManager.HORIZONTAL, false);
    recyclerPhotosView.setLayoutManager(layoutManager);
    recyclerPhotosViewAdapter = new RecyclerViewAdapter(ctx, photos, new CustomOnItemClick() {

        @Override
        public void onColumnClicked(final int position) {
            // taken from https://stackoverflow.com/questions/2115758/how-do-i-display-an-alert-dialog-on-android
            // 2018-03-16
            AlertDialog.Builder alert = new AlertDialog.Builder(EditTaskActivity.this);
            alert.setTitle("Delete Photo");
            alert.setMessage("Are you sure you want to delete this photo?");
            // DELETE CODE
            alert.setPositiveButton("Yes", new DialogInterface.OnClickListener() {

                @Override
                public void onClick(DialogInterface dialogInterface, int i) {
                    photos.remove(position);
                    dialogInterface.dismiss();
                    recyclerPhotosViewAdapter.notifyDataSetChanged();
                }
            });
            // DELETE CANCEL CODE
            alert.setNegativeButton("No", new DialogInterface.OnClickListener() {

                @Override
                public void onClick(DialogInterface dialogInterface, int i) {
                    dialogInterface.dismiss();
                }
            });
            alert.show();
        }
    });
    recyclerPhotosView.setAdapter(recyclerPhotosViewAdapter);
}
Also used : AlertDialog(android.support.v7.app.AlertDialog) Task(com.cmput301w18t05.taskzilla.Task) DialogInterface(android.content.DialogInterface) Photo(com.cmput301w18t05.taskzilla.Photo) RecyclerViewAdapter(com.cmput301w18t05.taskzilla.RecyclerViewAdapter) LinearLayoutManager(android.support.v7.widget.LinearLayoutManager) CustomOnItemClick(com.cmput301w18t05.taskzilla.CustomOnItemClick) AppColors(com.cmput301w18t05.taskzilla.AppColors) SupportMapFragment(com.google.android.gms.maps.SupportMapFragment) LatLng(com.google.android.gms.maps.model.LatLng) ActionBar(android.support.v7.app.ActionBar) Status(com.google.android.gms.common.api.Status) EditText(android.widget.EditText) LatLngBounds(com.google.android.gms.maps.model.LatLngBounds) PlaceSelectionListener(com.google.android.gms.location.places.ui.PlaceSelectionListener) View(android.view.View) RecyclerView(android.support.v7.widget.RecyclerView) ColorDrawable(android.graphics.drawable.ColorDrawable) Place(com.google.android.gms.location.places.Place)

Example 7 with User

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

the class MapActivity method onMapReady.

/**
 * Manipulates the map once available.
 * This callback is triggered when the map is ready to be used.
 * This is where we can add markers or lines, add listeners or move the camera. In this case,
 * we just add a marker near Sydney, Australia.
 * If Google Play services is not installed on the device, the user will be prompted to install
 * it inside the SupportMapFragment. This method will only be triggered once the user has
 * installed Google Play services and returned to the app.
 */
@Override
public void onMapReady(GoogleMap googleMap) {
    getLocation();
    mMap = googleMap;
    if (getIntent().getStringExtra("drag") != null) {
        LatLng yourLocation = new LatLng(lat, lon);
        moveToCurrentLocation(yourLocation);
        final Marker locationMarker = mMap.addMarker(new MarkerOptions().position(new LatLng(lat, lon)).title("Hold and drag to pick your task location").draggable(true));
        locationMarker.showInfoWindow();
        mMap.setOnMarkerDragListener(new GoogleMap.OnMarkerDragListener() {

            /**
             * Hide marker window when dragging
             * @param arg0
             */
            @Override
            public void onMarkerDragStart(Marker arg0) {
                // TODO Auto-generated method stub
                arg0.hideInfoWindow();
            }

            /**
             * Show LatLon of final location of their marker and prompt user to click
             * Switch back to previous activity returning the latitude and longitude
             * @param arg0
             */
            @SuppressWarnings("unchecked")
            @Override
            public void onMarkerDragEnd(Marker arg0) {
                // TODO Auto-generated method stub
                DecimalFormat df = new DecimalFormat("#.#####");
                mMap.animateCamera(CameraUpdateFactory.newLatLng(arg0.getPosition()));
                arg0.setTitle("Lat: " + Double.toString(Double.valueOf(df.format(arg0.getPosition().latitude))) + " Lon: " + Double.toString(Double.valueOf(df.format(arg0.getPosition().longitude))));
                arg0.setSnippet("Click here to confirm location");
                arg0.showInfoWindow();
                mMap.setOnInfoWindowClickListener(new GoogleMap.OnInfoWindowClickListener() {

                    @Override
                    public void onInfoWindowClick(Marker marker) {
                        Intent intent = new Intent();
                        intent.putExtra("Lat", Double.toString(Double.valueOf(marker.getPosition().latitude)));
                        intent.putExtra("Lon", Double.toString(Double.valueOf(marker.getPosition().longitude)));
                        setResult(RESULT_OK, intent);
                        finish();
                    }
                });
            }

            /**
             * Hide window when dragging marker on map
             * @param arg0
             */
            @Override
            public void onMarkerDrag(Marker arg0) {
                // TODO Auto-generated method stub
                arg0.hideInfoWindow();
            }
        });
    } else if (getIntent().getStringExtra("lat") != null) {
        LatLng tLocation = new LatLng(Double.parseDouble(getIntent().getStringExtra("lat")), Double.parseDouble(getIntent().getStringExtra("lon")));
        mMap.addMarker(new MarkerOptions().position(tLocation).title(getIntent().getStringExtra("TaskName")).icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_RED))).showInfoWindow();
        mMap.moveCamera(CameraUpdateFactory.newLatLng(tLocation));
        moveToCurrentLocation(tLocation);
        LatLng yourLocation = new LatLng(lat, lon);
        mMap.addMarker(new MarkerOptions().position(yourLocation).title("Your Location").icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_CYAN))).showInfoWindow();
    } else {
        myLocation = new Location("You");
        myLocation.setLatitude(lat);
        myLocation.setLongitude(lon);
        myLocation.setTime(new Date().getTime());
        // Add a marker to your location and move the camera
        LatLng yourLocation = new LatLng(lat, lon);
        mMap.addMarker(new MarkerOptions().position(yourLocation).title("Your Location").icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_CYAN))).showInfoWindow();
        mMap.moveCamera(CameraUpdateFactory.newLatLng(yourLocation));
        moveToCurrentLocation(yourLocation);
        mMap.addCircle(new CircleOptions().center(yourLocation).radius(5000).strokeColor(Color.RED).strokeWidth((float) 5.0));
        Location taskLocation;
        // *Add locations of tasks*//
        for (Task t : tasks) {
            if (t.getLocation() != null) {
                taskLocation = new Location("Task");
                taskLocation.setLatitude(t.getLocation().latitude);
                taskLocation.setLongitude(t.getLocation().longitude);
                // Set time as current Date
                taskLocation.setTime(new Date().getTime());
                if (myLocation.distanceTo(taskLocation) <= 5000) {
                    LatLng taskslonlat = new LatLng(t.getLocation().latitude, t.getLocation().longitude);
                    if (t.getStatus().equalsIgnoreCase("requested")) {
                        mMap.addMarker(new MarkerOptions().position(taskslonlat).title(t.getName()).snippet("No Bids").icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_GREEN))).setTag(t.getId());
                    }
                    if (t.getStatus().equalsIgnoreCase("bidded")) {
                        mMap.addMarker(new MarkerOptions().position(taskslonlat).title(t.getName()).snippet("Best Bid: $" + t.getBestBid().toString()).icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_ORANGE))).setTag(t.getId());
                    }
                }
            }
        }
        mMap.setOnInfoWindowClickListener(new GoogleMap.OnInfoWindowClickListener() {

            @Override
            public void onInfoWindowClick(Marker marker) {
                if (marker.getTag() != null) {
                    Intent intent = new Intent(getApplicationContext(), ViewTaskActivity.class);
                    intent.putExtra("TaskId", marker.getTag().toString());
                    startActivity(intent);
                }
            }
        });
    }
}
Also used : Task(com.cmput301w18t05.taskzilla.Task) MarkerOptions(com.google.android.gms.maps.model.MarkerOptions) DecimalFormat(java.text.DecimalFormat) Intent(android.content.Intent) Marker(com.google.android.gms.maps.model.Marker) Date(java.util.Date) CircleOptions(com.google.android.gms.maps.model.CircleOptions) GoogleMap(com.google.android.gms.maps.GoogleMap) LatLng(com.google.android.gms.maps.model.LatLng) Location(android.location.Location)

Example 8 with User

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

the class EditProfileActivity method onCreate.

/**
 * this runs when activity created, setting the default fields for the user
 *
 * @param savedInstanceState
 */
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setTitle("Edit Profile");
    setContentView(R.layout.activity_edit_profile);
    AppColors appColors = AppColors.getInstance();
    ActionBar actionBar = getSupportActionBar();
    actionBar.setBackgroundDrawable(new ColorDrawable(Color.parseColor(appColors.getActionBarColor())));
    actionBar.setTitle(Html.fromHtml("<font color='" + appColors.getActionBarTextColor() + "'>Taskzilla</font>"));
    NameText = findViewById(R.id.NameField);
    EmailText = findViewById(R.id.EmailField);
    PhoneText = findViewById(R.id.Phone);
    profilePicture = findViewById(R.id.ProfilePictureView);
    String userName = getIntent().getStringExtra("Name");
    String userEmail = getIntent().getStringExtra("Email");
    String userPhone = getIntent().getStringExtra("Phone");
    String userPicture = getIntent().getStringExtra("Photo");
    user.setName(userName);
    user.setEmail(new EmailAddress(userEmail));
    user.setPhone(new PhoneNumber(userPhone));
    NameText.setText(user.getName());
    EmailText.setText(user.getEmail().toString());
    PhoneText.setText(user.getPhone().toString());
    try {
        user.setPhoto(new Photo(userPicture));
        profilePicture.setImageBitmap(user.getPhoto().StringToBitmap());
    } catch (Exception e) {
        Photo defaultPhoto = new Photo("");
        profilePicture.setImageBitmap(defaultPhoto.StringToBitmap());
    }
    profilePicture.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            profilePictureClicked();
        }
    });
}
Also used : AppColors(com.cmput301w18t05.taskzilla.AppColors) ColorDrawable(android.graphics.drawable.ColorDrawable) PhoneNumber(com.cmput301w18t05.taskzilla.PhoneNumber) Photo(com.cmput301w18t05.taskzilla.Photo) ImageView(android.widget.ImageView) View(android.view.View) ActionBar(android.support.v7.app.ActionBar) EmailAddress(com.cmput301w18t05.taskzilla.EmailAddress)

Example 9 with User

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

the class MainActivity method getUser.

public User getUser(String username) {
    GetUserByUsernameRequest getUserByUsernameRequest = new GetUserByUsernameRequest(username);
    RequestManager.getInstance().invokeRequest(getUserByUsernameRequest);
    return getUserByUsernameRequest.getResult();
}
Also used : GetUserByUsernameRequest(com.cmput301w18t05.taskzilla.request.command.GetUserByUsernameRequest)

Example 10 with User

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

the class ProfileActivity method providerRatingOnClick.

/**
 * when the provider rating is clicked (number), open a dialog showing all the provider reviews
 * and ratings on the user of the profile
 */
public void providerRatingOnClick() {
    final AlertDialog mBuilder = new AlertDialog.Builder(this).create();
    final View mView = getLayoutInflater().inflate(R.layout.dialog_review_list, null);
    final ListView ReviewsListView = mView.findViewById(R.id.ReviewsListView);
    final TextView ReviewBannerTextView = mView.findViewById(R.id.ReviewsBannerTextView);
    GetReviewsByUserIdRequest request = new GetReviewsByUserIdRequest(user.getId());
    RequestManager.getInstance().invokeRequest(request);
    ArrayList<Review> ReviewsList = request.getResult();
    for (Review review : ReviewsList) {
        if (review.getReviewType().equals("r")) {
            ReviewsList.remove(review);
        }
    }
    if (ReviewsList.isEmpty()) {
        ArrayList<String> tempList = new ArrayList<>();
        tempList.add("No reviews yet :/");
        ArrayAdapter<String> adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, tempList);
        ReviewsListView.setAdapter(adapter);
    } else {
        ArrayAdapter<Review> adapter = new ReviewCustomAdapter(this, R.layout.list_view_review, ReviewsList);
        ReviewsListView.setAdapter(adapter);
    }
    String text = "Reviews for " + currentUser.getInstance().getName() + " as a provider";
    ReviewBannerTextView.setText(text);
    mBuilder.setView(mView);
    mBuilder.show();
}
Also used : AlertDialog(android.support.v7.app.AlertDialog) ArrayList(java.util.ArrayList) Review(com.cmput301w18t05.taskzilla.Review) ImageView(android.widget.ImageView) View(android.view.View) TextView(android.widget.TextView) ListView(android.widget.ListView) ListView(android.widget.ListView) GetReviewsByUserIdRequest(com.cmput301w18t05.taskzilla.request.command.GetReviewsByUserIdRequest) TextView(android.widget.TextView) ReviewCustomAdapter(com.cmput301w18t05.taskzilla.ReviewCustomAdapter) ArrayAdapter(android.widget.ArrayAdapter)

Aggregations

View (android.view.View)13 Task (com.cmput301w18t05.taskzilla.Task)11 AddUserRequest (com.cmput301w18t05.taskzilla.request.command.AddUserRequest)8 AlertDialog (android.support.v7.app.AlertDialog)6 ListView (android.widget.ListView)6 TextView (android.widget.TextView)6 Photo (com.cmput301w18t05.taskzilla.Photo)6 EditText (android.widget.EditText)5 AddTaskRequest (com.cmput301w18t05.taskzilla.request.command.AddTaskRequest)5 ArrayList (java.util.ArrayList)5 Intent (android.content.Intent)4 ColorDrawable (android.graphics.drawable.ColorDrawable)4 ActionBar (android.support.v7.app.ActionBar)4 RecyclerView (android.support.v7.widget.RecyclerView)4 AdapterView (android.widget.AdapterView)4 ImageButton (android.widget.ImageButton)4 User (com.cmput301w18t05.taskzilla.User)4 DialogInterface (android.content.DialogInterface)3 LinearLayoutManager (android.support.v7.widget.LinearLayoutManager)3 ArrayAdapter (android.widget.ArrayAdapter)3