title: android searchview can not filter with capital letter
body: <p>i have searchview it work fine when i type with small letter of english word . but when i use capital word to filter list it does not work nothing happend when  i type please help me to solve my problem . thank i advance</p>
  
  <p>this is my searchView code </p>
  
  <pre><code>@Override
  public boolean onCreateOptionsMenu(Menu menu) {
      MenuInflater inflater = getMenuInflater();
      // Inflate menu to add items to action bar if it is present.
      inflater.inflate(R.menu.menu_main, menu);
      // Associate searchable configuration with the SearchView
      SearchManager searchManager =
              (SearchManager) getSystemService(Context.SEARCH_SERVICE);
      searchView =
              (android.support.v7.widget.SearchView) menu.findItem(R.id.menu_search).getActionView();
      searchView.setSearchableInfo(
              searchManager.getSearchableInfo(getComponentName()));
  
      searchView.setOnQueryTextListener(new android.support.v7.widget.SearchView.OnQueryTextListener() {
          @Override
          public boolean onQueryTextSubmit(String query) {
              return false;
          }
  
          @Override
          public boolean onQueryTextChange(String newText) {
              Log.i("search", "search is working  "+newText);
              listDataAdapter.getFilter().filter(newText);
              return false;
          }
      });
  
      return true;
  }
  </code></pre>
  
  <p>this is adapter code</p>
  
  <pre><code> public abstract class ListDataAdapter extends ArrayAdapter implements Filterable {
  
      List list = new ArrayList();
      List filterlist = new ArrayList();
      boolean index[];
  
      public ListDataAdapter(Context context, int resource) {
  
          super(context, resource);
          index = new boolean[list.size()];
  
  
      }
  
      static class LayoutHandler {
          TextView name, quantity, calorie, fat, protein, sugar, carbohydrates;
          CheckBox names;
  
      }
  
      @Override
      public void add(Object object) {
  
          super.add(object);
          list.add(object);
          filterlist.add(object);
          index = new boolean[list.size()];
      }
  
      @Override
      public int getCount() {
          return filterlist.size();
      }
  
      @Override
      public Object getItem(int position) {
          // return list.get(position);
          return filterlist.get(position);
      }
  
      @Override
      public View getView(final int position, View convertView, ViewGroup parent) {
          View row = convertView;
          LayoutHandler layoutHandler;
          //if (row == null) {
          LayoutInflater layoutInflater = (LayoutInflater) this.getContext()
                  .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
          row = layoutInflater.inflate(R.layout.row_layout, parent, false);
          layoutHandler = new LayoutHandler();
          layoutHandler.name = (TextView) row
                  .findViewById(R.id.text_dish_name);
          layoutHandler.quantity = (TextView) row
                  .findViewById(R.id.text_dish_quantity);
          layoutHandler.calorie = (TextView) row
                  .findViewById(R.id.text_dish_calorie);
          layoutHandler.fat = (TextView) row.findViewById(R.id.text_dish_fat);
          layoutHandler.protein = (TextView) row
                  .findViewById(R.id.text_dish_protein);
          layoutHandler.sugar = (TextView) row
                  .findViewById(R.id.text_dish_sugar);
          layoutHandler.carbohydrates = (TextView) row
                  .findViewById(R.id.text_dish_carbohydrates);
          layoutHandler.names = (CheckBox) row.findViewById(R.id.checkBox1);
  
          row.setTag(layoutHandler);
  
          //} else {
          layoutHandler = (LayoutHandler) row.getTag();
  
          //  }
          final DataProvider dataProvider = (DataProvider) this.getItem(position);
          layoutHandler.name.setText(dataProvider.getName());
          layoutHandler.quantity.setText(dataProvider.getQuantity());
          layoutHandler.calorie
                  .setText(String.valueOf(dataProvider.getCalorie()));
          layoutHandler.fat.setText(dataProvider.getFat());
          layoutHandler.protein.setText(dataProvider.getProtein());
          layoutHandler.sugar.setText(dataProvider.getSugar());
          layoutHandler.carbohydrates.setText(dataProvider.getCarbohydrates());
  
          layoutHandler.names.setChecked(dataProvider.isSelected());
          layoutHandler.names.setTag(position);
          //layoutHandler.names.setChecked(index[position]);
          layoutHandler.names
                  .setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
  
                      @Override
                      public void onCheckedChanged(CompoundButton buttonView,
                                                   boolean isChecked) {
                          // TODO Auto-generated method stub
                          int pos = (Integer) buttonView.getTag();
                          index[pos] = isChecked;
                          showCheckedButton(position, isChecked);
                          //dataProvider.setSelected(isChecked);
                          filterlist.set(position, dataProvider);
                          //ListDataAdapter.this.notifyDataSetChanged();
                          //list.set(position,dataProvider);
  
                      }
                  });
  
          return row;
      }
  
      public ArrayList&lt;DataProvider&gt; getSelectedIndexes() {
          int size = list.size();
  
          ArrayList&lt;DataProvider&gt; selectedItems = new ArrayList&lt;DataProvider&gt;();
          for (int i = 0; i &lt; size; i++) {
              DataProvider cItem = (DataProvider) list.get(i);
              if (cItem.isSelected()) {
                  selectedItems.add(cItem);
              }
          }
  
          return selectedItems;
      }
      @Override
      public Filter getFilter() {
          return new Filter() {
              @SuppressWarnings("unchecked")
              @Override
              protected void publishResults(CharSequence constraint, FilterResults results) {
                  //  Log.d(Constants.TAG, "**** PUBLISHING RESULTS for: " + constraint);
                  filterlist = (List&lt;DataProvider&gt;) results.values;
                  ListDataAdapter.this.notifyDataSetChanged();
              }
  
              @Override
              protected FilterResults performFiltering(CharSequence constraint) {
                  //  Log.d(Constants.TAG, "**** PERFORM FILTERING for: " + constraint);
                  List&lt;DataProvider&gt; filteredResults = getFilteredResults(constraint);
                  FilterResults results = new FilterResults();
                  results.values = filteredResults;
                  return results;
              }
          };
      }
  
      private List&lt;DataProvider&gt; getFilteredResults(CharSequence constraint) {
          String filterableString;
          List&lt;DataProvider&gt; filteredList = new ArrayList&lt;&gt;();
          for (int i = 0; i &lt; list.size(); i++) {
              String temp = ((DataProvider) list.get(i)).getName();
              if (temp.toString().toLowerCase().contains(constraint)) {
                  filteredList.add((DataProvider) list.get(i));
              }
          }
          return filteredList;
      }
  
      protected abstract void showCheckedButton(int position, boolean value);
  }
  </code></pre>