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:
parent
4ee8bd4db2
commit
2f46a90b75
5 changed files with 25 additions and 24 deletions
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
};
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue