package org.dodgybits.shuffle.android.core.model.encoding; import static android.provider.BaseColumns._ID; import static org.dodgybits.shuffle.android.persistence.provider.ContextProvider.Contexts.COLOUR; import static org.dodgybits.shuffle.android.persistence.provider.ContextProvider.Contexts.ICON; import static org.dodgybits.shuffle.android.persistence.provider.ContextProvider.Contexts.MODIFIED_DATE; import static org.dodgybits.shuffle.android.persistence.provider.ContextProvider.Contexts.NAME; import static org.dodgybits.shuffle.android.persistence.provider.ContextProvider.Contexts.TRACKS_ID; import org.dodgybits.shuffle.android.core.model.Context; import org.dodgybits.shuffle.android.core.model.Context.Builder; import roboguice.inject.ContextScoped; import android.os.Bundle; @ContextScoped public class ContextEncoder extends AbstractEntityEncoder implements EntityEncoder<Context> { @Override public void save(Bundle icicle, Context context) { putId(icicle, _ID, context.getLocalId()); putId(icicle, TRACKS_ID, context.getTracksId()); icicle.putLong(MODIFIED_DATE, context.getModifiedDate()); putString(icicle, NAME, context.getName()); icicle.putInt(COLOUR, context.getColourIndex()); putString(icicle, ICON, context.getIconName()); } @Override public Context restore(Bundle icicle) { if (icicle == null) return null; Builder builder = Context.newBuilder(); builder.setLocalId(getId(icicle, _ID)); builder.setModifiedDate(icicle.getLong(MODIFIED_DATE, 0L)); builder.setTracksId(getId(icicle, TRACKS_ID)); builder.setName(getString(icicle, NAME)); builder.setColourIndex(icicle.getInt(COLOUR)); builder.setIconName(getString(icicle, ICON)); return builder.build(); } }