package com.google.zxing.client.android.result;
-import android.app.Activity;
import com.google.zxing.client.android.R;
import com.google.zxing.client.result.ParsedResult;
import com.google.zxing.client.result.URIParsedResult;
+import android.app.Activity;
+
+/**
+ * Offers appropriate actions for URLS.
+ *
+ * @author dswitkin@google.com (Daniel Switkin)
+ */
public final class URIResultHandler extends ResultHandler {
- private static final int[] mButtons = {
+ private static final int[] buttons = {
R.string.button_open_browser,
R.string.button_share_by_email,
- R.string.button_share_by_sms
+ R.string.button_share_by_sms,
+ R.string.button_search_book_contents,
};
public URIResultHandler(Activity activity, ParsedResult result) {
super(activity, result);
}
+ @Override
public int getButtonCount() {
- return mButtons.length;
+ return isGoogleBooksURI() ? buttons.length : buttons.length - 1;
}
+ @Override
public int getButtonText(int index) {
- return mButtons[index];
+ return buttons[index];
}
+ @Override
public void handleButtonPress(int index) {
- URIParsedResult uriResult = (URIParsedResult) mResult;
+ URIParsedResult uriResult = (URIParsedResult) getResult();
+ String uri = uriResult.getURI();
switch (index) {
case 0:
- openURL(uriResult.getURI());
+ openURL(uri);
break;
case 1:
- shareByEmail(uriResult.getURI());
+ shareByEmail(uri);
break;
case 2:
- shareBySMS(uriResult.getURI());
+ shareBySMS(uri);
+ break;
+ case 3:
+ searchBookContents(uri);
break;
}
}
+ @Override
public int getDisplayTitle() {
return R.string.result_uri;
}
+ private boolean isGoogleBooksURI() {
+ return ((URIParsedResult) getResult()).getURI().startsWith("http://google.com/books?id=");
+ }
+
}