From ca47e50bad7020df9fe4465d8e412e33242d817d Mon Sep 17 00:00:00 2001 From: Nikolay Pultsin Date: Mon, 11 Jul 2011 17:42:52 +0100 Subject: [PATCH] MainWindowUtil is replaced my ZLApplicationWindow calls --- .../fbreader/fbreader/FBReaderApp.java | 7 +-- .../core/application/ZLApplication.java | 12 ++++ .../core/application/ZLApplicationWindow.java | 3 + .../zlibrary/core/util/ZLMainWindowUtil.java | 35 ------------ .../ZLAndroidApplicationWindow.java | 28 +++++++++ .../android/library/ZLAndroidApplication.java | 2 - .../ui/android/library/ZLAndroidLibrary.java | 6 +- .../android/util/ZLAndroidMainWindowUtil.java | 57 ------------------- 8 files changed, 50 insertions(+), 100 deletions(-) delete mode 100644 src/org/geometerplus/zlibrary/core/util/ZLMainWindowUtil.java delete mode 100644 src/org/geometerplus/zlibrary/ui/android/util/ZLAndroidMainWindowUtil.java diff --git a/src/org/geometerplus/fbreader/fbreader/FBReaderApp.java b/src/org/geometerplus/fbreader/fbreader/FBReaderApp.java index 269e62b32..a76a6ebd7 100644 --- a/src/org/geometerplus/fbreader/fbreader/FBReaderApp.java +++ b/src/org/geometerplus/fbreader/fbreader/FBReaderApp.java @@ -24,7 +24,6 @@ import java.util.*; import org.geometerplus.zlibrary.core.resources.ZLResource; import org.geometerplus.zlibrary.core.filesystem.*; import org.geometerplus.zlibrary.core.application.*; -import org.geometerplus.zlibrary.core.util.ZLMainWindowUtil; import org.geometerplus.zlibrary.core.options.*; import org.geometerplus.zlibrary.core.util.ZLColor; @@ -137,7 +136,7 @@ public final class FBReaderApp extends ZLApplication { public void initWindow() { super.initWindow(); - ZLMainWindowUtil.Instance().wait("loadingBook", new Runnable() { + wait("loadingBook", new Runnable() { public void run() { Book book = createBookForFile(ZLFile.createFileByPath(myArg0)); if (book == null) { @@ -160,7 +159,7 @@ public final class FBReaderApp extends ZLApplication { return; } } - ZLMainWindowUtil.Instance().wait("loadingBook", new Runnable() { + wait("loadingBook", new Runnable() { public void run() { openBookInternal(book, bookmark); } @@ -240,7 +239,7 @@ public final class FBReaderApp extends ZLApplication { gotoBookmark(bookmark); } Library.addBookToRecentList(book); - ZLMainWindowUtil.Instance().setTitle(book.getTitle()); + setTitle(book.getTitle()); } } getViewWidget().repaint(); diff --git a/src/org/geometerplus/zlibrary/core/application/ZLApplication.java b/src/org/geometerplus/zlibrary/core/application/ZLApplication.java index 3a582becf..4799619fa 100644 --- a/src/org/geometerplus/zlibrary/core/application/ZLApplication.java +++ b/src/org/geometerplus/zlibrary/core/application/ZLApplication.java @@ -67,6 +67,18 @@ public abstract class ZLApplication { setView(myView); } + protected void setTitle(String title) { + if (myWindow != null) { + myWindow.setTitle(title); + } + } + + protected void wait(String key, Runnable runnable) { + if (myWindow != null) { + myWindow.wait(key, runnable); + } + } + public final ZLViewWidget getViewWidget() { return myWindow != null ? myWindow.getViewWidget() : null; } diff --git a/src/org/geometerplus/zlibrary/core/application/ZLApplicationWindow.java b/src/org/geometerplus/zlibrary/core/application/ZLApplicationWindow.java index 059d51972..e03805f0f 100644 --- a/src/org/geometerplus/zlibrary/core/application/ZLApplicationWindow.java +++ b/src/org/geometerplus/zlibrary/core/application/ZLApplicationWindow.java @@ -33,6 +33,9 @@ abstract public class ZLApplicationWindow { return myApplication; } + abstract protected void setTitle(String window); + abstract protected void wait(String key, Runnable runnable); + abstract protected void refreshMenu(); abstract protected ZLViewWidget getViewWidget(); diff --git a/src/org/geometerplus/zlibrary/core/util/ZLMainWindowUtil.java b/src/org/geometerplus/zlibrary/core/util/ZLMainWindowUtil.java deleted file mode 100644 index 590a17fb0..000000000 --- a/src/org/geometerplus/zlibrary/core/util/ZLMainWindowUtil.java +++ /dev/null @@ -1,35 +0,0 @@ -/* - * Copyright (C) 2007-2011 Geometer Plus - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA - * 02110-1301, USA. - */ - -package org.geometerplus.zlibrary.core.util; - -public abstract class ZLMainWindowUtil { - protected static ZLMainWindowUtil ourInstance; - - protected ZLMainWindowUtil() { - ourInstance = this; - } - - public static ZLMainWindowUtil Instance() { - return ourInstance; - } - - public abstract void setTitle(String key); - public abstract void wait(String key, Runnable runnable); -} diff --git a/src/org/geometerplus/zlibrary/ui/android/application/ZLAndroidApplicationWindow.java b/src/org/geometerplus/zlibrary/ui/android/application/ZLAndroidApplicationWindow.java index 5b22fd062..cdad4f525 100644 --- a/src/org/geometerplus/zlibrary/ui/android/application/ZLAndroidApplicationWindow.java +++ b/src/org/geometerplus/zlibrary/ui/android/application/ZLAndroidApplicationWindow.java @@ -21,6 +21,8 @@ package org.geometerplus.zlibrary.ui.android.application; import java.util.*; +import android.app.Activity; + import android.view.Menu; import android.view.MenuItem; @@ -32,6 +34,8 @@ import org.geometerplus.zlibrary.core.view.ZLViewWidget; import org.geometerplus.zlibrary.ui.android.library.ZLAndroidLibrary; import org.geometerplus.zlibrary.ui.android.library.ZLAndroidApplication; +import org.geometerplus.android.util.UIUtil; + public final class ZLAndroidApplicationWindow extends ZLApplicationWindow { private final HashMap myMenuItemMap = new HashMap(); @@ -67,6 +71,30 @@ public final class ZLAndroidApplicationWindow extends ZLApplicationWindow { entry.getKey().setVisible(application.isActionVisible(actionId) && application.isActionEnabled(actionId)); } } + + @Override + public void wait(String key, Runnable action) { + final Activity activity = + ((ZLAndroidLibrary)ZLAndroidLibrary.Instance()).getActivity(); + if (activity != null) { + UIUtil.wait(key, action, activity); + } else { + action.run(); + } + } + + @Override + public void setTitle(final String title) { + final Activity activity = + ((ZLAndroidLibrary)ZLAndroidLibrary.Instance()).getActivity(); + if (activity != null) { + activity.runOnUiThread(new Runnable() { + public void run() { + activity.setTitle(title); + } + }); + } + } protected ZLViewWidget getViewWidget() { return ((ZLAndroidLibrary)ZLAndroidLibrary.Instance()).getWidget(); diff --git a/src/org/geometerplus/zlibrary/ui/android/library/ZLAndroidApplication.java b/src/org/geometerplus/zlibrary/ui/android/library/ZLAndroidApplication.java index f4884884c..725a2bff9 100644 --- a/src/org/geometerplus/zlibrary/ui/android/library/ZLAndroidApplication.java +++ b/src/org/geometerplus/zlibrary/ui/android/library/ZLAndroidApplication.java @@ -27,7 +27,6 @@ import org.geometerplus.zlibrary.core.options.ZLIntegerRangeOption; import org.geometerplus.zlibrary.core.sqliteconfig.ZLSQLiteConfig; import org.geometerplus.zlibrary.ui.android.application.ZLAndroidApplicationWindow; -import org.geometerplus.zlibrary.ui.android.util.ZLAndroidMainWindowUtil; import org.geometerplus.zlibrary.ui.android.image.ZLAndroidImageManager; public class ZLAndroidApplication extends Application { @@ -64,7 +63,6 @@ public class ZLAndroidApplication extends Application { super.onCreate(); new ZLSQLiteConfig(this); new ZLAndroidImageManager(); - new ZLAndroidMainWindowUtil(); new ZLAndroidLibrary(this); } } diff --git a/src/org/geometerplus/zlibrary/ui/android/library/ZLAndroidLibrary.java b/src/org/geometerplus/zlibrary/ui/android/library/ZLAndroidLibrary.java index 94a15592a..2f35e6e94 100644 --- a/src/org/geometerplus/zlibrary/ui/android/library/ZLAndroidLibrary.java +++ b/src/org/geometerplus/zlibrary/ui/android/library/ZLAndroidLibrary.java @@ -35,7 +35,6 @@ import org.geometerplus.zlibrary.core.filesystem.ZLResourceFile; import org.geometerplus.zlibrary.ui.android.R; import org.geometerplus.zlibrary.ui.android.view.ZLAndroidWidget; -import org.geometerplus.zlibrary.ui.android.util.ZLAndroidMainWindowUtil; public final class ZLAndroidLibrary extends ZLibrary { private ZLAndroidActivity myActivity; @@ -48,7 +47,6 @@ public final class ZLAndroidLibrary extends ZLibrary { void setActivity(ZLAndroidActivity activity) { myActivity = activity; - ((ZLAndroidMainWindowUtil)ZLAndroidMainWindowUtil.Instance()).setActivity(activity); myWidget = null; } @@ -64,6 +62,10 @@ public final class ZLAndroidLibrary extends ZLibrary { } } + public ZLAndroidActivity getActivity() { + return myActivity; + } + public ZLAndroidWidget getWidget() { if (myWidget == null) { myWidget = (ZLAndroidWidget)myActivity.findViewById(R.id.main_view); diff --git a/src/org/geometerplus/zlibrary/ui/android/util/ZLAndroidMainWindowUtil.java b/src/org/geometerplus/zlibrary/ui/android/util/ZLAndroidMainWindowUtil.java deleted file mode 100644 index ce76f4518..000000000 --- a/src/org/geometerplus/zlibrary/ui/android/util/ZLAndroidMainWindowUtil.java +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Copyright (C) 2007-2011 Geometer Plus - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA - * 02110-1301, USA. - */ - -package org.geometerplus.zlibrary.ui.android.util; - -import android.app.*; - -import org.geometerplus.zlibrary.core.util.*; - -import org.geometerplus.android.util.UIUtil; - -public class ZLAndroidMainWindowUtil extends ZLMainWindowUtil { - private Activity myActivity; - - public ZLAndroidMainWindowUtil() { - } - - public void setActivity(Activity activity) { - myActivity = activity; - } - - @Override - public void wait(String key, Runnable action) { - if (myActivity != null) { - UIUtil.wait(key, action, myActivity); - } else { - action.run(); - } - } - - @Override - public void setTitle(final String title) { - if (myActivity != null) { - myActivity.runOnUiThread(new Runnable() { - public void run() { - myActivity.setTitle(title); - } - }); - } - } -}