Skip to content

Commit f06092d

Browse files
committed
Filtering
1 parent a647def commit f06092d

19 files changed

+481
-162
lines changed

app/build.gradle

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,10 @@
11
apply plugin: 'com.android.application'
22

3-
4-
repositories {
5-
maven {
6-
url "https://oss.sonatype.org/content/repositories/snapshots"
7-
}
8-
}
9-
dependencies {
10-
compile 'com.quinny898.library.persistentsearch:library:1.0.0-SNAPSHOT'
3+
repositories {
4+
maven {
5+
url "https://oss.sonatype.org/content/repositories/snapshots"
116
}
7+
}
128

139
android {
1410
compileSdkVersion 22
@@ -33,8 +29,6 @@ android {
3329
exclude 'META-INF/NOTICE'
3430
exclude 'META-INF/LICENSE'
3531
}
36-
37-
3832
}
3933

4034
dependencies {
@@ -46,5 +40,5 @@ dependencies {
4640
compile 'com.fasterxml.jackson.core:jackson-core:2.4.1'
4741
compile 'com.fasterxml.jackson.core:jackson-databind:2.4.1'
4842
compile 'com.squareup.picasso:picasso:2.5.2'
49-
43+
compile 'com.quinny898.library.persistentsearch:library:1.0.0-SNAPSHOT'
5044
}

app/src/main/java/com/lovejoy777/showcase/Activities/DetailActivity.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
import com.lovejoy777.showcase.R;
2424
import com.lovejoy777.showcase.Theme;
2525
import com.lovejoy777.showcase.enums.Density;
26-
import com.lovejoy777.showcase.enums.SystemVersion;
26+
import com.lovejoy777.showcase.enums.AndroidVersion;
2727
import com.squareup.picasso.Picasso;
2828

2929
public class DetailActivity extends AppCompatActivity {
@@ -174,12 +174,12 @@ public void onClick(View v) {
174174
TextView androidversion = (TextView) findViewById(R.id.textView4);
175175
ImageView androidversionImage = (ImageView) findViewById(R.id.imageView4);
176176

177-
SystemVersion systemVersion = Helpers.getSystemVersion();
177+
AndroidVersion androidVersion = Helpers.getSystemVersion();
178178

179-
if (systemVersion == SystemVersion.Lollipop && theme.isFor_L()) {
179+
if (androidVersion == AndroidVersion.Lollipop && theme.isFor_L()) {
180180
androidversion.setText(getString(R.string.supportsL));
181181
androidversionImage.setImageTintList(ColorStateList.valueOf(getResources().getColor(R.color.green)));
182-
} else if (systemVersion == SystemVersion.M && theme.isFor_M()) {
182+
} else if (androidVersion == AndroidVersion.M && theme.isFor_M()) {
183183
androidversion.setText(getString(R.string.supportsM));
184184
androidversionImage.setImageTintList(ColorStateList.valueOf(getResources().getColor(R.color.green)));
185185
} else {
@@ -189,7 +189,7 @@ public void onClick(View v) {
189189

190190
Density deviceDensity = Helpers.getDensity(this);
191191

192-
if (theme.isSupportedDpi(deviceDensity)) {
192+
if (theme.isSupportingDpi(deviceDensity)) {
193193
screendensityImage.setImageTintList(ColorStateList.valueOf(getResources().getColor(R.color.green)));
194194
screendensity.setText(getString(R.string.densitySupport) + " " + deviceDensity.toString().toLowerCase());
195195
} else {

app/src/main/java/com/lovejoy777/showcase/Activities/LayerListActivity.java

Lines changed: 111 additions & 74 deletions
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,13 @@
1313
import android.speech.RecognizerIntent;
1414
import android.support.v4.widget.SwipeRefreshLayout;
1515
import 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.*;
2321
import android.widget.ArrayAdapter;
22+
import android.widget.CheckBox;
2423
import android.widget.Spinner;
2524
import android.widget.Toast;
2625
import com.fasterxml.jackson.databind.DeserializationFeature;
@@ -31,8 +30,12 @@
3130
import com.lovejoy777.showcase.adapters.BigCardsViewAdapter;
3231
import com.lovejoy777.showcase.adapters.RecyclerItemClickListener;
3332
import 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.*;
3438
import com.quinny898.library.persistentsearch.SearchBox;
35-
3639
import org.json.JSONArray;
3740
import org.json.JSONException;
3841
import 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

Comments
 (0)