-
Notifications
You must be signed in to change notification settings - Fork 546
/
Copy pathspotlight.proto
77 lines (56 loc) · 2.67 KB
/
spotlight.proto
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
syntax = "proto3";
package model;
option java_package = "org.oppia.android.app.model";
option java_multiple_files = true;
// Spotlights are visual elements that are shown during the initial user onboarding experience of
// the app that highlight certain UI elements and show how/what they should be used for.
message Spotlight {
// Determines the UI element being spotlit.
oneof feature {
// Corresponds to the onboarding screen's next button.
SpotlightViewState onboarding_next_button = 1;
// Corresponds to the topic fragment's lessons tab.
SpotlightViewState topic_lesson_tab = 2;
// Corresponds to the topic fragment's revision tab.
SpotlightViewState topic_revision_tab = 3;
// Corresponds to the first lesson under lessons tab.
SpotlightViewState first_chapter = 4;
// Corresponds to the promoted stories.
SpotlightViewState promoted_stories = 5;
// Corresponds to the back button in exploration screen.
SpotlightViewState lessons_back_button = 6;
// Corresponds to the voice-over icon in exploration screen.
SpotlightViewState voiceover_play_icon = 7;
// Corresponds to the voice-over language option in audio player.
SpotlightViewState voiceover_language_icon = 8;
}
}
// Possible view states for a spotlight.
enum SpotlightViewState {
// This is the default state for a spotlight in the beginning. In cases where the app won't be
// able to load a spotlight state for a feature, this state shall be reported.
SPOTLIGHT_VIEW_STATE_UNSPECIFIED = 0;
// This corresponds to a state when the spotlight for a feature has been seen by the user.
SPOTLIGHT_SEEN = 1;
// This corresponds to a state when the spotlight for a feature has been not seen by the user.
SPOTLIGHT_NOT_SEEN = 2;
}
// Top level proto that will be used to store SpotlightsViewStates per user profile.
message SpotlightStateDatabase {
// Corresponds to the onboarding screen's next button.
SpotlightViewState onboarding_next_button = 1;
// Corresponds to the topic fragment's lessons tab.
SpotlightViewState topic_lesson_tab = 2;
// Corresponds to the topic fragment's revision tab.
SpotlightViewState topic_revision_tab = 3;
// Corresponds to the first lesson under lessons tab.
SpotlightViewState first_chapter = 4;
// Corresponds to the promoted stories.
SpotlightViewState promoted_stories = 5;
// Corresponds to the back button in exploration screen.
SpotlightViewState lessons_back_button = 6;
// Corresponds to the voice-over icon in exploration screen.
SpotlightViewState voiceover_play_icon = 7;
// Corresponds to the voice-over language option in audio player.
SpotlightViewState voiceover_language_icon = 8;
}