package com.shejiaomao.weibo.service.listener; import android.view.View; import android.widget.AdapterView; import android.widget.Button; import android.widget.CheckBox; import android.widget.CompoundButton; import android.widget.EditText; import android.widget.LinearLayout; import android.widget.Spinner; import android.widget.TextView; import android.widget.AdapterView.OnItemSelectedListener; import com.cattong.commons.ServiceProvider; import com.shejiaomao.maobo.R; import com.shejiaomao.weibo.activity.AddAccountActivity; import com.shejiaomao.weibo.service.adapter.ConfigAppSpinnerAdapter; public class AddAccountSpItemSelectedListener implements OnItemSelectedListener { private AddAccountActivity context; private static ServiceProvider[] serviceProviders = { ServiceProvider.Sina, ServiceProvider.Tencent, ServiceProvider.Sohu, ServiceProvider.NetEase, ServiceProvider.Fanfou, ServiceProvider.Twitter, ServiceProvider.RenRen, ServiceProvider.KaiXin, ServiceProvider.QQZone }; private LinearLayout llXAuthForm; private LinearLayout llOAuthIntro; private EditText etUsername; private EditText etPassword; private TextView tvOAuthIntro; private CheckBox cbUseProxy; private EditText etRestProxy; private EditText etSearchProxy; private CheckBox cbFollowOffical; private CheckBox cbMakeDefault; private Spinner spConfigApp; private Button btnAuthorize; public AddAccountSpItemSelectedListener(AddAccountActivity context) { this.context = context; llXAuthForm = (LinearLayout) context.findViewById(R.id.llXAuthForm); etUsername = (EditText) context.findViewById(R.id.etUsername); etPassword = (EditText) context.findViewById(R.id.etPassword); llOAuthIntro = (LinearLayout) context.findViewById(R.id.llOAuthIntro); tvOAuthIntro = (TextView) context.findViewById(R.id.tvOAuthIntro); cbUseProxy = (CheckBox) context.findViewById(R.id.cbUseApiProxy); etRestProxy = (EditText) context.findViewById(R.id.etRestProxy); etSearchProxy = (EditText) context.findViewById(R.id.etSearchProxy); cbFollowOffical = (CheckBox) context.findViewById(R.id.cbFollowOffical); cbMakeDefault = (CheckBox) context.findViewById(R.id.cbDefault); spConfigApp = (Spinner) context.findViewById(R.id.spConfigApp); btnAuthorize = (Button) context.findViewById(R.id.btnAuthorize); } @Override public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { final ServiceProvider sp = serviceProviders[position]; if (sp == null) { return; } context.setSp(sp); if (spConfigApp != null && spConfigApp.getAdapter() != null) { ConfigAppSpinnerAdapter adapter = (ConfigAppSpinnerAdapter) spConfigApp.getAdapter(); adapter.setServiceProvider(sp); } showForm(sp); } @Override public void onNothingSelected(AdapterView<?> parent) { } private void showForm(final ServiceProvider sp) { switch (sp) { case Sina: case Tencent: showOAuthForm(sp); break; case Twitter: showOAuthForm(sp); cbUseProxy.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { if (isChecked) { showXAuthForm(sp); } else { showOAuthForm(sp); } } }); break; case RenRen: case KaiXin: case QQZone: showOAuthForm(sp); break; default: showXAuthForm(sp); break; } } private void showXAuthForm(ServiceProvider serviceProvider) { llOAuthIntro.setVisibility(View.GONE); llXAuthForm.setVisibility(View.VISIBLE); etUsername.setText(""); etPassword.setText(""); if (serviceProvider == ServiceProvider.Twitter) { cbUseProxy.setVisibility(View.VISIBLE); etRestProxy.setVisibility(View.VISIBLE); etRestProxy.setText(""); etSearchProxy.setVisibility(View.GONE); } else { cbUseProxy.setVisibility(View.GONE); etRestProxy.setVisibility(View.GONE); etSearchProxy.setVisibility(View.GONE); } btnAuthorize.setEnabled(false); } private void showOAuthForm(ServiceProvider serviceProvider) { llXAuthForm.setVisibility(View.GONE); llOAuthIntro.setVisibility(View.VISIBLE); if (serviceProvider == ServiceProvider.Twitter) { cbUseProxy.setVisibility(View.VISIBLE); } else { cbUseProxy.setVisibility(View.GONE); } if (serviceProvider.getSpCategory().equals(ServiceProvider.CATEGORY_SNS)) { cbFollowOffical.setVisibility(View.GONE); cbMakeDefault.setVisibility(View.GONE); } else { cbFollowOffical.setVisibility(View.VISIBLE); cbMakeDefault.setVisibility(View.VISIBLE); } etRestProxy.setVisibility(View.GONE); etSearchProxy.setVisibility(View.GONE); tvOAuthIntro.setText(R.string.hint_accounts_oauth_intro_tencent); if (serviceProvider.isSns()) { tvOAuthIntro.append("\n\n"); tvOAuthIntro.append(context.getText(R.string.hint_accounts_sns)); } btnAuthorize.setEnabled(true); } }