Android Open Source - GuiLib Open Filter






From Project

Back to project page GuiLib.

License

The source code is released under:

Apache License

If you think the Android project GuiLib 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.gandulf.guilib.data;
// ww w  .j  a  v  a 2  s .co m
import java.util.ArrayList;
import java.util.List;
import java.util.Locale;

import android.text.TextUtils;
import android.widget.Filter;

public class OpenFilter<T> extends Filter {

  protected String constraint;

  protected OpenArrayAdapter<T> list;

  /**
   * 
   */
  public OpenFilter(OpenArrayAdapter<T> list) {
    this.list = list;
  }

  /*
   * (non-Javadoc)
   * 
   * @see android.widget.Filter#performFiltering(java.lang.CharSequence)
   */
  @Override
  protected FilterResults performFiltering(CharSequence cons) {
    // NOTE: this function is *always* called from a background thread,
    // and not the UI thread.

    FilterResults result = new FilterResults();

    if (list.mOriginalValues == null) {
      synchronized (list.mLock) {
        list.mOriginalValues = list.mObjects;
        list.mObjects = new ArrayList<T>(list.mObjects);
      }
    }

    if (!TextUtils.isEmpty(cons)) {
      this.constraint = cons.toString().toLowerCase(Locale.GERMAN);
    } else {
      this.constraint = null;
    }

    if (isFilterSet()) {

      final List<T> values = list.mOriginalValues;
      final int count = values.size();
      final ArrayList<T> filt = new ArrayList<T>(count);

      for (int i = 0; i < count; i++) {
        T m = values.get(i);

        if (filter(m)) {
          filt.add(m);
        }
      }

      result.count = filt.size();
      result.values = filt;

    } else {
      synchronized (list.mLock) {
        result.values = list.mOriginalValues;
        result.count = list.mOriginalValues.size();
      }
    }
    return result;

  }

  protected boolean isFilterSet() {
    return constraint != null;
  }

  public boolean filter(T m) {
    boolean valid = true;

    if (constraint != null && m.toString().toLowerCase(Locale.GERMAN).startsWith(constraint)) {
      valid &= true;
    }

    return valid;
  }

  /*
   * (non-Javadoc)
   * 
   * @see android.widget.Filter#publishResults(java.lang.CharSequence, android.widget.Filter.FilterResults)
   */
  @SuppressWarnings("unchecked")
  @Override
  protected void publishResults(CharSequence constraint, FilterResults results) {
    list.mObjects = (List<T>) results.values;

    if (results.count > 0) {
      list.notifyDataSetChanged(false);
    } else {
      list.notifyDataSetInvalidated();
    }
  }

}




Java Source Code List

au.com.bytecode.opencsv.CSVReader.java
com.ecloud.pulltozoomview.PullToZoomScrollView.java
com.gandulf.guilib.data.OpenArrayAdapter.java
com.gandulf.guilib.data.OpenFilter.java
com.gandulf.guilib.download.AbstractDownloader.java
com.gandulf.guilib.download.DownloadBroadcastReceiver.java
com.gandulf.guilib.download.DownloaderGinger.java
com.gandulf.guilib.download.DownloaderWrapper.java
com.gandulf.guilib.download.Downloader.java
com.gandulf.guilib.download.MediaScannerWrapper.java
com.gandulf.guilib.download.UnzipIntentService.java
com.gandulf.guilib.listener.CheckableListenable.java
com.gandulf.guilib.listener.OnCheckedChangeListener.java
com.gandulf.guilib.util.ColorUtil.java
com.gandulf.guilib.util.Debug.java
com.gandulf.guilib.util.DefaultTextWatcher.java
com.gandulf.guilib.util.DirectoryFileFilter.java
com.gandulf.guilib.util.FileFileFilter.java
com.gandulf.guilib.util.ListViewCompat.java
com.gandulf.guilib.util.MathUtil.java
com.gandulf.guilib.util.ResUtil.java
com.gandulf.guilib.view.ColorPickerDialog.java
com.gandulf.guilib.view.DynamicListViewEx.java
com.gandulf.guilib.view.HackeyDrawerLayout.java
com.gandulf.guilib.view.SeekBarEx.java
com.gandulf.guilib.view.VersionInfoDialog.java
com.gandulf.guilib.view.ViewScroller.java
com.gandulf.guilib.view.adapter.MultiFragmentPagerAdapter.java
com.getbase.floatingactionbutton.AddFloatingActionButton.java
com.getbase.floatingactionbutton.FloatingActionButton.java
com.getbase.floatingactionbutton.FloatingActionsMenu.java
com.github.amlcurran.showcaseview.AnimationFactory.java
com.github.amlcurran.showcaseview.AnimatorAnimationFactory.java
com.github.amlcurran.showcaseview.ApiUtils.java
com.github.amlcurran.showcaseview.Calculator.java
com.github.amlcurran.showcaseview.NewShowcaseDrawer.java
com.github.amlcurran.showcaseview.OnShowcaseEventListener.java
com.github.amlcurran.showcaseview.ShotStateStore.java
com.github.amlcurran.showcaseview.ShowcaseAreaCalculator.java
com.github.amlcurran.showcaseview.ShowcaseDrawer.java
com.github.amlcurran.showcaseview.ShowcaseView.java
com.github.amlcurran.showcaseview.StandardShowcaseDrawer.java
com.github.amlcurran.showcaseview.TextDrawer.java
com.github.amlcurran.showcaseview.targets.ActionBarReflector.java
com.github.amlcurran.showcaseview.targets.ActionBarViewWrapper.java
com.github.amlcurran.showcaseview.targets.ActionItemTarget.java
com.github.amlcurran.showcaseview.targets.ActionViewTarget.java
com.github.amlcurran.showcaseview.targets.AppCompatReflector.java
com.github.amlcurran.showcaseview.targets.PointTarget.java
com.github.amlcurran.showcaseview.targets.ReflectorFactory.java
com.github.amlcurran.showcaseview.targets.Reflector.java
com.github.amlcurran.showcaseview.targets.SherlockReflector.java
com.github.amlcurran.showcaseview.targets.Target.java
com.github.amlcurran.showcaseview.targets.ViewTarget.java
com.sothree.slidinguppanel.SlidingUpPanelLayout.java
com.sothree.slidinguppanel.ViewDragHelper.java
com.thebnich.floatinghintedittext.FloatingHintEditText.java
com.thebnich.floatinghintedittext.FloatingHintTextView.java
com.wefika.flowlayout.FlowLayout.java
de.hdodenhof.circleimageview.CircleImageView.java
uk.co.senab.photoview.Compat.java
uk.co.senab.photoview.PhotoViewAttacher.java
uk.co.senab.photoview.PhotoView.java
uk.co.senab.photoview.SDK16.java
uk.co.senab.photoview.ScrollerProxy.java
uk.co.senab.photoview.VersionedGestureDetector.java
uk.me.lewisdeane.ldialogs.BaseDialog.java
uk.me.lewisdeane.ldialogs.CustomDialog.java
uk.me.lewisdeane.ldialogs.CustomListAdapter.java