1313import android .speech .RecognizerIntent ;
1414import android .support .v4 .widget .SwipeRefreshLayout ;
1515import android .support .v7 .app .AppCompatActivity ;
16- import android .support .v7 .widget .*;
17- import android .view .LayoutInflater ;
18- import android .view .Menu ;
19- import android .view .MenuInflater ;
20- import android .view .MenuItem ;
21- import android .view .View ;
22- import android .widget .AdapterView ;
16+ import android .support .v7 .widget .DefaultItemAnimator ;
17+ import android .support .v7 .widget .LinearLayoutManager ;
18+ import android .support .v7 .widget .RecyclerView ;
19+ import android .support .v7 .widget .Toolbar ;
20+ import android .view .*;
2321import android .widget .ArrayAdapter ;
22+ import android .widget .CheckBox ;
2423import android .widget .Spinner ;
2524import android .widget .Toast ;
2625import com .fasterxml .jackson .databind .DeserializationFeature ;
3130import com .lovejoy777 .showcase .adapters .BigCardsViewAdapter ;
3231import com .lovejoy777 .showcase .adapters .RecyclerItemClickListener ;
3332import com .lovejoy777 .showcase .adapters .SmallCardsViewAdapter ;
33+ import com .lovejoy777 .showcase .enums .AndroidPlatform ;
34+ import com .lovejoy777 .showcase .enums .AndroidVersion ;
35+ import com .lovejoy777 .showcase .enums .Density ;
36+ import com .lovejoy777 .showcase .enums .LayersVersion ;
37+ import com .lovejoy777 .showcase .filters .*;
3438import com .quinny898 .library .persistentsearch .SearchBox ;
35-
3639import org .json .JSONArray ;
3740import org .json .JSONException ;
3841import org .json .JSONObject ;
@@ -75,7 +78,7 @@ protected void onCreate(Bundle savedInstanceState) {
7578
7679 search = (SearchBox ) findViewById (R .id .searchbox );
7780 search .enableVoiceRecognition (this );
78- search .setLogoText ("Showcase " );
81+ search .setLogoText ("" );
7982 toolbar = (android .support .v7 .widget .Toolbar ) findViewById (R .id .toolbar );
8083 this .setSupportActionBar (toolbar );
8184
@@ -102,7 +105,8 @@ protected void onCreate(Bundle savedInstanceState) {
102105 }
103106
104107 mRecyclerView .setAdapter (mAdapter );
105- mAdapter .filter ("" );
108+ mAdapter .refreshFilteredList ();
109+ // mAdapter.refreshFilteredList("");
106110
107111 mRecyclerView .addOnItemTouchListener (
108112 new RecyclerItemClickListener (LayerListActivity .this , new RecyclerItemClickListener .OnItemClickListener () {
@@ -136,15 +140,14 @@ public void onRefresh() {
136140 public void openSearch () {
137141 toolbar .setTitle ("" );
138142 search .revealFromMenuItem (R .id .action_search , this );
139- // for (suggestions.) {
140-
143+ // for (suggestions.) {
141144
142145
143- // SearchResult option = new SearchResult("Result "
144- // + Integer.toString(x), getResources().getDrawable(
145- //// R.drawable.ic_history));
146- // search.addSearchable(option);
147- // }
146+ // SearchResult option = new SearchResult("Result "
147+ // + Integer.toString(x), getResources().getDrawable(
148+ //// R.drawable.ic_history));
149+ // search.addSearchable(option);
150+ // }
148151 search .setMenuListener (new SearchBox .MenuListener () {
149152
150153 @ Override
@@ -161,7 +164,7 @@ public void onMenuClick() {
161164 public void onSearchOpened () {
162165 // Use this to tint the screen
163166 searchopened = true ;
164- System .out .println ("OnOpened: " + searchopened );
167+ System .out .println ("OnOpened: " );
165168 }
166169
167170 @ Override
@@ -170,35 +173,38 @@ public void onSearchClosed() {
170173 if (searchopened ) {
171174 closeSearch ();
172175 searchopened = false ;
173- System .out .println ("onClosed " + searchopened );
176+ System .out .println ("onClosed " );
174177 }
175178 }
176179
177180 @ Override
178181 public void onSearchTermChanged () {
179- mAdapter .filter (search .getSearchText ());
180- // React to the search term changing
181- // Called after it has updated results
182+ mAdapter .addFilter (new FilterName (search .getSearchText ()));
183+
182184 }
183185
184186 @ Override
185187 public void onSearch (String searchTerm ) {
186- mAdapter .filter ( searchTerm );
188+ mAdapter .addFilter ( new FilterName ( searchTerm ) );
187189 toolbar .setTitle (searchTerm );
188190 }
189191
190192 @ Override
191193 public void onSearchCleared () {
192- mAdapter .filter ( "" );
194+ mAdapter .addFilter ( new FilterName ( "" ) );
193195 }
194196
195197 });
196198
197199 }
198200
199- protected void closeSearch () {
201+ private void closeSearch () {
200202 search .hideCircularly (this );
201- if (search .getSearchText ().isEmpty ())toolbar .setTitle (mode +" Layers" );
203+ if (search .getSearchText ().isEmpty ()) {
204+ toolbar .setTitle (mode + " Layers" );
205+ } else {
206+ toolbar .setTitle (search .getSearchText ());
207+ }
202208 }
203209
204210 @ Override
@@ -291,7 +297,7 @@ protected Boolean doInBackground(String... urls) {
291297
292298 protected void onPostExecute (Boolean result ) {
293299 mAdapter .notifyDataSetChanged ();
294- mAdapter .filter ( "" );
300+ mAdapter .refreshFilteredList ( );
295301 if (!result ) {
296302 Toast .makeText (getApplicationContext (), "Unable to fetch database from server" , Toast .LENGTH_LONG ).show ();
297303 }
@@ -304,6 +310,9 @@ public void run() {
304310 }
305311 }
306312
313+ //4 for spinners and 2 for checkboxes
314+ int [] lastLocations = new int [6 ];
315+
307316 @ Override
308317 public boolean onOptionsItemSelected (MenuItem item ) {
309318 switch (item .getItemId ()) {
@@ -314,7 +323,7 @@ public boolean onOptionsItemSelected(MenuItem item) {
314323 openSearch ();
315324 return true ;
316325 case R .id .action_filter :
317- String [] AndroidVersions = {"Any" , "Lollipop" , "M" };
326+ final String [] AndroidVersions = {"Any" , "Lollipop" , "M" };
318327 String [] AndroidPlatforms = {"Any" , "Touchwiz" , "LG" , "Sense" , "Xperia" , "Asus ZenUI" };
319328 String [] AndroidDensities = {"Any" , "hdpi" , "mdpi" , "xhdpi" , "xxhdpi" , "xxxhdpi" };
320329 String [] LayersVersions = {"Any" , "Basic RRO L" , "Basic RRO M" , "Layers Type 2 L" , "Layers Type 3" , "Layers Type 3 M" };
@@ -326,79 +335,109 @@ public boolean onOptionsItemSelected(MenuItem item) {
326335 colorDialog .setView (DialogView );
327336
328337 //Android Version spinner
329- final Spinner AndroidVersionSpinner = (Spinner ) DialogView .findViewById (R .id .androidVersionSpinner );
330- AndroidVersionSpinner . setOnItemSelectedListener ( new OnSpinnerItemClicked () );
331- ArrayAdapter < String > AndroidVersionAdapter = new ArrayAdapter < String >( LayerListActivity . this , android .R .layout .simple_spinner_item , AndroidVersions );
332- AndroidVersionAdapter . setDropDownViewResource ( android . R . layout . simple_spinner_dropdown_item );
333- AndroidVersionSpinner . setAdapter ( AndroidVersionAdapter );
338+ final Spinner androidVersionSpinner = (Spinner ) DialogView .findViewById (R .id .androidVersionSpinner );
339+ ArrayAdapter < String > androidVersionAdapter = new ArrayAdapter < String >( LayerListActivity . this , android . R . layout . simple_spinner_item , AndroidVersions );
340+ androidVersionAdapter . setDropDownViewResource ( android .R .layout .simple_spinner_dropdown_item );
341+ androidVersionSpinner . setAdapter ( androidVersionAdapter );
342+ androidVersionSpinner . setSelection ( lastLocations [ 0 ] );
334343
335344 //Android Platform spinner
336- final Spinner AndroidPlatformSpinner = (Spinner ) DialogView .findViewById (R .id .androidPlatformSpinner );
337- AndroidPlatformSpinner . setOnItemSelectedListener ( new OnSpinnerItemClicked () );
338- ArrayAdapter < String > AndroidPlatformAdapter = new ArrayAdapter < String >( LayerListActivity . this , android .R .layout .simple_spinner_item , AndroidPlatforms );
339- AndroidPlatformAdapter . setDropDownViewResource ( android . R . layout . simple_spinner_dropdown_item );
340- AndroidPlatformSpinner . setAdapter ( AndroidPlatformAdapter );
345+ final Spinner androidPlatformSpinner = (Spinner ) DialogView .findViewById (R .id .androidPlatformSpinner );
346+ ArrayAdapter < String > androidPlatformAdapter = new ArrayAdapter < String >( LayerListActivity . this , android . R . layout . simple_spinner_item , AndroidPlatforms );
347+ androidPlatformAdapter . setDropDownViewResource ( android .R .layout .simple_spinner_dropdown_item );
348+ androidPlatformSpinner . setAdapter ( androidPlatformAdapter );
349+ androidPlatformSpinner . setSelection ( lastLocations [ 1 ] );
341350
342351 //Android Density spinner
343- final Spinner AndroidDensitySpinner = (Spinner ) DialogView .findViewById (R .id .androidDensitySpinner );
344- AndroidDensitySpinner . setOnItemSelectedListener ( new OnSpinnerItemClicked () );
345- ArrayAdapter < String > AndroidDensityAdapter = new ArrayAdapter < String >( LayerListActivity . this , android .R .layout .simple_spinner_item , AndroidDensities );
346- AndroidDensityAdapter . setDropDownViewResource ( android . R . layout . simple_spinner_dropdown_item );
347- AndroidDensitySpinner . setAdapter ( AndroidDensityAdapter );
352+ final Spinner androidDensitySpinner = (Spinner ) DialogView .findViewById (R .id .androidDensitySpinner );
353+ ArrayAdapter < String > androidDensityAdapter = new ArrayAdapter < String >( LayerListActivity . this , android . R . layout . simple_spinner_item , AndroidDensities );
354+ androidDensityAdapter . setDropDownViewResource ( android .R .layout .simple_spinner_dropdown_item );
355+ androidDensitySpinner . setAdapter ( androidDensityAdapter );
356+ androidDensitySpinner . setSelection ( lastLocations [ 2 ] );
348357
349358 //Layers Version Spinner
350- final Spinner LayersVersionSpinner = (Spinner ) DialogView .findViewById (R .id .LayersVersionSpinne );
351- LayersVersionSpinner . setOnItemSelectedListener ( new OnSpinnerItemClicked () );
352- ArrayAdapter < String > LayersVersionAdapter = new ArrayAdapter < String >( LayerListActivity . this , android .R .layout .simple_spinner_item , LayersVersions );
353- LayersVersionAdapter . setDropDownViewResource ( android . R . layout . simple_spinner_dropdown_item );
354- LayersVersionSpinner . setAdapter ( LayersVersionAdapter );
359+ final Spinner layersVersionSpinner = (Spinner ) DialogView .findViewById (R .id .LayersVersionSpinne );
360+ ArrayAdapter < String > layersVersionAdapter = new ArrayAdapter < String >( LayerListActivity . this , android . R . layout . simple_spinner_item , LayersVersions );
361+ layersVersionAdapter . setDropDownViewResource ( android .R .layout .simple_spinner_dropdown_item );
362+ layersVersionSpinner . setAdapter ( layersVersionAdapter );
363+ layersVersionSpinner . setSelection ( lastLocations [ 3 ] );
355364
356- colorDialog .setPositiveButton (android .R .string .ok , new DialogInterface .OnClickListener () {
357- @ Override
358- public void onClick (DialogInterface dialog , int which ) {
365+ final CheckBox fontCheckBox = (CheckBox ) DialogView .findViewById (R .id .fontCheckbox );
366+ fontCheckBox .setChecked ((lastLocations [4 ] != 0 ));
359367
360- }
361- });
362- colorDialog .setNegativeButton (android .R .string .cancel , new DialogInterface .OnClickListener () {
368+ final CheckBox bootanimationCheckBox = (CheckBox ) DialogView .findViewById (R .id .bootanimationCheckbox );
369+ bootanimationCheckBox .setChecked ((lastLocations [5 ] != 0 ));
363370
371+ colorDialog .setPositiveButton (android .R .string .ok , new DialogInterface .OnClickListener () {
364372 @ Override
365373 public void onClick (DialogInterface dialog , int which ) {
374+ lastLocations [0 ] = androidVersionSpinner .getSelectedItemPosition ();
375+ lastLocations [1 ] = androidPlatformSpinner .getSelectedItemPosition ();
376+ lastLocations [2 ] = androidDensitySpinner .getSelectedItemPosition ();
377+ lastLocations [3 ] = layersVersionSpinner .getSelectedItemPosition ();
378+ lastLocations [4 ] = fontCheckBox .isChecked () ? 1 : 0 ;
379+ lastLocations [5 ] = bootanimationCheckBox .isChecked () ? 1 : 0 ;
380+
381+
382+ if (lastLocations [0 ] != 0 ) {
383+ AndroidVersion version = AndroidVersion .valueOf ((String ) androidVersionSpinner .getSelectedItem ());
384+ mAdapter .addFilter (new FilterSystemVersion (version ));
385+ } else {
386+ mAdapter .removeFilter (new FilterSystemVersion (null ));
387+ }
388+
389+ if (lastLocations [1 ] != 0 ) {
390+ AndroidPlatform platform = AndroidPlatform .fromString ((String ) androidPlatformSpinner .getSelectedItem ());
391+ mAdapter .addFilter (new FilterSystemPlatform (platform ));
392+ } else {
393+ mAdapter .removeFilter (new FilterSystemPlatform (null ));
394+ }
395+
396+ if (lastLocations [2 ] != 0 ) {
397+ Density density = Density .valueOf (((String ) androidDensitySpinner .getSelectedItem ()).toUpperCase ());
398+ mAdapter .addFilter (new FilterDensity (density ));
399+ } else {
400+ mAdapter .removeFilter (new FilterDensity (null ));
401+ }
402+
403+ if (lastLocations [3 ] != 0 ) {
404+ LayersVersion layersVersion = LayersVersion .fromString ((String ) layersVersionSpinner .getSelectedItem ());
405+ mAdapter .addFilter (new FilterLayersVersion (layersVersion ));
406+ } else {
407+ mAdapter .removeFilter (new FilterLayersVersion (null ));
408+ }
409+
410+ if (lastLocations [4 ] != 0 ) {
411+ mAdapter .addFilter (new FilterBootanimation ());
412+ } else {
413+ mAdapter .removeFilter (new FilterBootanimation ());
414+ }
415+
416+ if (lastLocations [5 ] != 0 ) {
417+ mAdapter .addFilter (new FilterFont ());
418+ } else {
419+ mAdapter .removeFilter (new FilterFont ());
420+ }
421+
366422
367423 }
424+ });
368425
369426
370- });
371427 colorDialog .create ();
372428 colorDialog .show ();
373429 default :
374430 return super .onOptionsItemSelected (item );
375431 }
376432 }
377433
378- public class OnSpinnerItemClicked implements AdapterView .OnItemSelectedListener {
379-
380- @ Override
381- public void onItemSelected (AdapterView <?> parent ,
382- View view , int pos , long id ) {
383-
384-
385-
386- }
387-
388- @ Override
389- public void onNothingSelected (AdapterView parent ) {
390- // Do nothing.
391- }
392- }
393-
394434 @ Override
395435 public void onBackPressed () {
396436
397437 System .out .println ("onbackprreddses" );
398438 if (searchopened ) {
399439 closeSearch ();
400440 search .clearSearchable ();
401- mAdapter .filter ("" );
402441 toolbar .setTitle (mode + " Layers" );
403442 searchopened = false ;
404443 } else {
@@ -409,6 +448,4 @@ public void onBackPressed() {
409448 }
410449
411450
412-
413-
414451}
0 commit comments