use of pinkpanthers.pinkshelters.Model.NoSuchUserException in project pink-panthers by MrTrai.
the class MapsActivity method onCreate.
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_maps);
// Obtain the SupportMapFragment and get notified when the map is ready to be used.
SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map);
mapFragment.getMapAsync(this);
// set up Db workspace
db = new Db("pinkpanther", "PinkPantherReturns!");
noResult = findViewById(R.id.no_result_found);
// only shows at the beginning
shelters = db.getAllShelters();
myShelters = shelters;
try {
Intent intent = getIntent();
Bundle extra = intent.getExtras();
assert extra != null;
String username = extra.getString("username");
user = db.getAccountByUsername(username);
} catch (NoSuchUserException e) {
throw new RuntimeException("There is not account with this username");
}
// set adapter for the first spinner
choices = Arrays.asList("Gender", "Age Range", "Name");
choices_spinner = findViewById(R.id.choices_spinner);
ArrayAdapter<String> choices_adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, choices);
choices_spinner.setAdapter(choices_adapter);
// set adapter for second spinner, depending on which choice was made
genders = Arrays.asList("None", "Men", "Women", "Non-Binary");
ageRanges = Arrays.asList("None", "Families with Newborns", "Children", "Young Adults", "Anyone");
second_spinner = findViewById(R.id.age_range_gender_spinner);
second_spinner.setVisibility(View.INVISIBLE);
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);
second_spinner.setAdapter(gender_adapter);
// end
shelter_name_edit_text = findViewById(R.id.shelter_name_edit_text);
choices_spinner.setSelection(0);
second_spinner.setSelection(0);
choices_spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
String searchBy = choices.get(i);
String gender = "Gender";
String ageRange = "Age Range";
String name = "Name";
if (searchBy.equals(gender)) {
// search by gender was selected
second_spinner.setAdapter(gender_adapter);
second_spinner.setVisibility(View.VISIBLE);
shelter_name_edit_text.setVisibility(View.INVISIBLE);
noResult.setText("");
} else if (searchBy.equals(ageRange)) {
// search by age range was selected
second_spinner.setAdapter(age_range_adapter);
second_spinner.setVisibility(View.VISIBLE);
shelter_name_edit_text.setVisibility(View.INVISIBLE);
noResult.setText("");
} else if (searchBy.equals(name)) {
// search by name was selected
second_spinner.setVisibility(View.INVISIBLE);
shelter_name_edit_text.setVisibility(View.VISIBLE);
// set interaction for the previewed list of shelter before starting the search
shelter_name_edit_text.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
myShelters = shelters;
setMarkersOnMap();
noResult.setText("");
}
@Override
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
// grabs each new character that the user types into the textView
try {
myShelters = db.getShelterByName(charSequence.toString());
setMarkersOnMap();
} catch (NoSuchUserException e) {
noResult.setText("No Result Found");
MapsActivity.this.mMap.clear();
}
}
@Override
public void afterTextChanged(Editable editable) {
// changes occurred during onTextChanged
// so no changes after text changed
}
});
}
}
@Override
public void onNothingSelected(AdapterView<?> adapterView) {
// nothing changes when nothing is selected
}
});
second_spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
Object item = choices_spinner.getSelectedItem();
String firstSelection = item.toString();
String gender = "Gender";
if (firstSelection.equals(gender)) {
String searchBy = sqlConverter(genders.get(i));
noResult.setText("");
if (!("None".equals(searchBy))) {
try {
myShelters = db.getShelterByRestriction(searchBy);
setMarkersOnMap();
} catch (NoSuchUserException e) {
noResult.setText("No Result Found");
mMap.clear();
}
} else {
myShelters = shelters;
setMarkersOnMap();
}
} else if ("Age Range".equals(firstSelection)) {
String searchBy = sqlConverter(ageRanges.get(i));
noResult.setText("");
if (!("None".equals(searchBy))) {
try {
myShelters = db.getShelterByRestriction(searchBy);
setMarkersOnMap();
} catch (NoSuchUserException e) {
noResult.setText("No Result Found");
mMap.clear();
}
} else {
myShelters = shelters;
setMarkersOnMap();
}
}
}
@Override
public void onNothingSelected(AdapterView<?> adapterView) {
// nothing happens when nothing is selected
}
});
}
use of pinkpanthers.pinkshelters.Model.NoSuchUserException in project pink-panthers by MrTrai.
the class HomePageActivity method setShelterText.
/**
* to set text if a user has claimed any shelter
*/
private void setShelterText() {
TextView message = findViewById(R.id.shelterMessage);
if (user instanceof Homeless) {
try {
Shelter shelter = db.getShelterById(((Homeless) user).getShelterId());
String bed = (((Homeless) user).getFamilyMemberNumber() == 1) ? " bed" : " beds";
message.setText("You have claim " + ((Homeless) user).getFamilyMemberNumber() + bed + " at shelter: " + shelter.getShelterName());
} catch (NoSuchUserException e) {
message.setText("You have not claimed any bed yet");
}
}
}
use of pinkpanthers.pinkshelters.Model.NoSuchUserException in project pink-panthers by MrTrai.
the class AccountDetailsActivity method onCreate.
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_account_details);
Toolbar title = findViewById(R.id.titleBar);
title.setTitle("Account Details");
db = new Db("pinkpanther", "PinkPantherReturns!");
RemoteViews remoteViews = new RemoteViews(getPackageName(), R.layout.activity_account_details);
// remoteViews.setTextViewText(R.id.ban_btn, "Ban");
togglebutton = (ToggleButton) findViewById(R.id.toggleButton1);
togglebutton.setChecked(false);
button = (Button) findViewById(R.id.button1);
button.setEnabled(false);
togglebutton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
String accountState = a.getAccountState();
String blocked = "blocked";
if (togglebutton.isChecked()) // && (accountState.equals(blocked) ))
{
// Disabling button on toggle button off.
a.setAccountState(new String("blocked"));
TextView accountState2 = findViewById(R.id.accountState);
// bButton.setText("Ban");
String forAccountState = "Account State: " + a.getAccountState();
accountState2.setText(forAccountState);
txtView.setText("You have banned this account successfully");
txtView.setVisibility(View.VISIBLE);
button.setEnabled(false);
} else {
// Enabling button on toggle button on.
TextView accountState1 = findViewById(R.id.accountState);
String block = "active";
a.setAccountState(block);
txtView.setText("You have un-banned this account successfully");
txtView.setVisibility(View.VISIBLE);
String forAccountState = "Account State: " + a.getAccountState();
accountState1.setText(forAccountState);
button.setEnabled(true);
}
try {
db.updateAccount(a);
} catch (SQLException e) {
throw new RuntimeException("Failed to update account " + e.toString());
} catch (NoSuchUserException e) {
// this shouldn't happen
txtView.setText("Your account doesn't exist");
}
}
});
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Toast.makeText(AccountDetailsActivity.this, " Button is Enable ", Toast.LENGTH_LONG).show();
}
});
try {
Intent detailAccount = getIntent();
Bundle extra = detailAccount.getExtras();
String username = extra.getString("accUserName");
a = db.getAccountByUsername(username);
updateView(a);
} catch (NoSuchUserException e) {
throw new RuntimeException("This is not how it works " + e.toString());
} catch (NullPointerException e) {
throw new RuntimeException("NullPointerException is raised: " + "getExtras() returns null in Account List");
}
}
use of pinkpanthers.pinkshelters.Model.NoSuchUserException 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.NoSuchUserException in project pink-panthers by MrTrai.
the class UserInfoActivity method onCreate.
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.user_info_page);
// set up check box restrictions
buttonStatus = findViewById(R.id.status);
buttonStatus.setVisibility(View.INVISIBLE);
List<String> currentRestrictionList;
checkBoxList = new ArrayList<>();
checkBoxList.add((CheckBox) findViewById(R.id.checkBox1));
checkBoxList.add((CheckBox) findViewById(R.id.checkBox2));
checkBoxList.add((CheckBox) findViewById(R.id.checkBox3));
checkBoxList.add((CheckBox) findViewById(R.id.checkBox4));
checkBoxList.add((CheckBox) findViewById(R.id.checkBox5));
checkBoxList.add((CheckBox) findViewById(R.id.checkBox6));
checkBoxList.add((CheckBox) findViewById(R.id.checkBox7));
checkBoxList.add((CheckBox) findViewById(R.id.checkBox8));
checkBoxList.add((CheckBox) findViewById(R.id.checkBox9));
enums = Arrays.asList(Restrictions.values());
try {
getUserAccount();
} catch (NoSuchUserException e) {
e.printStackTrace();
}
if (account instanceof Homeless) {
homeless = (Homeless) account;
currentRestrictionList = ((Homeless) account).getRestrictionsMatch();
if (currentRestrictionList != null) {
for (int i = 0; i < currentRestrictionList.size(); i++) {
for (int j = 0; j < checkBoxList.size(); j++) {
CheckBox item = checkBoxList.get(j);
if (!item.isChecked()) {
Restrictions restrictions = enums.get(j);
boolean isCheck = checkCheckbox(currentRestrictionList.get(i), restrictions.toString());
item.setChecked(isCheck);
}
}
}
}
}
// add choices to family size
for (int i = 1; i < 16; i++) {
familySizeList.add(i);
}
family_spinner = findViewById(R.id.family_spinner);
ArrayAdapter<Integer> family_adapter = new ArrayAdapter<>(this, android.R.layout.simple_spinner_item, familySizeList);
family_adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
family_spinner.setAdapter(family_adapter);
family_spinner.setSelection(homeless.getFamilyMemberNumber() - 1);
// Spinner click listener for family size
family_spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
Object item = family_spinner.getSelectedItem();
familySize = Integer.valueOf(item.toString());
}
@Override
public void onNothingSelected(AdapterView<?> adapterView) {
// nothing happens when nothing is selected
}
});
// Grab name and user type to show in homepage
TextView name = findViewById(R.id.accountUserName);
TextView email = findViewById(R.id.email);
// Display name and email
name.setText("Name: " + account.getName());
email.setText("Email: " + account.getEmail());
}
Aggregations