package org.xbmc.android.remote.presentation.wizard.setupwizard; import java.net.HttpURLConnection; import org.apache.http.HttpException; import org.xbmc.android.remote.R; import org.xbmc.android.remote.business.Command; import org.xbmc.android.remote.business.ManagerFactory; import org.xbmc.android.remote.presentation.wizard.Wizard; import org.xbmc.android.remote.presentation.wizard.WizardPage; import org.xbmc.android.util.ClientFactory; import org.xbmc.api.business.DataResponse; import org.xbmc.api.business.IInfoManager; import org.xbmc.api.business.INotifiableManager; import org.xbmc.api.info.SystemInfo; import org.xbmc.api.object.Host; import org.xbmc.api.presentation.INotifiableController; import android.content.Context; import android.os.Handler; import android.util.AttributeSet; import android.view.View; import android.widget.EditText; import android.widget.TextView; public class SetupWizardPageLogin extends WizardPage<Host> { private EditText username; private EditText password; private Handler mHandler; private TextView errorMsg; public SetupWizardPageLogin(Context context, AttributeSet attrs, int defStyle, Wizard<Host> wizard) { super(context, attrs, defStyle, wizard); } public SetupWizardPageLogin(Context context, AttributeSet attrs, Wizard<Host> wizard) { super(context, attrs, wizard); } public SetupWizardPageLogin(Context context, Wizard<Host> wizard) { super(context, wizard); } @Override public WizardPage<Host> getNextPage() { return null; } @Override public int getLayoutId() { return R.layout.setup_page_login; } @Override protected void onInit() { mHandler = new Handler(); username = (EditText)findViewById(R.id.setup_wizard_username); password = (EditText)findViewById(R.id.setup_wizard_password); errorMsg = (TextView)findViewById(R.id.setup_page_login_msg); setCanFinish(true); } @Override public OnClickListener getNextClickListener() { return new OnClickListener() { public void onClick(View v) { getInput().user = username.getText().toString(); getInput().pass = password.getText().toString(); ClientFactory.resetClient(getInput()); testConnection(); } }; } private void testConnection() { IInfoManager info = ManagerFactory.getInfoManager(new INotifiableController() { public void runOnUI(Runnable action) { mHandler.post(action); } public void onWrongConnectionState(int state, INotifiableManager manager, Command<?> source) { } public void onMessage(String message) { } public void onError(Exception e) { if (e instanceof HttpException && e.getMessage() .equals(HttpURLConnection.HTTP_UNAUTHORIZED)) { errorMsg.setText(R.string.setup_wizard_login_wrong); } } }); info.getSystemInfo(new DataResponse<String>() { @Override public void run() { if(value != null && !value.equals("")) { //ok, finally we got it, we can login into xbmc showNextPage(); } } }, SystemInfo.SYSTEM_BUILD_VERSION, getContext()); } }