package fr.neamar.kiss.searcher; import android.content.SharedPreferences; import android.preference.PreferenceManager; import java.util.ArrayList; import java.util.List; import fr.neamar.kiss.KissApplication; import fr.neamar.kiss.MainActivity; import fr.neamar.kiss.pojo.Pojo; /** * Retrieve pojos from history */ public class HistorySearcher extends Searcher { private SharedPreferences prefs; public HistorySearcher(MainActivity activity) { super(activity); prefs = PreferenceManager.getDefaultSharedPreferences(activity); } @Override protected List<Pojo> doInBackground(Void... voids) { // Ask for records boolean smartHistory = !prefs.getString("history-mode", "recency").equals("recency"); boolean excludeFavorites = prefs.getBoolean("exclude-favorites", false); // Convert `"number-of-display-elements"` to double first before truncating to int to avoid // `java.lang.NumberFormatException` crashes for values larger than `Integer.MAX_VALUE` int maxRecords = (new Double(prefs.getString("number-of-display-elements", String.valueOf(DEFAULT_MAX_RESULTS)))).intValue(); //Gather favorites ArrayList<Pojo> favoritesPojo = new ArrayList<Pojo>(0); if(excludeFavorites){ favoritesPojo = KissApplication.getDataHandler(activity).getFavorites(activity.tryToRetrieve); } return KissApplication.getDataHandler(activity).getHistory(activity, maxRecords, smartHistory, favoritesPojo); } }