1 /* 2 * Copyright (c) 2021-2023 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16 #ifndef FOUNDATION_ACE_FRAMEWORKS_BASE_UTILS_SYSTEM_PROPERTIES_H 17 #define FOUNDATION_ACE_FRAMEWORKS_BASE_UTILS_SYSTEM_PROPERTIES_H 18 19 #include <atomic> 20 #include <cstdint> 21 #include <memory> 22 #include <optional> 23 #include <string> 24 25 #include "base/utils/device_config.h" 26 #include "base/utils/device_type.h" 27 #include "base/utils/macros.h" 28 29 namespace OHOS::Ace { 30 31 enum class ResolutionType : int32_t { 32 RESOLUTION_NONE = -2, 33 RESOLUTION_ANY = -1, 34 RESOLUTION_LDPI = 120, 35 RESOLUTION_MDPI = 160, 36 RESOLUTION_HDPI = 240, 37 RESOLUTION_XHDPI = 320, 38 RESOLUTION_XXHDPI = 480, 39 RESOLUTION_XXXHDPI = 640, 40 }; 41 42 enum class FoldScreenType: int32_t { 43 UNKNOWN = 0, 44 BIG_FOLDER = 1, 45 SMALL_FOLDER = 2, 46 OUTER_FOLDER = 3, 47 SUPER_FOLDER = 5, 48 }; 49 50 constexpr int32_t MCC_UNDEFINED = 0; 51 constexpr int32_t MNC_UNDEFINED = 0; 52 extern const char ENABLE_DEBUG_BOUNDARY_KEY[]; 53 extern const char ENABLE_TRACE_LAYOUT_KEY[]; 54 extern const char ENABLE_TRACE_INPUTEVENT_KEY[]; 55 extern const char ENABLE_SECURITY_DEVELOPERMODE_KEY[]; 56 extern const char ENABLE_DEBUG_STATEMGR_KEY[]; 57 58 enum class LongScreenType : int32_t { 59 LONG = 0, 60 NOT_LONG, 61 LONG_SCREEN_UNDEFINED, 62 }; 63 64 enum class ScreenShape : int32_t { 65 ROUND = 0, 66 NOT_ROUND, 67 SCREEN_SHAPE_UNDEFINED, 68 }; 69 70 union DebugFlags { flag_(flag)71 DebugFlags(int64_t flag = 0) : flag_(flag) {} 72 int64_t flag_; 73 struct { 74 bool containerMultiThread_ : 1; 75 bool getHostOnDetach_ : 1; 76 bool claimDeathObj_ : 1; 77 bool aceObjTypeCvt_ : 1; 78 bool jsObjTypeCvt_ : 1; 79 bool objDestroyInUse_ : 1; 80 bool useInvalidIter_ : 1; 81 } bits_; 82 }; 83 84 class ACE_FORCE_EXPORT SystemProperties final { 85 public: 86 /* 87 * Init device type for Ace. 88 */ 89 static void InitDeviceType(DeviceType deviceType); 90 91 /* 92 * Init device info for Ace. 93 */ 94 static void InitDeviceInfo( 95 int32_t deviceWidth, int32_t deviceHeight, int32_t orientation, double resolution, bool isRound); 96 97 /* 98 * Init device type according to system property. 99 */ 100 static void InitDeviceTypeBySystemProperty(); 101 102 /** 103 * Init fold screen type according to system property. 104 */ 105 static void InitFoldScreenTypeBySystemProperty(); 106 107 /* 108 * Get type of current device. 109 */ 110 static DeviceType GetDeviceType(); 111 112 /* 113 * Get if current device need avoid window. 114 */ 115 static bool GetNeedAvoidWindow(); 116 117 /* 118 * check SystemCapability. 119 */ 120 static bool IsSyscapExist(const char* cap); 121 122 /** 123 * Set type of current device. 124 * @param deviceType 125 */ SetDeviceType(DeviceType deviceType)126 static void SetDeviceType(DeviceType deviceType) 127 { 128 deviceType_ = deviceType; 129 } 130 131 /* 132 * Get current orientation of device. 133 */ GetDeviceOrientation()134 static DeviceOrientation GetDeviceOrientation() 135 { 136 return orientation_; 137 } 138 139 /* 140 * Get width of device. 141 */ GetDeviceWidth()142 static int32_t GetDeviceWidth() 143 { 144 return deviceWidth_; 145 } 146 147 /* 148 * Get height of device. 149 */ GetDeviceHeight()150 static int32_t GetDeviceHeight() 151 { 152 return deviceHeight_; 153 } 154 155 /* 156 * Set physical width of device. 157 */ SetDevicePhysicalWidth(int32_t devicePhysicalWidth)158 static void SetDevicePhysicalWidth(int32_t devicePhysicalWidth) 159 { 160 devicePhysicalWidth_ = devicePhysicalWidth; 161 } 162 163 /* 164 * Set physical height of device. 165 */ SetDevicePhysicalHeight(int32_t devicePhysicalHeight)166 static void SetDevicePhysicalHeight(int32_t devicePhysicalHeight) 167 { 168 devicePhysicalHeight_ = devicePhysicalHeight; 169 } 170 171 /* 172 * Get physical width of device. 173 */ GetDevicePhysicalWidth()174 static int32_t GetDevicePhysicalWidth() 175 { 176 return devicePhysicalWidth_; 177 } 178 179 /* 180 * Get physical height of device. 181 */ GetDevicePhysicalHeight()182 static int32_t GetDevicePhysicalHeight() 183 { 184 return devicePhysicalHeight_; 185 } 186 187 /* 188 * Get wght scale of device. 189 */ 190 static float GetFontWeightScale(); 191 SetFontWeightScale(const float fontWeightScale)192 static void SetFontWeightScale(const float fontWeightScale) 193 { 194 if (fontWeightScale_ != fontWeightScale) { 195 fontWeightScale_ = fontWeightScale; 196 } 197 } 198 199 /* 200 * Get size scale of device. 201 */ 202 static float GetFontScale(); 203 SetFontScale(const float fontScale)204 static void SetFontScale(const float fontScale) 205 { 206 if (fontScale != fontScale_) { 207 fontScale_ = fontScale; 208 } 209 } 210 211 /* 212 * Get density of default display. 213 */ GetResolution()214 static double GetResolution() 215 { 216 return resolution_; 217 } 218 219 /* 220 * Set resolution of device. 221 */ SetResolution(double resolution)222 static void SetResolution(double resolution) 223 { 224 resolution_ = resolution; 225 } 226 GetIsScreenRound()227 static bool GetIsScreenRound() 228 { 229 return isRound_; 230 } 231 GetBrand()232 static const std::string& GetBrand() 233 { 234 return brand_; 235 } 236 GetManufacturer()237 static const std::string& GetManufacturer() 238 { 239 return manufacturer_; 240 } 241 GetModel()242 static const std::string& GetModel() 243 { 244 return model_; 245 } 246 GetProduct()247 static const std::string& GetProduct() 248 { 249 return product_; 250 } 251 GetApiVersion()252 static const std::string& GetApiVersion() 253 { 254 return apiVersion_; 255 } 256 GetReleaseType()257 static const std::string& GetReleaseType() 258 { 259 return releaseType_; 260 } 261 GetParamDeviceType()262 static const std::string& GetParamDeviceType() 263 { 264 return paramDeviceType_; 265 } 266 267 static std::string GetLanguage(); 268 269 static bool GetContainerDeleteFlag(); 270 271 static std::string GetRegion(); 272 273 static std::string GetNewPipePkg(); 274 275 static float GetAnimationScale(); 276 277 static std::string GetPartialUpdatePkg(); 278 279 static int32_t GetSvgMode(); 280 281 static bool GetDebugPixelMapSaveEnabled(); 282 283 static bool IsPixelRoundEnabled(); 284 GetRosenBackendEnabled()285 static bool GetRosenBackendEnabled() 286 { 287 return rosenBackendEnabled_; 288 } 289 GetHookModeEnabled()290 static bool GetHookModeEnabled() 291 { 292 return isHookModeEnabled_; 293 } 294 GetDeveloperModeOn()295 static bool GetDeveloperModeOn() 296 { 297 return developerModeOn_; 298 } 299 GetDebugBoundaryEnabled()300 static bool GetDebugBoundaryEnabled() 301 { 302 return debugBoundaryEnabled_.load(); 303 } 304 GetDebugOffsetLogEnabled()305 static bool GetDebugOffsetLogEnabled() 306 { 307 return debugOffsetLogEnabled_; 308 } 309 GetDebugAutoUIEnabled()310 static bool GetDebugAutoUIEnabled() 311 { 312 return debugAutoUIEnabled_; 313 } 314 GetDownloadByNetworkEnabled()315 static bool GetDownloadByNetworkEnabled() 316 { 317 return downloadByNetworkEnabled_; 318 } 319 GetRecycleImageEnabled()320 static bool GetRecycleImageEnabled() 321 { 322 return recycleImageEnabled_; 323 } 324 GetSvgTraceEnabled()325 static bool GetSvgTraceEnabled() 326 { 327 return svgTraceEnable_; 328 } 329 GetLayoutTraceEnabled()330 static bool GetLayoutTraceEnabled() 331 { 332 return layoutTraceEnable_.load(); 333 } 334 GetSyncDebugTraceEnabled()335 static bool GetSyncDebugTraceEnabled() 336 { 337 return syncDebugTraceEnable_; 338 } 339 GetPixelRoundEnabled()340 static bool GetPixelRoundEnabled() 341 { 342 return pixelRoundEnable_; 343 } 344 GetTextTraceEnabled()345 static bool GetTextTraceEnabled() 346 { 347 return textTraceEnable_; 348 } 349 GetSyntaxTraceEnabled()350 static bool GetSyntaxTraceEnabled() 351 { 352 return syntaxTraceEnable_; 353 } 354 GetAccessTraceEnabled()355 static bool GetAccessTraceEnabled() 356 { 357 return accessTraceEnable_; 358 } 359 GetVsyncModeTraceEnabled()360 static bool GetVsyncModeTraceEnabled() 361 { 362 return vsyncModeTraceEnable_; 363 } 364 GetTraceInputEventEnabled()365 static bool GetTraceInputEventEnabled() 366 { 367 return traceInputEventEnable_.load(); 368 } 369 GetStateManagerEnabled()370 static bool GetStateManagerEnabled() 371 { 372 return stateManagerEnable_.load(); 373 } 374 SetStateManagerEnabled(bool stateManagerEnable)375 static void SetStateManagerEnabled(bool stateManagerEnable) 376 { 377 stateManagerEnable_.store(stateManagerEnable); 378 } 379 SetFaultInjectEnabled(bool faultInjectEnable)380 static void SetFaultInjectEnabled(bool faultInjectEnable) 381 { 382 faultInjectEnabled_ = faultInjectEnable; 383 } 384 GetFaultInjectEnabled()385 static bool GetFaultInjectEnabled() 386 { 387 return faultInjectEnabled_; 388 } 389 GetBuildTraceEnabled()390 static bool GetBuildTraceEnabled() 391 { 392 return buildTraceEnable_; 393 } 394 395 static bool GetCacheNavigationNodeEnable(); 396 GetAccessibilityEnabled()397 static bool GetAccessibilityEnabled() 398 { 399 return accessibilityEnabled_; 400 } 401 GetCanvasDebugMode()402 static uint32_t GetCanvasDebugMode() 403 { 404 return canvasDebugMode_; 405 } 406 407 static bool GetDebugEnabled(); 408 DetectContainerMultiThread()409 static bool DetectContainerMultiThread() 410 { 411 return debugEnabled_ && debugFlags_.bits_.containerMultiThread_; 412 } 413 DetectGetHostOnDetach()414 static bool DetectGetHostOnDetach() 415 { 416 return debugEnabled_ && debugFlags_.bits_.getHostOnDetach_; 417 } 418 DetectClaimDeathObj()419 static bool DetectClaimDeathObj() 420 { 421 return debugEnabled_ && debugFlags_.bits_.claimDeathObj_; 422 } 423 DetectAceObjTypeConvertion()424 static bool DetectAceObjTypeConvertion() 425 { 426 return debugEnabled_ && debugFlags_.bits_.aceObjTypeCvt_; 427 } 428 DetectJsObjTypeConvertion()429 static bool DetectJsObjTypeConvertion() 430 { 431 return debugEnabled_ && debugFlags_.bits_.jsObjTypeCvt_; 432 } 433 DetectObjDestroyInUse()434 static bool DetectObjDestroyInUse() 435 { 436 return debugEnabled_ && debugFlags_.bits_.objDestroyInUse_; 437 } 438 DetectUseInvalidIterator()439 static bool DetectUseInvalidIterator() 440 { 441 return debugEnabled_ && debugFlags_.bits_.useInvalidIter_; 442 } 443 GetMeasureDebugTraceEnabled()444 static bool GetMeasureDebugTraceEnabled() 445 { 446 return measureDebugTraceEnable_; 447 } 448 GetSafeAreaDebugTraceEnabled()449 static bool GetSafeAreaDebugTraceEnabled() 450 { 451 return safeAreaDebugTraceEnable_; 452 } 453 454 static bool GetLayoutDetectEnabled(); 455 GetGpuUploadEnabled()456 static bool GetGpuUploadEnabled() 457 { 458 return gpuUploadEnabled_; 459 } 460 GetImageFrameworkEnabled()461 static bool GetImageFrameworkEnabled() 462 { 463 return imageFrameworkEnable_; 464 } 465 466 /* 467 * Set device orientation. 468 */ 469 static void SetDeviceOrientation(int32_t orientation); 470 471 static constexpr char INVALID_PARAM[] = "N/A"; 472 GetMcc()473 static int32_t GetMcc() 474 { 475 return mcc_; 476 } 477 GetMnc()478 static int32_t GetMnc() 479 { 480 return mnc_; 481 } 482 SetDeviceAccess(bool isDeviceAccess)483 static void SetDeviceAccess(bool isDeviceAccess) 484 { 485 isDeviceAccess_ = isDeviceAccess; 486 } 487 GetDeviceAccess()488 static bool GetDeviceAccess() 489 { 490 return isDeviceAccess_; 491 } 492 493 static void InitMccMnc(int32_t mcc, int32_t mnc); 494 GetScreenShape()495 static ScreenShape GetScreenShape() 496 { 497 return screenShape_; 498 } 499 500 static int GetArkProperties(); 501 502 static std::string GetMemConfigProperty(); 503 504 static std::string GetArkBundleName(); 505 506 static size_t GetGcThreadNum(); 507 508 static size_t GetLongPauseTime(); 509 510 static void SetUnZipHap(bool unZipHap = true) 511 { 512 unZipHap_ = unZipHap; 513 } 514 GetUnZipHap()515 static bool GetUnZipHap() 516 { 517 return unZipHap_; 518 } 519 520 static bool GetAsmInterpreterEnabled(); 521 522 static std::string GetAsmOpcodeDisableRange(); 523 524 static bool IsScoringEnabled(const std::string& name); 525 IsWindowSizeAnimationEnabled()526 static bool IsWindowSizeAnimationEnabled() 527 { 528 return windowAnimationEnabled_; 529 } 530 IsAstcEnabled()531 static bool IsAstcEnabled() 532 { 533 return astcEnabled_; 534 } 535 536 static bool GetWindowRectResizeEnabled(); 537 GetAstcMaxError()538 static int32_t GetAstcMaxError() 539 { 540 return astcMax_; 541 } 542 GetAstcPsnr()543 static int32_t GetAstcPsnr() 544 { 545 return astcPsnr_; 546 } 547 IsImageFileCacheConvertAstcEnabled()548 static bool IsImageFileCacheConvertAstcEnabled() 549 { 550 return imageFileCacheConvertAstc_; 551 } 552 GetImageFileCacheConvertAstcThreshold()553 static int32_t GetImageFileCacheConvertAstcThreshold() 554 { 555 return imageFileCacheConvertAstcThreshold_; 556 } 557 SetExtSurfaceEnabled(bool extSurfaceEnabled)558 static void SetExtSurfaceEnabled(bool extSurfaceEnabled) 559 { 560 extSurfaceEnabled_ = extSurfaceEnabled; 561 } 562 GetExtSurfaceEnabled()563 static bool GetExtSurfaceEnabled() 564 { 565 return extSurfaceEnabled_; 566 } 567 568 static bool GetAllowWindowOpenMethodEnabled(); 569 GetDumpFrameCount()570 static uint32_t GetDumpFrameCount() 571 { 572 return dumpFrameCount_; 573 } 574 575 static bool GetIsUseMemoryMonitor(); 576 577 static bool IsFormAnimationLimited(); 578 579 static bool GetResourceDecoupling(); 580 581 static int32_t GetJankFrameThreshold(); 582 583 static bool GetTitleStyleEnabled(); 584 585 static std::string GetCustomTitleFilePath(); 586 587 static bool Is24HourClock(); 588 589 static std::optional<bool> GetRtlEnabled(); 590 GetEnableScrollableItemPool()591 static bool GetEnableScrollableItemPool() 592 { 593 return enableScrollableItemPool_; 594 } 595 596 static bool GetDisplaySyncSkipEnabled(); 597 598 static bool GetNavigationBlurEnabled(); 599 600 static bool GetGridCacheEnabled(); 601 602 static bool GetGridIrregularLayoutEnabled(); 603 604 static bool WaterFlowUseSegmentedLayout(); 605 606 static bool GetSideBarContainerBlurEnable(); 607 608 using EnableSystemParameterCallback = void (*)(const char* key, const char* value, void* context); 609 610 static void AddWatchSystemParameter(const char* key, void* context, EnableSystemParameterCallback callback); 611 612 static void RemoveWatchSystemParameter(const char* key, void* context, EnableSystemParameterCallback callback); 613 static void EnableSystemParameterTraceLayoutCallback(const char* key, const char* value, void* context); 614 static void EnableSystemParameterTraceInputEventCallback(const char* key, const char* value, void* context); 615 static void EnableSystemParameterSecurityDevelopermodeCallback(const char* key, const char* value, void* context); 616 static void EnableSystemParameterDebugStatemgrCallback(const char* key, const char* value, void* context); 617 static void EnableSystemParameterDebugBoundaryCallback(const char* key, const char* value, void* context); 618 static void EnableSystemParameterPerformanceMonitorCallback(const char* key, const char* value, void* context); 619 static void OnFocusActiveChanged(const char* key, const char* value, void* context); 620 static float GetDefaultResolution(); 621 622 static void SetLayoutTraceEnabled(bool layoutTraceEnable); 623 624 static void SetInputEventTraceEnabled(bool inputEventTraceEnable); 625 626 static void SetSecurityDevelopermodeLayoutTraceEnabled(bool layoutTraceEnable); 627 628 static void SetDebugBoundaryEnabled(bool debugBoundaryEnabled); 629 630 static void SetPerformanceMonitorEnabled(bool performanceMonitorEnable); 631 632 static void SetFocusCanBeActive(bool focusCanBeActive); 633 GetAcePerformanceMonitorEnabled()634 static bool GetAcePerformanceMonitorEnabled() 635 { 636 return acePerformanceMonitorEnable_.load(); 637 } 638 GetFocusCanBeActive()639 static bool GetFocusCanBeActive() 640 { 641 return focusCanBeActive_.load(); 642 } 643 GetAceCommercialLogEnabled()644 static bool GetAceCommercialLogEnabled() 645 { 646 return aceCommercialLogEnable_; 647 } 648 649 static std::string GetAtomicServiceBundleName(); 650 GetDarkModeBrightnessPercent()651 static std::pair<float, float> GetDarkModeBrightnessPercent() 652 { 653 return brightUpPercent_; 654 } 655 GetPageCount()656 static float GetPageCount() 657 { 658 return pageCount_; 659 } 660 661 static bool IsOpIncEnable(); 662 663 static float GetDragStartDampingRatio(); 664 665 static float GetDragStartPanDistanceThreshold(); 666 667 static bool IsSmallFoldProduct(); 668 669 static bool IsBigFoldProduct(); 670 671 static std::string GetWebDebugRenderMode(); 672 673 static std::string GetDebugInspectorId(); 674 675 static double GetSrollableVelocityScale(); 676 677 static double GetSrollableFriction(); 678 679 static double GetScrollableDistance(); 680 681 static bool GetWebDebugMaximizeResizeOptimize(); 682 683 static bool IsNeedResampleTouchPoints(); 684 GetAsyncInitializeEnabled()685 static bool GetAsyncInitializeEnabled() 686 { 687 return asyncInitializeEnabled_.load(); 688 } 689 690 static bool IsNeedSymbol(); 691 GetTaskPriorityAdjustmentEnable()692 static bool GetTaskPriorityAdjustmentEnable() 693 { 694 return taskPriorityAdjustmentEnable_; 695 } 696 697 static int32_t GetDragDropFrameworkStatus(); 698 static int32_t GetTouchAccelarate(); 699 700 static bool IsSuperFoldDisplayDevice(); 701 702 private: 703 static bool opincEnabled_; 704 static bool developerModeOn_; 705 static bool svgTraceEnable_; 706 static std::atomic<bool> layoutTraceEnable_; 707 static std::atomic<bool> traceInputEventEnable_; 708 static bool buildTraceEnable_; 709 static bool cacheNavigationNodeEnable_; 710 static bool syncDebugTraceEnable_; 711 static bool measureDebugTraceEnable_; 712 static bool safeAreaDebugTraceEnable_; 713 static bool pixelRoundEnable_; 714 static bool textTraceEnable_; 715 static bool syntaxTraceEnable_; 716 static bool accessTraceEnable_; 717 static bool vsyncModeTraceEnable_; 718 static bool accessibilityEnabled_; 719 static uint32_t canvasDebugMode_; 720 static bool isRound_; 721 static bool isDeviceAccess_; 722 static int32_t deviceWidth_; 723 static int32_t deviceHeight_; 724 static int32_t devicePhysicalWidth_; 725 static int32_t devicePhysicalHeight_; 726 static double resolution_; // density of the default display 727 static DeviceType deviceType_; 728 static bool needAvoidWindow_; 729 static DeviceOrientation orientation_; 730 static std::string brand_; 731 static std::string manufacturer_; 732 static std::string model_; 733 static std::string product_; 734 static std::string apiVersion_; 735 static std::string releaseType_; 736 static std::string paramDeviceType_; 737 static int32_t mcc_; 738 static int32_t mnc_; 739 static ScreenShape screenShape_; 740 static LongScreenType LongScreen_; 741 static bool unZipHap_; 742 static bool rosenBackendEnabled_; 743 static bool windowAnimationEnabled_; 744 static bool debugEnabled_; 745 static DebugFlags debugFlags_; 746 static bool containerDeleteFlag_; 747 static bool layoutDetectEnabled_; 748 static std::atomic<bool> debugBoundaryEnabled_; 749 static bool debugAutoUIEnabled_; // for AutoUI Test 750 static bool debugOffsetLogEnabled_; 751 static bool downloadByNetworkEnabled_; 752 static bool recycleImageEnabled_; 753 static bool gpuUploadEnabled_; 754 static bool isHookModeEnabled_; 755 static bool astcEnabled_; 756 static int32_t astcMax_; 757 static int32_t astcPsnr_; 758 static bool imageFileCacheConvertAstc_; 759 static int32_t imageFileCacheConvertAstcThreshold_; 760 static bool extSurfaceEnabled_; 761 static uint32_t dumpFrameCount_; 762 static bool resourceDecoupling_; 763 static bool enableScrollableItemPool_; 764 static bool navigationBlurEnabled_; 765 static bool gridCacheEnabled_; 766 static bool sideBarContainerBlurEnable_; 767 static std::atomic<bool> stateManagerEnable_; 768 static std::atomic<bool> acePerformanceMonitorEnable_; 769 static std::atomic<bool> asyncInitializeEnabled_; 770 static std::atomic<bool> focusCanBeActive_; 771 static bool aceCommercialLogEnable_; 772 static bool faultInjectEnabled_; 773 static bool imageFrameworkEnable_; 774 static float pageCount_; 775 static std::pair<float, float> brightUpPercent_; 776 static float dragStartDampingRatio_; 777 static float dragStartPanDisThreshold_; 778 static float fontScale_; 779 static float fontWeightScale_; 780 static bool windowRectResizeEnabled_; 781 static FoldScreenType foldScreenType_; 782 static double scrollableDistance_; 783 static bool taskPriorityAdjustmentEnable_; 784 static int32_t dragDropFrameworkStatus_; 785 static int32_t touchAccelarate_; 786 }; 787 788 } // namespace OHOS::Ace 789 790 #endif // FOUNDATION_ACE_FRAMEWORKS_BASE_UTILS_SYSTEM_PROPERTIES_H 791