Loading core/jni/android_hardware_display_DisplayTopology.cpp +10 −7 Original line number Diff line number Diff line Loading @@ -96,10 +96,12 @@ status_t android_hardware_display_DisplayTopologyGraphNode_toNative( return OK; } DisplayTopologyGraph android_hardware_display_DisplayTopologyGraph_toNative(JNIEnv* env, jobject topologyObj) { DisplayTopologyGraph topology; topology.primaryDisplayId = ui::LogicalDisplayId{ base::Result<const DisplayTopologyGraph> android_hardware_display_DisplayTopologyGraph_toNative( JNIEnv* env, jobject topologyObj) { std::unordered_map<ui::LogicalDisplayId, std::vector<DisplayTopologyAdjacentDisplay>> topologyGraph; std::unordered_map<ui::LogicalDisplayId, int> displaysDensity; ui::LogicalDisplayId primaryDisplayId = ui::LogicalDisplayId{ env->GetIntField(topologyObj, gDisplayTopologyGraphClassInfo.primaryDisplayId)}; jobjectArray nodesArray = static_cast<jobjectArray>( Loading @@ -114,11 +116,12 @@ DisplayTopologyGraph android_hardware_display_DisplayTopologyGraph_toNative(JNIE } android_hardware_display_DisplayTopologyGraphNode_toNative(env, nodeObj.get(), topology.graph, topology.displaysDensity); /*byRef*/ topologyGraph, /*byRef*/ displaysDensity); } } return topology; return DisplayTopologyGraph::create(primaryDisplayId, std::move(topologyGraph), std::move(displaysDensity)); } // ---------------------------------------------------------------------------- Loading core/jni/android_hardware_display_DisplayTopology.h +3 −2 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ #pragma once #include <android-base/result.h> #include <input/DisplayTopologyGraph.h> #include "jni.h" Loading @@ -26,7 +27,7 @@ namespace android { * Copies the contents of a DVM DisplayTopology object to a new native DisplayTopology instance. * Returns DisplayTopology. */ extern DisplayTopologyGraph android_hardware_display_DisplayTopologyGraph_toNative( JNIEnv* env, jobject eventObj); extern base::Result<const DisplayTopologyGraph> android_hardware_display_DisplayTopologyGraph_toNative(JNIEnv* env, jobject eventObj); } // namespace android services/core/jni/com_android_server_input_InputManagerService.cpp +4 −3 Original line number Diff line number Diff line Loading @@ -671,13 +671,14 @@ void NativeInputManager::setDisplayTopology(JNIEnv* env, jobject topologyGraph) return; } const DisplayTopologyGraph displayTopology = const base::Result<DisplayTopologyGraph> result = android_hardware_display_DisplayTopologyGraph_toNative(env, topologyGraph); if (input_flags::enable_display_topology_validation() && !displayTopology.isValid()) { LOG(ERROR) << "Ignoring Invalid DisplayTopology"; if (!result.ok()) { LOG(ERROR) << "Ignoring Invalid DisplayTopology" << result.error(); return; } const DisplayTopologyGraph& displayTopology = result.value(); mInputManager->getDispatcher().setDisplayTopology(displayTopology); mInputManager->getChoreographer().setDisplayTopology(displayTopology); } Loading Loading
core/jni/android_hardware_display_DisplayTopology.cpp +10 −7 Original line number Diff line number Diff line Loading @@ -96,10 +96,12 @@ status_t android_hardware_display_DisplayTopologyGraphNode_toNative( return OK; } DisplayTopologyGraph android_hardware_display_DisplayTopologyGraph_toNative(JNIEnv* env, jobject topologyObj) { DisplayTopologyGraph topology; topology.primaryDisplayId = ui::LogicalDisplayId{ base::Result<const DisplayTopologyGraph> android_hardware_display_DisplayTopologyGraph_toNative( JNIEnv* env, jobject topologyObj) { std::unordered_map<ui::LogicalDisplayId, std::vector<DisplayTopologyAdjacentDisplay>> topologyGraph; std::unordered_map<ui::LogicalDisplayId, int> displaysDensity; ui::LogicalDisplayId primaryDisplayId = ui::LogicalDisplayId{ env->GetIntField(topologyObj, gDisplayTopologyGraphClassInfo.primaryDisplayId)}; jobjectArray nodesArray = static_cast<jobjectArray>( Loading @@ -114,11 +116,12 @@ DisplayTopologyGraph android_hardware_display_DisplayTopologyGraph_toNative(JNIE } android_hardware_display_DisplayTopologyGraphNode_toNative(env, nodeObj.get(), topology.graph, topology.displaysDensity); /*byRef*/ topologyGraph, /*byRef*/ displaysDensity); } } return topology; return DisplayTopologyGraph::create(primaryDisplayId, std::move(topologyGraph), std::move(displaysDensity)); } // ---------------------------------------------------------------------------- Loading
core/jni/android_hardware_display_DisplayTopology.h +3 −2 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ #pragma once #include <android-base/result.h> #include <input/DisplayTopologyGraph.h> #include "jni.h" Loading @@ -26,7 +27,7 @@ namespace android { * Copies the contents of a DVM DisplayTopology object to a new native DisplayTopology instance. * Returns DisplayTopology. */ extern DisplayTopologyGraph android_hardware_display_DisplayTopologyGraph_toNative( JNIEnv* env, jobject eventObj); extern base::Result<const DisplayTopologyGraph> android_hardware_display_DisplayTopologyGraph_toNative(JNIEnv* env, jobject eventObj); } // namespace android
services/core/jni/com_android_server_input_InputManagerService.cpp +4 −3 Original line number Diff line number Diff line Loading @@ -671,13 +671,14 @@ void NativeInputManager::setDisplayTopology(JNIEnv* env, jobject topologyGraph) return; } const DisplayTopologyGraph displayTopology = const base::Result<DisplayTopologyGraph> result = android_hardware_display_DisplayTopologyGraph_toNative(env, topologyGraph); if (input_flags::enable_display_topology_validation() && !displayTopology.isValid()) { LOG(ERROR) << "Ignoring Invalid DisplayTopology"; if (!result.ok()) { LOG(ERROR) << "Ignoring Invalid DisplayTopology" << result.error(); return; } const DisplayTopologyGraph& displayTopology = result.value(); mInputManager->getDispatcher().setDisplayTopology(displayTopology); mInputManager->getChoreographer().setDisplayTopology(displayTopology); } Loading