Issue 155: allow custom product search, and, other small tweaks I think nobody will...
[zxing.git] / android / src / com / google / zxing / client / android / result / ProductResultHandler.java
1 /*
2  * Copyright (C) 2008 ZXing authors
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16
17 package com.google.zxing.client.android.result;
18
19 import android.app.Activity;
20 import android.content.SharedPreferences;
21 import android.preference.PreferenceManager;
22 import com.google.zxing.client.android.R;
23 import com.google.zxing.client.android.PreferencesActivity;
24 import com.google.zxing.client.result.ParsedResult;
25 import com.google.zxing.client.result.ProductParsedResult;
26
27 public final class ProductResultHandler extends ResultHandler {
28
29   private static final int[] mButtons = {
30       R.string.button_product_search,
31       R.string.button_web_search,
32       R.string.button_custom_product_search,
33   };
34
35   private final String mCustomProductSearch;
36
37   public ProductResultHandler(Activity activity, ParsedResult result) {
38     super(activity, result);
39     SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(activity);
40     mCustomProductSearch = prefs.getString(PreferencesActivity.KEY_CUSTOM_PRODUCT_SEARCH, null);
41   }
42
43   @Override
44   public int getButtonCount() {
45     return mCustomProductSearch != null ? mButtons.length : mButtons.length - 1;
46   }
47
48   @Override
49   public int getButtonText(int index) {
50     return mButtons[index];
51   }
52
53   @Override
54   public void handleButtonPress(int index) {
55     ProductParsedResult productResult = (ProductParsedResult) mResult;
56     switch (index) {
57       case 0:
58         openProductSearch(productResult.getNormalizedProductID());
59         break;
60       case 1:
61         webSearch(productResult.getNormalizedProductID());
62         break;
63       case 2:
64         String url = mCustomProductSearch.replace("%s", productResult.getNormalizedProductID());
65         openURL(url);
66         break;
67     }
68   }
69
70   @Override
71   public int getDisplayTitle() {
72     return R.string.result_product;
73   }
74
75 }