1
0
Fork 0
mirror of https://github.com/geometer/FBReaderJ.git synced 2025-10-05 19:42:17 +02:00

CatalogDownloaderService --> ItemsLoadingService

git-svn-id: https://only.mawhrin.net/repos/FBReaderJ/trunk@1317 6a642e6f-84f6-412e-ac94-c4a38d5a04b0
This commit is contained in:
Vasiliy Bout 2010-04-30 10:29:20 +00:00
parent 4ee8bd4db2
commit 2f46a90b75
5 changed files with 25 additions and 24 deletions

View file

@ -85,7 +85,7 @@
<activity android:name="org.geometerplus.android.fbreader.network.NetworkLibraryActivity" android:process=":networkLibrary" android:configChanges="orientation|keyboardHidden">
<meta-data android:name="android.app.default_searchable" android:value="org.geometerplus.android.fbreader.network.NetworkSearchActivity" />
</activity>
<service android:name="org.geometerplus.android.fbreader.network.CatalogDownloaderService" android:process=":networkLibrary" />
<service android:name="org.geometerplus.android.fbreader.network.ItemsLoadingService" android:process=":networkLibrary" />
<activity android:name="org.geometerplus.android.fbreader.network.NetworkBookInfoActivity" android:process=":networkLibrary" android:configChanges="orientation|keyboardHidden" />
<activity android:name="org.geometerplus.android.fbreader.network.BookDownloaderCallback" android:process=":networkLibrary" android:theme="@android:style/Theme.NoDisplay" />
</application>

View file

@ -85,7 +85,7 @@
<activity android:name="org.geometerplus.android.fbreader.network.NetworkLibraryActivity" android:process=":networkLibrary" android:configChanges="orientation|keyboardHidden">
<meta-data android:name="android.app.default_searchable" android:value="org.geometerplus.android.fbreader.network.NetworkSearchActivity" />
</activity>
<service android:name="org.geometerplus.android.fbreader.network.CatalogDownloaderService" android:process=":networkLibrary" />
<service android:name="org.geometerplus.android.fbreader.network.ItemsLoadingService" android:process=":networkLibrary" />
<activity android:name="org.geometerplus.android.fbreader.network.NetworkBookInfoActivity" android:process=":networkLibrary" android:configChanges="orientation|keyboardHidden" />
<activity android:name="org.geometerplus.android.fbreader.network.BookDownloaderCallback" android:process=":networkLibrary" android:theme="@android:style/Theme.NoDisplay" />
</application>

View file

