package com.mehtank.androminion.ui; import com.mehtank.androminion.R; import com.mehtank.androminion.activities.GameActivity; import com.vdom.comms.Event; import com.vdom.comms.Event.EType; import android.app.AlertDialog; import android.content.DialogInterface; import android.content.SharedPreferences; import android.preference.PreferenceManager; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.LinearLayout; import android.widget.TextView; import android.widget.Toast; public class JoinGameDialog implements DialogInterface.OnClickListener { @SuppressWarnings("unused") private static final String TAG = "JoinGameDialog"; LinearLayout vg; EditText name; GameActivity top; AlertDialog a; SharedPreferences prefs; public JoinGameDialog(GameActivity top, Event e) { this.top = top; prefs = PreferenceManager.getDefaultSharedPreferences(top); vg = new LinearLayout(top); vg.setOrientation(LinearLayout.VERTICAL); String[] strs = e.o.ss; boolean canConnect = false; for (String s : strs) if (s.contains("||")) canConnect = true; name = new EditText(top); name.setSingleLine(); if (canConnect) { name.setText(prefs.getString("name", GameActivity.DEFAULT_NAME)); TextView tv = new TextView(top); tv.setText("\nEnter your name:"); tv.setTextSize((float) (tv.getTextSize() * 1.5)); vg.addView(tv); vg.addView(name); } int numOptions = 0; int port = 0; for (String s : strs) { String[] parts = s.split("\\|\\|"); if (parts.length == 1) { TextView tv = new TextView(top); tv.setText(parts[0]); tv.setTextSize((float) (tv.getTextSize() * 1.5)); vg.addView(tv); } else if (parts.length == 2) { try { port = Integer.parseInt(parts[1]); } catch (NumberFormatException e1) { port = 0; } if (port == 0) { TextView tv = new TextView(top); tv.setText(parts[0]); tv.setTextSize((float) (tv.getTextSize() * 1.5)); vg.addView(tv); } else { numOptions++; Button tv = new Button(top); tv.setText("Join: " + parts[0]); tv.setId(port); tv.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { joinGame(v.getId()); } }); vg.addView(tv); } } } if (numOptions == 1 && port != 0) joinGame(port, prefs.getString("name", GameActivity.DEFAULT_NAME)); else a = new AlertDialog.Builder(top) .setTitle("Game " + e.s + " running") .setView(vg) .setPositiveButton("Refresh", this) .setNegativeButton(android.R.string.cancel, this) .show(); } private void joinGame(int port, String gameName) { top.handle(new Event(Event.EType.JOINGAME) .setInteger(port) .setString(gameName)); Toast.makeText(top, top.getString(R.string.toast_loading), Toast.LENGTH_SHORT).show(); } private void joinGame(int port) { SharedPreferences.Editor edit = prefs.edit(); edit.putString("name", name.getText().toString()); edit.commit(); joinGame(port, name.getText().toString()); a.dismiss(); } @Override public void onClick(DialogInterface dialog, int whichButton) { if (whichButton == DialogInterface.BUTTON_POSITIVE) top.handle(new Event(EType.HELLO)); a.dismiss(); } }