summaryrefslogtreecommitdiffstats
path: root/protos/backup.proto
blob: 6704e08ad4630ede01509119bd2ab3c916710615 (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
/*
 * Copyright (C) 2013 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

syntax = "proto2";

package launcher_backup;

option java_package = "com.android.launcher3.backup";
option java_outer_classname = "BackupProtos";

message Key {
  enum Type {
    FAVORITE = 1;
    SCREEN = 2;
    ICON = 3;
    WIDGET = 4;
  }
  required Type type = 1;
  optional string name = 2;  // keep this short
  optional int64 id = 3;
  optional int64 checksum = 4;
}

message CheckedMessage {
  required bytes payload = 1;
  required int64 checksum = 2;
}

message DeviceProfieData {
  required float desktop_rows = 1;
  required float desktop_cols = 2;
  required float hotseat_count = 3;
  required int32 allapps_rank = 4;
}

message Journal {
  required int32 app_version = 1;

  // Time when the backup was created
  required int64 t = 2;

  // Total bytes written during the last backup
  // OBSOLETE: A state may contain entries which are already present in the backup
  // and were not written in the last backup
  optional int64 bytes = 3;

  // Total entries written during the last backup
  // OBSOLETE: A state may contain entries which are already present in the backup
  // and were not written in the last backup
  optional int32 rows = 4;

  // Valid keys for this state
  repeated Key key = 5;

  // Backup format version.
  optional int32 backup_version = 6 [default = 1];

  optional DeviceProfieData profile = 7;
}

message Favorite {
  // Type of the app, this target represents
  enum TargetType {
    TARGET_NONE = 0;
    TARGET_PHONE = 1;
    TARGET_MESSENGER = 2;
    TARGET_EMAIL = 3;
    TARGET_BROWSER = 4;
    TARGET_GALLERY = 5;
    TARGET_CAMERA = 6;
  }

  required int64 id = 1;
  required int32 itemType = 2;
  optional string title = 3;
  optional int32 container = 4;
  optional int32 screen = 5;
  optional int32 cellX = 6;
  optional int32 cellY = 7;
  optional int32 spanX = 8;
  optional int32 spanY = 9;
  optional int32 displayMode = 10;
  optional int32 appWidgetId = 11;
  optional string appWidgetProvider = 12;
  optional string intent = 13;
  optional string uri = 14;
  optional int32 iconType = 15;
  optional string iconPackage = 16;
  optional string iconResource = 17;
  optional bytes icon = 18;

  // Added in backup version 4
  optional TargetType targetType = 19 [default = TARGET_NONE];
  optional int32 rank = 20;
}

message Screen {
  required int64 id = 1;
  optional int32 rank = 2;
}

message Resource {
  required int32 dpi = 1;
  required bytes data = 2;
}

message Widget {
  required string provider = 1;
  optional string label = 2;
  optional bool configure = 3;
  optional Resource icon = 4;
  optional Resource preview = 5;

  // Added in backup version 3
  // Assume that a widget is resizable upto 2x2 if no data is available
  optional int32 minSpanX = 6 [default = 2];
  optional int32 minSpanY = 7 [default = 2];
}