summaryrefslogtreecommitdiffstats
path: root/mobile/android/fenix/app/onboarding.fml.yaml
blob: cecb18ef77a993c1d37e2e0c765b2e5f96859c44 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
---
features:

  juno-onboarding:
    description: A feature that shows the onboarding flow.

    variables:
      conditions:
        description: >
          A collection of out the box conditional expressions to be
          used in determining whether a card should show or not.
          Each entry maps to a valid JEXL expression.
        type: Map<ConditionName, String>
        string-alias: ConditionName
        default: {
          ALWAYS: "true",
          NEVER: "false"
        }
      cards:
        description: Collection of user facing onboarding cards.
        type: Map<OnboardingCardKey, OnboardingCardData>
        string-alias: OnboardingCardKey
        default:
            default-browser:
              card-type: default-browser
              title: juno_onboarding_default_browser_title_nimbus_2
              ordering: 10
              body: juno_onboarding_default_browser_description_nimbus_3
              image-res: ic_onboarding_welcome
              primary-button-label: juno_onboarding_default_browser_positive_button
              secondary-button-label: juno_onboarding_default_browser_negative_button

            add-search-widget:
              card-type: add-search-widget
              title: juno_onboarding_add_search_widget_title
              body: juno_onboarding_add_search_widget_description
              image-res: ic_onboarding_search_widget
              ordering: 15
              primary-button-label: juno_onboarding_add_search_widget_positive_button
              secondary-button-label: juno_onboarding_add_search_widget_negative_button

            sync-sign-in:
              card-type: sync-sign-in
              title: juno_onboarding_sign_in_title_2
              body: juno_onboarding_sign_in_description_2
              image-res: ic_onboarding_sync
              ordering: 20
              primary-button-label: juno_onboarding_sign_in_positive_button
              secondary-button-label: juno_onboarding_sign_in_negative_button

            notification-permission:
              card-type: notification-permission
              title: juno_onboarding_enable_notifications_title_nimbus_2
              body: juno_onboarding_enable_notifications_description_nimbus_2
              image-res: ic_notification_permission
              ordering: 30
              primary-button-label: juno_onboarding_enable_notifications_positive_button
              secondary-button-label: juno_onboarding_enable_notifications_negative_button

objects:

  OnboardingCardData:
    description: An object to describe a user facing onboarding card.
    fields:
      card-type:
        type: OnboardingCardType
        description: The type of the card.
        # This should never be defaulted.
        default: default-browser
      enabled:
        type: Boolean
        description: If true, this card is shown to the user.
        default: true
      title:
        type: Text
        description: The title text displayed to the user.
        # This should never be defaulted.
        default: ""
      body:
        type: Text
        description: The message text displayed to the user. May contain linkable text.
        # This should never be defaulted.
        default: ""
      image-res:
        type: Image
        description: The resource id of the image to be displayed.
        # This should never be defaulted.
        default: ic_onboarding_welcome
      ordering:
        type: Int
        description: Used to sequence the cards.
        # This should never be defaulted.
        default: 0
      primary-button-label:
        type: Text
        description: The text to display on the primary button.
        # This should never be defaulted.
        default: ""
      secondary-button-label:
        type: Text
        description: The text to display on the secondary button.
        # This should never be defaulted.
        default: ""
      prerequisites:
        type: List<ConditionName>
        description: >
          A list of strings corresponding to targeting expressions.
          The card will be shown if all expressions are `true` and if
          no expressions in the `disqualifiers` table are true, or
          if the `disqualifiers` table is empty.
        default: [ ALWAYS ]
      disqualifiers:
        type: List<ConditionName>
        description: >
          A list of strings corresponding to targeting expressions.
          The card will not be shown if any expression is `true`.
        default: [ NEVER ]

enums:

  OnboardingCardType:
    description: An enum to describe a type of card.
    variants:
      default-browser:
        description: Allows user to set Firefox as the default browser.
      sync-sign-in:
        description: Allows user to sync with a Firefox account.
      notification-permission:
        description: Allows user to enable notification permission.
      add-search-widget:
        description: Allows user to add search widget to homescreen.