Search in sources :

Example 1 with NoSuchUserException

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
        }
    });
}
Also used : Bundle(android.os.Bundle) NoSuchUserException(pinkpanthers.pinkshelters.Model.NoSuchUserException) Intent(android.content.Intent) View(android.view.View) AdapterView(android.widget.AdapterView) TextView(android.widget.TextView) SupportMapFragment(com.google.android.gms.maps.SupportMapFragment) TextWatcher(android.text.TextWatcher) Editable(android.text.Editable) AdapterView(android.widget.AdapterView) Db(pinkpanthers.pinkshelters.Model.Db) ArrayAdapter(android.widget.ArrayAdapter)

Example 2 with NoSuchUserException

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");
        }
    }
}
Also used : Homeless(pinkpanthers.pinkshelters.Model.Homeless) NoSuchUserException(pinkpanthers.pinkshelters.Model.NoSuchUserException) TextView(android.widget.TextView) Shelter(pinkpanthers.pinkshelters.Model.Shelter)

Example 3 with NoSuchUserException

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");
    }
}
Also used : SQLException(java.sql.SQLException) Bundle(android.os.Bundle) NoSuchUserException(pinkpanthers.pinkshelters.Model.NoSuchUserException) Intent(android.content.Intent) TextView(android.widget.TextView) View(android.view.View) RemoteViews(android.widget.RemoteViews) TextView(android.widget.TextView) Db(pinkpanthers.pinkshelters.Model.Db) Toolbar(android.support.v7.widget.Toolbar)

Example 4 with NoSuchUserException

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();
        }
    }
}
Also used : AlertDialog(android.app.AlertDialog) DialogInterface(android.content.DialogInterface) SQLException(java.sql.SQLException) NoSuchUserException(pinkpanthers.pinkshelters.Model.NoSuchUserException) Shelter(pinkpanthers.pinkshelters.Model.Shelter)

Example 5 with NoSuchUserException

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());
}
Also used : NoSuchUserException(pinkpanthers.pinkshelters.Model.NoSuchUserException) TextView(android.widget.TextView) View(android.view.View) AdapterView(android.widget.AdapterView) Homeless(pinkpanthers.pinkshelters.Model.Homeless) CheckBox(android.widget.CheckBox) AdapterView(android.widget.AdapterView) TextView(android.widget.TextView) Restrictions(pinkpanthers.pinkshelters.Model.Restrictions) ArrayAdapter(android.widget.ArrayAdapter)

Aggregations

NoSuchUserException (pinkpanthers.pinkshelters.Model.NoSuchUserException)11 Intent (android.content.Intent)6 TextView (android.widget.TextView)6 Bundle (android.os.Bundle)5 View (android.view.View)5 Db (pinkpanthers.pinkshelters.Model.Db)5 Homeless (pinkpanthers.pinkshelters.Model.Homeless)5 ArrayAdapter (android.widget.ArrayAdapter)4 Button (android.widget.Button)4 SQLException (java.sql.SQLException)4 Editable (android.text.Editable)3 AdapterView (android.widget.AdapterView)3 Shelter (pinkpanthers.pinkshelters.Model.Shelter)3 Context (android.content.Context)2 SharedPreferences (android.content.SharedPreferences)2 TextWatcher (android.text.TextWatcher)2 Admin (pinkpanthers.pinkshelters.Model.Admin)2 AlertDialog (android.app.AlertDialog)1 DialogInterface (android.content.DialogInterface)1 LinearLayoutManager (android.support.v7.widget.LinearLayoutManager)1