package org.wheelmap.android.net; import org.wheelmap.android.mapping.node.SinglePhoto; import org.wheelmap.android.model.Extra; import org.wheelmap.android.model.PrepareDatabaseHelper; import org.wheelmap.android.net.request.AcceptType; import org.wheelmap.android.net.request.PhotoRequestBuilder; import org.wheelmap.android.service.RestServiceException; import android.accounts.NetworkErrorException; import android.content.Context; import android.os.Bundle; public class PhotoExecutor extends SinglePageExecutor<SinglePhoto> implements IExecutor{ private String mWMId = Extra.WM_ID_UNKNOWN; public PhotoExecutor(Context context, Bundle bundle) { super(context, bundle, SinglePhoto.class); } @Override public void prepareContent() { mWMId = getBundle().getString(Extra.WM_ID); } @Override public void execute(long id) throws RestServiceException { PhotoRequestBuilder requestBuilder = null; if (mWMId == Extra.WM_ID_UNKNOWN) { processException(RestServiceException.ERROR_INTERNAL_ERROR, new IllegalArgumentException(), true); } requestBuilder = new PhotoRequestBuilder(getServer(), getApiKey(), AcceptType.JSON, Long.parseLong(mWMId)); int count = executeSingleRequest(requestBuilder); if (count == 0) { processException( RestServiceException.ERROR_NETWORK_FAILURE, new NetworkErrorException(), true); } } @Override public void prepareDatabase() throws RestServiceException { PrepareDatabaseHelper.insertSinglePhoto(getResolver(), getTempStore().get(0)); } }