@ -40,7 +40,7 @@ import org.geometerplus.zlibrary.core.resources.ZLResource;
import org.geometerplus.zlibrary.ui.android.R;
public class CatalogDownloaderService extends Service {
public class ItemsLoadingService extends Service {
private volatile int myServiceCounter;
@ -123,7 +123,7 @@ public class CatalogDownloaderService extends Service {
doStop();
return;
}
final Runnable runnable = NetworkLibraryActivity.Instance.getCatalogRunnable(uri);
final Runnable runnable = NetworkLibraryActivity.Instance.getItemsLoadingRunnable(uri);
if (runnable == null) {
doStop();
return;
@ -134,7 +134,7 @@ public class CatalogDownloaderService extends Service {
doStop();
endProgressNotification();
if (NetworkLibraryActivity.Instance != null) {
NetworkLibraryActivity.Instance.removeCatalogRunnable(uri);
NetworkLibraryActivity.Instance.removeItemsLoadingRunnable(uri);
}
}
};

View file

@ -68,12 +68,13 @@ class NetworkCatalogActions extends NetworkTreeActions {
final String catalogUrl = item.URLByType.get(NetworkCatalogItem.URL_CATALOG);
final boolean isOpened = tree.hasChildren() && NetworkLibraryActivity.Instance.getAdapter().isOpen(tree);
final Runnable catalogRunnable = (catalogUrl != null) ? NetworkLibraryActivity.Instance.getCatalogRunnable(Uri.parse(catalogUrl)) : null;
final ItemsLoadingRunnable catalogRunnable = (catalogUrl != null) ?
NetworkLibraryActivity.Instance.getItemsLoadingRunnable(Uri.parse(catalogUrl)) : null;
final boolean isLoading = catalogRunnable != null;
if (catalogUrl != null) {
if (isLoading) {
if (catalogRunnable instanceof ItemsLoadingRunnable && ((ItemsLoadingRunnable) catalogRunnable).InterruptFlag.get()) {
if (catalogRunnable.InterruptFlag.get()) {
addMenuItem(menu, TREE_NO_ACTION, "stoppingCatalogLoading");
} else {
addMenuItem(menu, STOP_LOADING_ITEM_ID, "stopLoading");
@ -293,7 +294,7 @@ class NetworkCatalogActions extends NetworkTreeActions {
throw new RuntimeException("That's impossible!!!");
}
final ExpandCatalogHandler handler = new ExpandCatalogHandler(tree);
NetworkLibraryActivity.Instance.loadCatalog(
NetworkLibraryActivity.Instance.startItemsLoading(
Uri.parse(url),
new ExpandCatalogRunnable(handler, tree, true)
);
@ -315,7 +316,7 @@ class NetworkCatalogActions extends NetworkTreeActions {
tree.clear();
NetworkLibraryActivity.Instance.getAdapter().resetTree();
final ExpandCatalogHandler handler = new ExpandCatalogHandler(tree);
NetworkLibraryActivity.Instance.loadCatalog(
NetworkLibraryActivity.Instance.startItemsLoading(
Uri.parse(url),
new ExpandCatalogRunnable(handler, tree, false)
);
@ -361,9 +362,9 @@ class NetworkCatalogActions extends NetworkTreeActions {
throw new RuntimeException("That's impossible!!!");
}
final Uri uri = Uri.parse(url);
final Runnable runnable = NetworkLibraryActivity.Instance.getCatalogRunnable(uri);
if (runnable != null && runnable instanceof ItemsLoadingRunnable) {
((ItemsLoadingRunnable) runnable).InterruptFlag.set(true);
final ItemsLoadingRunnable runnable = NetworkLibraryActivity.Instance.getItemsLoadingRunnable(uri);
if (runnable != null) {
runnable.InterruptFlag.set(true);
}
}

View file

@ -65,7 +65,7 @@ public class NetworkLibraryActivity extends ListActivity implements MenuItem.OnM
private final ArrayList<NetworkTreeActions> myActions = new ArrayList<NetworkTreeActions>();
private final HashMap<Uri, Runnable> myCatalogRunnables = new HashMap<Uri, Runnable>();
private final HashMap<Uri, ItemsLoadingRunnable> myItemsLoadingRunnables = new HashMap<Uri, ItemsLoadingRunnable>();
private NetworkBookItem myBookInfoItem;
private final HashSet<String> myIconsToSync = new HashSet<String>();
@ -375,30 +375,30 @@ public class NetworkLibraryActivity extends ListActivity implements MenuItem.OnM
}
}
void loadCatalog(Uri uri, Runnable loadCatalogRunnable) {
void startItemsLoading(Uri uri, ItemsLoadingRunnable runnable) {
boolean doDownload = false;
synchronized (myCatalogRunnables) {
if (!myCatalogRunnables.containsKey(uri)) {
myCatalogRunnables.put(uri, loadCatalogRunnable);
synchronized (myItemsLoadingRunnables) {
if (!myItemsLoadingRunnables.containsKey(uri)) {
myItemsLoadingRunnables.put(uri, runnable);
doDownload = true;
}
}
if (doDownload) {
startService(
new Intent(Intent.ACTION_DEFAULT, uri, getApplicationContext(), CatalogDownloaderService.class)
new Intent(Intent.ACTION_DEFAULT, uri, getApplicationContext(), ItemsLoadingService.class)
);
}
}
Runnable getCatalogRunnable(Uri uri) {
synchronized (myCatalogRunnables) {
return myCatalogRunnables.get(uri);
ItemsLoadingRunnable getItemsLoadingRunnable(Uri uri) {
synchronized (myItemsLoadingRunnables) {
return myItemsLoadingRunnables.get(uri);
}
}
Runnable removeCatalogRunnable(Uri uri) {
synchronized (myCatalogRunnables) {
return myCatalogRunnables.remove(uri);
ItemsLoadingRunnable removeItemsLoadingRunnable(Uri uri) {
synchronized (myItemsLoadingRunnables) {
return myItemsLoadingRunnables.remove(uri);
}
}