Search in sources :

Example 1 with Db

use of pinkpanthers.pinkshelters.Model.Db in project pink-panthers by MrTrai.

the class ListOfSheltersActivity method onCreate.

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.layout);
    // data to populate the RecyclerView with
    ArrayList<String> shelterNames = new ArrayList<>();
    DBI db = new Db("pinkpanther", "PinkPantherReturns!");
    shelters = db.getAllShelters();
    for (int i = 0; i < shelters.size(); i++) {
        Shelter s = shelters.get(i);
        shelterNames.add(s.getShelterName());
    }
    // set up the RecyclerView
    RecyclerView recyclerView = findViewById(R.id.rvShelters);
    recyclerView.setLayoutManager(new LinearLayoutManager(this));
    RecyclerAdapter adapter = new RecyclerAdapter(this, shelterNames);
    adapter.setClickListener(this);
    recyclerView.setAdapter(adapter);
    // set up search button
    Button search_button = findViewById(R.id.search_button);
    search_button.setVisibility(View.VISIBLE);
    search_button.setOnClickListener(this);
    Button map_search = findViewById(R.id.button2);
    map_search.setVisibility(View.VISIBLE);
    Intent intent = getIntent();
    Bundle extras = intent.getExtras();
    assert extras != null;
    username = extras.getString("username");
}
Also used : Bundle(android.os.Bundle) ArrayList(java.util.ArrayList) DBI(pinkpanthers.pinkshelters.Model.DBI) Intent(android.content.Intent) LinearLayoutManager(android.support.v7.widget.LinearLayoutManager) Button(android.widget.Button) Shelter(pinkpanthers.pinkshelters.Model.Shelter) RecyclerView(android.support.v7.widget.RecyclerView) Db(pinkpanthers.pinkshelters.Model.Db)

Example 2 with Db

use of pinkpanthers.pinkshelters.Model.Db 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 3 with Db

use of pinkpanthers.pinkshelters.Model.Db 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 Db

use of pinkpanthers.pinkshelters.Model.Db in project pink-panthers by MrTrai.

the class Registration method onCreate.

@SuppressWarnings("unchecked")
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_registration);
    Toolbar toolbar = findViewById(R.id.titleBar);
    setSupportActionBar(toolbar);
    // set up the spinner (user type)
    List<String> legalUsers = Arrays.asList("", "Homeless", "Shelter Volunteer", "Admin");
    userTypes = findViewById(R.id.user_type_spinner);
    @SuppressWarnings("unchecked") ArrayAdapter<String> adapter = new ArrayAdapter(this, android.R.layout.simple_spinner_item, legalUsers);
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    userTypes.setAdapter(adapter);
    // grabbing user inputs: name, email, username, password
    name = findViewById(R.id.accountUserName);
    email = findViewById(R.id.email);
    username = findViewById(R.id.username);
    password = findViewById(R.id.pw);
    db = new Db("pinkpanther", "PinkPantherReturns!");
}
Also used : ArrayAdapter(android.widget.ArrayAdapter) Db(pinkpanthers.pinkshelters.Model.Db) Toolbar(android.support.v7.widget.Toolbar)

Example 5 with Db

use of pinkpanthers.pinkshelters.Model.Db in project pink-panthers by MrTrai.

the class ShelterDetails method onCreate.

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_shelter_details);
    db = new Db("pinkpanther", "PinkPantherReturns!");
    errorMessage = findViewById(R.id.errorMessage);
    vacancy = findViewById(R.id.vacancy);
    Button claimBedButton = findViewById(R.id.claimBed);
    updateInfoButton = findViewById(R.id.updateAccountButton);
    Button cancelBedButton = findViewById(R.id.cancelReservation);
    checkIn = findViewById(R.id.check_in_btn);
    viewResident = findViewById(R.id.view_all_homeless);
    peopleNumber = findViewById(R.id.people_number);
    List<Integer> number = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
    ArrayAdapter<Integer> adapter = new ArrayAdapter<>(this, android.R.layout.simple_spinner_dropdown_item, number);
    peopleNumber.setAdapter(adapter);
    try {
        Intent intent = getIntent();
        Bundle extra = intent.getExtras();
        assert extra != null;
        int shelterId = extra.getInt("shelterId");
        s = db.getShelterById(shelterId);
        updateView(s);
    } 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 ListOfShelter");
    }
    try {
        Intent intent = getIntent();
        Bundle extra = intent.getExtras();
        assert extra != null;
        username = extra.getString("username");
        Account user = db.getAccountByUsername(username);
        if (user instanceof Homeless) {
            // user is a homeless person
            a = (Homeless) user;
            claimBedButton.setVisibility(View.VISIBLE);
            try {
                reservedShelter = db.getShelterById(a.getShelterId());
                if (reservedShelter.getId() == s.getId()) {
                    cancelBedButton.setVisibility(View.VISIBLE);
                    message = "You have claimed " + a.getFamilyMemberNumber() + " bed(s) at this shelter";
                    errorMessage.setText(message);
                    errorMessage.setTextColor(Color.GREEN);
                    errorMessage.setVisibility(View.VISIBLE);
                }
            } catch (NoSuchUserException e) {
            // this shelter is not the one that the user reserved to
            // so nothing happens (cancel reservation button remains invisible)
            }
        } else {
            // user is not a homeless person
            claimBedButton.setVisibility(View.INVISIBLE);
            checkIn.setVisibility(View.VISIBLE);
            peopleNumber.setVisibility(View.VISIBLE);
            viewResident.setVisibility(View.VISIBLE);
        }
    } catch (NoSuchUserException e) {
        throw new RuntimeException("There is no user with that " + "username or shelter with that ID");
    } catch (NullPointerException e) {
        throw new RuntimeException("getExtras() returns null username");
    }
    addListenerOnRatingBar();
    addListenerOnButton();
    checkInButton();
}
Also used : Account(pinkpanthers.pinkshelters.Model.Account) Bundle(android.os.Bundle) NoSuchUserException(pinkpanthers.pinkshelters.Model.NoSuchUserException) Intent(android.content.Intent) Homeless(pinkpanthers.pinkshelters.Model.Homeless) Button(android.widget.Button) Db(pinkpanthers.pinkshelters.Model.Db) ArrayAdapter(android.widget.ArrayAdapter)

Aggregations

Db (pinkpanthers.pinkshelters.Model.Db)11 Intent (android.content.Intent)8 Bundle (android.os.Bundle)8 NoSuchUserException (pinkpanthers.pinkshelters.Model.NoSuchUserException)5 LinearLayoutManager (android.support.v7.widget.LinearLayoutManager)4 RecyclerView (android.support.v7.widget.RecyclerView)4 Toolbar (android.support.v7.widget.Toolbar)4 ArrayAdapter (android.widget.ArrayAdapter)4 Button (android.widget.Button)4 View (android.view.View)3 TextView (android.widget.TextView)3 ArrayList (java.util.ArrayList)3 Account (pinkpanthers.pinkshelters.Model.Account)3 DBI (pinkpanthers.pinkshelters.Model.DBI)3 Homeless (pinkpanthers.pinkshelters.Model.Homeless)3 Editable (android.text.Editable)2 TextWatcher (android.text.TextWatcher)2 AdapterView (android.widget.AdapterView)2 Shelter (pinkpanthers.pinkshelters.Model.Shelter)2 Context (android.content.Context)1