public static void maybeInvokeRetrieval(TextView textView, ParsedResult result, HistoryManager historyManager, Context context) { AsyncTaskExecInterface taskExec = new AsyncTaskExecManager().build(); if (result instanceof URIParsedResult) { taskExec.execute(new URIResultInfoRetriever(textView, (URIParsedResult) result, historyManager, context)); taskExec.execute(new TitleRetriever(textView, (URIParsedResult) result, historyManager)); } else if (result instanceof ProductParsedResult) { String productID = ((ProductParsedResult) result).getProductID(); taskExec.execute(new ProductResultInfoRetriever(textView, productID, historyManager, context)); } else if (result instanceof ISBNParsedResult) { String isbn = ((ISBNParsedResult) result).getISBN(); taskExec.execute(new ProductResultInfoRetriever(textView, isbn, historyManager, context)); taskExec.execute(new BookResultInfoRetriever(textView, isbn, historyManager, context)); } }
@Override public void handleButtonPress(int index) { ParsedResult rawResult = getResult(); String productID; if (rawResult instanceof ProductParsedResult) { productID = ((ProductParsedResult) rawResult).getNormalizedProductID(); } else if (rawResult instanceof ExpandedProductParsedResult) { productID = ((ExpandedProductParsedResult) rawResult).getRawText(); } else { throw new IllegalArgumentException(rawResult.getClass().toString()); } switch (index) { case 0: openProductSearch(productID); break; case 1: webSearch(productID); break; case 2: openURL(fillInCustomSearchURL(productID)); break; } }
public static void maybeInvokeRetrieval(TextView textView, ParsedResult result, HistoryManager historyManager, Context context) { AsyncTaskExecInterface taskExec = new AsyncTaskExecManager().build(); if (result instanceof URIParsedResult) { taskExec.execute(new URIResultInfoRetriever(textView, (URIParsedResult) result, historyManager, context)); taskExec.execute(new TitleRetriever(textView, (URIParsedResult) result, historyManager)); } else if (result instanceof ProductParsedResult) { String productID = ((ProductParsedResult) result).getProductID(); taskExec.execute(new ProductResultInfoRetriever(textView, productID, historyManager, context)); switch (productID.length()) { case 12: taskExec.execute(new AmazonInfoRetriever(textView, "UPC", productID, historyManager, context)); break; case 13: taskExec.execute(new AmazonInfoRetriever(textView, "EAN", productID, historyManager, context)); break; } } else if (result instanceof ISBNParsedResult) { String isbn = ((ISBNParsedResult) result).getISBN(); taskExec.execute(new ProductResultInfoRetriever(textView, isbn, historyManager, context)); taskExec.execute(new BookResultInfoRetriever(textView, isbn, historyManager, context)); taskExec.execute(new AmazonInfoRetriever(textView, "ISBN", isbn, historyManager, context)); } }
@Override public void handleButtonPress(final int index) { showNotOurResults(index, new AlertDialog.OnClickListener() { public void onClick(DialogInterface dialogInterface, int i) { ProductParsedResult productResult = (ProductParsedResult) getResult(); switch (index) { case 0: openProductSearch(productResult.getNormalizedProductID()); break; case 1: webSearch(productResult.getNormalizedProductID()); break; case 2: openURL(fillInCustomSearchURL(productResult.getNormalizedProductID())); break; } } }); }
public static void maybeInvokeRetrieval(TextView textView, ParsedResult result, Handler handler, Context context) { SupplementalInfoRetriever retriever = null; if (result instanceof URIParsedResult) { retriever = new URIResultInfoRetriever(textView, (URIParsedResult) result, handler, context); } else if (result instanceof ProductParsedResult) { retriever = new ProductResultInfoRetriever(textView, ((ProductParsedResult) result).getProductID(), handler, context); } else if (result instanceof ISBNParsedResult) { retriever = new ProductResultInfoRetriever(textView, ((ISBNParsedResult) result).getISBN(), handler, context); } if (retriever != null) { ExecutorService executor = getExecutorService(); Future<?> future = executor.submit(retriever); // Make sure it's interrupted after a short time though executor.submit(new KillerCallable(future, 10, TimeUnit.SECONDS)); } }
private static String getProductIDFromResult(ParsedResult rawResult) { if (rawResult instanceof ProductParsedResult) { return ((ProductParsedResult) rawResult).getNormalizedProductID(); } if (rawResult instanceof ExpandedProductParsedResult) { return ((ExpandedProductParsedResult) rawResult).getRawText(); } throw new IllegalArgumentException(rawResult.getClass().toString()); }
public static void maybeInvokeRetrieval(TextView textView, ParsedResult result, HistoryManager historyManager, Context context) { try { if (result instanceof URIParsedResult) { SupplementalInfoRetriever uriRetriever = new URIResultInfoRetriever(textView, (URIParsedResult) result, historyManager, context); uriRetriever.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); SupplementalInfoRetriever titleRetriever = new TitleRetriever(textView, (URIParsedResult) result, historyManager); titleRetriever.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); } else if (result instanceof ProductParsedResult) { ProductParsedResult productParsedResult = (ProductParsedResult) result; String productID = productParsedResult.getProductID(); SupplementalInfoRetriever productRetriever = new ProductResultInfoRetriever(textView, productID, historyManager, context); productRetriever.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); } else if (result instanceof ISBNParsedResult) { String isbn = ((ISBNParsedResult) result).getISBN(); SupplementalInfoRetriever productInfoRetriever = new ProductResultInfoRetriever(textView, isbn, historyManager, context); productInfoRetriever.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); SupplementalInfoRetriever bookInfoRetriever = new BookResultInfoRetriever(textView, isbn, historyManager, context); bookInfoRetriever.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); } } catch (RejectedExecutionException ree) { // do nothing } }
public static void maybeInvokeRetrieval(TextView textView, ParsedResult result, Context context) { try { if (result instanceof URIParsedResult) { SupplementalInfoRetriever uriRetriever = new URIResultInfoRetriever(textView, (URIParsedResult) result,context); uriRetriever.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); SupplementalInfoRetriever titleRetriever = new TitleRetriever(textView, (URIParsedResult) result); titleRetriever.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); } else if (result instanceof ProductParsedResult) { ProductParsedResult productParsedResult = (ProductParsedResult) result; String productID = productParsedResult.getProductID(); SupplementalInfoRetriever productRetriever = new ProductResultInfoRetriever(textView, productID, context); productRetriever.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); } else if (result instanceof ISBNParsedResult) { String isbn = ((ISBNParsedResult) result).getISBN(); SupplementalInfoRetriever productInfoRetriever = new ProductResultInfoRetriever(textView, isbn, context); productInfoRetriever.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); SupplementalInfoRetriever bookInfoRetriever = new BookResultInfoRetriever(textView, isbn, context); bookInfoRetriever.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); } } catch (RejectedExecutionException ree) { // do nothing } }
/** * @author MichaelX(xiong_it)modified.{@link https://github.com/xiong-it} * * {@link http://stackoverflow.com/questions/12227682/android-2-3-3-asynctask-call-throws-nosuchfielderror} * THREAD_POOL_EXECUTOR were added in API Level 11 */ public static void maybeInvokeRetrieval(TextView textView, ParsedResult result, HistoryManager historyManager, Context context) { try { if (result instanceof URIParsedResult) { SupplementalInfoRetriever uriRetriever = new URIResultInfoRetriever(textView, (URIParsedResult) result, historyManager, context); // uriRetriever.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); executeAsyncTask(uriRetriever); SupplementalInfoRetriever titleRetriever = new TitleRetriever(textView, (URIParsedResult) result, historyManager); // titleRetriever.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); executeAsyncTask(titleRetriever); } else if (result instanceof ProductParsedResult) { ProductParsedResult productParsedResult = (ProductParsedResult) result; String productID = productParsedResult.getProductID(); SupplementalInfoRetriever productRetriever = new ProductResultInfoRetriever(textView, productID, historyManager, context); // productRetriever.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); executeAsyncTask(productRetriever); } else if (result instanceof ISBNParsedResult) { String isbn = ((ISBNParsedResult) result).getISBN(); SupplementalInfoRetriever productInfoRetriever = new ProductResultInfoRetriever(textView, isbn, historyManager, context); // productInfoRetriever.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); executeAsyncTask(productInfoRetriever); SupplementalInfoRetriever bookInfoRetriever = new BookResultInfoRetriever(textView, isbn, historyManager, context); // bookInfoRetriever.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); executeAsyncTask(bookInfoRetriever); } } catch (RejectedExecutionException ree) { // do nothing } }
public ProductResultHandler(Activity activity, ParsedResult result, Result rawResult) { super(activity, result, rawResult); buttons = new int[]{ fakeR.getId("string", "button_product_search"), fakeR.getId("string", "button_web_search"), fakeR.getId("string", "button_custom_product_search") }; showGoogleShopperButton(new View.OnClickListener() { @Override public void onClick(View view) { ProductParsedResult productResult = (ProductParsedResult) getResult(); openGoogleShopper(productResult.getNormalizedProductID()); } }); }
@Override public void handleButtonPress(int index) { ProductParsedResult productResult = (ProductParsedResult) getResult(); switch (index) { case 0: openProductSearch(productResult.getNormalizedProductID()); break; case 1: webSearch(productResult.getNormalizedProductID()); break; case 2: openURL(fillInCustomSearchURL(productResult.getNormalizedProductID())); break; } }