filter-dialog-activity

Filter Dialog Activity for Android Projects.

filter-dialog-activity

Usage

Step 1

allprojects {
		repositories {
			...
			maven { url 'https://jitpack.io' }
		}
	}

Step 2

Add dependencies in build.gradle.

    dependencies {
       compile 'com.github.barisatalay:filter-dialog-activity:1.0.14'
    }

Step 3 (Use of library)

Create FilterDialog for Custom class;

   List<mdlPerson> personList = new ArrayList<>();

   personList.add(new mdlPerson("1","Bir"));
   personList.add(new mdlPerson("2","İki"));
   personList.add(new mdlPerson("3","Üç"));
   personList.add(new mdlPerson("4","Dört"));
   
   final FilterDialog filterDialog = new FilterDialog(MainActivity.this);
   filterDialog.setToolbarTitle("Model Filter");
   filterDialog.setSearchBoxHint("You can search");
   filterDialog.setList(personList);
   
   /*
   * nameField : model's is the part that will appear on the screen.
   * idField : id section in the model.
   * dialogListener : when any row item selected, selected item will be return from interface
   */
   filterDialog.show("code", "name", new DialogListener.Single() {
   	@Override
   	public void onResult(FilterItem selectedItem) {
   		Toast.makeText(MainActivity.this, "Selected is: " + selectedItem.getName(), Toast.LENGTH_SHORT).show();
		filterDialog.dispose();
   	}
   });

Step 3 (Use of library)

Create FilterDialog for String class;

   List<String> stringList = new ArrayList<>();
   stringList.add("Item 1");
   stringList.add("Item 2");
   stringList.add("Item 3");
   stringList.add("Item 4");
   stringList.add("Item 5");
   stringList.add("Item 6");
   stringList.add("Item 7");
   
   final FilterDialog filterDialog = new FilterDialog(MainActivity.this);
   filterDialog.setToolbarTitle("String Filter");
   filterDialog.setSearchBoxHint("You can search");
   filterDialog.setList(stringList);
   
   filterDialog.backPressedEnabled(false);
   filterDialog.setOnCloseListener(new View.OnClickListener() {
   	@Override
        public void onClick(View view) {
        	filterDialog.dispose();
        }
   });
   
   /*
   * When you have List<String,Integer,Boolean,Double,Float> should be use this method
   */
   filterDialog.show(new DialogListener.Single() {
   	@Override
   	public void onResult(FilterItem selectedItem) {
   		Toast.makeText(MainActivity.this, "Selected is: " + selectedItem.getName(), Toast.LENGTH_SHORT).show();
		filterDialog.dispose();
   	}
   });

Step 3 (Use of library for multiple select)

Create FilterDialog for Custom class;

   List<mdlHotel> personList = new ArrayList<>();

   personList.add(new mdlHotel("1","Bir"));
   personList.add(new mdlHotel("2","İki"));
   personList.add(new mdlHotel("3","Üç"));
   personList.add(new mdlHotel("4","Dört"));

   final FilterDialog filterDialog = new FilterDialog(MainActivity.this);

   filterDialog.setToolbarTitle("Model Filter");
   filterDialog.setSearchBoxHint("You can search");
   filterDialog.setSelectButtonText("Select");
   filterDialog.setList(personList);
   filterDialog.setSelectableCount(2);

   filterDialog.show("Otel", "Adi", new DialogListener.Multiple() {
       @Override
       public void onResult(List<FilterItem> selectedItems) {
           for (int i=0;i<selectedItems.size();i++)
               Toast.makeText(MainActivity.this, "Selected is: " + selectedItems.get(i).getName(), Toast.LENGTH_SHORT).show();
           filterDialog.dispose();
       }
   });

Step 4 - Customizing Filter Dialog Activity is very simple

Just define your own project

Color customization

<color name="filterdialog_background">#eae7e7</color>
<color name="filterdialog_toolbar">#163645</color>
<color name="filterdialog_toolbar_text">@color/white</color>
<color name="filterdialog_searchbox_border">@color/white</color>
<color name="filterdialog_searchbox_background">#DDD4D4</color>
<color name="filterdialog_searchbox_text">@color/colorTextStandart</color>
<color name="filterdialog_searchbox_hint">#747373</color>
<color name="filterdialog_searchbox_icon">#0e242e</color>
<color name="filterdialog_row_text">@color/colorTextStandart</color>

Text customization

<string name="filterdialog_back">Back</string>
<string name="filterdialog_clear">Clear</string>

GitHub