Android Open Source - wigle-wifi-wardriving Filter Matcher






From Project

Back to project page wigle-wifi-wardriving.

License

The source code is released under:

/* * Copyright (c) 2010-2012, Andrew Carra, Robert Hagemann, Hugh Kennedy * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permi...

If you think the Android project wigle-wifi-wardriving 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 net.wigle.wigleandroid;
/* w ww  .jav  a2s  . c o m*/
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.regex.PatternSyntaxException;

import android.content.SharedPreferences;

/**
 * filter matchers
 */
public final class FilterMatcher {
  private static boolean isFilterOn( final SharedPreferences prefs, final String prefix ) {
    return prefs.getBoolean( prefix + ListFragment.PREF_MAPF_ENABLED, true );
  }

  public static Matcher getFilterMatcher( final SharedPreferences prefs, final String prefix ) {
    final String regex = prefs.getString( prefix + ListFragment.PREF_MAPF_REGEX, "" );
    Matcher matcher = null;
    if ( isFilterOn( prefs, prefix ) && ! "".equals(regex) ) {
      try {
        Pattern pattern = Pattern.compile( regex, Pattern.CASE_INSENSITIVE );
        matcher = pattern.matcher( "" );
      }
      catch ( PatternSyntaxException ex ) {
        MainActivity.error("regex pattern exception: " + ex);
      }
    }

    return matcher;
  }

  public static boolean isOk( final Matcher matcher, final SharedPreferences prefs, final String prefix,
      final Network network ) {

    if ( ! isFilterOn( prefs, prefix ) ) {
      return true;
    }

    boolean retval = true;

    if ( matcher != null ) {
      matcher.reset(network.getSsid());
      final boolean invert = prefs.getBoolean( prefix + ListFragment.PREF_MAPF_INVERT, false );
      final boolean matches = matcher.find();
      if ( ! matches && ! invert) {
        return false;
      }
      else if ( matches && invert ) {
        return false;
      }
    }

    if ( NetworkType.WIFI.equals( network.getType() ) ) {
      switch ( network.getCrypto() ) {
        case Network.CRYPTO_NONE:
          if ( ! prefs.getBoolean( prefix + ListFragment.PREF_MAPF_OPEN, true ) ) {
            return false;
          }
          break;
        case Network.CRYPTO_WEP:
          if ( ! prefs.getBoolean( prefix + ListFragment.PREF_MAPF_WEP, true ) ) {
            return false;
          }
          break;
        case Network.CRYPTO_WPA:
          if ( ! prefs.getBoolean( prefix + ListFragment.PREF_MAPF_WPA, true ) ) {
            return false;
          }
          break;
        default:
          MainActivity.error( "unhandled crypto: " + network );
      }
    }
    else {
      if ( ! prefs.getBoolean( prefix + ListFragment.PREF_MAPF_CELL, true ) ) {
        return false;
      }
    }

    return retval;
  }

}




Java Source Code List

net.wigle.wigleandroid.ConcurrentLinkedHashMap.java
net.wigle.wigleandroid.DBException.java
net.wigle.wigleandroid.DBResultActivity.java
net.wigle.wigleandroid.DashboardFragment.java
net.wigle.wigleandroid.DataFragment.java
net.wigle.wigleandroid.DatabaseHelper.java
net.wigle.wigleandroid.DialogListener.java
net.wigle.wigleandroid.ErrorReportActivity.java
net.wigle.wigleandroid.FilterMatcher.java
net.wigle.wigleandroid.FixedTabHost.java
net.wigle.wigleandroid.ListFragment.java
net.wigle.wigleandroid.MainActivity.java
net.wigle.wigleandroid.MapRender.java
net.wigle.wigleandroid.MappingFragment.java
net.wigle.wigleandroid.NetworkActivity.java
net.wigle.wigleandroid.NetworkListAdapter.java
net.wigle.wigleandroid.NetworkType.java
net.wigle.wigleandroid.Network.java
net.wigle.wigleandroid.Pair.java
net.wigle.wigleandroid.QueryArgs.java
net.wigle.wigleandroid.QueryThread.java
net.wigle.wigleandroid.SettingsActivity.java
net.wigle.wigleandroid.SpeechActivity.java
net.wigle.wigleandroid.StateFragment.java
net.wigle.wigleandroid.TTS.java
net.wigle.wigleandroid.TestMapPane.java
net.wigle.wigleandroid.WigleAndroid.java
net.wigle.wigleandroid.WigleService.java
net.wigle.wigleandroid.WigleUncaughtExceptionHandler.java
net.wigle.wigleandroid.background.AbstractBackgroundTask.java
net.wigle.wigleandroid.background.AlertSettable.java
net.wigle.wigleandroid.background.BackgroundGuiHandler.java
net.wigle.wigleandroid.background.FileUploaderListener.java
net.wigle.wigleandroid.background.FileUploaderTask.java
net.wigle.wigleandroid.background.HttpDownloader.java
net.wigle.wigleandroid.background.HttpFileUploader.java
net.wigle.wigleandroid.background.KmlWriter.java
net.wigle.wigleandroid.background.Status.java
net.wigle.wigleandroid.listener.BatteryLevelReceiver.java
net.wigle.wigleandroid.listener.GPSListener.java
net.wigle.wigleandroid.listener.PhoneState.java
net.wigle.wigleandroid.listener.SsidSpeaker.java
net.wigle.wigleandroid.listener.WifiReceiver.java