Skip to main content

Detail View Controller Guide

The Detail View Controller is a key UI component provided by the Entrupy iOS SDK. It serves as a comprehensive dashboard for a single authenticated item, displaying its current status, final results, historical events, and facilitating any necessary user actions or communications related to that item.

Overview

Once an item has been submitted via the Capture Flow UI, the Detail View Controller is the primary interface within the SDK for your users to:

  • Track the authentication status (e.g., Processing, Completed, Needs Retake).
  • View the final authentication result (e.g., Authentic, Unidentified).
  • See the Estimated Time of Arrival (ETA) if results are pending.
  • Review an event timeline of the item's authentication journey.
  • Respond to actions required, such as performing image retakes.
  • Manage and view flags associated with the item's result.
  • Engage in structured communications with Entrupy support for item-specific queries.
  • Access certificate information, including a shareable link (for authentic items).
  • View integrated Catalog Data, providing rich product details.
  • The Entrupy logo is displayed in this view, reinforcing the verification service.

Presenting the Detail View Controller

To display the Detail View for a specific item, your application will need to initialize and present this view controller, typically by providing the item's unique entrupy_id (obtained from the EntrupyCaptureDelegate after a successful submission or from a search result).

While sdk-v1-legacy.md does not explicitly detail a method to launch a standalone Detail View controller, modern SDKs often provide such a mechanism. Conceptually, it would look like this:

// Swift - Conceptual Example (Verify with actual SDK API)

// Assuming 'self' is a UIViewController and you have the entrupy_id

func showDetailViewForItem(entrupyId: String) {
// TODO: Replace with actual SDK method for initializing and presenting the Detail View.
// This is a conceptual representation.
/*
if let detailViewController = EntrupySDK.detailViewController(forEntrupyId: entrupyId, delegate: self) { // Assuming a delegate might be needed
// Present the detailViewController, e.g., push onto a navigation stack
self.navigationController?.pushViewController(detailViewController, animated: true)
} else {
// Handle error: Unable to create Detail View (e.g., invalid ID, SDK issue)
print("Error: Could not create Entrupy Detail View Controller for ID: \(entrupyId)")
}
*/
print("Conceptual: Attempting to present Entrupy Detail View for entrupy ID: \(entrupyId). Please verify actual SDK method.")
}

// Example Usage (after getting entrupy_id from capture delegate or search):
// let submissionEntrupyId = "your_entrupy_id_here"
// showDetailViewForItem(entrupyId: submissionEntrupyId)
SDK API Verification

The exact method signature, configuration options, and any delegate protocols for launching and interacting with the Detail View Controller must be verified against the current Entrupy iOS SDK documentation or a provided API reference. The sdk-v1-legacy.md primarily focuses on the capture flow and direct SDK method calls rather than presenting distinct view controllers like this one explicitly.

Key Information and Features Displayed

The Detail View Controller consolidates various pieces of information:

1. Authentication Status & ETA

  • Current Status: Clearly indicates the item's state (e.g., "Processing," "Awaiting Retake," "Completed").
  • ETA: If authentication is in progress, an Estimated Time of Arrival for the results is displayed (e.g., "Results expected in 5-10 minutes"). This is based on Entrupy's ETA model (see Understanding the ETA Flow below).

2. Final Authentication Results

  • Once processing is complete, the definitive authentication outcome is prominently shown (e.g., "Authentic," "Unidentified," "Not Supported").
  • (A comprehensive list of all possible result statuses and their meanings should be referenced from a dedicated "Results & Statuses Reference" if provided by Entrupy, or inferred from sdk-v1-legacy.md result types.)

