gitextract_s_m_z04y/ ├── .github/ │ ├── FUNDING.yml │ └── ISSUE_TEMPLATE/ │ ├── bug_report.md │ └── feature_request.md ├── .gitignore ├── LICENSE ├── PRIVACYPOLICY.MD ├── README.rst ├── bluedot/ │ ├── __init__.py │ ├── app.py │ ├── btcomm.py │ ├── colors.py │ ├── constants.py │ ├── dot.py │ ├── exceptions.py │ ├── interactions.py │ ├── mock.py │ ├── threads.py │ └── utils.py ├── clients/ │ ├── android/ │ │ ├── .gitignore │ │ ├── README.rst │ │ ├── app/ │ │ │ ├── .gitignore │ │ │ ├── build.gradle │ │ │ ├── proguard-rules.pro │ │ │ ├── release/ │ │ │ │ ├── app-release.aab │ │ │ │ ├── app-release.apk │ │ │ │ └── output-metadata.json │ │ │ └── src/ │ │ │ ├── androidTest/ │ │ │ │ └── java/ │ │ │ │ └── com/ │ │ │ │ └── stuffaboutcode/ │ │ │ │ └── bluedot/ │ │ │ │ └── ExampleInstrumentedTest.java │ │ │ ├── main/ │ │ │ │ ├── AndroidManifest.xml │ │ │ │ ├── java/ │ │ │ │ │ └── com/ │ │ │ │ │ └── stuffaboutcode/ │ │ │ │ │ ├── bluedot/ │ │ │ │ │ │ ├── BluetoothChatService.java │ │ │ │ │ │ ├── Button.java │ │ │ │ │ │ ├── Constants.java │ │ │ │ │ │ ├── Devices.java │ │ │ │ │ │ ├── DynamicMatrix.java │ │ │ │ │ │ └── SettingsActivity.java │ │ │ │ │ └── logger/ │ │ │ │ │ ├── Log.java │ │ │ │ │ ├── LogFragment.java │ │ │ │ │ ├── LogNode.java │ │ │ │ │ ├── LogView.java │ │ │ │ │ ├── LogWrapper.java │ │ │ │ │ └── MessageOnlyLogFilter.java │ │ │ │ └── res/ │ │ │ │ ├── drawable/ │ │ │ │ │ └── round_button.xml │ │ │ │ ├── layout/ │ │ │ │ │ ├── activity_button.xml │ │ │ │ │ ├── activity_devices.xml │ │ │ │ │ └── settings_activity.xml │ │ │ │ ├── menu/ │ │ │ │ │ └── settings_menu.xml │ │ │ │ ├── values/ │ │ │ │ │ ├── arrays.xml │ │ │ │ │ ├── attrs.xml │ │ │ │ │ ├── colors.xml │ │ │ │ │ ├── dimens.xml │ │ │ │ │ ├── strings.xml │ │ │ │ │ └── styles.xml │ │ │ │ └── xml/ │ │ │ │ └── root_preferences.xml │ │ │ └── test/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── stuffaboutcode/ │ │ │ └── bluedot/ │ │ │ └── ExampleUnitTest.java │ │ ├── build.gradle │ │ ├── gradle/ │ │ │ └── wrapper/ │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ │ ├── gradle.properties │ │ ├── gradlew │ │ ├── gradlew.bat │ │ └── settings.gradle │ └── python/ │ └── README.rst ├── docs/ │ ├── Makefile │ ├── bluedotandroidapp.rst │ ├── bluedotpythonapp.rst │ ├── btcommapi.rst │ ├── build.rst │ ├── changelog.rst │ ├── conf.py │ ├── dotapi.rst │ ├── examples/ │ │ ├── bt_enumerate.py │ │ ├── bt_pair_button.py │ │ ├── bt_pairing.py │ │ ├── camera.py │ │ ├── dpad.py │ │ ├── dpad_layout.py │ │ ├── goodbye_world.py │ │ ├── hello_event.py │ │ ├── hello_world.py │ │ ├── joypad.py │ │ ├── led1.py │ │ ├── led2.py │ │ ├── led3.py │ │ ├── looks_border.py │ │ ├── looks_color.py │ │ ├── looks_square.py │ │ ├── looks_visible.py │ │ ├── many_buttons.py │ │ ├── many_buttons_random_colors.py │ │ ├── mock_app.py │ │ ├── mock_script.py │ │ ├── multiple_dots.py │ │ ├── robot1.py │ │ ├── robot2.py │ │ ├── robot3.py │ │ ├── rotation.py │ │ ├── shout_hello.py │ │ ├── slider_centre.py │ │ ├── slider_dimmer.py │ │ ├── slider_left_right.py │ │ ├── swipe1.py │ │ ├── swipe2.py │ │ ├── swipe_direction.py │ │ ├── swipe_speed_angle.py │ │ ├── two_buttons.py │ │ ├── two_buttons_gap.py │ │ └── two_buttons_two_events.py │ ├── gettingstarted.rst │ ├── index.rst │ ├── mockapi.rst │ ├── pairpiandroid.rst │ ├── pairpipi.rst │ ├── protocol.rst │ └── recipes.rst ├── examples/ │ ├── adapter_details.py │ ├── click_wheel.py │ ├── client_connects.py │ ├── client_debug.py │ ├── color_changer.py │ ├── connect_multiple_apps.py │ ├── dot_changer.py │ ├── dot_debug.py │ ├── dot_single_button_debug.py │ ├── double_press.py │ ├── dpad.py │ ├── dpad_layout.py │ ├── hello_world.py │ ├── joypad.py │ ├── many_buttons.py │ ├── matrix_of_dots.py │ ├── mock_app_debug.py │ ├── mock_btcomm_debug.py │ ├── mock_debug.py │ ├── remote_camera.py │ ├── server_debug.py │ ├── simple_robot.py │ ├── simple_variable_robot.py │ ├── slider_centre.py │ ├── slider_horizontal.py │ ├── slider_led_dimmer.py │ ├── source_robot.py │ ├── swipe_debug.py │ ├── threaded_callbacks.py │ ├── two_buttons.py │ └── wait_for_events.py ├── setup.py └── tests/ ├── test_blue_dot.py ├── test_bluetooth_adapter.py └── test_bluetooth_comms.py