mirror of
git://xwords.git.sourceforge.net/gitroot/xwords/xwords
synced 2025-02-04 20:46:28 +01:00
use same dialog for all new networked games
This commit is contained in:
parent
185abd2d04
commit
65ba8cef66
4 changed files with 56 additions and 55 deletions
|
@ -867,15 +867,16 @@ public class GamesListDelegate extends ListDelegateBase
|
|||
|
||||
case GAMES_LIST_NEWGAME:
|
||||
boolean solo = (Boolean)params[0];
|
||||
boolean forceConfig = 2 <= params.length && (Boolean)params[1];
|
||||
if ( !solo && !forceConfig && XwJNI.hasKnownPlayers() ) {
|
||||
dialog = mkNewWithKnowns();
|
||||
makeNotAgainBuilder( R.string.not_again_quicknetgame,
|
||||
R.string.key_na_quicknetgame )
|
||||
.setTitle( R.string.new_feature_title )
|
||||
.show();
|
||||
if ( solo ) {
|
||||
dialog = mkNewSoloGameDialog();
|
||||
} else {
|
||||
dialog = mkNewGameDialog( solo );
|
||||
dialog = mkNewNetGameDialog();
|
||||
if ( XwJNI.hasKnownPlayers() ) {
|
||||
makeNotAgainBuilder( R.string.not_again_quicknetgame,
|
||||
R.string.key_na_quicknetgame )
|
||||
.setTitle( R.string.new_feature_title )
|
||||
.show();
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
|
@ -917,23 +918,14 @@ public class GamesListDelegate extends ListDelegateBase
|
|||
return dialog;
|
||||
} // makeDialog
|
||||
|
||||
private Dialog mkNewGameDialog( boolean solo )
|
||||
private Dialog mkNewSoloGameDialog()
|
||||
{
|
||||
final LinearLayout view = (LinearLayout)
|
||||
LocUtils.inflate( m_activity, R.layout.msg_label_and_edit );
|
||||
final EditWClear edit = (EditWClear)view.findViewById( R.id.edit );
|
||||
edit.setText( GameUtils.makeDefaultName( m_activity ) );
|
||||
|
||||
boolean canDoDefaults = solo ||
|
||||
0 < XWPrefs.getAddrTypes( m_activity ).size();
|
||||
int iconResID = solo ? R.drawable.ic_sologame : R.drawable.ic_multigame;
|
||||
int titleID = solo ? R.string.new_game : R.string.new_game_networked;
|
||||
|
||||
String msg = getString( canDoDefaults ? R.string.new_game_message
|
||||
: R.string.new_game_message_nodflt );
|
||||
if ( !solo ) {
|
||||
msg += "\n\n" + getString( R.string.new_game_message_net );
|
||||
}
|
||||
String msg = getString( R.string.new_game_message );
|
||||
TextView tmpEdit = (TextView)view.findViewById( R.id.msg );
|
||||
tmpEdit.setText( msg );
|
||||
|
||||
|
@ -946,27 +938,25 @@ public class GamesListDelegate extends ListDelegateBase
|
|||
|
||||
AlertDialog.Builder ab = makeAlertBuilder()
|
||||
.setView( view )
|
||||
.setTitle( titleID )
|
||||
.setIcon( iconResID )
|
||||
.setTitle( R.string.new_game )
|
||||
.setIcon( R.drawable.ic_sologame )
|
||||
.setPositiveButton( R.string.newgame_configure_first, lstnr );
|
||||
if ( canDoDefaults ) {
|
||||
OnClickListener lstnr2 = new OnClickListener() {
|
||||
public void onClick( DialogInterface dlg, int item ) {
|
||||
String name = edit.getText().toString();
|
||||
curThis().makeThenLaunchOrConfigure( name, false, false );
|
||||
}
|
||||
};
|
||||
ab.setNegativeButton( R.string.use_defaults, lstnr2 );
|
||||
}
|
||||
OnClickListener lstnr2 = new OnClickListener() {
|
||||
public void onClick( DialogInterface dlg, int item ) {
|
||||
String name = edit.getText().toString();
|
||||
curThis().makeThenLaunchOrConfigure( name, false, false );
|
||||
}
|
||||
};
|
||||
ab.setNegativeButton( R.string.use_defaults, lstnr2 );
|
||||
return ab.create();
|
||||
}
|
||||
|
||||
private Dialog mkNewWithKnowns()
|
||||
private Dialog mkNewNetGameDialog()
|
||||
{
|
||||
String[] names = XwJNI.kplr_getPlayers();
|
||||
// String[] names = XwJNI.kplr_getPlayers();
|
||||
final NewWithKnowns view = (NewWithKnowns)
|
||||
LocUtils.inflate( m_activity, R.layout.new_game_with_knowns );
|
||||
view.setNames( names, GameUtils.makeDefaultName( m_activity ) );
|
||||
view.setGameName( GameUtils.makeDefaultName( m_activity ) );
|
||||
AlertDialog.Builder ab = makeAlertBuilder()
|
||||
.setView( view )
|
||||
.setTitle( R.string.new_game_networked )
|
||||
|
|
|
@ -31,6 +31,7 @@ import android.widget.RadioGroup;
|
|||
import android.widget.Spinner;
|
||||
import android.widget.TextView;
|
||||
|
||||
import org.eehouse.android.xw4.jni.XwJNI;
|
||||
import org.eehouse.android.xw4.loc.LocUtils;
|
||||
|
||||
public class NewWithKnowns extends LinearLayout
|
||||
|
@ -65,24 +66,33 @@ public class NewWithKnowns extends LinearLayout
|
|||
mListener = listener;
|
||||
}
|
||||
|
||||
void setNames( String[] knowns, String gameName )
|
||||
void setGameName( String gameName )
|
||||
{
|
||||
mCurKnown = DBUtils.getStringFor( getContext(), KP_NAME_KEY,
|
||||
knowns[0] );
|
||||
ArrayAdapter<String> adapter = new
|
||||
ArrayAdapter<String>( getContext(),
|
||||
android.R.layout.simple_spinner_item,
|
||||
knowns );
|
||||
adapter.setDropDownViewResource( android.R.layout
|
||||
.simple_spinner_dropdown_item );
|
||||
mNamesSpinner = (Spinner)findViewById( R.id.names );
|
||||
mNamesSpinner.setAdapter( adapter );
|
||||
mNamesSpinner.setOnItemSelectedListener( this );
|
||||
Assert.assertTrueNR( !TextUtils.isEmpty( mCurKnown ) );
|
||||
for ( int ii = 0; ii < knowns.length; ++ii ) {
|
||||
if ( knowns[ii].equals( mCurKnown ) ) {
|
||||
mNamesSpinner.setSelection( ii );
|
||||
break;
|
||||
boolean hasKnowns = XwJNI.hasKnownPlayers();
|
||||
if ( hasKnowns ) {
|
||||
String[] knowns = XwJNI.kplr_getPlayers();
|
||||
mCurKnown = DBUtils.getStringFor( getContext(), KP_NAME_KEY,
|
||||
knowns[0] );
|
||||
ArrayAdapter<String> adapter = new
|
||||
ArrayAdapter<String>( getContext(),
|
||||
android.R.layout.simple_spinner_item,
|
||||
knowns );
|
||||
adapter.setDropDownViewResource( android.R.layout
|
||||
.simple_spinner_dropdown_item );
|
||||
mNamesSpinner = (Spinner)findViewById( R.id.names );
|
||||
mNamesSpinner.setAdapter( adapter );
|
||||
mNamesSpinner.setOnItemSelectedListener( this );
|
||||
Assert.assertTrueNR( !TextUtils.isEmpty( mCurKnown ) );
|
||||
for ( int ii = 0; ii < knowns.length; ++ii ) {
|
||||
if ( knowns[ii].equals( mCurKnown ) ) {
|
||||
mNamesSpinner.setSelection( ii );
|
||||
break;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
int[] toHide = { R.id.radio_known, R.id.names, R.id.expl_known };
|
||||
for ( int resID : toHide ) {
|
||||
findViewById(resID).setVisibility( View.GONE );
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -141,8 +151,10 @@ public class NewWithKnowns extends LinearLayout
|
|||
|
||||
private void onRadioChanged()
|
||||
{
|
||||
mNamesSpinner.setVisibility( mCurRadio == R.id.radio_known
|
||||
? View.VISIBLE : View.GONE );
|
||||
if ( null != mNamesSpinner ) {
|
||||
mNamesSpinner.setVisibility( mCurRadio == R.id.radio_known
|
||||
? View.VISIBLE : View.GONE );
|
||||
}
|
||||
|
||||
Context context = getContext();
|
||||
int resId = 0;
|
||||
|
|
|
@ -34,7 +34,8 @@
|
|||
android:paddingLeft="32dp"
|
||||
android:visibility="gone"
|
||||
/>
|
||||
<TextView android:text="@string/choose_expl_known"
|
||||
<TextView android:id="@+id/expl_known"
|
||||
android:text="@string/choose_expl_known"
|
||||
style="@style/new_game_expl"
|
||||
/>
|
||||
|
||||
|
|
|
@ -2213,8 +2213,6 @@
|
|||
first?</string>
|
||||
<string name="new_game_message_nodflt">This game must be
|
||||
configured before it can be opened.</string>
|
||||
<string name="new_game_message_net">(You will have a chance to
|
||||
invite other players after it is created.)</string>
|
||||
<string name="use_defaults">Use defaults</string>
|
||||
<string name="nplayers_prompt">Number on this device</string>
|
||||
<plurals name="nplayers_fmt">
|
||||
|
|
Loading…
Add table
Reference in a new issue