feat: add master-agent jump after openai onboarding
This commit is contained in:
@@ -179,9 +179,8 @@ public class OpenAiOnboardingActivity extends BossScreenActivity {
|
||||
BossApiClient.ApiResponse response = apiClient.onboardOpenAiApiAccount(payload);
|
||||
if (!response.ok()) throw new IllegalStateException(response.message());
|
||||
runOnUiThread(() -> {
|
||||
showMessage("OpenAI 平台账号已登录,并设为当前主控。");
|
||||
setResult(RESULT_OK);
|
||||
finish();
|
||||
showPostLoginActions();
|
||||
});
|
||||
} catch (Exception error) {
|
||||
runOnUiThread(() -> {
|
||||
@@ -194,4 +193,26 @@ public class OpenAiOnboardingActivity extends BossScreenActivity {
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void showPostLoginActions() {
|
||||
new AlertDialog.Builder(this)
|
||||
.setTitle("OpenAI 平台账号已登录")
|
||||
.setMessage("已经设为当前主控。现在就可以直接测试主 Agent 对话。")
|
||||
.setPositiveButton("测试主 Agent 对话", (dialog, which) -> openMasterAgentConversation())
|
||||
.setNegativeButton("稍后再说", (dialog, which) -> finish())
|
||||
.setOnDismissListener(dialog -> {
|
||||
if (!isFinishing()) {
|
||||
finish();
|
||||
}
|
||||
})
|
||||
.show();
|
||||
}
|
||||
|
||||
private void openMasterAgentConversation() {
|
||||
Intent intent = new Intent(this, ProjectDetailActivity.class);
|
||||
intent.putExtra(ProjectDetailActivity.EXTRA_PROJECT_ID, "master-agent");
|
||||
intent.putExtra(ProjectDetailActivity.EXTRA_PROJECT_NAME, "主 Agent");
|
||||
startActivity(intent);
|
||||
finish();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,16 +5,22 @@ import static org.junit.Assert.assertNotNull;
|
||||
|
||||
import android.content.Intent;
|
||||
import android.net.Uri;
|
||||
import android.os.Looper;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.appcompat.app.AlertDialog;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.robolectric.Robolectric;
|
||||
import org.robolectric.RobolectricTestRunner;
|
||||
import org.robolectric.shadows.ShadowDialog;
|
||||
import org.robolectric.annotation.Config;
|
||||
import org.robolectric.Shadows;
|
||||
import org.robolectric.shadows.ShadowActivity;
|
||||
import org.robolectric.util.ReflectionHelpers;
|
||||
|
||||
@RunWith(RobolectricTestRunner.class)
|
||||
@Config(sdk = 34)
|
||||
@@ -56,6 +62,28 @@ public class OpenAiOnboardingActivityTest {
|
||||
assertEquals(Uri.parse("https://platform.openai.com/api-keys"), nextIntent.getData());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void successActionsDialogCanOpenMasterAgentConversation() {
|
||||
OpenAiOnboardingActivity activity = Robolectric
|
||||
.buildActivity(OpenAiOnboardingActivity.class)
|
||||
.setup()
|
||||
.get();
|
||||
|
||||
ReflectionHelpers.callInstanceMethod(activity, "showPostLoginActions");
|
||||
|
||||
AlertDialog dialog = (AlertDialog) ShadowDialog.getLatestDialog();
|
||||
assertNotNull(dialog);
|
||||
dialog.getButton(AlertDialog.BUTTON_POSITIVE).performClick();
|
||||
Shadows.shadowOf(Looper.getMainLooper()).idle();
|
||||
|
||||
ShadowActivity shadowActivity = Shadows.shadowOf(activity);
|
||||
Intent nextIntent = shadowActivity.getNextStartedActivity();
|
||||
assertNotNull(nextIntent);
|
||||
assertEquals(ProjectDetailActivity.class.getName(), nextIntent.getComponent().getClassName());
|
||||
assertEquals("master-agent", nextIntent.getStringExtra(ProjectDetailActivity.EXTRA_PROJECT_ID));
|
||||
assertEquals("主 Agent", nextIntent.getStringExtra(ProjectDetailActivity.EXTRA_PROJECT_NAME));
|
||||
}
|
||||
|
||||
private static View findClickableViewContainingText(View root, String expectedText) {
|
||||
if (root == null) {
|
||||
return null;
|
||||
|
||||
Reference in New Issue
Block a user