mirror of
https://github.com/meshtastic/Meshtastic-Android.git
synced 2026-10-02 16:44:33 -04:00
docs: publish channels: main api
This commit is contained in:
1 parent
931c5aa729
commit
b4988ba93a
18 files changed
+20
-19
No files matched your search
+1
-1
@@ -94,7 +94,7 @@
|
||||
<div class="cover ">
|
||||
<h1 class="cover"><span>Mock</span><wbr><span>Radio</span><wbr><span><span>Transport</span></span></h1>
|
||||
</div>
|
||||
<div class="platform-hinted " data-platform-hinted="data-platform-hinted"><div class="content sourceset-dependent-content" data-active="" data-togglable=":core:network/commonMain"><div class="symbol monospace"><span class="token keyword">constructor</span><span class="token punctuation">(</span><span class="parameters "><span class="parameter ">callback<span class="token operator">: </span><a href="../../../../core/repository/org.meshtastic.core.repository/-radio-transport-callback/index.html">RadioTransportCallback</a><span class="token punctuation">, </span></span><span class="parameter ">scope<span class="token operator">: </span><span data-unresolved-link="kotlinx.coroutines/CoroutineScope///PointingToDeclaration/">CoroutineScope</span><span class="token punctuation">, </span></span><span class="parameter ">address<span class="token operator">: </span><a href="https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html">String</a></span></span><span class="token punctuation">)</span><span class="source-link-wrapper"><span class="source-link" data-element-type="source-link">(<a href="https://github.com/meshtastic/Meshtastic-Android/blob/main/core/network/src/commonMain/kotlin/org/meshtastic/core/network/radio/MockRadioTransport.kt#L94">source</a>)</span></span></div></div></div>
|
||||
<div class="platform-hinted " data-platform-hinted="data-platform-hinted"><div class="content sourceset-dependent-content" data-active="" data-togglable=":core:network/commonMain"><div class="symbol monospace"><span class="token keyword">constructor</span><span class="token punctuation">(</span><span class="parameters "><span class="parameter ">callback<span class="token operator">: </span><a href="../../../../core/repository/org.meshtastic.core.repository/-radio-transport-callback/index.html">RadioTransportCallback</a><span class="token punctuation">, </span></span><span class="parameter ">scope<span class="token operator">: </span><span data-unresolved-link="kotlinx.coroutines/CoroutineScope///PointingToDeclaration/">CoroutineScope</span><span class="token punctuation">, </span></span><span class="parameter ">address<span class="token operator">: </span><a href="https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html">String</a></span></span><span class="token punctuation">)</span><span class="source-link-wrapper"><span class="source-link" data-element-type="source-link">(<a href="https://github.com/meshtastic/Meshtastic-Android/blob/main/core/network/src/commonMain/kotlin/org/meshtastic/core/network/radio/MockRadioTransport.kt#L95">source</a>)</span></span></div></div></div>
|
||||
</div>
|
||||
<div class="footer">
|
||||
<div class="footer--container">
|
||||
|
||||
+1
-1
@@ -94,7 +94,7 @@
|
||||
<div class="cover ">
|
||||
<h1 class="cover"><span><span>address</span></span></h1>
|
||||
</div>
|
||||
<div class="platform-hinted " data-platform-hinted="data-platform-hinted"><div class="content sourceset-dependent-content" data-active="" data-togglable=":core:network/commonMain"><div class="symbol monospace"><span class="token keyword">val </span><a href="address.html">address</a><span class="token operator">: </span><a href="https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html">String</a><span class="source-link-wrapper"><span class="source-link" data-element-type="source-link">(<a href="https://github.com/meshtastic/Meshtastic-Android/blob/main/core/network/src/commonMain/kotlin/org/meshtastic/core/network/radio/MockRadioTransport.kt#L97">source</a>)</span></span></div></div></div>
|
||||
<div class="platform-hinted " data-platform-hinted="data-platform-hinted"><div class="content sourceset-dependent-content" data-active="" data-togglable=":core:network/commonMain"><div class="symbol monospace"><span class="token keyword">val </span><a href="address.html">address</a><span class="token operator">: </span><a href="https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html">String</a><span class="source-link-wrapper"><span class="source-link" data-element-type="source-link">(<a href="https://github.com/meshtastic/Meshtastic-Android/blob/main/core/network/src/commonMain/kotlin/org/meshtastic/core/network/radio/MockRadioTransport.kt#L98">source</a>)</span></span></div></div></div>
|
||||
</div>
|
||||
<div class="footer">
|
||||
<div class="footer--container">
|
||||
|
||||
@@ -94,7 +94,7 @@
|
||||
<div class="cover ">
|
||||
<h1 class="cover"><span><span>close</span></span></h1>
|
||||
</div>
|
||||
<div class="platform-hinted " data-platform-hinted="data-platform-hinted"><div class="content sourceset-dependent-content" data-active="" data-togglable=":core:network/commonMain"><div class="symbol monospace"><span class="token keyword">open </span><span class="token keyword">suspend override </span><span class="token keyword">fun </span><a href="close.html"><span class="token function">close</span></a><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="source-link-wrapper"><span class="source-link" data-element-type="source-link">(<a href="https://github.com/meshtastic/Meshtastic-Android/blob/main/core/network/src/commonMain/kotlin/org/meshtastic/core/network/radio/MockRadioTransport.kt#L235">source</a>)</span></span></div></div></div>
|
||||
<div class="platform-hinted " data-platform-hinted="data-platform-hinted"><div class="content sourceset-dependent-content" data-active="" data-togglable=":core:network/commonMain"><div class="symbol monospace"><span class="token keyword">open </span><span class="token keyword">suspend override </span><span class="token keyword">fun </span><a href="close.html"><span class="token function">close</span></a><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="source-link-wrapper"><span class="source-link" data-element-type="source-link">(<a href="https://github.com/meshtastic/Meshtastic-Android/blob/main/core/network/src/commonMain/kotlin/org/meshtastic/core/network/radio/MockRadioTransport.kt#L236">source</a>)</span></span></div></div></div>
|
||||
</div>
|
||||
<div class="footer">
|
||||
<div class="footer--container">
|
||||
|
||||
+1
-1
@@ -94,7 +94,7 @@
|
||||
<div class="cover ">
|
||||
<h1 class="cover"><span>handle</span><wbr><span>Send</span><wbr><span>To</span><wbr><span><span>Radio</span></span></h1>
|
||||
</div>
|
||||
<div class="platform-hinted " data-platform-hinted="data-platform-hinted"><div class="content sourceset-dependent-content" data-active="" data-togglable=":core:network/commonMain"><div class="symbol monospace"><span class="token keyword">open </span><span class="token keyword">override </span><span class="token keyword">fun </span><a href="handle-send-to-radio.html"><span class="token function">handleSendToRadio</span></a><span class="token punctuation">(</span><span class="parameters "><span class="parameter ">p<span class="token operator">: </span><a href="https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-byte-array/index.html">ByteArray</a></span></span><span class="token punctuation">)</span><span class="token operator">: </span><a href="https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html">Boolean</a><span class="source-link-wrapper"><span class="source-link" data-element-type="source-link">(<a href="https://github.com/meshtastic/Meshtastic-Android/blob/main/core/network/src/commonMain/kotlin/org/meshtastic/core/network/radio/MockRadioTransport.kt#L129">source</a>)</span></span></div></div></div>
|
||||
<div class="platform-hinted " data-platform-hinted="data-platform-hinted"><div class="content sourceset-dependent-content" data-active="" data-togglable=":core:network/commonMain"><div class="symbol monospace"><span class="token keyword">open </span><span class="token keyword">override </span><span class="token keyword">fun </span><a href="handle-send-to-radio.html"><span class="token function">handleSendToRadio</span></a><span class="token punctuation">(</span><span class="parameters "><span class="parameter ">p<span class="token operator">: </span><a href="https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-byte-array/index.html">ByteArray</a></span></span><span class="token punctuation">)</span><span class="token operator">: </span><a href="https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html">Boolean</a><span class="source-link-wrapper"><span class="source-link" data-element-type="source-link">(<a href="https://github.com/meshtastic/Meshtastic-Android/blob/main/core/network/src/commonMain/kotlin/org/meshtastic/core/network/radio/MockRadioTransport.kt#L130">source</a>)</span></span></div></div></div>
|
||||
</div>
|
||||
<div class="footer">
|
||||
<div class="footer--container">
|
||||
|
||||
@@ -93,7 +93,7 @@
|
||||
<div class="breadcrumbs"><a href="../../index.html">core-network</a><span class="delimiter">/</span><a href="../index.html">org.meshtastic.core.network.radio</a><span class="delimiter">/</span><span class="current">MockRadioTransport</span></div>
|
||||
<div class="cover ">
|
||||
<h1 class="cover"><span>Mock</span><wbr><span>Radio</span><wbr><span><span>Transport</span></span></h1>
|
||||
<div class="platform-hinted " data-platform-hinted="data-platform-hinted"><div class="content sourceset-dependent-content" data-active="" data-togglable=":core:network/commonMain"><div class="symbol monospace"><span class="token keyword">class </span><a href="index.html">MockRadioTransport</a><span class="token punctuation">(</span><span class="parameters "><span class="parameter ">callback<span class="token operator">: </span><a href="../../../../core/repository/org.meshtastic.core.repository/-radio-transport-callback/index.html">RadioTransportCallback</a><span class="token punctuation">, </span></span><span class="parameter ">scope<span class="token operator">: </span><span data-unresolved-link="kotlinx.coroutines/CoroutineScope///PointingToDeclaration/">CoroutineScope</span><span class="token punctuation">, </span></span><span class="parameter "><span class="token keyword">val </span>address<span class="token operator">: </span><a href="https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html">String</a></span></span><span class="token punctuation">)</span> : <a href="../../../../core/repository/org.meshtastic.core.repository/-radio-transport/index.html">RadioTransport</a><span class="source-link-wrapper"><span class="source-link" data-element-type="source-link">(<a href="https://github.com/meshtastic/Meshtastic-Android/blob/main/core/network/src/commonMain/kotlin/org/meshtastic/core/network/radio/MockRadioTransport.kt#L94">source</a>)</span></span></div><p class="paragraph">A simulated radio, selected as "Demo Mode" in the Connections screen.</p><p class="paragraph">It answers the app's real two-stage <code class="lang-kotlin">want_config</code> handshake and then feeds a small synthetic mesh — a populated node list with positions, signal readings and battery levels, one channel conversation, one direct-message thread, and telemetry that keeps accruing while the app is open. That makes the app fully explorable without any LoRa hardware, which is what an app-store reviewer and a first-time user both need.</p><p class="paragraph">Three properties of the real protocol have to be honoured or the app never leaves "Loading node list":</p><ol><li><p class="paragraph">The handshake is two-stage (<a href="../../../../core/repository/org.meshtastic.core.repository/-handshake-constants/-c-o-n-f-i-g_-n-o-n-c-e.html">HandshakeConstants.CONFIG_NONCE</a> then <a href="../../../../core/repository/org.meshtastic.core.repository/-handshake-constants/-n-o-d-e_-i-n-f-o_-n-o-n-c-e.html">HandshakeConstants.NODE_INFO_NONCE</a>). Each stage must answer with only its own frames and its own <code class="lang-kotlin">config_complete_id</code>. Re-sending <code class="lang-kotlin">my_info</code> on stage 2 resets the app's handshake state machine and the stage-2 completion is then rejected.</p></li><li><p class="paragraph"><code class="lang-kotlin">node_info</code> frames are only accepted inside the handshake window, so every simulated node has to ship in stage 2.</p></li><li><p class="paragraph">Radio metrics (SNR/RSSI/hops) are only taken from packets that look like direct LoRa receptions — <code class="lang-kotlin">transport_mechanism = TRANSPORT_LORA</code> and <code class="lang-kotlin">hop_start == hop_limit</code>. Frames left at the proto defaults are treated as internal traffic and contribute no signal information at all.</p></li></ol></div></div>
|
||||
<div class="platform-hinted " data-platform-hinted="data-platform-hinted"><div class="content sourceset-dependent-content" data-active="" data-togglable=":core:network/commonMain"><div class="symbol monospace"><span class="token keyword">class </span><a href="index.html">MockRadioTransport</a><span class="token punctuation">(</span><span class="parameters "><span class="parameter ">callback<span class="token operator">: </span><a href="../../../../core/repository/org.meshtastic.core.repository/-radio-transport-callback/index.html">RadioTransportCallback</a><span class="token punctuation">, </span></span><span class="parameter ">scope<span class="token operator">: </span><span data-unresolved-link="kotlinx.coroutines/CoroutineScope///PointingToDeclaration/">CoroutineScope</span><span class="token punctuation">, </span></span><span class="parameter "><span class="token keyword">val </span>address<span class="token operator">: </span><a href="https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html">String</a></span></span><span class="token punctuation">)</span> : <a href="../../../../core/repository/org.meshtastic.core.repository/-radio-transport/index.html">RadioTransport</a><span class="source-link-wrapper"><span class="source-link" data-element-type="source-link">(<a href="https://github.com/meshtastic/Meshtastic-Android/blob/main/core/network/src/commonMain/kotlin/org/meshtastic/core/network/radio/MockRadioTransport.kt#L95">source</a>)</span></span></div><p class="paragraph">A simulated radio, selected as "Demo Mode" in the Connections screen.</p><p class="paragraph">It answers the app's real two-stage <code class="lang-kotlin">want_config</code> handshake and then feeds a small synthetic mesh — a populated node list with positions, signal readings and battery levels, one channel conversation, one direct-message thread, and telemetry that keeps accruing while the app is open. That makes the app fully explorable without any LoRa hardware, which is what an app-store reviewer and a first-time user both need.</p><p class="paragraph">Three properties of the real protocol have to be honoured or the app never leaves "Loading node list":</p><ol><li><p class="paragraph">The handshake is two-stage (<a href="../../../../core/repository/org.meshtastic.core.repository/-handshake-constants/-c-o-n-f-i-g_-n-o-n-c-e.html">HandshakeConstants.CONFIG_NONCE</a> then <a href="../../../../core/repository/org.meshtastic.core.repository/-handshake-constants/-n-o-d-e_-i-n-f-o_-n-o-n-c-e.html">HandshakeConstants.NODE_INFO_NONCE</a>). Each stage must answer with only its own frames and its own <code class="lang-kotlin">config_complete_id</code>. Re-sending <code class="lang-kotlin">my_info</code> on stage 2 resets the app's handshake state machine and the stage-2 completion is then rejected.</p></li><li><p class="paragraph"><code class="lang-kotlin">node_info</code> frames are only accepted inside the handshake window, so every simulated node has to ship in stage 2.</p></li><li><p class="paragraph">Radio metrics (SNR/RSSI/hops) are only taken from packets that look like direct LoRa receptions — <code class="lang-kotlin">transport_mechanism = TRANSPORT_LORA</code> and <code class="lang-kotlin">hop_start == hop_limit</code>. Frames left at the proto defaults are treated as internal traffic and contribute no signal information at all.</p></li></ol></div></div>
|
||||
</div>
|
||||
<div class="tabbedcontent">
|
||||
<div class="tabs-section" tabs-section="tabs-section"><button class="section-tab" data-active="" data-togglable="CONSTRUCTOR,TYPE,PROPERTY,FUNCTION">Members</button></div>
|
||||
|
||||
@@ -94,7 +94,7 @@
|
||||
<div class="cover ">
|
||||
<h1 class="cover"><span><span>start</span></span></h1>
|
||||
</div>
|
||||
<div class="platform-hinted " data-platform-hinted="data-platform-hinted"><div class="content sourceset-dependent-content" data-active="" data-togglable=":core:network/commonMain"><div class="symbol monospace"><span class="token keyword">open </span><span class="token keyword">override </span><span class="token keyword">fun </span><a href="start.html"><span class="token function">start</span></a><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="source-link-wrapper"><span class="source-link" data-element-type="source-link">(<a href="https://github.com/meshtastic/Meshtastic-Android/blob/main/core/network/src/commonMain/kotlin/org/meshtastic/core/network/radio/MockRadioTransport.kt#L122">source</a>)</span></span></div></div></div>
|
||||
<div class="platform-hinted " data-platform-hinted="data-platform-hinted"><div class="content sourceset-dependent-content" data-active="" data-togglable=":core:network/commonMain"><div class="symbol monospace"><span class="token keyword">open </span><span class="token keyword">override </span><span class="token keyword">fun </span><a href="start.html"><span class="token function">start</span></a><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="source-link-wrapper"><span class="source-link" data-element-type="source-link">(<a href="https://github.com/meshtastic/Meshtastic-Android/blob/main/core/network/src/commonMain/kotlin/org/meshtastic/core/network/radio/MockRadioTransport.kt#L123">source</a>)</span></span></div></div></div>
|
||||
</div>
|
||||
<div class="footer">
|
||||
<div class="footer--container">
|
||||
|
||||
@@ -95,7 +95,7 @@
|
||||
<h1 class="cover"><span>Robolectric</span><wbr><span>Ble</span><wbr><span><span>Bonding</span></span></h1>
|
||||
<div class="platform-hinted with-platform-tabs" data-platform-hinted="data-platform-hinted">
|
||||
<div class="platform-bookmarks-row" data-toggle-list="data-toggle-list"><button class="platform-bookmark" data-filterable-current=":core:testing/androidMain" data-filterable-set=":core:testing/androidMain" data-active="" data-toggle=":core:testing/androidMain">android</button></div>
|
||||
<div class="content sourceset-dependent-content" data-active="" data-togglable=":core:testing/androidMain"><div class="symbol monospace"><span class="token keyword">object </span><a href="index.html">RobolectricBleBonding</a><span class="source-link-wrapper"><span class="source-link" data-element-type="source-link">(<a href="https://github.com/meshtastic/Meshtastic-Android/blob/main/core/testing/src/androidMain/kotlin/org/meshtastic/core/testing/RobolectricBleBonding.kt#L44">source</a>)</span></span></div><p class="paragraph">Reusable Robolectric helpers for driving Android Bluetooth bonding logic in <code class="lang-kotlin">androidHostTest</code> source sets.</p><p class="paragraph">These let a unit test exercise the real <code class="lang-kotlin">AndroidBluetoothRepository.bond()</code> (and any future BLE bonding code) without an emulator and without a production seam. They rely on two Robolectric behaviors (verified against Robolectric 4.16.x):</p><ul><li><p class="paragraph"><a href="https://developer.android.com/reference/kotlin/android/bluetooth/BluetoothAdapter.html#getremotedevice">android.bluetooth.BluetoothAdapter.getRemoteDevice</a> caches the returned <a href="https://developer.android.com/reference/kotlin/android/bluetooth/BluetoothDevice.html">BluetoothDevice</a> by address in a static map, so the shadow configured here is the <i>same</i> instance production code reads when it calls <code class="lang-kotlin">getRemoteDevice(mac)</code> internally.</p></li><li><p class="paragraph"><span data-unresolved-link="org.robolectric.shadows/ShadowBluetoothDevice/createBond/#/PointingToDeclaration/">ShadowBluetoothDevice.createBond</span> calls <code class="lang-kotlin">checkForBluetoothConnectPermission()</code> first, so tests must call <a href="grant-bluetooth-connect-permission.html">grantBluetoothConnectPermission</a> or <code class="lang-kotlin">createBond()</code> throws <a href="https://developer.android.com/reference/kotlin/java/lang/SecurityException.html">SecurityException</a> instead of returning a value.</p></li></ul><p class="paragraph">Isolation note: because the device cache is static and survives across tests in the same JVM, give each test a distinct MAC so bond-state cannot bleed between tests.</p></div> </div>
|
||||
<div class="content sourceset-dependent-content" data-active="" data-togglable=":core:testing/androidMain"><div class="symbol monospace"><span class="token keyword">object </span><a href="index.html">RobolectricBleBonding</a><span class="source-link-wrapper"><span class="source-link" data-element-type="source-link">(<a href="https://github.com/meshtastic/Meshtastic-Android/blob/main/core/testing/src/androidMain/kotlin/org/meshtastic/core/testing/RobolectricBleBonding.kt#L44">source</a>)</span></span></div><p class="paragraph">Reusable Robolectric helpers for driving Android Bluetooth bonding logic in <code class="lang-kotlin">androidHostTest</code> source sets.</p><p class="paragraph">These let a unit test exercise the real <code class="lang-kotlin">AndroidBluetoothRepository.bond()</code> (and any future BLE bonding code) without an emulator and without a production seam. They rely on two Robolectric behaviors (verified against Robolectric 4.16.x):</p><ul><li><p class="paragraph"><a href="https://developer.android.com/reference/kotlin/android/bluetooth/BluetoothAdapter.html#getRemoteDevice(kotlin.ByteArray)">android.bluetooth.BluetoothAdapter.getRemoteDevice</a> caches the returned <a href="https://developer.android.com/reference/kotlin/android/bluetooth/BluetoothDevice.html">BluetoothDevice</a> by address in a static map, so the shadow configured here is the <i>same</i> instance production code reads when it calls <code class="lang-kotlin">getRemoteDevice(mac)</code> internally.</p></li><li><p class="paragraph"><span data-unresolved-link="org.robolectric.shadows/ShadowBluetoothDevice/createBond/#/PointingToDeclaration/">ShadowBluetoothDevice.createBond</span> calls <code class="lang-kotlin">checkForBluetoothConnectPermission()</code> first, so tests must call <a href="grant-bluetooth-connect-permission.html">grantBluetoothConnectPermission</a> or <code class="lang-kotlin">createBond()</code> throws <a href="https://developer.android.com/reference/kotlin/java/lang/SecurityException.html">SecurityException</a> instead of returning a value.</p></li></ul><p class="paragraph">Isolation note: because the device cache is static and survives across tests in the same JVM, give each test a distinct MAC so bond-state cannot bleed between tests.</p></div> </div>
|
||||
</div>
|
||||
<div class="tabbedcontent">
|
||||
<div class="tabs-section" tabs-section="tabs-section"><button class="section-tab" data-active="" data-togglable="CONSTRUCTOR,TYPE,PROPERTY,FUNCTION">Members</button></div>
|
||||
|
||||
File diff suppressed because one or more lines are too long.
File diff suppressed because one or more lines are too long.
File diff suppressed because one or more lines are too long.
File diff suppressed because one or more lines are too long.
File diff suppressed because one or more lines are too long.
File diff suppressed because one or more lines are too long.
File diff suppressed because one or more lines are too long.
File diff suppressed because one or more lines are too long.
Binary file not shown.
File diff suppressed because one or more lines are too long.
+1
-1
@@ -29,7 +29,7 @@
|
||||
{"id":"navigation-and-deep-links","title":"Navigation & Deep Links","section":"developer","locale":"en","resourcePath":"docs/developer/navigation-and-deep-links.html","navOrder":4,"keywords":["navigation", "deep", "links", "route", "architecture", "hierarchy", "conventions", "link", "router", "uri", "format", "supported", "backstack", "synthesis", "adding", "entry", "registration", "testing"],"aliases":["deeplinks", "navigation-3", "routes"],"charCount":8296},
|
||||
{"id":"persistence","title":"Persistence","section":"developer","locale":"en","resourcePath":"docs/developer/persistence.html","navOrder":6,"keywords":["persistence", "room", "kmp", "database", "key", "points", "what", "stored", "datastore", "preferences", "core", "prefs", "docs", "intentionally", "skip", "best", "practices"],"aliases":["room", "database", "datastore", "prefs"],"charCount":3670},
|
||||
{"id":"test-builds","title":"Test Builds & Obtainium","section":"developer","locale":"en","resourcePath":"docs/developer/test-builds.html","navOrder":10,"keywords":["test", "builds", "obtainium", "which", "channels", "can", "reach", "one", "tap", "setup", "how", "many", "entries", "you", "have", "once", "manual", "stable", "open", "beta", "closed", "bleeding", "edge", "newest", "promoted", "build", "any", "channel", "snapshot", "latest"],"aliases":["test-builds", "obtainium", "beta", "snapshot"],"charCount":20778},
|
||||
{"id":"testing","title":"Testing","section":"developer","locale":"en","resourcePath":"docs/developer/testing.html","navOrder":7,"keywords":["testing", "test", "categories", "kmp", "unit", "tests", "commontest", "android", "host", "compose", "screenshot", "baseline", "profile", "startup", "performance", "organization", "guidelines", "don", "running", "all", "specific", "module", "code", "quality", "full", "verification", "integration"],"aliases":["tests", "unit-tests", "screenshot-tests"],"charCount":10221},
|
||||
{"id":"testing","title":"Testing","section":"developer","locale":"en","resourcePath":"docs/developer/testing.html","navOrder":7,"keywords":["testing", "test", "categories", "kmp", "unit", "tests", "commontest", "android", "host", "compose", "screenshot", "baseline", "profile", "startup", "performance", "organization", "guidelines", "don", "running", "all", "specific", "module", "code", "quality", "full", "verification", "integration"],"aliases":["tests", "unit-tests", "screenshot-tests"],"charCount":7660},
|
||||
{"id":"transport","title":"Transport","section":"developer","locale":"en","resourcePath":"docs/developer/transport.html","navOrder":5,"keywords":["transport", "abstraction", "bluetooth", "low", "energy", "ble", "where", "the", "code", "lives", "usb", "serial", "tcp", "factory", "connection", "lifecycle", "adding", "new"],"aliases":["ble", "serial", "tcp", "radio-transport"],"charCount":4902},
|
||||
{"id":"app-functions","title":"App Functions","section":"user","locale":"ar-rSA","resourcePath":"docs/ar-rSA/user/app-functions.html","navOrder":19,"keywords":["app", "functions", "enabling", "write", "read", "privacy", "related", "topics"],"aliases":["app-functions", "system-ai", "gemini", "assistant"],"charCount":4364},
|
||||
{"id":"connections","title":"Connections","section":"user","locale":"ar-rSA","resourcePath":"docs/ar-rSA/user/connections.html","navOrder":2,"keywords":["connections", "bluetooth", "ble", "pairing", "radio", "connection", "status", "troubleshooting", "usb", "serial", "setup", "tcp", "network", "connecting", "over", "the", "when", "use", "provisioning", "for", "mpwrd", "after", "your", "first", "reconnection", "behavior", "desktop", "related", "topics"],"aliases":["bluetooth", "usb", "tcp", "pairing"],"charCount":11132},
|
||||
|
||||
Reference in new issue
Block a user