mirror of
git://xwords.git.sourceforge.net/gitroot/xwords/xwords
synced 2025-02-12 08:47:50 +01:00
don't create toolbar unless required widgets are present in layout,
then test for null toolbar before use. Fixes NPEs on small screens.
This commit is contained in:
parent
f01d12035b
commit
7f880627ec
1 changed files with 71 additions and 59 deletions
|
@ -519,10 +519,14 @@ public class BoardDelegate extends DelegateBase
|
||||||
m_view = (BoardView)findViewById( R.id.board_view );
|
m_view = (BoardView)findViewById( R.id.board_view );
|
||||||
if ( ! ABUtils.haveActionBar() ) {
|
if ( ! ABUtils.haveActionBar() ) {
|
||||||
m_tradeButtons = findViewById( R.id.exchange_buttons );
|
m_tradeButtons = findViewById( R.id.exchange_buttons );
|
||||||
m_exchCommmitButton = (Button)findViewById( R.id.exchange_commit );
|
if ( null != m_tradeButtons ) {
|
||||||
m_exchCommmitButton.setOnClickListener( this );
|
m_exchCommmitButton = (Button)
|
||||||
m_exchCancelButton = (Button)findViewById( R.id.exchange_cancel );
|
findViewById( R.id.exchange_commit );
|
||||||
m_exchCancelButton.setOnClickListener( this );
|
m_exchCommmitButton.setOnClickListener( this );
|
||||||
|
m_exchCancelButton = (Button)
|
||||||
|
findViewById( R.id.exchange_cancel );
|
||||||
|
m_exchCancelButton.setOnClickListener( this );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
m_volKeysZoom = XWPrefs.getVolKeysZoom( m_activity );
|
m_volKeysZoom = XWPrefs.getVolKeysZoom( m_activity );
|
||||||
|
|
||||||
|
@ -1855,9 +1859,11 @@ public class BoardDelegate extends DelegateBase
|
||||||
setTitle( GameUtils.getName( m_activity, m_rowid ) );
|
setTitle( GameUtils.getName( m_activity, m_rowid ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
int orient = m_activity.getResources().getConfiguration().orientation;
|
if ( null != findViewById( R.id.tbar_parent_hor ) ) {
|
||||||
boolean isLandscape = Configuration.ORIENTATION_LANDSCAPE == orient;
|
int orient = m_activity.getResources().getConfiguration().orientation;
|
||||||
m_toolbar = new Toolbar( m_activity, this, isLandscape );
|
boolean isLandscape = Configuration.ORIENTATION_LANDSCAPE == orient;
|
||||||
|
m_toolbar = new Toolbar( m_activity, this, isLandscape );
|
||||||
|
}
|
||||||
|
|
||||||
populateToolbar();
|
populateToolbar();
|
||||||
adjustTradeVisibility();
|
adjustTradeVisibility();
|
||||||
|
@ -1907,47 +1913,49 @@ public class BoardDelegate extends DelegateBase
|
||||||
|
|
||||||
private void populateToolbar()
|
private void populateToolbar()
|
||||||
{
|
{
|
||||||
m_toolbar.setListener( Toolbar.BUTTON_BROWSE_DICT,
|
if ( null != m_toolbar ) {
|
||||||
R.string.not_again_browseall,
|
m_toolbar.setListener( Toolbar.BUTTON_BROWSE_DICT,
|
||||||
R.string.key_na_browseall,
|
R.string.not_again_browseall,
|
||||||
Action.BUTTON_BROWSEALL_ACTION );
|
R.string.key_na_browseall,
|
||||||
m_toolbar.setLongClickListener( Toolbar.BUTTON_BROWSE_DICT,
|
Action.BUTTON_BROWSEALL_ACTION );
|
||||||
R.string.not_again_browse,
|
m_toolbar.setLongClickListener( Toolbar.BUTTON_BROWSE_DICT,
|
||||||
R.string.key_na_browse,
|
R.string.not_again_browse,
|
||||||
Action.BUTTON_BROWSE_ACTION );
|
R.string.key_na_browse,
|
||||||
m_toolbar.setListener( Toolbar.BUTTON_HINT_PREV,
|
Action.BUTTON_BROWSE_ACTION );
|
||||||
R.string.not_again_hintprev,
|
m_toolbar.setListener( Toolbar.BUTTON_HINT_PREV,
|
||||||
R.string.key_notagain_hintprev,
|
R.string.not_again_hintprev,
|
||||||
Action.PREV_HINT_ACTION );
|
R.string.key_notagain_hintprev,
|
||||||
m_toolbar.setListener( Toolbar.BUTTON_HINT_NEXT,
|
Action.PREV_HINT_ACTION );
|
||||||
R.string.not_again_hintnext,
|
m_toolbar.setListener( Toolbar.BUTTON_HINT_NEXT,
|
||||||
R.string.key_notagain_hintnext,
|
R.string.not_again_hintnext,
|
||||||
Action.NEXT_HINT_ACTION );
|
R.string.key_notagain_hintnext,
|
||||||
m_toolbar.setListener( Toolbar.BUTTON_JUGGLE,
|
Action.NEXT_HINT_ACTION );
|
||||||
R.string.not_again_juggle,
|
m_toolbar.setListener( Toolbar.BUTTON_JUGGLE,
|
||||||
R.string.key_notagain_juggle,
|
R.string.not_again_juggle,
|
||||||
Action.JUGGLE_ACTION );
|
R.string.key_notagain_juggle,
|
||||||
m_toolbar.setListener( Toolbar.BUTTON_FLIP,
|
Action.JUGGLE_ACTION );
|
||||||
R.string.not_again_flip,
|
m_toolbar.setListener( Toolbar.BUTTON_FLIP,
|
||||||
R.string.key_notagain_flip,
|
R.string.not_again_flip,
|
||||||
Action.FLIP_ACTION );
|
R.string.key_notagain_flip,
|
||||||
m_toolbar.setListener( Toolbar.BUTTON_ZOOM,
|
Action.FLIP_ACTION );
|
||||||
R.string.not_again_zoom,
|
m_toolbar.setListener( Toolbar.BUTTON_ZOOM,
|
||||||
R.string.key_notagain_zoom,
|
R.string.not_again_zoom,
|
||||||
Action.ZOOM_ACTION );
|
R.string.key_notagain_zoom,
|
||||||
m_toolbar.setListener( Toolbar.BUTTON_VALUES,
|
Action.ZOOM_ACTION );
|
||||||
R.string.not_again_values,
|
m_toolbar.setListener( Toolbar.BUTTON_VALUES,
|
||||||
R.string.key_na_values,
|
R.string.not_again_values,
|
||||||
Action.VALUES_ACTION );
|
R.string.key_na_values,
|
||||||
m_toolbar.setListener( Toolbar.BUTTON_UNDO,
|
Action.VALUES_ACTION );
|
||||||
R.string.not_again_undo,
|
m_toolbar.setListener( Toolbar.BUTTON_UNDO,
|
||||||
R.string.key_notagain_undo,
|
R.string.not_again_undo,
|
||||||
Action.UNDO_ACTION );
|
R.string.key_notagain_undo,
|
||||||
if ( BuildConstants.CHAT_SUPPORTED ) {
|
Action.UNDO_ACTION );
|
||||||
m_toolbar.setListener( Toolbar.BUTTON_CHAT,
|
if ( BuildConstants.CHAT_SUPPORTED ) {
|
||||||
R.string.not_again_chat,
|
m_toolbar.setListener( Toolbar.BUTTON_CHAT,
|
||||||
R.string.key_notagain_chat,
|
R.string.not_again_chat,
|
||||||
Action.CHAT_ACTION );
|
R.string.key_notagain_chat,
|
||||||
|
Action.CHAT_ACTION );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} // populateToolbar
|
} // populateToolbar
|
||||||
|
|
||||||
|
@ -2134,21 +2142,25 @@ public class BoardDelegate extends DelegateBase
|
||||||
|
|
||||||
private void updateToolbar()
|
private void updateToolbar()
|
||||||
{
|
{
|
||||||
m_toolbar.update( Toolbar.BUTTON_FLIP, m_gsi.visTileCount >= 1 );
|
if ( null != m_toolbar ) {
|
||||||
m_toolbar.update( Toolbar.BUTTON_VALUES, m_gsi.visTileCount >= 1 );
|
m_toolbar.update( Toolbar.BUTTON_FLIP, m_gsi.visTileCount >= 1 );
|
||||||
m_toolbar.update( Toolbar.BUTTON_JUGGLE, m_gsi.canShuffle );
|
m_toolbar.update( Toolbar.BUTTON_VALUES, m_gsi.visTileCount >= 1 );
|
||||||
m_toolbar.update( Toolbar.BUTTON_UNDO, m_gsi.canRedo );
|
m_toolbar.update( Toolbar.BUTTON_JUGGLE, m_gsi.canShuffle );
|
||||||
m_toolbar.update( Toolbar.BUTTON_HINT_PREV, m_gsi.canHint );
|
m_toolbar.update( Toolbar.BUTTON_UNDO, m_gsi.canRedo );
|
||||||
m_toolbar.update( Toolbar.BUTTON_HINT_NEXT, m_gsi.canHint );
|
m_toolbar.update( Toolbar.BUTTON_HINT_PREV, m_gsi.canHint );
|
||||||
m_toolbar.update( Toolbar.BUTTON_CHAT,
|
m_toolbar.update( Toolbar.BUTTON_HINT_NEXT, m_gsi.canHint );
|
||||||
BuildConstants.CHAT_SUPPORTED && m_gsi.canChat );
|
m_toolbar.update( Toolbar.BUTTON_CHAT,
|
||||||
m_toolbar.update( Toolbar.BUTTON_BROWSE_DICT,
|
BuildConstants.CHAT_SUPPORTED && m_gsi.canChat );
|
||||||
null != m_gi.dictName( m_view.getCurPlayer() ) );
|
m_toolbar.update( Toolbar.BUTTON_BROWSE_DICT,
|
||||||
|
null != m_gi.dictName( m_view.getCurPlayer() ) );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void adjustTradeVisibility()
|
private void adjustTradeVisibility()
|
||||||
{
|
{
|
||||||
m_toolbar.setVisible( !m_inTrade );
|
if ( null != m_toolbar ) {
|
||||||
|
m_toolbar.setVisible( !m_inTrade );
|
||||||
|
}
|
||||||
if ( null != m_tradeButtons ) {
|
if ( null != m_tradeButtons ) {
|
||||||
m_tradeButtons.setVisibility( m_inTrade? View.VISIBLE : View.GONE );
|
m_tradeButtons.setVisibility( m_inTrade? View.VISIBLE : View.GONE );
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue