From f6cbe2ec619185a9d51a432b9deeacc821b15887 Mon Sep 17 00:00:00 2001 From: Eric House Date: Tue, 5 Apr 2016 09:37:17 -0700 Subject: [PATCH] Toward launching fragment for result. Fires an assert on returning since that's not done yet. --- .../org/eehouse/android/xw4/DelegateBase.java | 6 ++++- .../org/eehouse/android/xw4/FragActivity.java | 6 +++++ .../android/xw4/GameConfigDelegate.java | 22 ++++++++++++++----- .../android/xw4/GamesListDelegate.java | 5 +++-- 4 files changed, 30 insertions(+), 9 deletions(-) diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/DelegateBase.java b/xwords4/android/XWords4/src/org/eehouse/android/xw4/DelegateBase.java index 2d950c886..94d72ad80 100644 --- a/xwords4/android/XWords4/src/org/eehouse/android/xw4/DelegateBase.java +++ b/xwords4/android/XWords4/src/org/eehouse/android/xw4/DelegateBase.java @@ -207,7 +207,11 @@ public class DelegateBase implements DlgClickNotify, protected void setResult( int result, Intent intent ) { - m_activity.setResult( result, intent ); + if ( m_activity instanceof FragActivity ) { + Assert.fail(); + } else { + m_activity.setResult( result, intent ); + } } protected void setResult( int result ) diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/FragActivity.java b/xwords4/android/XWords4/src/org/eehouse/android/xw4/FragActivity.java index 4e0c5ca63..8ec96693e 100644 --- a/xwords4/android/XWords4/src/org/eehouse/android/xw4/FragActivity.java +++ b/xwords4/android/XWords4/src/org/eehouse/android/xw4/FragActivity.java @@ -300,4 +300,10 @@ public class FragActivity extends FragmentActivity { getThis().addFragmentImpl( fragment, bundle, parent ); } + + public static void addFragmentForResult( Fragment fragment, Bundle bundle, + RequestCode requestCode, Delegator parent ) + { + getThis().addFragmentImpl( fragment, bundle, parent ); + } } diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/GameConfigDelegate.java b/xwords4/android/XWords4/src/org/eehouse/android/xw4/GameConfigDelegate.java index 12feaa717..404f8ea9b 100644 --- a/xwords4/android/XWords4/src/org/eehouse/android/xw4/GameConfigDelegate.java +++ b/xwords4/android/XWords4/src/org/eehouse/android/xw4/GameConfigDelegate.java @@ -1196,14 +1196,24 @@ public class GameConfigDelegate extends DelegateBase return DeviceRole.SERVER_STANDALONE == m_giOrig.serverRole; } - public static void editForResult( Activity parent, RequestCode requestCode, + public static void editForResult( Delegator delegator, + RequestCode requestCode, long rowID ) { - Intent intent = new Intent( parent, GameConfigActivity.class ); - intent.setAction( Intent.ACTION_EDIT ); - intent.putExtra( GameUtils.INTENT_KEY_ROWID, rowID ); - intent.putExtra( INTENT_FORRESULT_ROWID, true ); - parent.startActivityForResult( intent, requestCode.ordinal() ); + Activity activity = delegator.getActivity(); + Bundle bundle = new Bundle(); + bundle.putLong( GameUtils.INTENT_KEY_ROWID, rowID ); + bundle.putBoolean( INTENT_FORRESULT_ROWID, true ); + + if ( activity instanceof FragActivity ) { + FragActivity.addFragmentForResult( new GameConfigFrag(), bundle, + requestCode, delegator ); + } else { + Intent intent = new Intent( activity, GameConfigActivity.class ); + intent.setAction( Intent.ACTION_EDIT ); + intent.putExtras( bundle ); + activity.startActivityForResult( intent, requestCode.ordinal() ); + } } private void setConnLabel() 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 ea67297d1..690a1fa99 100644 --- a/xwords4/android/XWords4/src/org/eehouse/android/xw4/GamesListDelegate.java +++ b/xwords4/android/XWords4/src/org/eehouse/android/xw4/GamesListDelegate.java @@ -2483,8 +2483,9 @@ public class GamesListDelegate extends ListDelegateBase if ( doConfigure ) { // configure it - GameConfigDelegate.editForResult( m_activity, RequestCode - .CONFIG_GAME, rowID ); + GameConfigDelegate.editForResult( getDelegator(), + RequestCode.CONFIG_GAME, + rowID ); } else { // launch it GameUtils.launchGame( getDelegator(), rowID );