use of pinkpanthers.pinkshelters.Model.Shelter in project pink-panthers by MrTrai.
the class UserInfoActivity method updateOnClick.
/**
* Set Click Event Update Info Button
* Update the information of the user when click
*
* @param v current view that holds the update button
*/
public void updateOnClick(@SuppressWarnings("unused") View v) {
updateRestrictionList();
// require homeless to select at least one restriction to update
if (restrictionList.isEmpty()) {
buttonStatus.setText("Please select restriction(s) to update");
buttonStatus.setVisibility(View.VISIBLE);
finish();
startActivity(getIntent());
} else {
try {
homeless.setRestrictionsMatch(restrictionList);
homeless.setFamilyMemberNumber(familySize);
// checked if homeless has already claimed beds
if ((homeless.getShelterId() != 0) && (db.getShelterById(homeless.getShelterId()) != null)) {
Shelter shelter = db.getShelterById(homeless.getShelterId());
// create dialog
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Confirm cancellation to update info");
builder.setMessage("Are you sure to cancel bed(s) claimed at" + shelter.getShelterName() + "?");
// if homeless presses on YES, then cancel claimed beds
builder.setPositiveButton("YES", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
try {
Shelter shelter = db.getShelterById(homeless.getShelterId());
int vacancy = shelter.getVacancy() + familySize;
int occupancy = shelter.getUpdate_capacity() - vacancy;
homeless.setShelterId(0);
db.updateShelterOccupancy(shelter.getId(), occupancy);
if (restrictionList.isEmpty()) {
buttonStatus.setText("Please select restriction(s) to update");
buttonStatus.setVisibility(View.VISIBLE);
finish();
startActivity(getIntent());
} else {
// send that homeless to db.
db.updateAccount(homeless);
// show successful text and reset everything()
buttonStatus.setText("Update successfully");
buttonStatus.setVisibility(View.VISIBLE);
finish();
startActivity(getIntent());
}
} catch (SQLException e) {
e.printStackTrace();
} catch (NoSuchUserException e) {
e.printStackTrace();
}
dialog.cancel();
}
});
// if homeless presses NO then nothing happens
builder.setNegativeButton("NO", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
restrictionList.clear();
finish();
startActivity(getIntent());
dialog.cancel();
}
});
AlertDialog alert = builder.create();
alert.show();
// if homeless has not claimed any beds yet, then update info
} else {
// send that homeless to db.
db.updateAccount(homeless);
// show successful text and reset everything()
buttonStatus.setText("Update successfully");
buttonStatus.setVisibility(View.VISIBLE);
}
} catch (SQLException e) {
e.printStackTrace();
} catch (NoSuchUserException e) {
e.printStackTrace();
}
}
}
use of pinkpanthers.pinkshelters.Model.Shelter in project pink-panthers by MrTrai.
the class DbUnitTest method testGetAllShelters.
@Test
public void testGetAllShelters() {
List<Shelter> shelters = db.getAllShelters();
assertNotNull(shelters);
assertEquals(13, shelters.size());
ArrayList<String> shelterNamesArr = new ArrayList<>();
ArrayList<String> addressArr = new ArrayList<>();
ArrayList<String> capArr = new ArrayList<>();
// Get Values
for (Shelter each : shelters) {
capArr.add(each.getCapacity());
shelterNamesArr.add(each.getShelterName());
addressArr.add(each.getAddress());
}
// Test Capacity
String[] capTest = { "264", "140", "450", "92", "40", "32 for families, 80 singles", "76 family rooms ", "80", "", "22 apartments", "330", "12", "" };
// Test Address
String[] addressTest = { "921 Howell Mill Road, Atlanta, Georgia 30318", "655 Ethel Street, Atlanta, Georgia 30318", "156 Mills Street, Atlanta, Georgia 30313", "144 Mills Street, Atlanta, Georgia 30313", "607 Peachtree Street NE Atlanta, GA 30308", "1300 Joseph E. Boone Blvd NW, Atlanta, GA 30314", "173 Boulevard Northeast, Atlanta, GA 30312", "1559 Johnson Road NW, Atlanta, GA 30318", "830 Boulevard SE, Atlanta, GA 30312", "34 Peachtree Street NW, Suite 700, Atlanta, GA 30303", "275 Pryor St. SW, Atlanta, GA 30303", "1230 Hightower Road NW Atlanta, GA 30318", "1800 Memorial Dr SE G3, Atlanta, GA 30317" };
// Test Shelter Names
String[] shelterNamesTest = { "My Sister's House", "The Atlanta Day Center for Women & Children", "The Shepherd's Inn", "Fuqua Hall", "Atlanta's Children Center", "Eden Village ", "Our House ", "Covenant House Georgia ", "Nicholas House", "Hope Atlanta ", "Gateway Center", "Young Adult Guidance Center ", "Homes of Light " };
assertArrayEquals(shelterNamesTest, shelterNamesArr.toArray());
assertArrayEquals(addressTest, addressArr.toArray());
assertArrayEquals(capTest, capArr.toArray());
}
use of pinkpanthers.pinkshelters.Model.Shelter in project pink-panthers by MrTrai.
the class MapsActivity method setMarkersOnMap.
/**
* Refresh the map with new results
*/
private void setMarkersOnMap() {
mMap.clear();
LatLng shelterLocation;
for (Shelter shelter : myShelters) {
shelterLocation = new LatLng(shelter.getLatitude(), shelter.getLongitude());
// create marker
MarkerOptions markerOptions = new MarkerOptions();
markerOptions.title(shelter.getShelterName());
markerOptions.position(shelterLocation);
markerOptions.snippet(shelter.getAddress() + "\n Phone Number: + " + shelter.getPhoneNumber() + "\n Restrictions: " + shelter.getRestrictions() + "\n Vacancy: " + shelter.getVacancy());
mMap.addMarker(markerOptions);
// This goes up to 21
float zoomLevel = 12.0f;
mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(shelterLocation, zoomLevel));
// set up info window
mMap.setInfoWindowAdapter(new GoogleMap.InfoWindowAdapter() {
@Override
public View getInfoWindow(Marker arg0) {
return null;
}
@Override
public View getInfoContents(Marker marker) {
Context context = getApplicationContext();
LinearLayout info = new LinearLayout(context);
info.setOrientation(LinearLayout.VERTICAL);
TextView title = new TextView(context);
title.setGravity(Gravity.CENTER);
title.setTextColor(Color.BLACK);
title.setTypeface(null, Typeface.BOLD);
TextView snippet = new TextView(context);
title.setText(marker.getTitle());
snippet.setTextColor(Color.BLACK);
snippet.setText(marker.getSnippet());
info.addView(title);
info.addView(snippet);
return info;
}
});
}
}
use of pinkpanthers.pinkshelters.Model.Shelter in project pink-panthers by MrTrai.
the class SearchActivity method onCreate.
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_search);
db = new Db("pinkpanther", "PinkPantherReturns!");
Intent intent = getIntent();
Bundle extra = intent.getExtras();
assert extra != null;
username = extra.getString("username");
// data to populate the RecyclerView with
shelterNames = new ArrayList<>();
// contain all shelters
shelters = db.getAllShelters();
myShelters = shelters;
// set up the RecyclerView
search_recycler_view = findViewById(R.id.search_recycler_view);
search_recycler_view.setLayoutManager(new LinearLayoutManager(this));
recycler_adapter = new RecyclerAdapter(this, shelterNames);
recycler_adapter.setClickListener(this);
search_recycler_view.setAdapter(recycler_adapter);
choices.add("Gender");
choices.add("Age Range");
choices.add("Name");
genders.add("None");
genders.add("Men");
genders.add("Women");
// for extra credit purposes
genders.add("Non-Binary");
ageRanges.add("None");
ageRanges.add("Families with Newborns");
ageRanges.add("Children");
ageRanges.add("Young Adults");
ageRanges.add("Anyone");
choices_spinner = findViewById(R.id.choices_spinner);
age_range_gender_spinner = findViewById(R.id.age_range_gender_spinner);
shelter_name_edit_text = findViewById(R.id.shelter_name_edit_text);
age_range_gender_spinner.setVisibility(View.INVISIBLE);
ArrayAdapter<String> choices_adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, choices);
choices_spinner.setAdapter(choices_adapter);
gender_adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, genders);
age_range_adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, ageRanges);
age_range_gender_spinner.setAdapter(gender_adapter);
choices_spinner.setSelection(0);
age_range_gender_spinner.setSelection(0);
age_range_gender_spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
Object item = choices_spinner.getSelectedItem();
String mainSelection = item.toString();
if ("Gender".equals(mainSelection)) {
String searchBy = sqlConverter(genders.get(i));
if ("None".equals(searchBy)) {
shelterNames.clear();
recycler_adapter.notifyDataSetChanged();
} else {
shelterNames.clear();
try {
myShelters = db.getShelterByRestriction(searchBy);
for (Shelter sh : myShelters) {
shelterNames.add(sh.getShelterName());
}
} catch (NoSuchUserException e) {
shelterNames.add("No results found");
}
recycler_adapter.notifyDataSetChanged();
}
} else if ("Age Range".equals(mainSelection)) {
String searchBy = sqlConverter(ageRanges.get(i));
if ("None".equals(searchBy)) {
shelterNames.clear();
recycler_adapter.notifyDataSetChanged();
} else {
shelterNames.clear();
try {
myShelters = db.getShelterByRestriction(searchBy);
for (Shelter sh : myShelters) {
shelterNames.add(sh.getShelterName());
}
} catch (NoSuchUserException e) {
shelterNames.add("No results found");
}
recycler_adapter.notifyDataSetChanged();
}
}
}
@Override
public void onNothingSelected(AdapterView<?> adapterView) {
// nothing happens when nothing is selected
}
});
choices_spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
String searchBy = choices.get(i);
switch(searchBy) {
case // search by gender was selected
"Gender":
age_range_gender_spinner.setAdapter(gender_adapter);
age_range_gender_spinner.setVisibility(View.VISIBLE);
shelter_name_edit_text.setVisibility(View.INVISIBLE);
break;
case // search by age range was selected
"Age Range":
age_range_gender_spinner.setAdapter(age_range_adapter);
age_range_gender_spinner.setVisibility(View.VISIBLE);
shelter_name_edit_text.setVisibility(View.INVISIBLE);
break;
case // search by name was selected
"Name":
age_range_gender_spinner.setVisibility(View.INVISIBLE);
shelter_name_edit_text.setVisibility(View.VISIBLE);
// clear out old results found by different categories
shelterNames.clear();
// fill recyclerView with all shelters
for (int j = 0; j < shelters.size(); j++) {
Shelter s = shelters.get(j);
shelterNames.add(s.getShelterName());
}
// set interaction for the previewed list of shelter before starting the search
recycler_adapter = new RecyclerAdapter(SearchActivity.this, shelterNames);
recycler_adapter.setClickListener(SearchActivity.this);
search_recycler_view.setAdapter(recycler_adapter);
shelter_name_edit_text.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
// nothing changes before user types anything
}
@Override
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
// grabs each new character that the user types into the textView
shelterNames.clear();
try {
myShelters = db.getShelterByName(charSequence.toString());
for (Shelter s : myShelters) {
shelterNames.add(s.getShelterName());
}
// set interaction between the suggestions and shelter details
recycler_adapter = new RecyclerAdapter(SearchActivity.this, shelterNames);
recycler_adapter.setClickListener(SearchActivity.this);
search_recycler_view.setAdapter(recycler_adapter);
} catch (NoSuchUserException e) {
shelterNames.add("No results found");
}
recycler_adapter.notifyDataSetChanged();
}
@Override
public void afterTextChanged(Editable editable) {
// changes occurred during onTextChanged
// so no changes after text changed
}
});
break;
}
}
@Override
public void onNothingSelected(AdapterView<?> adapterView) {
// nothing changes when nothing is selected
}
});
}
Aggregations