Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ See the official [plugin documentation](https://www.appdevforall.org/codeonthego
| [`vector-search-plugin/`](vector-search-plugin/) | Semantic code search using embeddings and vector similarity. |
| [`get-ai-models/`](get-ai-models/) | Bottom-drawer catalog of curated, fully-open GGUF model files; downloads one to `/sdcard/Download` and verifies its SHA-256. |
| [`project-to-template/`](project-to-template/) | Converts the open Android project into a Code On The Go (.cgt) template and installs it into the IDE's New Project picker. |
| [`pair-programming-plugin/`](pair-programming-plugin/) | Real-time pair programming across two devices on the same WiFi — host or join a session and sync edits and cursor presence live over the local network. |
| [`code-together/`](code-together/) | Real-time pair programming across two devices on the same WiFi — host or join a session and sync edits and cursor presence live over the local network. |

## Building a plugin

Expand Down
File renamed without changes.
16 changes: 8 additions & 8 deletions pair-programming-plugin/README.md → code-together/README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Pair
# Code Together

A plugin for [CodeOnTheGo](https://github.com/appdevforall/CodeOnTheGo) that turns the IDE into a real-time collaborative editor. Two phones on the same WiFi share one editing session: one device **hosts**, others **join** by typing the host's `ip:port` or scanning its QR code, and from then on edits, cursors, and file opens flow between devices as they happen — no server, no cloud, no signup.

Expand All @@ -7,8 +7,8 @@ It surfaces as a **Pair** tab in the editor. Host a session and an invite card s
## Building

```sh
cd pair
./gradlew clean assemblePlugin
cd code-together
../gradlew clean assemblePlugin
```

The `.cgp` lands in `build/plugin/`. Install it from inside CodeOnTheGo via the Plugin Manager. Always `clean` first — the plugin builder copies the built APK into the `.cgp` and then deletes the source APK, so an incremental build can package an empty artifact.
Expand All @@ -26,7 +26,7 @@ The `.cgp` lands in `build/plugin/`. Install it from inside CodeOnTheGo via the
## Source layout

```
pair/
code-together/
├── build.gradle.kts, settings.gradle.kts, proguard-rules.pro
└── src/main/
├── AndroidManifest.xml plugin id, main class, icons, permissions
Expand All @@ -43,13 +43,13 @@ pair/

- `../libs/plugin-api.jar` — the plugin API surface (`IPlugin`, extensions, `Ide*Service`); `compileOnly`, provided by the IDE at runtime.
- `../libs/gradle-plugin.jar` — the `com.itsaky.androidide.plugins.build` Gradle plugin that packages the `.cgp`.
- `../libs/eventbus-events.jar` — the editor and file `*Event` types Pair subscribes to on the EventBus.
- `../libs/shared.jar` — `com.itsaky.androidide.models.Range`, the type of `DocumentChangeEvent.changeRange` that Pair reads.
- `../libs/eventbus-events.jar` — the editor and file `*Event` types Code Together subscribes to on the EventBus.
- `libs/shared.jar` — `com.itsaky.androidide.models.Range`, the type of `DocumentChangeEvent.changeRange` that Code Together reads.

Jetpack Compose is linked `compileOnly` (host-provided), not bundled.

> **Note:** Pair requires an extended `plugin-api` beyond the current `stage` baseline — `IdeProjectService.openProject(File)` (open a project after a pull-model sync) and `IdeEditorService.showPeerCursor` / `hidePeerCursor` / `clearPeerCursors` (inline remote-cursor decoration). These land on the `feat/ADFA-4419-remote-peer-editor-decoration` branch. If `assemblePlugin` fails with unresolved references to those symbols, the shared `libs/` jars are older than the API Pair needs; refresh them from a CodeOnTheGo build that includes the extensions (`../scripts/update-libs.sh --local <path-to-CodeOnTheGo> --ref feat/ADFA-4419-remote-peer-editor-decoration`).
> **Note:** Code Together requires an extended `plugin-api` beyond the current `stage` baseline — `IdeProjectService.openProject(File)` (open a project after a pull-model sync) and `IdeEditorService.showPeerCursor` / `hidePeerCursor` / `clearPeerCursors` (inline remote-cursor decoration). These land on the `feat/ADFA-4419-remote-peer-editor-decoration` branch. If `assemblePlugin` fails with unresolved references to those symbols, the shared `libs/` jars are older than the API Code Together needs; refresh them from a CodeOnTheGo build that includes the extensions (`../scripts/update-libs.sh --local <path-to-CodeOnTheGo> --ref feat/ADFA-4419-remote-peer-editor-decoration`).

## License

Pair is an open-source example plugin for Code on the Go. Its source is licensed per the surrounding `plugin-examples` repository (see `LICENSE` at the repo root). It makes no cloud calls — all traffic stays on the local network between the paired devices.
Code Together is an open-source example plugin for Code on the Go. Its source is licensed per the surrounding `plugin-examples` repository (see `LICENSE` at the repo root). It makes no cloud calls — all traffic stays on the local network between the paired devices.
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ plugins {
}

pluginBuilder {
pluginName = "pair-programming-plugin"
pluginName = "code-together"
}

android {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Pair Plugin Documentation</title>
<title>Code Together</title>
<style>
:root {
--bg: #fdfdfd;
Expand Down Expand Up @@ -89,7 +89,7 @@
<body>

<header>
<h1>Pair</h1>
<h1>Code Together</h1>
<p class="subtitle">Real-time pair programming across two devices on the same WiFi &mdash; shared editing, live cursors, no server</p>
<div class="meta">Version 1.0.0 &middot; Author: App Dev For All &middot; Package: <code>com.appdevforall.pair.plugin</code></div>
</header>
Expand All @@ -111,7 +111,7 @@ <h2>Contents</h2>
<section id="overview">
<h2>1. Executive Overview</h2>
<p>
Pair is a Code on the Go plugin that turns the IDE into a real-time
Code Together is a Code on the Go plugin that turns the IDE into a real-time
collaborative editor. Two devices on the same local network share one editing
session: one device <strong>hosts</strong>, others <strong>join</strong>, and
from then on edits, cursor positions, and file opens flow between devices as
Expand Down Expand Up @@ -312,7 +312,7 @@ <h3>Build configuration</h3>
<section id="integration">
<h2>4. Integration Points</h2>
<p>
Pair implements three extension interfaces and consumes five host services, all
Code Together implements three extension interfaces and consumes five host services, all
through <code>plugin-api</code>.
</p>

Expand Down Expand Up @@ -348,7 +348,7 @@ <h3>4.3 Host services consumed</h3>

<h3>4.4 EventBus subscription</h3>
<p>
Local activity is observed, not polled: Pair subscribes to
Local activity is observed, not polled: Code Together subscribes to
<code>DocumentChangeEvent</code>, <code>DocumentOpenEvent</code>,
<code>DocumentCloseEvent</code>, <code>DocumentSelectedEvent</code>, and the file
creation / deletion / rename events on the IDE's EventBus. The observer runs on
Expand All @@ -364,7 +364,7 @@ <h3>4.4 EventBus subscription</h3>
<code>clearPeerCursors</code> (inline remote-cursor decoration). They live on the
<code>feat/ADFA-4419-remote-peer-editor-decoration</code> branch. If
<code>assemblePlugin</code> fails with unresolved references to those symbols, the
shared <code>libs/</code> jars are older than the API Pair needs &mdash; refresh
shared <code>libs/</code> jars are older than the API Code Together needs &mdash; refresh
them from a CodeOnTheGo build that includes the extensions
(<code>../scripts/update-libs.sh --local &lt;path&gt; --ref feat/ADFA-4419-remote-peer-editor-decoration</code>).
</div>
Expand Down Expand Up @@ -439,7 +439,7 @@ <h2>6. Key Benefits</h2>
<section id="license">
<h2>7. Attribution &amp; License</h2>
<p>
Pair is an open-source example plugin for Code on the Go. Its source is licensed
Code Together is an open-source example plugin for Code on the Go. Its source is licensed
per the surrounding <code>plugin-examples</code> repository (see
<code>LICENSE</code> at the repo root).
</p>
Expand All @@ -450,7 +450,7 @@ <h2>7. Attribution &amp; License</h2>
</section>

<footer>
Pair Plugin Documentation &middot; Version 1.0.0 &middot; com.appdevforall.pair.plugin
Code Together &middot; Version 1.0.0 &middot; com.appdevforall.pair.plugin
</footer>

</body>
Expand Down
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -29,4 +29,4 @@ dependencyResolutionManagement {
}
}

rootProject.name = "pair-programming-plugin"
rootProject.name = "code-together"
Loading