/** * galaxy inc. * meetup client for android */ package com.galaxy.meetup.client.android.api; import java.io.IOException; import java.util.ArrayList; import android.content.Context; import android.content.Intent; import com.galaxy.meetup.client.android.content.EsAccount; import com.galaxy.meetup.client.android.content.NotificationSettingsCategory; import com.galaxy.meetup.client.android.content.NotificationSettingsData; import com.galaxy.meetup.client.android.network.PlusiOperation; import com.galaxy.meetup.client.android.network.http.HttpOperation; import com.galaxy.meetup.server.client.domain.DataMobileSettings; import com.galaxy.meetup.server.client.domain.DataNotificationSettings; import com.galaxy.meetup.server.client.domain.OzDataSettings; import com.galaxy.meetup.server.client.domain.request.SettingsSetRequest; import com.galaxy.meetup.server.client.domain.response.SettingsSetResponse; import com.galaxy.meetup.server.client.v2.request.Request; import com.galaxy.meetup.server.client.v2.response.Response; /** * * @author sihai * */ public class SetNotificationSettingsOperation extends PlusiOperation { private NotificationSettingsData mSettings; public SetNotificationSettingsOperation(Context context, EsAccount esaccount, NotificationSettingsData notificationsettingsdata, Intent intent, HttpOperation.OperationListener operationlistener) { super(context, esaccount, "settingsset", intent, operationlistener, SettingsSetResponse.class); mSettings = notificationsettingsdata; } protected final void handleResponse(Response response) throws IOException { SettingsSetResponse settingssetresponse = (SettingsSetResponse)response; if(settingssetresponse.success != null && !settingssetresponse.success.booleanValue()) throw new ProtocolException("SettingsSetRequest failed"); else return; } protected final Request populateRequest() { SettingsSetRequest settingssetrequest = new SettingsSetRequest(); ArrayList arraylist = new ArrayList(); int i = mSettings.getCategoriesCount(); for(int j = 0; j < i; j++) { NotificationSettingsCategory notificationsettingscategory = mSettings.getCategory(j); int k = notificationsettingscategory.getSettingsCount(); for(int l = 0; l < k; l++) arraylist.add(notificationsettingscategory.getSetting(l).getDeliveryOption()); } DataNotificationSettings datanotificationsettings = new DataNotificationSettings(); datanotificationsettings.deliveryOption = arraylist; datanotificationsettings.emailAddress = mSettings.getEmailAddress(); DataMobileSettings datamobilesettings = new DataMobileSettings(); datamobilesettings.mobileNotificationType = "PUSH"; OzDataSettings ozdatasettings = new OzDataSettings(); ozdatasettings.notificationSettings = datanotificationsettings; ozdatasettings.mobileSettings = datamobilesettings; settingssetrequest.settings = ozdatasettings; return settingssetrequest; } }