@Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_contact_list);

    Contact temp = new Contact();
    PhoneContact = ContactList.getsInstance();

    ContentResolver cont = getContentResolver();
    Cursor c = cont.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);

    ArrayList<String> contacts = new ArrayList<>(); // Storing ContactNumber
    ArrayList<String> name = new ArrayList<>(); // Storing ContactName

    if (c.moveToFirst()) {

      do {
        String contactId = c.getString(c.getColumnIndex(ContactsContract.Contacts._ID));
        if (Integer.parseInt(
                c.getString(c.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER)))
            > 0) {
          Cursor num =
              cont.query(
                  ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
                  null,
                  ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = ?",
                  new String[] {contactId},
                  null);
          while (num.moveToNext()) {
            String contactNum =
                num.getString(num.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
            contacts.add(contactNum);
            String contactName =
                num.getString(
                    num.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));
            name.add(contactName);
          }
          num.close();
        }
      } while (c.moveToNext());
    }

    for (int i = 0; i < contacts.size(); i++) {
      Log.d(tag, contacts.get(i));
      Log.d(tag, name.get(i));
      temp.setCNum(contacts.get(i));
      temp.setCName(name.get(i));
      PhoneContact.add(temp);
    }

    ListView listView = (ListView) findViewById(R.id.Contact_list_view);
    mAdapter = new ContactAdapter(PhoneContact);
    listView.setAdapter(mAdapter);
    listView.setOnScrollListener(
        new AbsListView.OnScrollListener() {
          int previousFirstItem = 0;

          @Override
          public void onScrollStateChanged(AbsListView view, int scrollState) {}

          @Override
          public void onScroll(
              AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
            if (firstVisibleItem > previousFirstItem) {
              getSupportActionBar().hide();
            } else if (firstVisibleItem < previousFirstItem) {
              getSupportActionBar().show();
            }

            previousFirstItem = firstVisibleItem;
          }
        });

    listView.setOnItemClickListener(
        new AdapterView.OnItemClickListener() {
          @Override
          public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            Intent i = new Intent(ContactListActivity.this, ContactViewActivity.class);
            i.putExtra(ContactViewActivity.EXTRA, position);
            startActivity(i);
          }
        });

    c.close();
  }