in idb_companion/Server/FBIDBServiceHandler.mm [932:979]
Status FBIDBServiceHandler::setting(ServerContext* context, const idb::SettingRequest* request, idb::SettingResponse* response)
{@autoreleasepool{
switch (request->setting_case()) {
case idb::SettingRequest::SettingCase::kHardwareKeyboard: {
NSError *error = nil;
NSNull *result = [[_commandExecutor set_hardware_keyboard_enabled:request->hardwarekeyboard().enabled()] await:&error];
if (!result) {
return Status(grpc::StatusCode::INTERNAL, error.localizedDescription.UTF8String);
}
return Status::OK;
}
case idb::SettingRequest::SettingCase::kStringSetting: {
idb::SettingRequest::StringSetting stringSetting = request->stringsetting();
switch (stringSetting.setting()) {
case idb::Setting::LOCALE: {
NSError *error = nil;
NSNull *result = [[_commandExecutor set_locale_with_identifier:nsstring_from_c_string(stringSetting.value().c_str())] await:&error];
if (!result) {
return Status(grpc::StatusCode::INTERNAL, error.localizedDescription.UTF8String);
}
return Status::OK;
}
case idb::Setting::ANY: {
NSError *error = nil;
NSString *name = nsstring_from_c_string(stringSetting.name().c_str());
NSString *value = nsstring_from_c_string(stringSetting.value().c_str());
NSString *type = nil;
if (stringSetting.value_type().length() > 0) {
type = nsstring_from_c_string(stringSetting.value_type().c_str());
}
NSString *domain = nil;
if (stringSetting.domain().length() > 0) {
domain = nsstring_from_c_string(stringSetting.domain().c_str());
}
NSNull *result = [[_commandExecutor set_preference:name value:value type: type domain:domain] await:&error];
if (!result) {
return Status(grpc::StatusCode::INTERNAL, error.localizedDescription.UTF8String);
}
return Status::OK;
}
default:
return Status(grpc::StatusCode::INTERNAL, "Unknown setting case");
}
}
default:
return Status(grpc::StatusCode::INTERNAL, "Unknown setting case");
}
}}