From 8bcd3fffc22eca6f2d42d5a81fea065b52607698 Mon Sep 17 00:00:00 2001 From: Andy Baker Date: Thu, 16 Jan 2025 11:00:43 +0000 Subject: [PATCH 1/5] Fix MX Stylus Regression (#811) * OculusXRFeature for Android needs to be enabled for MX Ink support --- Assets/XR/Settings/Open XR Package Settings.asset | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Assets/XR/Settings/Open XR Package Settings.asset b/Assets/XR/Settings/Open XR Package Settings.asset index 241e7c1e1e..c2b549ff67 100644 --- a/Assets/XR/Settings/Open XR Package Settings.asset +++ b/Assets/XR/Settings/Open XR Package Settings.asset @@ -647,7 +647,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 1927c045052a06d49a9b21fdcaa26db6, type: 3} m_Name: OculusXRFeature Android m_EditorClassIdentifier: - m_enabled: 0 + m_enabled: 1 nameUi: Meta XR Feature version: 0.0.1 featureIdInternal: com.meta.openxr.feature.metaxr From 81cf8a90248c0400a47176d92ef6bcc959ff88d4 Mon Sep 17 00:00:00 2001 From: Andy Baker Date: Wed, 5 Feb 2025 14:19:57 +0000 Subject: [PATCH 2/5] Allow the erase tool to also "erase" media widgets (#818) --- Assets/Scripts/Tools/EraserTool.cs | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/Assets/Scripts/Tools/EraserTool.cs b/Assets/Scripts/Tools/EraserTool.cs index 98288550c5..66774a3f8b 100644 --- a/Assets/Scripts/Tools/EraserTool.cs +++ b/Assets/Scripts/Tools/EraserTool.cs @@ -84,6 +84,13 @@ override public void IntersectionHappenedThisFrame() override protected bool HandleIntersectionWithWidget(GrabWidget widget) { + if (widget is MediaWidget) + { + SketchMemoryScript.m_Instance.PerformAndRecordCommand(new HideWidgetCommand(widget)); + AudioManager.m_Instance.ShowHideWidget(false, transform.position); + PlayModifyStrokeSound(); + return true; + } return false; } From 4f7eb6aebdec9edfeb6b908bfc89c435ffafbc06 Mon Sep 17 00:00:00 2001 From: Mike Miller <87874+mikeage@users.noreply.github.com> Date: Thu, 13 Feb 2025 17:16:55 +0200 Subject: [PATCH 3/5] Publish Q1 and Q2 builds to ArborXR (#824) * Add publish to ArborXR for Q1 and Q2+ --- .github/workflows/build.yml | 86 +++++++++++++++++++++++++++++++++++++ 1 file changed, 86 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index eff7b033af..18a9874624 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -1150,6 +1150,92 @@ jobs: ./ovr-platform-util upload-quest-build --app-id ${OCULUS_QUEST_APP_ID} --app-secret ${OCULUS_QUEST_APP_SECRET} --apk OpenBrush_Quest1_$VERSION.apk --channel Beta:quest1only --debug_symbols_dir ./arm64-v8a/ --debug-symbols-pattern '*.so' --notes "${CHANGELOG}" --age-group MIXED_AGES fi + publish_oculus_quest_arborxr: + name: Publish Oculus Quest 2+ Release ArborXR + needs: [configuration, build] + runs-on: ubuntu-latest + if: | + github.event_name == 'push' && + github.repository == 'icosa-foundation/open-brush' && + (github.ref == 'refs/heads/main' || contains(github.ref, 'refs/tags/v')) + + steps: + - name: Download Build Artifacts (Oculus Quest 2+) + uses: actions/download-artifact@v4 + with: + name: Oculus Quest (2+) + path: build_oculus_quest + - name: Publish Oculus Builds + env: + VERSION: ${{ needs.configuration.outputs.version }} + PRERELEASE: ${{ needs.configuration.outputs.prerelease }} + RAW_CHANGELOG: ${{ needs.configuration.outputs.rawchangelog }} + ARBORXR_ACCESS_TOKEN: ${{ secrets.ARBORXR_ACCESS_TOKEN }} + ARBORXR_ORG_ID: ${{ vars.ARBORXR_ORG_ID }} + ARBORXR_APP_ID: ${{ vars.ARBORXR_Q2_APP_ID }} + ARBORXR_LIVE_CHANNEL: ${{ vars.ARBORXR_Q2_LIVE_CHANNEL }} + ARBORXR_BETA_CHANNEL: ${{ vars.ARBORXR_Q2_BETA_CHANNEL }} + run: | + mkdir releases + mv build_oculus_quest/*/com.Icosa.OpenBrush*apk releases/OpenBrush_Quest_$VERSION.apk + + cd releases + wget -O arborxr-cli.zip https://graphql.xrdm.app/download/system-content/channel/fe7633a5-d733-4885-8b3c-580c11c4842d + unzip arborxr-cli.zip + ln -s arborxr-cli-linux-* arborxr-cli + chmod 755 arborxr-cli + + if [ "$PRERELEASE" == "false" ] + then + ./arborxr-cli content channel upload $ARBORXR_APP_ID --release-channel $ARBORXR_LIVE_CHANNEL OpenBrush_Quest_$VERSION.apk + else + CHANGELOG="${RAW_CHANGELOG}" + ./arborxr-cli content channel upload $ARBORXR_APP_ID --release-channel $ARBORXR_BETA_CHANNEL OpenBrush_Quest_$VERSION.apk --release-notes "${CHANGELOG}" + fi + + publish_oculus_quest1_arborxr: + name: Publish Oculus Quest 1 Release ArborXR + needs: [configuration, build] + runs-on: ubuntu-latest + if: | + github.event_name == 'push' && + github.repository == 'icosa-foundation/open-brush' && + (github.ref == 'refs/heads/main' || contains(github.ref, 'refs/tags/v')) + + steps: + - name: Download Build Artifacts (Oculus Quest 1) + uses: actions/download-artifact@v4 + with: + name: Oculus Quest (1) + path: build_oculus_quest1 + - name: Publish Oculus Builds + env: + VERSION: ${{ needs.configuration.outputs.version }} + PRERELEASE: ${{ needs.configuration.outputs.prerelease }} + RAW_CHANGELOG: ${{ needs.configuration.outputs.rawchangelog }} + ARBORXR_ACCESS_TOKEN: ${{ secrets.ARBORXR_ACCESS_TOKEN }} + ARBORXR_ORG_ID: ${{ vars.ARBORXR_ORG_ID }} + ARBORXR_APP_ID: ${{ vars.ARBORXR_Q1_APP_ID }} + ARBORXR_LIVE_CHANNEL: ${{ vars.ARBORXR_Q1_LIVE_CHANNEL }} + ARBORXR_BETA_CHANNEL: ${{ vars.ARBORXR_Q1_BETA_CHANNEL }} + run: | + mkdir releases1 + mv build_oculus_quest1/*/com.Icosa.OpenBrush*apk releases1/OpenBrush_Quest1_$VERSION.apk + + cd releases1 + wget -O arborxr-cli.zip https://graphql.xrdm.app/download/system-content/channel/fe7633a5-d733-4885-8b3c-580c11c4842d + unzip arborxr-cli.zip + ln -s arborxr-cli-linux-* arborxr-cli + chmod 755 arborxr-cli + + if [ "$PRERELEASE" == "false" ] + then + ./arborxr-cli content channel upload $ARBORXR_APP_ID --release-channel $ARBORXR_LIVE_CHANNEL OpenBrush_Quest1_$VERSION.apk + else + CHANGELOG="${RAW_CHANGELOG}" + ./arborxr-cli content channel upload $ARBORXR_APP_ID --release-channel $ARBORXR_BETA_CHANNEL OpenBrush_Quest1_$VERSION.apk --release-notes "${CHANGELOG}" + fi + publish_oculus_rift: name: Publish Oculus Rift Release needs: [configuration, build] From bfa58a838e77847d06aecf6059e6cafd3d611095 Mon Sep 17 00:00:00 2001 From: Mike Miller <87874+mikeage@users.noreply.github.com> Date: Thu, 13 Feb 2025 19:42:16 +0200 Subject: [PATCH 4/5] Upload Pico to ArborXR (#826) --- .github/workflows/build.yml | 43 +++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 18a9874624..bc5500dbca 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -1321,6 +1321,49 @@ jobs: ./pico-cli upload-build --app-id $PICO_APP_ID --app-secret $PICO_APP_SECRET --region noncn --apk OpenBrush_Pico_$VERSION.apk --channel 3 --notes-en "Version $VERSION" --device 'PICO Neo3,PICO Neo3 Pro,PICO Neo3 Eye,PICO 4' fi + publish_pico_arborxr: + name: Publish Pico Releases ArborXR + needs: [configuration, build] + runs-on: ubuntu-latest + if: | + github.event_name == 'push' && + github.repository == 'icosa-foundation/open-brush' && + (github.ref == 'refs/heads/main' || contains(github.ref, 'refs/tags/v')) + + steps: + - name: Download Build Artifacts (Android Pico) + uses: actions/download-artifact@v4 + with: + name: Android Pico + path: build_android_pico + - name: Publish Pico Builds + env: + VERSION: ${{ needs.configuration.outputs.version }} + PRERELEASE: ${{ needs.configuration.outputs.prerelease }} + RAW_CHANGELOG: ${{ needs.configuration.outputs.rawchangelog }} + ARBORXR_ACCESS_TOKEN: ${{ secrets.ARBORXR_ACCESS_TOKEN }} + ARBORXR_ORG_ID: ${{ vars.ARBORXR_ORG_ID }} + ARBORXR_APP_ID: ${{ vars.ARBORXR_PICO_APP_ID }} + ARBORXR_LIVE_CHANNEL: ${{ vars.ARBORXR_PICO_LIVE_CHANNEL }} + ARBORXR_BETA_CHANNEL: ${{ vars.ARBORXR_PICO_BETA_CHANNEL }} + run: | + mkdir releases + mv build_android_pico/*/com.Icosa.OpenBrush*apk releases/OpenBrush_Pico_$VERSION.apk + + cd releases + wget -O arborxr-cli.zip https://graphql.xrdm.app/download/system-content/channel/fe7633a5-d733-4885-8b3c-580c11c4842d + unzip arborxr-cli.zip + ln -s arborxr-cli-linux-* arborxr-cli + chmod 755 arborxr-cli + + if [ "$PRERELEASE" == "false" ] + then + ./arborxr-cli content channel upload $ARBORXR_APP_ID --release-channel $ARBORXR_LIVE_CHANNEL OpenBrush_Pico_$VERSION.apk + else + CHANGELOG="${RAW_CHANGELOG}" + ./arborxr-cli content channel upload $ARBORXR_APP_ID --release-channel $ARBORXR_BETA_CHANNEL OpenBrush_Pico_$VERSION.apk --release-notes "${CHANGELOG}" + fi + publish_ios_zapbox: name: Publish Zapbox iOS needs: [configuration, build] From 9bcb95cbcc769bcb1b1ea4e936b799613403d7d5 Mon Sep 17 00:00:00 2001 From: Andy Baker Date: Mon, 17 Feb 2025 17:19:43 +0000 Subject: [PATCH 5/5] Fix editor issues with localization (#825) This fixes editor issues with localization --- Assets/Settings/Localization/Localization Settings.asset | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Assets/Settings/Localization/Localization Settings.asset b/Assets/Settings/Localization/Localization Settings.asset index a4f275f12e..e290cad5c0 100644 --- a/Assets/Settings/Localization/Localization Settings.asset +++ b/Assets/Settings/Localization/Localization Settings.asset @@ -61,6 +61,7 @@ MonoBehaviour: rid: -2 m_CustomTablePostprocessor: rid: -2 + m_AsynchronousBehaviour: 1 m_UseFallback: 1 - rid: 6394126504158822405 type: {class: LocalizedStringDatabase, ns: UnityEngine.Localization.Settings, @@ -72,6 +73,7 @@ MonoBehaviour: rid: -2 m_CustomTablePostprocessor: rid: -2 + m_AsynchronousBehaviour: 1 m_UseFallback: 1 m_MissingTranslationState: 1 m_NoTranslationFoundMessage: No translation found for '{key}' in {table.TableCollectionName}