diff --git a/app/src/main/java/com/neatstudio/tmuxandroid/MainActivity.java b/app/src/main/java/com/neatstudio/tmuxandroid/MainActivity.java index aefac3e..0518ac2 100644 --- a/app/src/main/java/com/neatstudio/tmuxandroid/MainActivity.java +++ b/app/src/main/java/com/neatstudio/tmuxandroid/MainActivity.java @@ -3695,9 +3695,14 @@ public final class MainActivity extends Activity { throw new IllegalStateException("Cannot open selected image"); } String response = api.uploadImage(sessionName, readAllBytes(input)); + String imagePath = new JSONObject(response).optString("absolutePath", "").trim(); + if (imagePath.isEmpty()) { + throw new IllegalStateException("Upload response did not include absolutePath"); + } runOnUiThread(() -> { progressBar.setVisibility(View.GONE); - showTextDialog("Image upload", response); + insertComposerPath(imagePath); + setStatus("Image path inserted"); }); } catch (Exception error) { runOnUiThread(() -> { @@ -3719,6 +3724,21 @@ public final class MainActivity extends Activity { return output.toByteArray(); } + private void insertComposerPath(String path) { + if (inputField == null) { + return; + } + int start = Math.max(0, inputField.getSelectionStart()); + int end = Math.max(0, inputField.getSelectionEnd()); + int from = Math.min(start, end); + int to = Math.max(start, end); + CharSequence current = inputField.getText(); + String prefix = from > 0 && !Character.isWhitespace(current.charAt(from - 1)) ? " " : ""; + String suffix = to < current.length() && Character.isWhitespace(current.charAt(to)) ? "" : " "; + inputField.getText().replace(from, to, prefix + path + suffix); + inputField.requestFocus(); + } + @Override public void onBackPressed() { if (activeSessionName != null) {