Implemented binding to LibrarySyncService for detail fragments
This commit is contained in:
parent
f4715d70a2
commit
0b9f3db9c9
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue