package com.ztspeech.weibo.sdk.kaixin; import android.app.Activity; import android.app.Dialog; import android.app.ProgressDialog; import android.content.Context; import android.content.DialogInterface; import android.os.Bundle; import android.os.Handler; import android.text.TextUtils; import android.view.View; import android.view.ViewGroup; import android.view.Window; import android.widget.Button; import android.widget.EditText; import android.widget.LinearLayout; import com.ztspeech.simutalk2.R; /** * * @author piu 2011-12-23 PopUpDialog.java * */ public class PopUpDialog extends Dialog { private Context mContext; private ProgressDialog mProgressDialog; @SuppressWarnings("unused") private Handler mHandle; private LoginParameter mParams; private KaixinAuthListener mActivityListener; private AsyncKaixinListener mAsyncAuthListener = new AsyncKaixinListener() { @Override public void onRequestComplete(String response, Object obj) { if (mProgressDialog != null) { mProgressDialog.dismiss(); } mActivityListener.onAuthComplete(null); } @Override public void onRequestError(KaixinError kaixinError, Object obj) { // TODO Auto-generated method stub // String error, String errorDescription,String errorUri if (kaixinError != null) { mActivityListener.onAuthError(new KaixinAuthError(kaixinError.getMessage(), kaixinError.getMessage(), kaixinError.getRequest())); } if (mProgressDialog != null) { mProgressDialog.dismiss(); } } @Override public void onRequestNetError(Throwable fault, Object obj) { if (fault != null) { mActivityListener.onAuthError(new KaixinAuthError(fault.getMessage(), fault.getMessage(), null)); } if (mProgressDialog != null) { mProgressDialog.dismiss(); } } }; public PopUpDialog(Context context, final KaixinAuthListener listener) { super(context); mContext = context; mActivityListener = listener; } public PopUpDialog(Activity activity, LoginParameter param, final KaixinAuthListener listener) { super(activity); mActivityListener = listener; mContext = activity; this.mParams = param; this.mHandle = new Handler(); } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); final LinearLayout loginEntryView = (LinearLayout) getLayoutInflater().inflate( R.layout.kaixinloginwithoutwebview, null); loginEntryView.setOnClickListener(null); loginEntryView.setOnTouchListener(null); loginEntryView.setOnLongClickListener(null); loginEntryView.setOnKeyListener(null); ViewGroup.LayoutParams params = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT); initViews(loginEntryView); addContentView(loginEntryView, params); } private void initViews(LinearLayout loginEntryView) { final EditText userNameEditText = (EditText) loginEntryView.findViewById(R.id.kaixin_sdk_login_entry_username); final EditText passwordEditText = (EditText) loginEntryView.findViewById(R.id.kaixin_sdk_login_entry_password); Button button = (Button) loginEntryView.findViewById(R.id.kaixin_sdk_login_confirm_button); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String userName = userNameEditText.getText().toString(); String password = passwordEditText.getText().toString(); if (!TextUtils.isEmpty(userName) && !TextUtils.isEmpty(password)) { mParams.setUserName(userName); mParams.setPassword(password); login(); } } }); this.setOnDismissListener(new OnDismissListener() { @Override public void onDismiss(DialogInterface dialog) { if (mActivityListener != null) { mActivityListener.onAuthCancelLogin(); } } }); } private void login() { mProgressDialog = new ProgressDialog(getContext()); mProgressDialog.setMessage("���ڵ�½"); mProgressDialog.show(); AsyncKaixin asynckaixin = new AsyncKaixin(Kaixin.getInstance()); asynckaixin.login(mContext, mParams.getParams(), mAsyncAuthListener, null); } }