package com.kuxhausen.huemore.net.hue.ui;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.Context;
import android.content.DialogInterface;
import android.os.Bundle;
import android.support.v4.app.DialogFragment;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;
import com.kuxhausen.huemore.R;
import com.kuxhausen.huemore.net.hue.HubConnection;
import com.kuxhausen.huemore.net.hue.HubData;
import com.kuxhausen.huemore.persistence.Definitions.InternalArguments;
public class ConfigureHubDialogFragment extends DialogFragment {
private HubConnection mPriorConnection;
private Context mContext;
private EditText mLocalAddress;
private EditText mRemoteAddress;
public void setPriorConnection(HubConnection hubConnect) {
mPriorConnection = hubConnect;
}
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
mContext = this.getActivity();
// Use the Builder class for convenient dialog construction
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
LayoutInflater inflater = getActivity().getLayoutInflater();
View registerWithHubView = inflater.inflate(R.layout.configure_hub, null);
mLocalAddress = (EditText) registerWithHubView.findViewById(R.id.localEditText);
mRemoteAddress = (EditText) registerWithHubView.findViewById(R.id.remoteEditText);
if (mPriorConnection != null) {
String local = mPriorConnection.getHubData().localHubAddress;
if (local != null) {
mLocalAddress.setText(local);
}
String remote = mPriorConnection.getHubData().portForwardedAddress;
if (remote != null) {
mRemoteAddress.setText(remote);
}
}
builder.setView(registerWithHubView);
builder.setPositiveButton(R.string.accept, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int id) {
HubData hd = new HubData();
hd.localHubAddress = mLocalAddress.getText().toString();
hd.portForwardedAddress = mRemoteAddress.getText().toString();
if (mPriorConnection != null) {
hd.hashedUsername = mPriorConnection.getHubData().hashedUsername;
mPriorConnection.updateConfiguration(hd);
Toast t =
Toast.makeText(mContext, R.string.toast_hue_connection_updated, Toast.LENGTH_SHORT);
t.show();
} else {
RegisterWithHubDialogFragment registerFrag = new RegisterWithHubDialogFragment();
registerFrag.setHubData(hd);
registerFrag.show(getFragmentManager(), InternalArguments.FRAG_MANAGER_DIALOG_TAG);
}
dismiss();
}
});
builder.setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int id) {
dismiss();
}
});
return builder.create();
}
}