/** * galaxy inc. * meetup client for android */ package com.galaxy.meetup.client.android.api; import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import android.content.Context; import android.content.Intent; import com.galaxy.meetup.client.android.content.EsAccount; import com.galaxy.meetup.client.android.content.EsPeopleData; import com.galaxy.meetup.client.android.network.PlusiOperation; import com.galaxy.meetup.client.android.network.http.HttpOperation; import com.galaxy.meetup.server.client.domain.VolumeControlKey; import com.galaxy.meetup.server.client.domain.VolumeControlMap; import com.galaxy.meetup.server.client.domain.VolumeControlPair; import com.galaxy.meetup.server.client.domain.request.SetVolumeControlsRequest; import com.galaxy.meetup.server.client.domain.response.SetVolumeControlsResponse; import com.galaxy.meetup.server.client.v2.request.Request; import com.galaxy.meetup.server.client.v2.response.Response; /** * * @author sihai * */ public class SetVolumeControlsOperation extends PlusiOperation { private String mCircleId; private HashMap mCircleToVolumeMap; private int mVolume; public SetVolumeControlsOperation(Context context, EsAccount esaccount, Intent intent, HttpOperation.OperationListener operationlistener, String s, int i) { super(context, esaccount, "setvolumecontrols", intent, operationlistener, SetVolumeControlsResponse.class); mCircleId = s; mVolume = i; } public SetVolumeControlsOperation(Context context, EsAccount esaccount, Intent intent, HttpOperation.OperationListener operationlistener, HashMap hashmap) { super(context, esaccount, "setvolumecontrols", intent, operationlistener, SetVolumeControlsResponse.class); mCircleToVolumeMap = hashmap; } private static String volumeIntToString(int i) { String s = null; switch(i) { case 0: s = "NONE"; break; case 1: s = "LESS"; break; case 2: s = "NORMAL"; break; case 3: s = "MORE"; break; case 4: s = "NOTIFY"; break; default: break; } return s; } protected final void handleResponse(Response response) throws IOException { if(!((SetVolumeControlsResponse)response).value.booleanValue()) throw new IllegalStateException("SetVolumeControls: unexpected server failure."); if(mCircleToVolumeMap != null) EsPeopleData.setCircleVolumes(mContext, mAccount, mCircleToVolumeMap); else EsPeopleData.setCircleVolume(mContext, mAccount, mCircleId, mVolume); } protected final Request populateRequest() { SetVolumeControlsRequest setvolumecontrolsrequest = new SetVolumeControlsRequest(); ArrayList arraylist = new ArrayList(); if(mCircleToVolumeMap != null) { VolumeControlPair volumecontrolpair1; for(Iterator iterator = mCircleToVolumeMap.entrySet().iterator(); iterator.hasNext(); arraylist.add(volumecontrolpair1)) { java.util.Map.Entry entry = (java.util.Map.Entry)iterator.next(); String s = (String)entry.getKey(); Integer integer = (Integer)entry.getValue(); volumecontrolpair1 = new VolumeControlPair(); volumecontrolpair1.key = new VolumeControlKey(); volumecontrolpair1.key.focusGroupId = EsPeopleData.getFocusCircleId(s); volumecontrolpair1.key.type = "CIRCLE"; volumecontrolpair1.value = volumeIntToString(integer.intValue()); } } else { VolumeControlPair volumecontrolpair = new VolumeControlPair(); volumecontrolpair.key = new VolumeControlKey(); volumecontrolpair.key.focusGroupId = EsPeopleData.getFocusCircleId(mCircleId); volumecontrolpair.key.type = "CIRCLE"; volumecontrolpair.value = volumeIntToString(mVolume); arraylist.add(volumecontrolpair); } setvolumecontrolsrequest.values = new VolumeControlMap(); setvolumecontrolsrequest.values.setting = arraylist; return setvolumecontrolsrequest; } }