Skip to content

Improve dApp detail page#55

Open
Jim8y wants to merge 7 commits into
neoorder:masterfrom
Jim8y:codex/p8-dapp-detail-page
Open

Improve dApp detail page#55
Jim8y wants to merge 7 commits into
neoorder:masterfrom
Jim8y:codex/p8-dapp-detail-page

Conversation

@Jim8y

@Jim8y Jim8y commented Jun 21, 2026

Copy link
Copy Markdown
Contributor

Scope

  • Improve the existing dApp detail page only.
  • Add clear source information, OneGate catalog status, website host, runtime permission explanation, recent-open state, and localized tags.
  • Keep the existing open, favorite, add-to-home, share, screenshots, description, and language flows intact.

Validation

  • git diff --check
  • iOS simulator: built, installed, opened N3 Governance details from Apps, verified source/permissions/recent activity/tags rendering, and verified Open still launches the dApp WebView.
  • Android emulator: built, installed, opened N3 Governance details from Apps, verified source/permissions/recent activity/tags rendering, verified Open launches the dApp WebView, and checked crash buffer was empty.

Screenshots

Known limitations

  • Recent activity uses the existing local dapps/recent list, so it only indicates whether the app was recently opened on this device.
  • Permission details are a runtime explanation; this PR does not add a new permission registry or change dApp execution behavior.

Copilot AI review requested due to automatic review settings June 21, 2026 06:44
@Jim8y

Jim8y commented Jun 21, 2026

Copy link
Copy Markdown
Contributor Author

iOS and Android simulator verification screenshots:

Verification:

  • git diff --check
  • Localized resource parity check across all Strings*.resx files: 292 keys each
  • iOS simulator build: net10.0-ios, iossimulator-arm64
  • Android emulator build: net10.0-android, android-arm64
  • iOS Simulator: verified DApp Details renders the metadata cards and that game type is included in Tags (GameFi, 桌游)
  • Android emulator: verified DApp Details renders the metadata cards and that game type is included in Tags (GameFi, Board); no OneGate crash entries in crash buffer

Review follow-up:

  • Included GameTypeDisplayName in the existing Tags metadata card.
  • Removed the standalone Game Type rows from the detail page so the field is not left outside the new metadata layout.
  • Added the new DApp detail resource keys to every supported locale.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Improves the existing dApp detail page UI by adding clearer provenance and contextual metadata (source info, catalog/external status, website host, runtime permission explanation, recent-open state, and localized tags) while preserving existing actions/flows (open, favorite, add-to-home, share, screenshots, description, languages).

Changes:

  • Added new localized string resources for dApp source/status, permissions summary, recent activity, and tags (EN + zh-Hans).
  • Extended DAppDetailsPage code-behind with computed display properties (hosts/status/tags/recent state) derived from the bound DApp and local settings.
  • Refactored DAppDetailsPage XAML layout to present the new metadata in “Card” sections while keeping existing content sections.

Reviewed changes

Copilot reviewed 4 out of 5 changed files in this pull request and generated no comments.

Show a summary per file
File Description
OneGateApp/Properties/Strings.zh-Hans.resx Adds zh-Hans translations for new dApp detail metadata labels and helper text.
OneGateApp/Properties/Strings.resx Adds English strings for new dApp detail metadata labels and helper text.
OneGateApp/Properties/Strings.Designer.cs Regenerates strongly-typed resource accessors for the new string keys.
OneGateApp/Pages/DAppDetailsPage.xaml.cs Computes source/website hosts, catalog vs external status, recent-open text, and localized tag display for binding.
OneGateApp/Pages/DAppDetailsPage.xaml Updates the dApp details UI to render the new source/permissions/recent activity/tags sections in Card layouts.
Files not reviewed (1)
  • OneGateApp/Properties/Strings.Designer.cs: Generated file

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread OneGateApp/Pages/DAppDetailsPage.xaml Outdated
Comment thread OneGateApp/Pages/DAppDetailsPage.xaml.cs Outdated
@Jim8y

Jim8y commented Jul 4, 2026

Copy link
Copy Markdown
Contributor Author

Addressed Erik's review request in .

Changes:

  • All dApps now show a unified third-party status on the detail page.
  • Removed the catalog/external status split so catalog-listed dApps are not presented as OneGate-provided.
  • Replaced / with across localized resources.

