public void logBin(Bin bin) { mOutingManager.logBin(bin); mOutingManager.speak("bin logged"); mBin = null; yesNoSearch.setPotentialOtherField(null); setCurrentSearch(brandSearch, ""); }
public void logLitterItem(Litter litterItem) { mOutingManager.logLitter(mLitter); mOutingManager.speak("litter logged"); mLitter = null; yesNoSearch.setPotentialOtherField(null); setCurrentSearch(brandSearch, ""); }
private void setPassiveBinInformation() { try { mBin.setUserEmail(mOutingManager.getGmailAccount()); mBin.setCreated(new Date().getTime()); mBin.setLatitude(mockLat); mBin.setLongitude(mockLong); if (mOutingManager.getLocation() != null) { mBin.setLatitude(mOutingManager.getLocation().getLatitude()); mBin.setLongitude(mOutingManager.getLocation().getLongitude()); } } catch (Exception e) { Log.w(TAG, e); } }
private VoiceResultProcessor(Context context) { mContext = context; // Bin types, litter types and brands all pulled from cloud mBrands = new ArrayList<>(); mLitterTypes = new ArrayList<>(); mBinTypes = new ArrayList<>(); populateBrandList(); populateLitterTypes(); populateBinTypes(); ArrayList<LocalEntity> menuCommands = new ArrayList<>(); LocalEntity brand = new LocalEntity("brand"); brand.setName(context.getString(R.string.brand_command)); brand.addSearchTerms(new String[] {"friends", "ground", "run", "front", "round"}); menuCommands.add(brand); LocalEntity litterType = new LocalEntity("type"); litterType.setName(mContext.getString(R.string.type_command)); litterType.addSearchTerms(new String[] {"typ", "types", "tight", "tired"}); menuCommands.add(litterType); LocalEntity bin = new LocalEntity("bin"); bin.addSearchTerms(new String[] {"pin", "binh", "spin", "Ben", "friend", "pen", "fin"}); menuCommands.add(bin); ArrayList<LocalEntity> confirmation = new ArrayList<>(); LocalEntity confirmationTerms = new LocalEntity("yes"); confirmationTerms.addSearchTerms(CONFIRMATION_TERMS); confirmation.add(confirmationTerms); // Populate Search objects for use in logic and UI menuSearch = new Search("menu", menuCommands, mContext.getString(R.string.menu_caption)); binSearch = new Search( mContext.getString(R.string.bin_command), mBinTypes, mContext.getString(R.string.bin_caption)); typeSearch = new Search( mContext.getString(R.string.type_command), mLitterTypes, mContext.getString(R.string.type_caption)); brandSearch = new Search( mContext.getString(R.string.brand_command), mBrands, mContext.getString(R.string.brand_caption)); yesNoSearch = new ConfirmationSearch("yesno", confirmation, mContext.getString(R.string.yes_no_caption)); yesNoSearch.setYesTerms(YES_TERMS); yesNoSearch.setNoTerms(NO_TERMS); mActionHandler = new ActionHandler(); mOutingManager = OutingManager.get(context); }
// Deal with unexpected results private String processUnexpectedResult(String result) { String toastText = ""; // Cancel item and start again if needed if (result.equals("cancel") || result.equals("council") || result.equals("Council") || result.equals("cancer") || result.equals("pencil")) { mOutingManager.speak("item cancelled"); setCurrentSearch(brandSearch, result); mBin = null; mLitter = null; return null; } for (LocalEntity menuItem : menuSearch.getSearchObjects()) { if (menuItem.getSearchTerms().contains(result)) { setCurrentSearchByString(menuItem.getName()); return null; } } if (!Search.getCurrentSearch().getName().equals("menu")) { toastText = "I haven't heard of " + result + ". Should I log it as other?"; // log current item as 'other' and record the result yesNoSearch.setActive(true); yesNoSearch.setResponse(toastText); yesNoSearch.setPotentialOtherField(result); if (Search.getCurrentSearch().equals(brandSearch)) { mActionHandler.getCurrentAction().setActionType(Action.Type.LOG_OTHER_BRAND); } if (Search.getCurrentSearch().equals(typeSearch)) { mActionHandler.getCurrentAction().setActionType(Action.Type.LOG_OTHER_LITTER_TYPE); } if (Search.getCurrentSearch().equals(binSearch)) { mActionHandler.getCurrentAction().setActionType(Action.Type.LOG_OTHER_BIN_TYPE); } Log.d(TAG, "result at other: " + result); Log.d(TAG, "yesnosearch potentialotherfield set to " + yesNoSearch.getPotentialOtherField()); Log.d(TAG, "currentSearch at unexpected result = " + Search.getCurrentSearch().getName()); setCurrentSearch(yesNoSearch, ""); return toastText; } else { setCurrentSearch(brandSearch, result); return null; } }