3. Event Timeline

  • A chronological log of significant events related to the item's authentication:
    • Submission created
    • Additional images requested/provided
    • Authentication status changes (e.g., started, completed)
    • Flags added/resolved
    • Support messages exchanged
  • (The exact event types visible will be determined by the SDK's implementation.)

4. Actions Required (e.g., Retakes)

  • If an item requires user action (e.g., providing clearer images for a retake), the Detail View will highlight this with clear instructions.
  • The SDK will facilitate initiating the necessary steps, which might involve re-entering a specialized part of the Capture Flow UI with the appropriate context for the retake.

5. Flags Management

  • Viewing Flags: If a result has been flagged (e.g., by the integrator or Entrupy support), information about active flags, such as the reason and current status, can be displayed.

  • User Flagging (Conditional): The ability for end-users to initiate a flag on a result via the SDK may be configurable by Entrupy per integrator. If enabled, the Detail View would be the interface for this.

  • Interacting with Flags: The SDK provides methods to get flag details and set/clear flags, which the Detail View UI would utilize.

    • getFlagDetailsForResult(withEntrupyID:completionHandler:): To obtain flag status and eligibility.
    • setFlag(forResultWithEntrupyID:delegate:): To flag or clear a flag.
    • An EntrupyFlagDelegate (didFlagResultSuccessfully, didFlagResultFailWithError) handles the outcome of these actions.

    Refer to Section 11 of sdk-v1-legacy.md for the underlying SDK methods.

6. Structured Communications (Item-Specific Support)

  • The Detail View often includes an interface for per-item structured communication with Entrupy's authentication support team.
  • Users can select from predefined messages or queries, and Entrupy support can respond or provide guidance directly within this view.
  • This is the primary channel for authentication-specific support issues (e.g., assistance with retakes, queries about a result).
  • The SDK should visually indicate new messages from Entrupy support.
  • (For notifications when the application or Detail View is not active, integrators would typically implement their own push notification system, triggered by events received via Entrupy API webhooks related to new support messages.)

7. Certificate Information (for Authentic Items)

  • Details Displayed: For items confirmed as "Authentic," key details from the Entrupy Certificate of Authenticity are shown (e.g., authenticity status, unique certificate ID, date of authentication).
  • Shareable Link: A shareable web link to the full Entrupy Certificate is provided.
  • Certificate Transfers: If a Certificate Transfer has been completed using the Entrupy API, the SDK's Detail View will automatically update to display the new certificate holder's details. This ensures the information presented in the SDK is always current with the latest ownership record.

8. Catalog Data Integration

  • The Detail View can display rich Catalog Data associated with the authenticated item. This data is provided by Entrupy and aims to offer detailed product information, potentially reducing manual data entry for integrators.
  • Content typically includes:
    • Product Information: Brand, category, style, material, colorway, textual description.
    • Condition Assessment (if available): Score, rating, identified issues.
    • Marketplace Listings (if available): Information on relevant public listings for similar items.
  • The specific catalog data elements shown in the SDK may be configurable by Entrupy per integrator.
  • Refer to the Understanding Catalog Data in SDK guide and knowledge_base/product_snapshot/current_product_state.md (Section 1.3.3) for more details on this feature.

Entrupy Branding

The Entrupy logo will be displayed within the Detail View, reinforcing the authenticity verification service being provided.

Customization

Customization options for the Detail View (e.g., theming, hiding/showing certain sections) are generally limited to maintain a consistent Entrupy experience. Any available options, such as applying a global UI Theme, will be noted in the relevant SDK documentation.

Delegate Callbacks (If Applicable)

If the Detail View Controller utilizes a delegate pattern for interactions initiated from its UI (e.g., a custom close button handled by the SDK, or notifying the host app of specific actions taken within the Detail View), the SDK will define a specific delegate protocol. Developers would implement this to respond to such events.

Understanding the ETA Flow

The Entrupy SDK primarily delivers authentication results using an Estimated Time of Arrival (ETA) model.

  1. Post-Submission: After an item is submitted via the Capture Flow UI, the SDK (either via the optional Results Screen UI or within this Detail View) displays an ETA.
  2. ETA Model: ETAs are typically based on a P80/P99 model (e.g., 80% of similar items processed in X minutes, 99% in Y minutes). They are estimates, not guarantees.
  3. Background Processing: Users can typically leave the SDK interface or even the app while Entrupy processes the authentication in the background.
  4. Result Notification: Your application can use the entrupy_id to periodically check the status via API or (preferably) rely on backend webhooks from Entrupy to be notified when the final result is available. The Detail View will update automatically if it's visible when new data is fetched.

Items requiring more in-depth review may enter an "Investigating" state, which can extend turnaround times beyond the initial ETA. The SDK will reflect this status.

Next Steps