Wholphin/app/src/main/proto/WholphinDataStore.proto
Damontecres b49926f80b
Store remembered tabs in app database instead of preferences (#1541)
## Description
Moves storing the remembered tabs from app preferences to the app
database. This means deleting the user will remove the remembered tabs
and the app preferences file is smaller and faster to load.

The remembered tabs are migrated automatically when the app is updated.

There are no significant user facing changes in this PR.

### Related issues
N/A

### Testing
Emulator

## Screenshots
N/A

## AI or LLM usage
None
2026-06-08 13:45:38 -04:00

231 lines
5.1 KiB
Protocol Buffer

syntax = "proto3";
option java_package = "com.github.damontecres.wholphin.preferences";
option java_multiple_files = true;
enum ShowNextUpWhen{
END_OF_PLAYBACK = 0;
DURING_CREDITS = 1;
NEXT_UP_NEVER = 2;
}
enum SkipSegmentBehavior{
IGNORE = 0;
AUTO_SKIP = 1;
ASK_TO_SKIP = 2;
}
enum PrefContentScale{
FIT = 0;
NONE = 1;
CROP = 2;
FILL = 3;
Fill_WIDTH = 4;
FILL_HEIGHT = 5;
}
enum MediaExtensionStatus{
MES_FALLBACK = 0;
MES_PREFERRED = 1;
MES_DISABLED = 2;
}
enum PlayerBackend{
EXO_PLAYER = 0;
MPV = 1;
PREFER_MPV = 2;
EXTERNAL_PLAYER = 3;
}
message MpvOptions{
bool enable_hardware_decoding = 1;
bool use_gpu_next = 2;
}
enum AssPlaybackMode{
ASS_LIBASS = 0;
ASS_EXO_PLAYER = 1;
ASS_TRANSCODE = 2;
}
message PlaybackOverrides{
bool ac3_supported = 1;
bool downmix_stereo = 2;
bool direct_play_ass = 3 [deprecated = true];
bool direct_play_pgs = 4;
MediaExtensionStatus media_extensions_enabled = 5;
bool direct_play_dolby_vision_e_l = 6;
bool decode_av1 = 7;
AssPlaybackMode ass_playback_mode = 8;
}
message PlaybackPreferences {
int64 skip_forward_ms = 1;
int64 skip_back_ms = 2;
int64 controller_timeout_ms = 3;
int32 seek_bar_steps = 4;
bool show_debug_info = 5;
bool auto_play_next = 6;
int64 auto_play_next_delay_seconds = 7;
int64 skip_back_on_resume_seconds = 8;
int64 max_bitrate = 9;
SkipSegmentBehavior skip_intros = 10;
SkipSegmentBehavior skip_outros = 11;
SkipSegmentBehavior skip_commercials = 12;
SkipSegmentBehavior skip_recaps = 13;
SkipSegmentBehavior skip_previews = 14;
PlaybackOverrides overrides = 15;
int64 pass_out_protection_ms = 16;
PrefContentScale global_content_scale = 17;
ShowNextUpWhen show_next_up_when = 18;
bool one_click_pause = 19;
PlayerBackend player_backend = 20;
MpvOptions mpv_options = 21;
bool refresh_rate_switching = 22;
bool resolution_switching = 23;
string external_player = 24;
bool cinema_mode = 25;
}
message HomePagePreferences{
int32 max_items_per_row = 1;
bool enable_rewatching_next_up = 2;
bool combine_continue_next = 3 [deprecated = true];
int32 max_days_next_up = 4;
bool click_to_play = 5;
}
enum ThemeSongVolume {
DISABLED = 0;
LOWEST = 1;
LOW = 2;
MEDIUM = 3;
HIGH = 4;
HIGHEST = 5;
}
enum AppThemeColors {
PURPLE = 0;
BLUE = 1;
GREEN = 2;
ORANGE = 3;
BOLD_BLUE = 4;
OLED_BLACK = 5;
}
enum EdgeStyle{
EDGE_NONE = 0;
EDGE_SOLID = 1;
EDGE_SHADOW = 2;
}
enum BackgroundStyle{
BG_NONE = 0;
BG_WRAP = 1;
BG_BOXED = 2;
}
message SubtitlePreferences{
int32 font_size = 1;
int32 font_color = 2;
int32 font_opacity = 3;
int32 edge_color = 4;
EdgeStyle edge_style = 5;
int32 background_color = 6;
int32 background_opacity = 7;
BackgroundStyle background_style = 8;
bool font_bold = 9;
bool font_italic = 10;
int32 margin = 11;
int32 edge_thickness = 12;
int32 image_subtitle_opacity = 13;
}
message LiveTvPreferences {
bool show_header = 1;
bool favorite_channels_at_beginning = 2;
bool sort_by_recently_watched = 3;
bool color_code_programs = 4;
}
enum BackdropStyle{
BACKDROP_DYNAMIC_COLOR = 0;
BACKDROP_IMAGE_ONLY = 1;
BACKDROP_NONE = 2;
}
message ScreensaverPreferences{
int64 start_delay = 1;
int64 duration = 2;
bool animate = 3;
int32 max_age_filter = 4;
bool enabled = 5;
repeated string item_types = 6;
bool show_clock = 7;
}
message SearchPreferences {
bool combined_search_results = 1;
bool show_voice_search_button = 2;
}
enum DisplayToggle{
OFFICIAL_RATING = 0;
CRITIC_RATING = 1;
COMMUNITY_RATING = 2;
}
message InterfacePreferences {
ThemeSongVolume play_theme_songs = 1;
bool remember_selected_tab = 2;
map<string, int32> remembered_tabs = 3 [deprecated = true];
AppThemeColors app_theme_colors = 4;
bool nav_drawer_switch_on_focus = 5;
bool show_clock = 6;
SubtitlePreferences subtitles_preferences = 7;
LiveTvPreferences live_tv_preferences = 8;
BackdropStyle backdrop_style = 9;
SubtitlePreferences hdr_subtitles_preferences = 10;
ScreensaverPreferences screensaver_preference = 11;
bool enable_media_management = 12;
bool show_logos = 13;
SearchPreferences search_preferences = 14;
repeated DisplayToggle display_toggles = 15;
}
message AdvancedPreferences {
int64 image_disk_cache_size_bytes = 1;
}
message PhotoPreferences{
int64 slideshow_duration = 1;
bool slideshow_play_videos = 2;
}
message MusicPreferences {
bool show_lyrics = 1;
bool show_visualizer = 2;
bool show_album_Art = 3;
bool show_backdrop = 4;
}
message AppPreferences {
// The currently signed in server and user IDs, mostly for restoring a session
string current_server_id = 1;
string current_user_id = 2;
PlaybackPreferences playback_preferences = 3;
HomePagePreferences home_page_preferences = 4;
InterfacePreferences interface_preferences = 5;
bool auto_check_for_updates = 6;
string update_url = 7;
bool send_crash_reports = 8;
bool debug_logging = 9;
AdvancedPreferences advanced_preferences = 10;
bool sign_in_automatically = 11;
PhotoPreferences photo_preferences = 12;
MusicPreferences music_preferences = 13;
}