package net.wigle.wigleandroid.listener; import java.util.ArrayList; import java.util.List; import net.wigle.wigleandroid.model.ConcurrentLinkedHashMap; import net.wigle.wigleandroid.MainActivity; public final class SsidSpeaker { private static final String EMPTY = ""; private final ConcurrentLinkedHashMap<String,String> recentSsids = new ConcurrentLinkedHashMap<>(128); private final List<String> toSay = new ArrayList<>(); private MainActivity mainActivity; public SsidSpeaker( final MainActivity listActivity ) { this.mainActivity = listActivity; } public void setListActivity( final MainActivity listActivity ) { this.mainActivity = listActivity; } public void add( final String ssid ) { final String previous = recentSsids.put(ssid, EMPTY); if ( previous == null ) { toSay.add(ssid); } } public void speak() { final StringBuilder ssidSpeakBuilder = new StringBuilder(); for ( final String ssid : toSay ) { ssidSpeakBuilder.append( ssid ).append( ", " ); } MainActivity.info( "speak: " + ssidSpeakBuilder.toString() ); mainActivity.speak( ssidSpeakBuilder.toString() ); toSay.clear(); } }