diff --git a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/data/OnlineDataManager.java b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/data/OnlineDataManager.java index ddb239b7223..4a4b7d90a15 100644 --- a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/data/OnlineDataManager.java +++ b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/data/OnlineDataManager.java @@ -85,7 +85,7 @@ public class OnlineDataManager extends DataManager { } } - protected void reloadEvents(LoadClient> client) { + protected DataLoader> reloadEvents(LoadClient> client) { SharedDomainFactory domainFactory = DomainFactoryImpl.INSTANCE; DataParser> parser = new EventsDataParser(new EventBaseJsonDeserializer( new VenueJsonDeserializer(new CourseAreaJsonDeserializer(domainFactory)))); @@ -99,6 +99,7 @@ public class OnlineDataManager extends DataManager { } catch (IOException e) { e.printStackTrace(); } + return null; } public void loadCourseAreas(final Serializable parentEventId, final LoadClient> client) { diff --git a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/data/loaders/DataLoader.java b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/data/loaders/DataLoader.java index 44a42fd7bf5..a3e18d166e4 100644 --- a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/data/loaders/DataLoader.java +++ b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/data/loaders/DataLoader.java @@ -68,13 +68,13 @@ public class DataLoader extends AsyncTaskLoader { } } - @Override + /*@Override public void deliverResult(T data) { if (data == null) { dataHandler.onFailed(lastException); } else { dataHandler.onLoaded(data); } - } + }*/ } diff --git a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/ui/fragments/lists/EventListFragment.java b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/ui/fragments/lists/EventListFragment.java index 8dcb4060d06..fca2e01a7a8 100644 --- a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/ui/fragments/lists/EventListFragment.java +++ b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/ui/fragments/lists/EventListFragment.java @@ -1,13 +1,34 @@ package com.sap.sailing.racecommittee.app.ui.fragments.lists; +import java.io.IOException; +import java.net.MalformedURLException; +import java.net.URI; +import java.util.Collection; +import java.util.Collections; + import android.app.Activity; +import android.app.LoaderManager.LoaderCallbacks; +import android.content.Loader; +import android.os.Bundle; + import com.sap.sailing.domain.base.EventBase; +import com.sap.sailing.racecommittee.app.AppPreferences; import com.sap.sailing.racecommittee.app.R; import com.sap.sailing.racecommittee.app.data.ReadonlyDataManager; +import com.sap.sailing.racecommittee.app.data.handlers.DataHandler; +import com.sap.sailing.racecommittee.app.data.handlers.EventsDataHandler; +import com.sap.sailing.racecommittee.app.data.loaders.DataLoader; +import com.sap.sailing.racecommittee.app.data.parsers.DataParser; +import com.sap.sailing.racecommittee.app.data.parsers.EventsDataParser; +import com.sap.sailing.racecommittee.app.domain.impl.DomainFactoryImpl; +import com.sap.sailing.racecommittee.app.logging.ExLog; import com.sap.sailing.racecommittee.app.ui.fragments.lists.selection.EventSelectedListenerHost; import com.sap.sailing.racecommittee.app.ui.fragments.lists.selection.ItemSelectedListener; +import com.sap.sailing.server.gateway.deserialization.impl.CourseAreaJsonDeserializer; +import com.sap.sailing.server.gateway.deserialization.impl.EventBaseJsonDeserializer; +import com.sap.sailing.server.gateway.deserialization.impl.VenueJsonDeserializer; -public class EventListFragment extends NamedListFragment { +public class EventListFragment extends NamedListFragment implements LoaderCallbacks> { @Override public void onResume() { @@ -33,7 +54,37 @@ public class EventListFragment extends NamedListFragment { @Override protected void loadItems(ReadonlyDataManager manager) { - manager.loadEvents(this); + /*manager.loadEvents(this);*/ + getLoaderManager().initLoader(0, null, this).forceLoad(); + } + + @Override + public Loader> onCreateLoader(int id, Bundle args) { + DataParser> parser = new EventsDataParser(new EventBaseJsonDeserializer( + new VenueJsonDeserializer(new CourseAreaJsonDeserializer(DomainFactoryImpl.INSTANCE)))); + try { + return new DataLoader>( + getActivity(), + URI.create(AppPreferences.getServerBaseURL(getActivity()) + "/sailingserver/events"), + parser, + null); + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + + @Override + public void onLoadFinished(Loader> arg0, Collection arg1) { + if (arg1 == null) + ExLog.w("BLUB", "NULL"); + else + super.onLoadSucceded(arg1); + } + + @Override + public void onLoaderReset(Loader> arg0) { + super.onLoadSucceded(Collections.emptyList()); } }