Skip to content
This repository has been archived by the owner on Feb 7, 2023. It is now read-only.

Commit

Permalink
Add AnkiDroid service and AnkiDroid customizations
Browse files Browse the repository at this point in the history
Most of the work here was done by David in the Backend repo; I've just
moved it into an rslib patch so it can take advantage of the existing
backend infrastructure.
  • Loading branch information
dae committed Jul 18, 2022
1 parent 67e4edc commit c7ef2b4
Show file tree
Hide file tree
Showing 17 changed files with 867 additions and 8 deletions.
71 changes: 71 additions & 0 deletions proto/anki/ankidroid.proto
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
syntax = "proto3";

option java_multiple_files = true;

import "anki/generic.proto";
import "anki/scheduler.proto";

package anki.ankidroid;

service AnkidroidService {
rpc SchedTimingTodayLegacy (SchedTimingTodayLegacyRequest) returns (scheduler.SchedTimingTodayResponse);
rpc LocalMinutesWestLegacy (generic.Int64) returns (generic.Int32);
rpc RunDbCommand(generic.Json) returns (generic.Json);
rpc RunDbCommandProto(generic.Json) returns (DBResponse);
rpc InsertForId(generic.Json) returns (generic.Int64);
rpc RunDbCommandForRowCount(generic.Json) returns (generic.Int64);
rpc FlushAllQueries(generic.Empty) returns (generic.Empty);
rpc FlushQuery(generic.Int32) returns (generic.Empty);
rpc GetNextResultPage(GetNextResultPageRequest) returns (DBResponse);
rpc SetPageSize(generic.Int64) returns (generic.Empty);
rpc GetColumnNamesFromQuery(generic.String) returns (generic.StringList);
rpc GetActiveSequenceNumbers(generic.Empty) returns (GetActiveSequenceNumbersResponse);
rpc DebugProduceError(generic.String) returns (generic.Empty);
}

message DebugActiveDatabaseSequenceNumbersResponse {
repeated int32 sequence_numbers = 1;
}

message SchedTimingTodayLegacyRequest {
int64 created_secs = 1;
optional sint32 created_mins_west = 2;
int64 now_secs = 3;
sint32 now_mins_west = 4;
sint32 rollover_hour = 5;
}

// We expect in Java: Null, String, Short, Int, Long, Float, Double, Boolean, Blob (unused)
// We get: DbResult (Null, String, i64, f64, Vec<u8>), which matches SQLite documentation
message SqlValue {
oneof Data {
string stringValue = 1;
int64 longValue = 2;
double doubleValue = 3;
bytes blobValue = 4;
}
}

message Row {
repeated SqlValue fields = 1;
}

message DbResult {
repeated Row rows = 1;
}

message DBResponse {
DbResult result = 1;
int32 sequenceNumber = 2;
int32 rowCount = 3;
int64 startIndex = 4;
}

message GetNextResultPageRequest {
int32 sequence = 1;
int64 index = 2;
}

message GetActiveSequenceNumbersResponse {
repeated int32 numbers = 1;
}
3 changes: 3 additions & 0 deletions proto/anki/backend.proto
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,8 @@ enum ServiceIndex {
SERVICE_INDEX_CARDS = 14;
SERVICE_INDEX_LINKS = 15;
SERVICE_INDEX_IMPORT_EXPORT = 16;

SERVICE_INDEX_ANKIDROID = 99;
}

message BackendInit {
Expand Down Expand Up @@ -64,6 +66,7 @@ message BackendError {
IMPORT_ERROR = 16;
DELETED = 17;
CARD_TYPE_ERROR = 18;
FATAL_ERROR = 99;
}

// localized error description suitable for displaying to the user
Expand Down
2 changes: 2 additions & 0 deletions proto/anki/collection.proto
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,8 @@ message OpenCollectionRequest {
string media_folder_path = 2;
string media_db_path = 3;
string log_path = 4;

bool force_schema11 = 99;
}

message CloseCollectionRequest {
Expand Down
1 change: 1 addition & 0 deletions rslib/.gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
Cargo.lock
.build
.idea/
target
1 change: 0 additions & 1 deletion rslib/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,6 @@ reqwest = { git="https://github.com/ankitects/reqwest.git", rev="7591444614de02b
"stream",
"multipart",
# the Bazel build scripts separate these out by platform
"native-tls",
"rustls-tls",
"rustls-tls-webpki-roots",
"rustls-tls-native-roots",
Expand Down
Loading

0 comments on commit c7ef2b4

Please sign in to comment.