diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/GameListGroup.java b/xwords4/android/XWords4/src/org/eehouse/android/xw4/GameListGroup.java index 5f86cda98..b29e9e62b 100644 --- a/xwords4/android/XWords4/src/org/eehouse/android/xw4/GameListGroup.java +++ b/xwords4/android/XWords4/src/org/eehouse/android/xw4/GameListGroup.java @@ -48,14 +48,20 @@ public class GameListGroup extends ExpiringLinearLayout private ImageButton m_expandButton; public static GameListGroup makeForPosition( Context context, + View convertView, long groupID, int nGames, boolean expanded, SelectableItem cb, GroupStateListener gcb ) { - GameListGroup result = (GameListGroup) - LocUtils.inflate( context, R.layout.game_list_group ); + GameListGroup result; + if ( null != convertView && convertView instanceof GameListGroup ) { + result = (GameListGroup)convertView; + } else { + result = (GameListGroup) + LocUtils.inflate( context, R.layout.game_list_group ); + } result.m_cb = cb; result.m_gcb = gcb; result.m_groupID = groupID; diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/GameListItem.java b/xwords4/android/XWords4/src/org/eehouse/android/xw4/GameListItem.java index c1d6fcccf..69c697a49 100644 --- a/xwords4/android/XWords4/src/org/eehouse/android/xw4/GameListItem.java +++ b/xwords4/android/XWords4/src/org/eehouse/android/xw4/GameListItem.java @@ -364,12 +364,17 @@ public class GameListItem extends LinearLayout } } // class LoadItemTask - public static GameListItem makeForRow( Context context, long rowid, - Handler handler, int fieldID, - SelectableItem cb ) + public static GameListItem makeForRow( Context context, View convertView, + long rowid, Handler handler, + int fieldID, SelectableItem cb ) { - GameListItem result = - (GameListItem)LocUtils.inflate( context, R.layout.game_list_item ); + GameListItem result; + if ( null != convertView && convertView instanceof GameListItem ) { + result = (GameListItem)convertView; + } else { + result = (GameListItem)LocUtils.inflate( context, + R.layout.game_list_item ); + } result.init( handler, rowid, fieldID, cb ); return result; } diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/GamesListDelegate.java b/xwords4/android/XWords4/src/org/eehouse/android/xw4/GamesListDelegate.java index 54964b368..010bf3d38 100644 --- a/xwords4/android/XWords4/src/org/eehouse/android/xw4/GamesListDelegate.java +++ b/xwords4/android/XWords4/src/org/eehouse/android/xw4/GamesListDelegate.java @@ -131,8 +131,9 @@ public class GamesListDelegate extends ListDelegateBase GameGroupInfo ggi = DBUtils.getGroups( m_activity ) .get( rec.m_groupID ); GameListGroup group = - GameListGroup.makeForPosition( m_activity, rec.m_groupID, - ggi.m_count, ggi.m_expanded, + GameListGroup.makeForPosition( m_activity, convertView, + rec.m_groupID, ggi.m_count, + ggi.m_expanded, GamesListDelegate.this, GamesListDelegate.this ); if ( !ggi.m_expanded ) { @@ -148,7 +149,8 @@ public class GamesListDelegate extends ListDelegateBase } else if ( dataObj instanceof GameRec ) { GameRec rec = (GameRec)dataObj; GameListItem item = - GameListItem.makeForRow( m_activity, rec.m_rowID, m_handler, + GameListItem.makeForRow( m_activity, convertView, + rec.m_rowID, m_handler, m_fieldID, GamesListDelegate.this ); item.setSelected( m_selGames.contains( rec.m_rowID ) ); result = item; diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/XWExpListAdapter.java b/xwords4/android/XWords4/src/org/eehouse/android/xw4/XWExpListAdapter.java index 2280a17d3..4f328652a 100644 --- a/xwords4/android/XWords4/src/org/eehouse/android/xw4/XWExpListAdapter.java +++ b/xwords4/android/XWords4/src/org/eehouse/android/xw4/XWExpListAdapter.java @@ -82,10 +82,6 @@ abstract class XWExpListAdapter extends XWListAdapter { @Override public View getView( int position, View convertView, ViewGroup parent ) { - if ( null != convertView ) { - DbgUtils.logf( "getView: missing opportunity to reuse view %H", - convertView ); - } View result = getView( m_listObjs[position], convertView ); // DbgUtils.logf( "getView(position=%d) => %H (%s)", position, result, // result.getClass().getName() );