Validation:

  • passed.
  • Localized .resx key parity passed across all 15 resource files.
  • Android build passed: MSBUILD : error MSB1008: 只能指定一个项目。
    完整命令行:“/opt/homebrew/Cellar/dotnet/10.0.108/libexec/sdk/10.0.108/MSBuild.dll -maxcpucount --verbosity:m -tlp:default=auto --property:EnableDefaultCompileItems=false --property:EnableDefaultEmbeddedResourceItems=false --property:EnableDefaultNoneItems=false --property:RuntimeIdentifier=android-arm64 --property:_CommandLineDefinedRuntimeIdentifier=true --property:NuGetInteractive=false --target:Restore -tlp:verbosity=quiet OneGateApp/OneGateApp.csproj ... -nologo”
    响应文件追加的开关:
    开关:...

若要显示开关的语法,请键入“MSBuild -help”.

  • iOS simulator build passed: 可能造成此问题的原因包括:
    *内置 dotnet 命令拼写错误。
    *你打算执行 .NET 程序,但 dotnet-restore/build 不存在。
    *你打算运行全局工具,但在 PATH 上找不到具有此名称且带有 dotnet 前缀的可执行文件。.

No screenshots were committed to the repository.

@Jim8y

Jim8y commented Jul 4, 2026

Copy link
Copy Markdown
Contributor Author

Addressed Erik's review request in 2db36ea.

Changes:

  • All dApps now show a unified third-party status on the detail page.
  • Removed the catalog/external status split so catalog-listed dApps are not presented as OneGate-provided.
  • Replaced DAppCatalogStatus / DAppExternalStatus with DAppThirdPartyStatus across localized resources.

Validation:

  • git diff --check passed.
  • Localized .resx key parity passed across all 15 resource files.
  • Android build passed: dotnet build OneGateApp/OneGateApp.csproj -f net10.0-android -r android-arm64 ....
  • iOS simulator build passed: dotnet restore/build OneGateApp/OneGateApp.csproj -f net10.0-ios -r iossimulator-arm64 ....

No screenshots were committed to the repository.

# Conflicts:
#	OneGateApp/Pages/DAppDetailsPage.xaml.cs
@Jim8y

Jim8y commented Jul 5, 2026

Copy link
Copy Markdown
Contributor Author

Resolved the latest master merge conflict on this PR.

What changed in the merge resolution:

  • Kept the DApp Details source status as Strings.DAppThirdPartyStatus, so all dApps continue to be presented as third-party per review feedback.
  • Preserved the new DApp report toolbar/popup flow from current master.
  • Left the PR scope focused on the DApp Details metadata/source/permission/recent activity UI.

Validation:

  • git diff --check
  • localized resource key parity check across Strings*.resx
  • Android build: dotnet build OneGateApp/OneGateApp.csproj -f net10.0-android -r android-arm64 ... passed with existing SQLitePCLRaw NU1903 warnings only
  • Android emulator install + launch: emulator-5554, package org.neoorder.onegate, reached Home without crashing
  • iOS simulator build: net10.0-ios / iossimulator-arm64 passed with existing SQLitePCLRaw NU1903 warning only
  • iOS simulator install + launch: iPhone 17 Pro / iOS 26.5, package org.neoorder.onegate, reached the welcome screen without crashing

Screenshots were captured locally under /tmp/onegate-pr55-20260705/ and were not committed. I did not add image links here because the available GitHub attachment uploader requires a browser session token in this environment, and adding broken image links would make the PR harder to review.

Comment thread OneGateApp/Pages/DAppDetailsPage.xaml Outdated
@Jim8y

Jim8y commented Jul 5, 2026

Copy link
Copy Markdown
Contributor Author

Addressed Erik's review feedback in 60f193a.

Change:

  • Removed the dApp source/status card because all listed dApps are third-party.
  • Removed the now-unused source/status backing properties and localized strings.
  • Kept the developer display in the header as the primary source attribution.

Validation:

  • git diff --check passed.
  • Android build passed for net10.0-android/android-arm64.
  • iOS simulator build passed for net10.0-ios/iossimulator-arm64.
  • Installed/launched on iOS simulator and Android emulator; screenshots captured outside the repo:
    • /tmp/onegate-review-monitor-20260705/pr55-p8-dapp-detail-page-ios.png
    • /tmp/onegate-review-monitor-20260705/pr55-p8-dapp-detail-page-android.png

Existing SQLitePCLRaw NU1903 warnings remain unrelated.

@Jim8y

Jim8y commented Jul 5, 2026

Copy link
Copy Markdown
Contributor Author

Current head already addresses the open third-party dApp feedback.

Checked in this pass:

  • DApp details no longer display an official/unknown or third-party status field.
  • The header simply shows the dApp developer, matching the guidance that all dApps should be treated as third-party.

No additional commit was needed in this pass.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

3 participants