mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-17 01:31:01 +00:00
renamed CourseDataDeserializer to CourseBaseDeserializer
This commit is contained in:
1 parent
d4ad49bd9c
commit
3e903e2a27
8 files changed
+126
-113
No files matched your search
+4
-4
@@ -32,7 +32,7 @@ import com.sap.sailing.racecommittee.app.data.loaders.DataLoaderResult;
|
||||
import com.sap.sailing.racecommittee.app.data.loaders.ImmediateDataLoaderCallbacks;
|
||||
import com.sap.sailing.racecommittee.app.data.loaders.OnlineDataLoader;
|
||||
import com.sap.sailing.racecommittee.app.data.parsers.CompetitorsDataParser;
|
||||
import com.sap.sailing.racecommittee.app.data.parsers.CourseDataParser;
|
||||
import com.sap.sailing.racecommittee.app.data.parsers.CourseBaseParser;
|
||||
import com.sap.sailing.racecommittee.app.data.parsers.DataParser;
|
||||
import com.sap.sailing.racecommittee.app.data.parsers.EventsDataParser;
|
||||
import com.sap.sailing.racecommittee.app.data.parsers.ManagedRacesDataParser;
|
||||
@@ -43,7 +43,7 @@ import com.sap.sailing.racecommittee.app.domain.impl.DomainFactoryImpl;
|
||||
import com.sap.sailing.racecommittee.app.logging.ExLog;
|
||||
import com.sap.sailing.server.gateway.deserialization.JsonDeserializer;
|
||||
import com.sap.sailing.server.gateway.deserialization.coursedata.impl.ControlPointDeserializer;
|
||||
import com.sap.sailing.server.gateway.deserialization.coursedata.impl.CourseDataDeserializer;
|
||||
import com.sap.sailing.server.gateway.deserialization.coursedata.impl.CourseBaseDeserializer;
|
||||
import com.sap.sailing.server.gateway.deserialization.coursedata.impl.GateDeserializer;
|
||||
import com.sap.sailing.server.gateway.deserialization.coursedata.impl.MarkDeserializer;
|
||||
import com.sap.sailing.server.gateway.deserialization.coursedata.impl.WaypointDeserializer;
|
||||
@@ -182,10 +182,10 @@ public class OnlineDataManager extends DataManager {
|
||||
@Override
|
||||
public Loader<DataLoaderResult<CourseBase>> create(int id, Bundle args) throws Exception {
|
||||
SharedDomainFactory domainFactory = DomainFactoryImpl.INSTANCE;
|
||||
JsonDeserializer<CourseBase> courseBaseDeserializer = new CourseDataDeserializer(
|
||||
JsonDeserializer<CourseBase> courseBaseDeserializer = new CourseBaseDeserializer(
|
||||
new WaypointDeserializer(new ControlPointDeserializer(new MarkDeserializer(domainFactory),
|
||||
new GateDeserializer(domainFactory, new MarkDeserializer(domainFactory)))));
|
||||
DataParser<CourseBase> parser = new CourseDataParser(courseBaseDeserializer);
|
||||
DataParser<CourseBase> parser = new CourseBaseParser(courseBaseDeserializer);
|
||||
DataHandler<CourseBase> handler = new CourseDataHandler(OnlineDataManager.this, managedRace);
|
||||
|
||||
ManagedRaceIdentifier identifier = managedRace.getIdentifier();
|
||||
|
||||
+10
@@ -10,6 +10,16 @@ public class MarksDataHandler extends DataHandler<Collection<Mark>> {
|
||||
public MarksDataHandler(OnlineDataManager manager) {
|
||||
super(manager);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasCachedResults() {
|
||||
return !manager.getDataStore().getMarks().isEmpty();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Collection<Mark> getCachedResults() {
|
||||
return manager.getDataStore().getMarks();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onResult(Collection<Mark> data) {
|
||||
|
||||
+2
-2
@@ -9,11 +9,11 @@ import com.sap.sailing.domain.base.CourseBase;
|
||||
import com.sap.sailing.server.gateway.deserialization.JsonDeserializer;
|
||||
import com.sap.sailing.server.gateway.deserialization.impl.Helpers;
|
||||
|
||||
public class CourseDataParser implements DataParser<CourseBase> {
|
||||
public class CourseBaseParser implements DataParser<CourseBase> {
|
||||
|
||||
private JsonDeserializer<CourseBase> deserializer;
|
||||
|
||||
public CourseDataParser(JsonDeserializer<CourseBase> deserializer) {
|
||||
public CourseBaseParser(JsonDeserializer<CourseBase> deserializer) {
|
||||
this.deserializer = deserializer;
|
||||
}
|
||||
|
||||
+57
-54
@@ -39,6 +39,8 @@ public class RacingActivity extends SessionActivity implements RaceInfoListener
|
||||
|
||||
private static final String TAG = RacingActivity.class.getName();
|
||||
|
||||
private static final int RacesLoaderId = 0;
|
||||
|
||||
private class FilterModeSelectionBinder implements OnNavigationListener {
|
||||
|
||||
private ManagedRaceListFragment targetList;
|
||||
@@ -69,6 +71,59 @@ public class RacingActivity extends SessionActivity implements RaceInfoListener
|
||||
}
|
||||
}
|
||||
|
||||
private class RaceLoadClient implements LoadClient<Collection<ManagedRace>> {
|
||||
|
||||
private Collection<ManagedRace> lastSeenRaces = null;
|
||||
private CourseArea courseArea;
|
||||
|
||||
public RaceLoadClient(CourseArea courseArea) {
|
||||
this.courseArea = courseArea;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onLoadSucceded(Collection<ManagedRace> data) {
|
||||
setProgressBarIndeterminateVisibility(false);
|
||||
|
||||
// Let's do the setup stuff only when the data is changed (or its the first time)
|
||||
if (lastSeenRaces != null && CollectionUtils.isEqualCollection(data, lastSeenRaces)) {
|
||||
ExLog.i(TAG, "Same races are already loaded...");
|
||||
} else {
|
||||
lastSeenRaces = data;
|
||||
|
||||
registerOnService(data);
|
||||
raceListFragment.setupOn(data);
|
||||
|
||||
Toast.makeText(RacingActivity.this,
|
||||
String.format(getString(R.string.racing_load_success), data.size()), Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onLoadFailed(Exception reason) {
|
||||
setProgressBarIndeterminateVisibility(false);
|
||||
|
||||
AlertDialog.Builder builder = new AlertDialog.Builder(RacingActivity.this);
|
||||
builder.setMessage(String.format(getString(R.string.generic_load_failure), reason.getMessage()))
|
||||
.setTitle(getString(R.string.loading_failure)).setIcon(R.drawable.ic_dialog_alert_holo_light)
|
||||
.setCancelable(true)
|
||||
.setPositiveButton(getString(R.string.retry), new DialogInterface.OnClickListener() {
|
||||
public void onClick(DialogInterface dialog, int id) {
|
||||
setProgressBarIndeterminateVisibility(true);
|
||||
|
||||
ExLog.i(TAG, "Issuing a reload of managed races");
|
||||
getLoaderManager().restartLoader(RacesLoaderId, null,
|
||||
dataManager.getRacesLoader(courseArea.getId(), RaceLoadClient.this));
|
||||
dialog.cancel();
|
||||
}
|
||||
}).setNegativeButton(getString(R.string.cancel), new DialogInterface.OnClickListener() {
|
||||
public void onClick(DialogInterface dialog, int id) {
|
||||
dialog.cancel();
|
||||
}
|
||||
});
|
||||
builder.create().show();
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Selection list of all races
|
||||
*/
|
||||
@@ -160,40 +215,8 @@ public class RacingActivity extends SessionActivity implements RaceInfoListener
|
||||
setProgressBarIndeterminateVisibility(true);
|
||||
|
||||
ExLog.i(TAG, "Issuing loading of managed races from data manager");
|
||||
getLoaderManager().initLoader(0, null,
|
||||
dataManager.getRacesLoader(courseArea.getId(), new LoadClient<Collection<ManagedRace>>() {
|
||||
public void onLoadSucceded(Collection<ManagedRace> data) {
|
||||
onLoadRacesSucceded(courseArea, data);
|
||||
}
|
||||
|
||||
public void onLoadFailed(Exception reason) {
|
||||
onLoadRacesFailed(courseArea, reason);
|
||||
}
|
||||
}));
|
||||
}
|
||||
|
||||
Collection<ManagedRace> lastSeenRaces = null;
|
||||
|
||||
private void onLoadRacesSucceded(CourseArea courseArea, Collection<ManagedRace> data) {
|
||||
setProgressBarIndeterminateVisibility(false);
|
||||
|
||||
// Let's do the setup stuff only when the data is changed (or its the first time)
|
||||
if (lastSeenRaces != null && CollectionUtils.isEqualCollection(data, lastSeenRaces)) {
|
||||
ExLog.i(TAG, "Same races are already loaded...");
|
||||
return;
|
||||
}
|
||||
lastSeenRaces = data;
|
||||
|
||||
registerOnService(data);
|
||||
raceListFragment.setupOn(data);
|
||||
|
||||
Toast.makeText(RacingActivity.this, String.format(getString(R.string.racing_load_success), data.size()),
|
||||
Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
|
||||
private void onLoadRacesFailed(final CourseArea courseArea, Exception reason) {
|
||||
setProgressBarIndeterminateVisibility(false);
|
||||
showLoadFailedDialog(courseArea, reason.getMessage());
|
||||
getLoaderManager().initLoader(RacesLoaderId, null,
|
||||
dataManager.getRacesLoader(courseArea.getId(), new RaceLoadClient(courseArea)));
|
||||
}
|
||||
|
||||
private void registerOnService(Collection<ManagedRace> races) {
|
||||
@@ -207,26 +230,6 @@ public class RacingActivity extends SessionActivity implements RaceInfoListener
|
||||
}
|
||||
}
|
||||
|
||||
private void showLoadFailedDialog(final CourseArea courseArea, String message) {
|
||||
AlertDialog.Builder builder = new AlertDialog.Builder(this);
|
||||
builder.setMessage(String.format(getString(R.string.generic_load_failure), message))
|
||||
.setTitle(getString(R.string.loading_failure)).setIcon(R.drawable.ic_dialog_alert_holo_light)
|
||||
.setCancelable(true)
|
||||
.setPositiveButton(getString(R.string.retry), new DialogInterface.OnClickListener() {
|
||||
public void onClick(DialogInterface dialog, int id) {
|
||||
loadRaces(courseArea);
|
||||
}
|
||||
}).setNegativeButton(getString(R.string.cancel), new DialogInterface.OnClickListener() {
|
||||
public void onClick(DialogInterface dialog, int id) {
|
||||
dialog.cancel();
|
||||
}
|
||||
});
|
||||
if (!isFinishing()) {
|
||||
AlertDialog alert = builder.create();
|
||||
alert.show();
|
||||
}
|
||||
}
|
||||
|
||||
public void onRaceItemClicked(ManagedRace managedRace) {
|
||||
infoFragment = new RaceInfoFragment();
|
||||
infoFragment.setArguments(RaceFragment.createArguments(managedRace));
|
||||
|
||||
Reference in new issue
Block a user