Implemented binding to LibrarySyncService for detail fragments

This commit is contained in:
Martijn Brekhof 2015-10-26 11:21:49 +01:00
parent f4715d70a2
commit 0b9f3db9c9
1 changed files with 34 additions and 4 deletions

View File

@ -33,15 +33,15 @@ import org.xbmc.kore.host.HostManager;
import org.xbmc.kore.jsonrpc.ApiException;
import org.xbmc.kore.jsonrpc.event.MediaSyncEvent;
import org.xbmc.kore.service.LibrarySyncService;
import org.xbmc.kore.service.SyncUtils;
import org.xbmc.kore.utils.LogUtils;
import org.xbmc.kore.utils.UIUtils;
import java.util.ArrayList;
import de.greenrobot.event.EventBus;
abstract public class AbstractDetailsFragment extends Fragment
implements SwipeRefreshLayout.OnRefreshListener {
implements SwipeRefreshLayout.OnRefreshListener,
SyncUtils.OnServiceListener {
private static final String TAG = LogUtils.makeLogTag(AbstractDetailsFragment.class);
private HostManager hostManager;
@ -51,6 +51,8 @@ abstract public class AbstractDetailsFragment extends Fragment
private SwipeRefreshLayout swipeRefreshLayout;
private ServiceConnection serviceConnection;
abstract protected View createView(LayoutInflater inflater, ViewGroup container);
/**
@ -109,6 +111,12 @@ abstract public class AbstractDetailsFragment extends Fragment
return view;
}
@Override
public void onStart() {
super.onStart();
serviceConnection = SyncUtils.connectToLibrarySyncService(getActivity(), this);
}
@Override
public void onResume() {
bus.register(this);
@ -121,6 +129,12 @@ abstract public class AbstractDetailsFragment extends Fragment
super.onPause();
}
@Override
public void onStop() {
super.onStop();
SyncUtils.disconnectFromLibrarySyncService(getActivity(), serviceConnection);
}
@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
@ -138,7 +152,7 @@ abstract public class AbstractDetailsFragment extends Fragment
if(syncType != null) {
syncIntent.putExtra(syncType, true);
}
String syncID = getSyncID();
int itemId = getSyncItemID();
if( ( syncID != null ) && ( itemId != -1 ) ) {
@ -201,6 +215,22 @@ abstract public class AbstractDetailsFragment extends Fragment
}
}
@Override
public void onServiceConnected(LibrarySyncService librarySyncService) {
if (syncType == null)
return;
if (SyncUtils.isLibrarySyncing(
librarySyncService,
HostManager.getInstance(getActivity()).getHostInfo(),
syncType)) {
if (swipeRefreshLayout != null) {
UIUtils.showRefreshAnimation(swipeRefreshLayout);
}
return;
}
}
/**
* Called when sync process for type set through {@link #getSyncType()} ends
* @param event