/** * galaxy inc. * meetup client for android */ package com.galaxy.meetup.client.android.api; import java.io.IOException; import android.content.Context; import android.content.Intent; import android.text.TextUtils; import android.util.Log; import com.galaxy.meetup.client.android.content.AccountSettingsData; import com.galaxy.meetup.client.android.content.EsAccount; import com.galaxy.meetup.client.android.content.EsAccountsData; import com.galaxy.meetup.client.android.network.PlusiOperation; import com.galaxy.meetup.client.android.network.http.HttpOperation; import com.galaxy.meetup.server.client.domain.GenericJson; import com.galaxy.meetup.server.client.domain.MobileSettingsUser; import com.galaxy.meetup.server.client.domain.MobileSettingsUserInfo; import com.galaxy.meetup.server.client.domain.response.GetMobileSettingsResponse; import com.galaxy.meetup.server.client.v2.request.Request; import com.galaxy.meetup.server.client.v2.response.Response; /** * * @author sihai * */ public class GetSettingsOperation extends PlusiOperation { private AccountSettingsData mSettings; private boolean mSetupAccount; public GetSettingsOperation(Context context, EsAccount esaccount, boolean flag, Intent intent, HttpOperation.OperationListener operationlistener) { super(context, esaccount, "getmobilesettings", null, null, GetMobileSettingsResponse.class); mSetupAccount = flag; } public final AccountSettingsData getAccountSettings() { return mSettings; } protected final void handleResponse(Response response) throws IOException { MobileSettingsUser mobilesettingsuser; MobileSettingsUserInfo mobilesettingsuserinfo; String s; String s1; boolean flag; GetMobileSettingsResponse getmobilesettingsresponse = (GetMobileSettingsResponse)response; if(getmobilesettingsresponse.user == null || getmobilesettingsresponse.user.info == null || TextUtils.isEmpty(getmobilesettingsresponse.user.info.obfuscatedGaiaId)) { Log.e("HttpTransaction", "Settings response missing gaid ID"); throw new ProtocolException("Settings response missing gaid ID"); } mobilesettingsuser = getmobilesettingsresponse.user; mobilesettingsuserinfo = mobilesettingsuser.info; s = mobilesettingsuserinfo.obfuscatedGaiaId; s1 = mobilesettingsuserinfo.displayName; if(mobilesettingsuser.isChild != null && mobilesettingsuser.isChild.booleanValue()) flag = true; else flag = false; EsAccount esaccount; AccountSettingsData accountsettingsdata; if(mSetupAccount) { if(mAccount.isPlusPage() || mobilesettingsuser.plusPageInfo == null || mobilesettingsuser.plusPageInfo.size() <= 0) { boolean flag1; if(mAccount.isPlusPage() || mobilesettingsuser.isPlusPage != null && mobilesettingsuser.isPlusPage.booleanValue()) flag1 = true; else flag1 = false; esaccount = EsAccountsData.insertAccount(mContext, s, mAccount.getName(), s1, flag, flag1); EsAccountsData.activateAccount(mContext, esaccount, mobilesettingsuserinfo.photoUrl); } else { mSettings = new AccountSettingsData(getmobilesettingsresponse); return; } } else { esaccount = mAccount; EsAccountsData.updateAccount(mContext, mAccount, s, s1, flag); } accountsettingsdata = new AccountSettingsData(getmobilesettingsresponse); EsAccountsData.saveServerSettings(mContext, esaccount, accountsettingsdata); return; } public final boolean hasPlusPages() { boolean flag; if(mSettings != null) flag = true; else flag = false; return flag; } protected final Request populateRequest() { return new Request(); } }