package tv.emby.embyatv.startup;
import android.app.Activity;
import android.content.Intent;
import android.provider.Settings;
import android.support.v4.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.TextView;
import mediabrowser.apiinteraction.ConnectionResult;
import mediabrowser.apiinteraction.IConnectionManager;
import mediabrowser.apiinteraction.Response;
import mediabrowser.model.connect.PinCreationResult;
import mediabrowser.model.connect.PinExchangeResult;
import mediabrowser.model.connect.PinStatusResult;
import tv.emby.embyatv.R;
import tv.emby.embyatv.TvApp;
import tv.emby.embyatv.util.Utils;
public class ConnectActivity extends Activity {
PinCreationResult pinResult;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.fragment_connect);
final IConnectionManager connectionManager = ((TvApp) getApplicationContext()).getConnectionManager();
final Activity activity = this;
connectionManager.CreatePin(Settings.Secure.getString(getContentResolver(), Settings.Secure.ANDROID_ID), new Response<PinCreationResult>() {
@Override
public void onResponse(PinCreationResult response) {
pinResult = response;
TextView pin = (TextView) findViewById(R.id.textViewPin);
pin.setText(response.getPin());
}
});
Button next = (Button) findViewById(R.id.buttonNext);
next.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
connectionManager.GetPinStatus(pinResult, new Response<PinStatusResult>() {
@Override
public void onResponse(PinStatusResult response) {
if (response.getIsConfirmed()) {
//Exchange and login
connectionManager.ExchangePin(pinResult, new Response<PinExchangeResult>() {
@Override
public void onResponse(PinExchangeResult response) {
//Re-connect which should get proper connect info as signed in
connectionManager.Connect(new Response<ConnectionResult>() {
@Override
public void onResponse(final ConnectionResult response) {
TvApp.getApplication().setConnectLogin(true);
Utils.handleConnectionResponse(connectionManager, activity, response);
}
@Override
public void onError(Exception exception) {
Utils.reportError(activity, "Error connecting");
}
});
}
});
} else {
Utils.showToast(TvApp.getApplication(), getString(R.string.msg_confirm_pin));
}
}
});
}
});
Button cancel = (Button) findViewById(R.id.buttonCancel);
cancel.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
Button manual = (Button) findViewById(R.id.buttonManual);
manual.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Utils.EnterManualServerAddress(activity);
}
});
}
/**
* A placeholder fragment containing a simple view.
*/
public static class PlaceholderFragment extends Fragment {
public PlaceholderFragment() {
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_connect, container, false);
return rootView;
}
}
}