Search in sources :

Example 6 with Db

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

the class LoginActivity method onCreate.

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_login);
    username = findViewById(R.id.name);
    password = findViewById(R.id.password);
    // set up Cancel button
    Button cancel_btn = findViewById(R.id.cancel_button);
    cancel_btn.setOnClickListener(this);
    db = new Db("pinkpanther", "PinkPantherReturns!");
}
Also used : Button(android.widget.Button) Db(pinkpanthers.pinkshelters.Model.Db)

Example 7 with Db

use of pinkpanthers.pinkshelters.Model.Db 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
        }
    });
}
Also used : Bundle(android.os.Bundle) NoSuchUserException(pinkpanthers.pinkshelters.Model.NoSuchUserException) Intent(android.content.Intent) LinearLayoutManager(android.support.v7.widget.LinearLayoutManager) RecyclerView(android.support.v7.widget.RecyclerView) View(android.view.View) AdapterView(android.widget.AdapterView) TextWatcher(android.text.TextWatcher) Editable(android.text.Editable) AdapterView(android.widget.AdapterView) Shelter(pinkpanthers.pinkshelters.Model.Shelter) Db(pinkpanthers.pinkshelters.Model.Db) ArrayAdapter(android.widget.ArrayAdapter)

Example 8 with Db

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

the class UserInfoActivity method getUserAccount.

/**
 * Retrieving active account
 *
 * @throws NoSuchUserException when there is no user with that name
 */
private void getUserAccount() throws NoSuchUserException {
    db = new Db("pinkpanther", "PinkPantherReturns!");
    Intent intent = getIntent();
    Bundle extra = intent.getExtras();
    assert extra != null;
    String username = extra.getString("username");
    account = db.getAccountByUsername(username);
}
Also used : Bundle(android.os.Bundle) Intent(android.content.Intent) Db(pinkpanthers.pinkshelters.Model.Db)

Example 9 with Db

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

the class AccountListActivity method onCreate.

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.layout);
    Toolbar title = findViewById(R.id.titleBar);
    title.setTitle("Account List");
    // data to populate the RecyclerView with
    ArrayList<String> allAccountName = new ArrayList<>();
    DBI db = new Db("pinkpanther", "PinkPantherReturns!");
    allAccountList = db.getAllAccounts();
    for (int i = 0; i < allAccountList.size(); i++) {
        Account a = allAccountList.get(i);
        allAccountName.add(a.getUsername());
    // allAccountName.add(a.getAccountState());
    }
    // set up the RecyclerView
    RecyclerView recyclerView = findViewById(R.id.rvShelters);
    recyclerView.setLayoutManager(new LinearLayoutManager(this));
    RecyclerAdapter adapter = new RecyclerAdapter(this, allAccountName);
    adapter.setClickListener(this);
    recyclerView.setAdapter(adapter);
}
Also used : Account(pinkpanthers.pinkshelters.Model.Account) ArrayList(java.util.ArrayList) DBI(pinkpanthers.pinkshelters.Model.DBI) RecyclerView(android.support.v7.widget.RecyclerView) LinearLayoutManager(android.support.v7.widget.LinearLayoutManager) Db(pinkpanthers.pinkshelters.Model.Db) Toolbar(android.support.v7.widget.Toolbar)

Example 10 with Db

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

the class HomePageActivity method onCreate.

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_home_page);
    // Grab name and user type to show in homepage
    Context context = getApplicationContext();
    SharedPreferences preferences = context.getSharedPreferences(PREFS_NAME, Registration.MODE_PRIVATE);
    TextView textUserType = findViewById(R.id.textView3);
    TextView textName = findViewById(R.id.textView1);
    TextView textWelcome = findViewById(R.id.textView2);
    // Get name and user type
    String prefName = preferences.getString("NAME", "");
    String prefUserType = preferences.getString("USER_TYPE", "");
    textName.setText("Hello " + prefName + "!");
    textWelcome.setText("Welcome to Pink Shelter");
    textUserType.setText(prefUserType);
    Intent intent = getIntent();
    Bundle extras = intent.getExtras();
    assert extras != null;
    username = extras.getString("username");
    db = new Db("pinkpanther", "PinkPantherReturns!");
    try {
        user = db.getAccountByUsername(username);
    } catch (NoSuchUserException e) {
        throw new RuntimeException("cannot find the account");
    }
    if (user instanceof Homeless) {
        setShelterText();
    } else {
        Button infoButton = findViewById(R.id.myInfo_btn);
        infoButton.setVisibility(View.INVISIBLE);
    }
    if (user instanceof Admin) {
        Button viewAccountButton = findViewById(R.id.accountList_btn);
        viewAccountButton.setVisibility(View.VISIBLE);
    } else {
        Button viewAccountButton = findViewById(R.id.accountList_btn);
        viewAccountButton.setVisibility(View.INVISIBLE);
    }
}
Also used : Context(android.content.Context) Homeless(pinkpanthers.pinkshelters.Model.Homeless) SharedPreferences(android.content.SharedPreferences) Button(android.widget.Button) Bundle(android.os.Bundle) NoSuchUserException(pinkpanthers.pinkshelters.Model.NoSuchUserException) TextView(android.widget.TextView) Intent(android.content.Intent) Admin(pinkpanthers.pinkshelters.Model.Admin) Db(pinkpanthers.pinkshelters.Model.Db)

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