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);
}
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);
}
}
});
}
}
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();
}
});
}
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();
}
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();
}
Aggregations