From 9fe4f8e5f32ecc8cd153f52faf0c60b36c29d910 Mon Sep 17 00:00:00 2001 From: Nikolay Pultsin Date: Wed, 8 Feb 2012 18:59:19 +0000 Subject: [PATCH] fixed 'quistion symbols in menu' issue --- .../android/fbreader/BookmarksActivity.java | 9 ++++----- .../core/resources/ZLTreeResource.java | 19 +++++++++++-------- 2 files changed, 15 insertions(+), 13 deletions(-) diff --git a/src/org/geometerplus/android/fbreader/BookmarksActivity.java b/src/org/geometerplus/android/fbreader/BookmarksActivity.java index 0aa86bb99..fc2b4fe84 100644 --- a/src/org/geometerplus/android/fbreader/BookmarksActivity.java +++ b/src/org/geometerplus/android/fbreader/BookmarksActivity.java @@ -251,10 +251,9 @@ public class BookmarksActivity extends TabActivity implements MenuItem.OnMenuIte final int position = ((AdapterView.AdapterContextMenuInfo)menuInfo).position; if (getItem(position) != null) { menu.setHeaderTitle(getItem(position).getText()); - final ZLResource resource = ZLResource.resource("bookmarksView"); - menu.add(0, OPEN_ITEM_ID, 0, resource.getResource("open").getValue()); - //menu.add(0, EDIT_ITEM_ID, 0, resource.getResource("edit").getValue()); - menu.add(0, DELETE_ITEM_ID, 0, resource.getResource("delete").getValue()); + menu.add(0, OPEN_ITEM_ID, 0, myResource.getResource("open").getValue()); + //menu.add(0, EDIT_ITEM_ID, 0, myResource.getResource("edit").getValue()); + menu.add(0, DELETE_ITEM_ID, 0, myResource.getResource("delete").getValue()); } } @@ -269,7 +268,7 @@ public class BookmarksActivity extends TabActivity implements MenuItem.OnMenuIte if (bookmark == null) { imageView.setVisibility(View.VISIBLE); imageView.setImageResource(R.drawable.ic_list_plus); - textView.setText(ZLResource.resource("bookmarksView").getResource("new").getValue()); + textView.setText(myResource.getResource("new").getValue()); bookTitleView.setVisibility(View.GONE); } else { imageView.setVisibility(View.GONE); diff --git a/src/org/geometerplus/zlibrary/core/resources/ZLTreeResource.java b/src/org/geometerplus/zlibrary/core/resources/ZLTreeResource.java index 4d20bc2a7..0e73c8390 100644 --- a/src/org/geometerplus/zlibrary/core/resources/ZLTreeResource.java +++ b/src/org/geometerplus/zlibrary/core/resources/ZLTreeResource.java @@ -89,7 +89,8 @@ final class ZLTreeResource extends ZLResource { return null; } - static ZLTreeResource ourRoot; + static volatile ZLTreeResource ourRoot; + private static final Object ourLock = new Object(); private static long ourTimeStamp = 0; private static String ourLanguage = null; @@ -100,19 +101,21 @@ final class ZLTreeResource extends ZLResource { private HashMap myChildren; private LinkedHashMap myConditionalValues; - public static void buildTree() { - if (ourRoot == null) { - ourRoot = new ZLTreeResource("", null); - ourLanguage = "en"; - ourCountry = "UK"; - loadData(); + static void buildTree() { + synchronized (ourLock) { + if (ourRoot == null) { + ourRoot = new ZLTreeResource("", null); + ourLanguage = "en"; + ourCountry = "UK"; + loadData(); + } } } private static void updateLanguage() { final long timeStamp = System.currentTimeMillis(); if (timeStamp > ourTimeStamp + 1000) { - synchronized (ourRoot) { + synchronized (ourLock) { if (timeStamp > ourTimeStamp + 1000) { ourTimeStamp = timeStamp; final String language = Locale.getDefault().getLanguage();