Android Open Source - android-grid-image-search Advanced Filter Activity






From Project

Back to project page android-grid-image-search.

License

The source code is released under:

MIT License

If you think the Android project android-grid-image-search listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package com.gemmakbarlow.gridimagesearch;
// w w w  .  ja v  a  2  s .c  o m
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.Spinner;

import com.gemmakbarlow.gridimagesearch.model.SearchQuery;

public class AdvancedFilterActivity extends Activity /*implements OnItemSelectedListener*/  {

  SearchQuery searchQuery;
  
  Spinner spImageSize;
  ArrayAdapter<CharSequence> spImageSizeAdapter;
  
  Spinner spColor;
  ArrayAdapter<CharSequence> spImageColorAdapter;
  
  Spinner spImageType;
  ArrayAdapter <CharSequence> spImageTypeAdapter;
  
  EditText etSiteFilter;
  
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_advanced_filter);
    
    searchQuery = (SearchQuery)this.getIntent().getSerializableExtra("searchQuery");
    setupViews();
    populateExistingFilterValuesIntoViews();
  }

  @Override
  public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.advanced_filter, menu);
    return true;
  }

  private void setupViews() {
    
    // Size Spinner
    spImageSize = (Spinner)findViewById(R.id.spImageSize);
    spImageSizeAdapter = ArrayAdapter.createFromResource(this,
                              R.array.image_sizes, 
                              android.R.layout.simple_spinner_item);
    spImageSizeAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    spImageSize.setAdapter(spImageSizeAdapter);
    
    
    // Type Spinner
    spImageType = (Spinner)findViewById(R.id.spImageType);
    spImageTypeAdapter = ArrayAdapter.createFromResource(this,
                              R.array.image_types, 
                              android.R.layout.simple_spinner_item);
    spImageTypeAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    spImageType.setAdapter(spImageTypeAdapter);
    
    // Color Spinner
    spColor = (Spinner)findViewById(R.id.spColor);
    spImageColorAdapter = ArrayAdapter.createFromResource(this,
                                R.array.image_colors, 
                                android.R.layout.simple_spinner_item);
    spImageColorAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    spColor.setAdapter(spImageColorAdapter);
    
    // Site Filter
    etSiteFilter = (EditText)findViewById(R.id.etSiteFilter);
  }
  
  private void populateExistingFilterValuesIntoViews() {
    
    // Image Type
    String imageTypeValue = searchQuery.getImageTypeValue();
    if(imageTypeValue!=null) {
      int spinnerPosition = spImageTypeAdapter.getPosition(imageTypeValue);
      spImageType.setSelection(spinnerPosition);
    }
    
    // Image Color
    String imageColorValue = searchQuery.getImageColorValue();
    if(imageColorValue!=null) {
      int spinnerPosition = spImageColorAdapter.getPosition(imageColorValue);
      spColor.setSelection(spinnerPosition);
    }
    
    // Image Size
    String imageSizeValue = searchQuery.getImageSizeValue();
    Log.d("", "Image Size Value is " + imageSizeValue);
    
    if(imageSizeValue!=null) {
      int spinnerPosition = spImageSizeAdapter.getPosition(imageSizeValue);
      spImageSize.setSelection(spinnerPosition);
    }
    
    String baseQueryUrl = searchQuery.getBaseQueryUrl();
    if(baseQueryUrl!=null) {
      etSiteFilter.setText(baseQueryUrl);
    }
  }
  
  public void onSaveClicked(View v) {
    
    // Just return, all the saving should have been completed by now for the Spinners
    validateAndStoreSiteFilterValue();
    validateAndStoreImageSizeValue();
    validateAndStoreImageTypeValue();
    validateAndStoreImageColorValue();
    
    Intent i = new Intent(getApplicationContext(), SearchActivity.class);
    i.putExtra("searchQuery", this.searchQuery);
    setResult(RESULT_OK, i);
    finish();
  }
  
  private void validateAndStoreImageSizeValue() {
     int valuePosition = spImageSize.getSelectedItemPosition();
     String value = spImageSizeAdapter.getItem(valuePosition).toString();
     if(!value.equals("none selected")) { 
       this.searchQuery.setImageSizeValue(value.trim());
     }
     else {
       this.searchQuery.setImageSizeValue(null);
     }
     
  }
  
  private void validateAndStoreImageTypeValue() {
       int valuePosition = spImageType.getSelectedItemPosition();
       String value = spImageTypeAdapter.getItem(valuePosition).toString();
       if(!value.equals("none selected")) { 
         this.searchQuery.setImageTypeValue(value.trim());
       }
       else{
         this.searchQuery.setImageTypeValue(null);
       }
  }
  
  private void validateAndStoreImageColorValue() {
    int valuePosition = spColor.getSelectedItemPosition();
      String value = spImageColorAdapter.getItem(valuePosition).toString();
     if(!value.equals("none selected")) {
       this.searchQuery.setImageColorValue(value.trim());
     }
     else {
       this.searchQuery.setImageColorValue(null);
     }
  }
  
  private void validateAndStoreSiteFilterValue() {
    String siteFilter = this.etSiteFilter.getText().toString();
    if(siteFilter!=null && siteFilter.length() > 0) {
      this.searchQuery.setBaseQueryUrl(siteFilter.trim());
    }
    else {
      this.searchQuery.setBaseQueryUrl("");
    }
  }

}




Java Source Code List

com.gemmakbarlow.gridimagesearch.AdvancedFilterActivity.java
com.gemmakbarlow.gridimagesearch.EndlessScrollListener.java
com.gemmakbarlow.gridimagesearch.ImageDisplayActivity.java
com.gemmakbarlow.gridimagesearch.ImageResultArrayAdapter.java
com.gemmakbarlow.gridimagesearch.SearchActivity.java
com.gemmakbarlow.gridimagesearch.model.ImageResult.java
com.gemmakbarlow.gridimagesearch.model.SearchQuery.java