/**
*
*/
package com.niveales.library.ui;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.StringReader;
import java.io.StringWriter;
import java.util.Hashtable;
import org.acra.ACRA;
import org.acra.annotation.ReportsCrashes;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import oauth.signpost.commonshttp.CommonsHttpOAuthConsumer;
import oauth.signpost.commonshttp.CommonsHttpOAuthProvider;
import twitter4j.Twitter;
import twitter4j.http.AccessToken;
import android.app.Application;
import android.content.Context;
import android.content.res.AssetManager;
import android.database.Cursor;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Matrix;
import android.net.Uri;
import android.os.Environment;
import android.view.View;
import android.widget.EditText;
import com.facebook.android.AsyncFacebookRunner;
import com.facebook.android.Facebook;
import com.niveales.library.ui.criteraselectors.CheckedCriteriaSelectorFragment;
import com.niveales.library.ui.criteraselectors.CheckedCriteriaSelectorFragment.OnCriteriaChangedListener;
import com.niveales.library.ui.criteraselectors.RangeCriteriaSelectorFragment;
import com.niveales.library.ui.criteraselectors.RangeCriteriaSelectorFragment.OnRangeCriteriaChangedListener;
import com.niveales.library.ui.lexique.LexiqueFragment;
import com.niveales.library.ui.productdetail.ProductDetailFragment;
import com.niveales.library.ui.productdetail.ProductDetailFragment.ShareProductListener;
import com.niveales.library.ui.productlist.FavoriteProductListFragment;
import com.niveales.library.ui.productlist.ProductListFragment;
import com.niveales.library.ui.productsearch.ProductSearchFragment;
import com.niveales.library.utils.TwitterSession;
import com.niveales.library.utils.adapters.CursorViewBinder;
import com.niveales.library.utils.adapters.search.SearchAdapter;
import com.niveales.library.utils.db.DBHelper;
import com.niveales.testsnowboards.R;
import com.niveales.testsnowboards.R.id;
import com.niveales.testsnowboards.R.layout;
import com.niveales.testsnowboards.R.string;
/**
* @author Dmitry Valetin
*
*/
@ReportsCrashes(formKey = "dDVpd19Uc2E4WTBaWTJXNGJHNkZEMWc6MQ")
public class NivealesApplication extends Application {
public static class ProductSearchConstants {
/**
*
*/
public static final int[] PRODUCT_SEARCH_BINDER_IDS = new int[] {
R.id.productListItemGenre, R.id.productListItemModele,
R.id.productListItemGamme, R.id.productListItemBudget };
/**
*
*/
public static final String[] PRODUCT_SEARCH_BINDER_COLUMNS = new String[] {
// columns to display in search results list
DBHelper.MODELE_MARQUE_KEY, DBHelper.MODELE_MODELE_KEY,
"Gamme", "Prix_String", };
/**
*
*/
public static final String[] PRODUCT_SEARCH_SEARCH_COLUMNS = new String[] {
// Search columns
DBHelper.MODELE_MARQUE_KEY, DBHelper.MODELE_MODELE_KEY, "Gamme" };
/**
*
*/
public static final int PRODUCT_SEARCH_LISTVIEW_ITEM_LAYOUT = R.layout.product_search_item_layout;
/**
*
*/
public static final int PRODUCT_SEARCH_FAGMENT_LAYOUT = R.layout.product_search_fagment_layout;
}
/**
*
*/
public static class CriteriaSelectorConstants {
/**
*
*/
public static final int CRITERIA_SELECTOR_RIGHTPANE_TITLE_TEXTVIEW = R.id.RightPaneTitleTextView;
/**
*
*/
public static final int CRITERIA_SELECTOR_CRITERIA_CHECKBOX_VIEW_ID = R.id.CriteriaCheckBox;
/**
*
*/
public static final int CRITERIA_SELECTOR_CRITERIA_TEXTVIEW_VIEW_ID = R.id.CriteriaTextView;
/**
*
*/
public static final int CRETERIA_SELECTOR_LISTVIEW_VIEW_ID = R.id.CreteriaSelectorListView;
/**
*
*/
public static final int CHECKED_CRITERIA_SELECTOR_ITEM_LAYOUT_ID = R.layout.checked_criteria_selector_item_layout;
/**
*
*/
public static final int CRETERIA_SELECTOR_FRAGMENT_LAYOUT_ID = R.layout.creteria_selector_fragment_layout;
/**
*
*/
public static final int CRETERIA_SELECTOR_TITLE_VIEW_ID = R.id.CriteriaTitle;
}
public static final String ACRA_FORM_ID = "dDVpd19Uc2E4WTBaWTJXNGJHNkZEMWc6MQ";
public static String FACEBOOK_TAB_PAGE_URL = "http://www.facebook.com/Snowsurf.mag";
public static String INFO_TAB_PAGE_URL = "http://www.snowsurf.com/android-teasing";
public static class ProductDetailConstants {
/**
*
*/
public static final int PRODUCT_DETAIL_SHARE_BUTTON_VIEW_ID = R.id.ShareButton;
/**
*
*/
public static final int PRODUCT_DETAIL_FAVORITE_CKECKBOX_VIEW_ID = R.id.FavoriteCkeckBox;
/**
*
*/
public static String[] PRODUCT_DETAIL_HTML_FILE_KEYS = new String[] {
"%TAITLE%",
"%Modele%",
"%Budget%",
"%img%", // product image
"%GAMME%", "%TAILLE TESTEE%", "%TAILLES DISPONIBLES%",
"%type_de_cambre_text%", "%Test_baseline%",
"%Description_Test%", "%Test_avantages%",
"%test_inconvenients%", "%icone_genre%", "%icone_cambres%",
"%icone_wide%", "%icone_top%", "%img_niveau%",
"%img_polyvalence%", "%Caractéristiques%", "%niveau%", "%pratique%"
};
/**
*
*/
public static String[] PRODUCT_DETAIL_COLUMN_KEYS = // List of
// fields in
// product
// html file
new String[] { "Marque", "Modele", "Prix_String", "imgLR", "Gamme",
"test_Taille_testee", "Tailles", "type_de_cambre_text",
"Test_baseline", "Description_Test", "Test_avantages",
"test_inconvenients", "icone_genre", "icone_cambres",
"icone_wide", "icone_top", "img_niveau", "img_polyvalence",
"Caractéristiques", "niveau_requis", "Pratique"
// List of Details table columns to get data from, used to fill HTML
// fields above
};
/**
*
*/
public static final int PRODUCT_DETAIL_WEBPAGE_FILE_URI = R.string.ProductDetailWebPage;
/**
*
*/
public static final int PRODUCT_DETAIL_WEBVIEW_VIEW_ID = R.id.ProductDetailsWebView;
/**
*
*/
public static final int PRODUCT_DETAIL_LAYOUT = R.layout.product_detail_layout;
/**
*
*/
// public static final int PRODUCT_DETAIL_SHAREHOLDER_VIEW_ID =
// R.id.ShareHolder;
/**
*
*/
public static final int PRODUCTDETAIL_NEXTBUTTON_VIEW_ID = R.id.NextButton;
/**
*
*/
public static final int PRODUCT_DETAIL_PREVBUTTON_VIEW_ID = R.id.PrevButton;
/**
*
*/
public static final int PRODUCTDETAIL_PRODUCTIMAGE_VIEW_ID = R.id.ProductImageAnchor;
// public static final String HTML_TITLE = "%TAITLE%";
// public static final String HTML_MODELE = "%Modele%";
// public static final String HTML_BUDGET = "%Budget%";
// public static final String HTML_GAMME = "%GAMME%";
// public static final String HTML_CHARACTER = "%CARACTERE%";
// public static final String HTML_NIVEAU_REQUIS = "%NIVEAU REQUIS%";
// public static final String HTML_TALLE_TESTEE = "%TAILLE TESTEE%";
// public static final String HTML_TEST_BASELINE = "%Test_baseline%";
// public static final String HTML_DESC = "%Description_Test%";
// public static final String HTML_TEST_ADV = "%Test_avantages%";
// public static final String HTML_TEST_DISADV = "%test_inconvenients%";
// public static final String HTML_CHARACTERISTICS =
// "%Caractéristiques%";
// public static final String HTML_ICON_TESTCHOICE =
// "%icone_testerchoice%";
// public static final String HTML_ICON_SEX = "%icone_genre%";
// public static final String HTML_PIC = "%img%";
public static final int PRODUCTDETAIL_PRODUCTIMAGE_POPUP_LAYOUT_ID = R.layout.product_image_popup;
}
/**
*
*/
public static final String DETAIL_TABLE_NAME = "Detail";
private static class ProductListConstants {
/**
*
*/
private static String[] PRODUCT_LIST_DISPLAY_COLUMNS = new String[] {
DBHelper.MODELE_MARQUE_KEY, DBHelper.MODELE_MODELE_KEY,
"icone_genre", "icone_cambres", "Gamme", "Prix_String",
"icone_wide", "icone_top", "imgLR"
// DBHelper.MODELE_PRIX_DE_REFERENCE_KEY,
// DBHelper.MODELE_GENRE_KEY,
// DBHelper.MODELE_IMG_KEY
};
/**
*
*/
private static int[] PRODUCT_LIST_DISPLAY_VIEW_IDS = new int[] {
R.id.productListItemGenre, R.id.productListItemModele,
R.id.productListItemFemale, R.id.productListItemChambre,
R.id.productListItemGamme, R.id.productListItemBudget,
R.id.productListItemWide, R.id.productListItemPop,
R.id.productListItemPicture };
/**
*
*/
private static final int PRODUCT_LIST_FAGMENT_LAYOUT = R.layout.product_list_fagment_layout;
/**
*
*/
private static final int PRODUCT_LIST_LISTVIEW_ITEM_LAYOUT = R.layout.product_list_item_layout;
/**
*
*/
private static final int PRODUCT_LIST_LISTVIEW_VIEW_ID = R.id.ProductListView;
/**
* list of button ids in product list layout
*/
private static final int[] PRODUCT_LIST_SORT_BUTTON_IDS = new int[] {
R.id.ProductListMarqueSortButton,
R.id.ProductListGammeSortButton, R.id.ProductListPrixSortButton };
/**
*
*/
private static final String[] PRODUCT_LIST_SORT_COLUMNS = new String[] {
"Marque", "Gamme", "Prix_de_reference" };
}
// Global staff for TestsSnowboards
public static String DB_FILE_NAME;// = "snowsurf_tests2014_.sqlite";
// Twitter staff
public static TwitterSession mTwitterSession;
public static Twitter mTwitter;
public static AccessToken mTwitterAccessToken;
public static String ACCESS_KEY = null;
public static String ACCESS_SECRET = null;
public static final String REQUEST_URL = "http://twitter.com/oauth/request_token";
public static final String ACCESS_TOKEN_URL = "http://twitter.com/oauth/access_token";
public static final String OAUTH_CALLBACK_SCHEME = "x-oauthflow-twitter";
public static final String OAUTH_CALLBACK_HOST = "callback";
public static final String OAUTH_CALLBACK_URL = OAUTH_CALLBACK_SCHEME
+ "://" + OAUTH_CALLBACK_HOST;
public static final String AUTH_URL = "http://twitter.com/oauth/authorize";
public static String TWITTER_CONSUMER_KEY = "Qgs7YXW6HCw8u0Mt1102Q";
public static String TWITTER_SECRET = "CqOZllOATSal2bjyyBSY2hXZ1dtlwwTZBUYXeMvj0";
public static String TWITTER_CALLBACK_URL = "twitter://callback";
public static CommonsHttpOAuthConsumer consumer = new CommonsHttpOAuthConsumer(
TWITTER_CONSUMER_KEY, TWITTER_SECRET);
public static CommonsHttpOAuthProvider provider = new CommonsHttpOAuthProvider(
REQUEST_URL, ACCESS_TOKEN_URL, AUTH_URL);
// Bitly staff
public static final String BITLY_USER = "tedted1";
public static final String BITLY_API_KEY = "R_d0e2739e13391fc7cc6a7c66966239b4";
// Facebook staff
public static String FACEBOOK_APP_ID = "367597189994678";
public static Facebook mFacebook;
public static AsyncFacebookRunner mAsyncRunner;
public static String[] facebookPermissions = { "offline_access",
"publish_stream", "user_photos", "publish_checkins", "photo_upload" };
public static Hashtable<String, String> currentPermissions = new Hashtable<String, String>();
// Used to downscale pictures while posting to facebook
private static int MAX_IMAGE_DIMENSION = 720;
public static String oauthVerifier;
// App staff
public static final String MAIN_TAB_ID = "tab_id";
public static final String ASSETS_URI = "file:///android_asset/";
public static final String ASSETS_PHOTOS_URI = ASSETS_URI + "Photos/";
public static final String SELECTED_ID = "selectedid";
public static final String SELECTED_VALUE = "selected_value";
public static final String SELECTED_CRITERIA_ID = "criteria_id";
public static final String SELECTED = "Selected.png";
public static final String UNSELECTED = "NotSelected.png";
public static final String NUMERIC = "Numeric";
private static DBHelper mDBHelper;
//
// UI function helpers to help customize future apps
public ProductDetailFragment getProductDetailFragment(Cursor pCursor,
ShareProductListener pListener) {
ProductDetailFragment f = new ProductDetailFragment();
f.setOnShareProductListener(pListener);
f.setProductCursor(pCursor);
return f;
}
public ProductListFragment getProductListFragment() {
return ProductListFragment.getInstance(DETAIL_TABLE_NAME,
ProductListConstants.PRODUCT_LIST_FAGMENT_LAYOUT,
ProductListConstants.PRODUCT_LIST_LISTVIEW_VIEW_ID,
ProductListConstants.PRODUCT_LIST_LISTVIEW_ITEM_LAYOUT,
ProductListConstants.PRODUCT_LIST_SORT_BUTTON_IDS,
ProductListConstants.PRODUCT_LIST_SORT_COLUMNS,
new CursorViewBinder(this,
ProductListConstants.PRODUCT_LIST_DISPLAY_COLUMNS,
ProductListConstants.PRODUCT_LIST_DISPLAY_VIEW_IDS));
}
/**
* @return
*/
public FavoriteProductListFragment getFavoriteProductListFragment() {
// TODO Auto-generated method stub
return FavoriteProductListFragment.getInstance(getDBHelper(),
DETAIL_TABLE_NAME,
ProductListConstants.PRODUCT_LIST_FAGMENT_LAYOUT,
ProductListConstants.PRODUCT_LIST_LISTVIEW_VIEW_ID,
ProductListConstants.PRODUCT_LIST_LISTVIEW_ITEM_LAYOUT,
ProductListConstants.PRODUCT_LIST_SORT_BUTTON_IDS,
ProductListConstants.PRODUCT_LIST_SORT_COLUMNS,
new CursorViewBinder(this,
ProductListConstants.PRODUCT_LIST_DISPLAY_COLUMNS,
ProductListConstants.PRODUCT_LIST_DISPLAY_VIEW_IDS));
}
public ProductSearchFragment getProductSearchFragment(int searchEditTextId) {
return ProductSearchFragment.getInstance(getDBHelper(),
DETAIL_TABLE_NAME,
ProductSearchConstants.PRODUCT_SEARCH_FAGMENT_LAYOUT,
ProductListConstants.PRODUCT_LIST_LISTVIEW_VIEW_ID,
ProductSearchConstants.PRODUCT_SEARCH_LISTVIEW_ITEM_LAYOUT,
searchEditTextId,
ProductSearchConstants.PRODUCT_SEARCH_SEARCH_COLUMNS,
new CursorViewBinder(this,
ProductSearchConstants.PRODUCT_SEARCH_BINDER_COLUMNS,
ProductSearchConstants.PRODUCT_SEARCH_BINDER_IDS));
}
public LexiqueFragment getLexiqueFragment(DBHelper helper) {
return LexiqueFragment.getInstance(helper,
R.layout.lexique_fragment_layout, R.id.LexiqueListView,
R.layout.lexique_list_item_layout, new int[] {
R.id.LexiqueItemTerm, R.id.LexiqueItemTermDefinition });
}
public RangeCriteriaSelectorFragment getRangeCriteriaSelectorFragment(
DBHelper helper, String type, String criteria, String colName,
OnRangeCriteriaChangedListener l) {
return RangeCriteriaSelectorFragment
.getInstance(
type,
criteria,
CriteriaSelectorConstants.CRITERIA_SELECTOR_RIGHTPANE_TITLE_TEXTVIEW,
helper, this, colName,
R.layout.range_criteria_selector_layout,
R.id.MinPriceInputField, R.id.MaxPriceInputField, l);
}
public CheckedCriteriaSelectorFragment getCheckedCriteriaSelectorFragment(
int pPosition, OnCriteriaChangedListener l) {
return CheckedCriteriaSelectorFragment.getInstance(pPosition, l);
}
public static byte[] scaleImage(Context context, Uri photoUri)
throws IOException {
InputStream is = context.getContentResolver().openInputStream(photoUri);
BitmapFactory.Options dbo = new BitmapFactory.Options();
dbo.inJustDecodeBounds = true;
BitmapFactory.decodeStream(is, null, dbo);
is.close();
int rotatedWidth, rotatedHeight;
rotatedWidth = dbo.outWidth;
rotatedHeight = dbo.outHeight;
Bitmap srcBitmap;
is = context.getContentResolver().openInputStream(photoUri);
if (rotatedWidth > MAX_IMAGE_DIMENSION
|| rotatedHeight > MAX_IMAGE_DIMENSION) {
float widthRatio = ((float) rotatedWidth)
/ ((float) MAX_IMAGE_DIMENSION);
float heightRatio = ((float) rotatedHeight)
/ ((float) MAX_IMAGE_DIMENSION);
float maxRatio = Math.max(widthRatio, heightRatio);
// Create the bitmap from file
BitmapFactory.Options options = new BitmapFactory.Options();
options.inSampleSize = (int) maxRatio;
srcBitmap = BitmapFactory.decodeStream(is, null, options);
} else {
srcBitmap = BitmapFactory.decodeStream(is);
}
is.close();
String type = context.getContentResolver().getType(photoUri);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
if (type.equals("image/png")) {
srcBitmap.compress(Bitmap.CompressFormat.PNG, 100, baos);
} else if (type.equals("image/jpg") || type.equals("image/jpeg")) {
srcBitmap.compress(Bitmap.CompressFormat.JPEG, 100, baos);
}
byte[] bMapArray = baos.toByteArray();
baos.close();
return bMapArray;
}
public static byte[] scaleImage(Context context, String assetUri)
throws IOException {
InputStream is = context.getAssets().open(assetUri);
BitmapFactory.Options dbo = new BitmapFactory.Options();
dbo.inJustDecodeBounds = true;
BitmapFactory.decodeStream(is, null, dbo);
is.close();
int rotatedWidth, rotatedHeight;
int orientation = 0;
if (orientation == 90 || orientation == 270) {
rotatedWidth = dbo.outHeight;
rotatedHeight = dbo.outWidth;
} else {
rotatedWidth = dbo.outWidth;
rotatedHeight = dbo.outHeight;
}
Bitmap srcBitmap;
is = context.getAssets().open(assetUri);
if (rotatedWidth > MAX_IMAGE_DIMENSION
|| rotatedHeight > MAX_IMAGE_DIMENSION) {
float widthRatio = ((float) rotatedWidth)
/ ((float) MAX_IMAGE_DIMENSION);
float heightRatio = ((float) rotatedHeight)
/ ((float) MAX_IMAGE_DIMENSION);
float maxRatio = Math.max(widthRatio, heightRatio);
// Create the bitmap from file
BitmapFactory.Options options = new BitmapFactory.Options();
options.inSampleSize = (int) maxRatio;
srcBitmap = BitmapFactory.decodeStream(is, null, options);
} else {
srcBitmap = BitmapFactory.decodeStream(is);
}
is.close();
/*
* if the orientation is not 0 (or -1, which means we don't know), we
* have to do a rotation.
*/
if (orientation > 0) {
Matrix matrix = new Matrix();
matrix.postRotate(orientation);
srcBitmap = Bitmap.createBitmap(srcBitmap, 0, 0,
srcBitmap.getWidth(), srcBitmap.getHeight(), matrix, true);
}
ByteArrayOutputStream baos = new ByteArrayOutputStream();
srcBitmap.compress(Bitmap.CompressFormat.JPEG, 100, baos);
byte[] bMapArray = baos.toByteArray();
baos.close();
return bMapArray;
}
public static String copyFileToExternalDirectory(Context context, String pic,
AssetManager assets) {
String state = Environment.getExternalStorageState();
if (Environment.MEDIA_MOUNTED.equals(state)) {
File externalDir = context.getExternalCacheDir();
if (externalDir.canWrite()) {
try {
String fileName = pic.split("/")[pic.split("/").length - 1];
File newPic = new File(externalDir.getAbsolutePath() + "/" + fileName);
byte[] buffer = new byte[1024];
BufferedOutputStream bos = new BufferedOutputStream(
new FileOutputStream(newPic));
BufferedInputStream bis = new BufferedInputStream(
assets.open(pic));
int count = 0;
while ((count = bis.read(buffer, 0, 1024)) > 0) {
bos.write(buffer, 0, count);
}
bos.close();
bis.close();
return newPic.getAbsolutePath();
} catch (IOException e) {
e.printStackTrace();
return null;
}
} else {
return null;
}
}
return null;
}
/**
* @return
*/
public static DBHelper getDBHelper() {
// TODO Auto-generated method stub
return mDBHelper;
}
/**
* @param pDbHelper
*/
public static void setDBHelper(DBHelper pDbHelper) {
mDBHelper = pDbHelper;
}
@Override
public void onCreate() {
// The following line triggers the initialization of ACRA
ACRA.init(this);
super.onCreate();
InputStream is;
try {
is = getAssets().open("customization.json");
BufferedReader reader = new BufferedReader(
new InputStreamReader(is));
StringWriter writer = new StringWriter();
char[] buffer = new char[1024];
int count = 0;
while ((count = reader.read(buffer)) > 0) {
writer.write(buffer, 0, count);
}
JSONObject json = new JSONObject(writer.toString());
DB_FILE_NAME = json.getString("DB_FILE_NAME");
FACEBOOK_TAB_PAGE_URL = json.getString("FACEBOOK_TAB_PAGE_URL");
INFO_TAB_PAGE_URL = json.getString("INFO_TAB_PAGE_URL");
FACEBOOK_APP_ID = json.getString("FACEBOOK_APP_ID");
TWITTER_CONSUMER_KEY = json.getString("TWITTER_CONSUMER_KEY");
TWITTER_SECRET = json.getString("TWITTER_SECRET");
TWITTER_CALLBACK_URL = json.getString("TWITTER_CALLBACK_URL");
JSONArray htmlKeys = json
.getJSONArray("PRODUCT_DETAIL_HTML_FILE_KEYS");
ProductDetailConstants.PRODUCT_DETAIL_HTML_FILE_KEYS = new String[htmlKeys
.length()];
for (int i = 0; i < htmlKeys.length(); i++) {
ProductDetailConstants.PRODUCT_DETAIL_HTML_FILE_KEYS[i] = htmlKeys
.getString(i);
}
JSONArray columnKeys = json
.getJSONArray("PRODUCT_DETAIL_COLUMN_KEYS");
ProductDetailConstants.PRODUCT_DETAIL_COLUMN_KEYS = new String[columnKeys
.length()];
for (int i = 0; i < columnKeys.length(); i++) {
ProductDetailConstants.PRODUCT_DETAIL_COLUMN_KEYS[i] = columnKeys
.getString(i);
}
JSONArray displayColumns = json
.getJSONArray("PRODUCT_LIST_DISPLAY_COLUMNS");
ProductListConstants.PRODUCT_LIST_DISPLAY_COLUMNS = new String[displayColumns
.length()];
for (int i = 0; i < displayColumns.length(); i++) {
ProductListConstants.PRODUCT_LIST_DISPLAY_COLUMNS[i] = displayColumns
.getString(i);
}
JSONArray displayViewIds = json
.getJSONArray("PRODUCT_LIST_DISPLAY_VIEW_IDS");
ProductListConstants.PRODUCT_LIST_DISPLAY_VIEW_IDS = new int[displayViewIds
.length()];
for (int i = 0; i < displayViewIds.length(); i++) {
String resourceName = displayViewIds.getString(i);
ProductListConstants.PRODUCT_LIST_DISPLAY_VIEW_IDS[i] = getResources()
.getIdentifier(resourceName, "id", getPackageName());
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}