精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

OpenHarmony系統解決方案 - 配置屏幕方向導致開機動畫和Launcher顯示異常

系統 OpenHarmony
配置設備默認方向,例如修改為橫屏顯示,修改文件display_manager_config.xml的buildInDefaultOrientation參數值為2(Orientation::HORIZONTAL)。

想了解更多關于開源的內容,請訪問:

51CTO 開源基礎軟件社區

https://ost.51cto.com

問題描述

問題環境

系統版本:OpenHarmony-3.2-Release

問題現象

配置設備默認方向,例如修改為橫屏顯示,修改文件display_manager_config.xml的buildInDefaultOrientation參數值為2(Orientation::HORIZONTAL)。

源碼中文件位于foundation/window/window_manager/resources/config/rk3568/display_manager_config.xml。

系統中文件位于/etc/window/resources/display_manager_config.xml。

系統啟動后開機動畫橫豎屏切換,Launcher顯示異常(偶現,去掉鎖屏應用和鎖屏服務后大概率出現)。

異常效果:

OpenHarmony系統解決方案 - 配置屏幕方向導致開機動畫和Launcher顯示異常-開源基礎軟件社區OpenHarmony系統解決方案 - 配置屏幕方向導致開機動畫和Launcher顯示異常-開源基礎軟件社區

OpenHarmony系統解決方案 - 配置屏幕方向導致開機動畫和Launcher顯示異常-開源基礎軟件社區OpenHarmony系統解決方案 - 配置屏幕方向導致開機動畫和Launcher顯示異常-開源基礎軟件社區

正常效果:

OpenHarmony系統解決方案 - 配置屏幕方向導致開機動畫和Launcher顯示異常-開源基礎軟件社區OpenHarmony系統解決方案 - 配置屏幕方向導致開機動畫和Launcher顯示異常-開源基礎軟件社區

OpenHarmony系統解決方案 - 配置屏幕方向導致開機動畫和Launcher顯示異常-開源基礎軟件社區OpenHarmony系統解決方案 - 配置屏幕方向導致開機動畫和Launcher顯示異常-開源基礎軟件社區

問題原因

  • ScreenRotationController初始化會設置rotationLockedRotation_屬性初始值,而ScreenRotationController初始化的觸發點在開機動畫窗口銷毀時,此時間點在Launcher的Window加載之后。
  • Launcher加載Window時會設置SetScreenRotation(屏幕旋轉角度),因為Launcher的方向加載配置為AUTO_ROTATION_RESTRICTED(方向隨傳感器旋轉),所以SetScreenRotation會根據rotationLockedRotation_屬性值設置旋轉角度,而此時rotationLockedRotation_屬性并未被設置初始值,所以SetScreenRotation設置的值取得是默認值0(如果配置為Orientation::HORIZONTAL,則應旋轉90度,取值為1),導致問題的產生。

解決方案

調整ScreenRotationController初始化時序,使ScreenRotationController在Launcher加載Window時觸發。修改源碼文件:foundation/window/window_manager/wmserver/src/window_node_container.cpp

WindowNodeContainer::RemoveWindowNode函數中,移除以下代碼:

if (node->GetWindowType() == WindowType::WINDOW_TYPE_BOOT_ANIMATION) {
    DisplayManagerServiceInner::GetInstance().SetGravitySensorSubscriptionEnabled();
}

修改后WindowNodeContainer::RemoveWindowNode函數代碼:

// foundation/window/window_manager/wmserver/src/window_node_container.cpp
WMError WindowNodeContainer::RemoveWindowNode(sptr<WindowNode>& node, bool fromAnimation)
{
    ···
    NotifyIfAvoidAreaChanged(node, AvoidControlType::AVOID_NODE_REMOVE);
    DumpScreenWindowTree();
    UpdateCameraFloatWindowStatus(node, false);
    if (node->GetWindowType() == WindowType::WINDOW_TYPE_KEYGUARD) {
        isScreenLocked_ = false;
        SetBelowScreenlockVisible(node, true);
    }
    WLOGFD("RemoveWindowNode windowId: %{public}u end", node->GetWindowId());
    RSInterfaces::GetInstance().SetAppWindowNum(GetAppWindowNum());
    return WMError::WM_OK;
}

WindowNodeContainer::AddWindowNode函數中,在WLOGFD("AddWindowNode windowId: %{public}u end", node->GetWindowId());行代碼前添加以下代碼:

if (node->GetWindowType() == WindowType::WINDOW_TYPE_DESKTOP) {
    DisplayManagerServiceInner::GetInstance().SetGravitySensorSubscriptionEnabled();
}

修改后WindowNodeContainer::AddWindowNode函數代碼:

WMError WindowNodeContainer::AddWindowNode(sptr<WindowNode>& node, sptr<WindowNode>& parentNode, bool afterAnimation)
{
    ···
    if (node->GetWindowType() == WindowType::WINDOW_TYPE_WALLPAPER) {
        RemoteAnimation::NotifyAnimationUpdateWallpaper(node);
    }
    if (node->GetWindowType() == WindowType::WINDOW_TYPE_DESKTOP) {
        DisplayManagerServiceInner::GetInstance().SetGravitySensorSubscriptionEnabled();
    }
    WLOGFD("AddWindowNode windowId: %{public}u end", node->GetWindowId());
    RSInterfaces::GetInstance().SetAppWindowNum(GetAppWindowNum());
    return WMError::WM_OK;
}

定位過程

落盤異常開機日志,查找SetRotation相關日志,發現系統啟動過程中橫豎屏被設置兩次。

08-05 18:39:55.002   622   811 I C04201/AbstractScreenController: <722>SetRotation: Enter SetRotation, screenId: 0, rotation: 1, isFromWindow: 1
08-05 18:39:58.487   622   811 I C04201/AbstractScreenController: <722>SetRotation: Enter SetRotation, screenId: 0, rotation: 0, isFromWindow: 1

查找對應源碼發現rotation代表含義。在系統啟動時已成功設置旋轉90度(水平),但又被設置為旋轉0度(垂直),導致異常。

// foundation/window/window_manager/interfaces/innerkits/dm/dm_common.h
enum class Rotation : uint32_t {
    ROTATION_0,          // 不旋轉,垂直
    ROTATION_90,        // 旋轉90度,水平
    ROTATION_180, 	 
    ROTATION_270,
};
// foundation/window/window_manager/dmserver/src/abstract_screen_controller.cpp
bool AbstractScreenController::SetRotation(ScreenId screenId, Rotation rotationAfter, bool isFromWindow)
{
    WLOGFI("Enter SetRotation, screenId: %{public}" PRIu64 ", rotation: %{public}u, isFromWindow: %{public}u",
        screenId, rotationAfter, isFromWindow);
    ···
}

追蹤設置旋轉0度(垂直)操作日志。發現set orientation時,orientation被設置為8,對應源碼含義為AUTO_ROTATION_RESTRICTED。

08-05 18:39:58.487   622   811 D C04201/AbstractScreenController: <627>set orientation. screen 0 orientation 8
08-05 18:39:58.487   622   811 D C04201/AbstractScreenController: <144>GetAbstractScreen: screenId: 0
08-05 18:39:58.487   622   811 D C04201/AbstractScreenController: <177>GetDefaultAbstractScreenId: GetDefaultAbstractScreenId, screen:0
08-05 18:39:58.487   622   811 D C04201/DisplayManagerService: <190>GetDefaultDisplayInfo: GetDefaultDisplayInfo 0
08-05 18:39:58.487   622   811 D C04201/AbstractScreenController: <177>GetDefaultAbstractScreenId: GetDefaultAbstractScreenId, screen:0
08-05 18:39:58.487   622   811 D C04201/DisplayManagerService: <190>GetDefaultDisplayInfo: GetDefaultDisplayInfo 0
08-05 18:39:58.487   622   811 I C04201/AbstractScreenController: <722>SetRotation: Enter SetRotation, screenId: 0, rotation: 0, isFromWindow: 1
// foundation/window/window_manager/dmserver/src/abstract_screen_controller.cpp
bool AbstractScreenController::SetOrientation(ScreenId screenId, Orientation newOrientation, bool isFromWindow)
{
    WLOGD("set orientation. screen %{public}" PRIu64" orientation %{public}u", screenId, newOrientation);
    ···
}
// foundation/window/window_manager/interfaces/innerkits/dm/dm_common.h
enum class Orientation : uint32_t {
    BEGIN = 0,
    UNSPECIFIED = BEGIN,
    VERTICAL = 1,
    HORIZONTAL = 2,
    REVERSE_VERTICAL = 3,
    REVERSE_HORIZONTAL = 4,
    SENSOR = 5,
    SENSOR_VERTICAL = 6,
    SENSOR_HORIZONTAL = 7,
    AUTO_ROTATION_RESTRICTED = 8,
    AUTO_ROTATION_PORTRAIT_RESTRICTED = 9,
    AUTO_ROTATION_LANDSCAPE_RESTRICTED = 10,
    LOCKED = 11,
    END = LOCKED,
};

Launcher在創建window時會把PreferredOrientation設置為Window.Orientation.AUTO_ROTATION_RESTRICTED。

// common/src/main/ets/default/manager/WindowManager.ts
createWindow(context: ServiceExtensionContext, name: string, windowType: number, loadContent: string,
               isShow: boolean, callback?: Function) {
    Window.create(context, name, windowType).then((win) => {
        void win.setPreferredOrientation(Window.Orientation.AUTO_ROTATION_RESTRICTED);
        ···
    }, (error) => {
        Log.showError(TAG, `createWindow, create error: ${JSON.stringify(error)}`);
    });
}

當Launcher顯示窗口時執行SetOrientation,isFromWindow參數為true。

// foundation/window/window_manager/dmserver/src/abstract_screen_controller.cpp
bool AbstractScreenController::SetOrientation(ScreenId screenId, Orientation newOrientation, bool isFromWindow)
{
    WLOGD("set orientation. screen %{public}" PRIu64" orientation %{public}u", screenId, newOrientation);
    auto screen = GetAbstractScreen(screenId);
    ···
    if (isFromWindow) {
        ScreenRotationController::ProcessOrientationSwitch(newOrientation); // 執行方向選擇
    } else {
        Rotation rotationAfter = screen->CalcRotation(newOrientation);
        SetRotation(screenId, rotationAfter, false);
        screen->rotation_ = rotationAfter;
    }
    if (!screen->SetOrientation(newOrientation)) {
        WLOGE("fail to set rotation, screen %{public}" PRIu64"", screenId);
        return false;
    }
    ···
    return true;
}

因orientation為AUTO_ROTATION_RESTRICTED,會執行ProcessSwitchToSensorRelatedOrientation函數。

// foundation/window/window_manager/dmserver/src/screen_rotation_controller.cpp
void ScreenRotationController::ProcessOrientationSwitch(Orientation orientation)
{
    if (!IsSensorRelatedOrientation(orientation)) {
        ProcessSwitchToSensorUnrelatedOrientation(orientation);
    } else {
        ProcessSwitchToSensorRelatedOrientation(orientation, lastSensorRotationConverted_);
    }
}
bool ScreenRotationController::IsSensorRelatedOrientation(Orientation orientation)
{
    if ((orientation >= Orientation::UNSPECIFIED && orientation <= Orientation::REVERSE_HORIZONTAL) ||
        orientation == Orientation::LOCKED) {
        return false;
    }
    // AUTO_ROTATION_RESTRICTED 返回 true
    return true;
}

當rotationLockedRotation_與GetCurrentDisplayRotation()不一致時會切換旋轉角度。在此處增加日志打印rotationLockedRotation_和GetCurrentDisplayRotation()的值,發現在開機觸發Launcher設置屏幕旋轉角度時GetCurrentDisplayRotation()函數獲取的當前屏幕旋轉角度為1(水平)是正確的。而rotationLockedRotation_為0(垂直)。

// foundation/window/window_manager/dmserver/src/screen_rotation_controller.cpp
void ScreenRotationController::ProcessSwitchToSensorRelatedOrientation(
    Orientation orientation, DeviceRotation sensorRotationConverted){
    lastOrientationType_ = orientation;
    switch (orientation) {
        case Orientation::AUTO_ROTATION_RESTRICTED: {
            if (isScreenRotationLocked_) {
                SetScreenRotation(rotationLockedRotation_);
                return;
            }
            [[fallthrough]];
        }
        ···
    }
}
void ScreenRotationController::SetScreenRotation(Rotation targetRotation){
    if (targetRotation == GetCurrentDisplayRotation()) {
        return;
    }
    DisplayManagerServiceInner::GetInstance().GetDefaultDisplay()->SetRotation(targetRotation);
    DisplayManagerServiceInner::GetInstance().SetRotationFromWindow(defaultDisplayId_, targetRotation);
    WLOGFI("dms: Set screen rotation: %{public}u", targetRotation);
}

查看rotationLockedRotation_被設置的場景。分別增加日志,發現開機啟動時SetScreenRotationLocked函數不會被觸發,而Init函數則是在Launcher啟動后被觸發,此時Launcher已經把屏幕旋轉角度設置為0(垂直),rotationLockedRotation_的初始化值則會變成Launcher設置后的參數0(垂直)。而在Launcher觸發SetScreenRotation時,rotationLockedRotation_還未被設置,此時取默認值0(垂直),導致異常的產生。

// foundation/window/window_manager/dmserver/src/screen_rotation_controller.cpp
void ScreenRotationController::Init()
{
    ProcessRotationMapping();
    currentDisplayRotation_ = GetCurrentDisplayRotation();
    lastSensorDecidedRotation_ = currentDisplayRotation_;
    rotationLockedRotation_ = currentDisplayRotation_;
}
void ScreenRotationController::SetScreenRotationLocked(bool isLocked)
{
    if (isLocked) {
        rotationLockedRotation_ = GetCurrentDisplayRotation();
    }
    isScreenRotationLocked_ = isLocked;
}

ScreenRotationController::Init()的觸發時機是在系統檢測到啟動完成后,關閉開機動畫窗口時觸發。如果此操作在Launcher加載Window之后,則會導致問題。改變ScreenRotationController::Init()的初始化時序,在Launcher的window加載時初始化可以修復此問題。

// foundation/window/window_manager/wmserver/src/window_node_container.cpp
WMError WindowNodeContainer::RemoveWindowNode(sptr<WindowNode>& node, bool fromAnimation)
{
    ···
    if (node->GetWindowType() == WindowType::WINDOW_TYPE_BOOT_ANIMATION) {
        DisplayManagerServiceInner::GetInstance().SetGravitySensorSubscriptionEnabled();
    }
    ···
    return WMError::WM_OK;
}

// foundation/window/window_manager/dmserver/src/display_manager_service.cpp
void DisplayManagerService::SetGravitySensorSubscriptionEnabled()
{
    ···
    SensorConnector::SubscribeRotationSensor();
}

// foundation/window/window_manager/dmserver/src/sensor_connector.cpp
void SensorConnector::SubscribeRotationSensor()
{
    WLOGFI("dms: subscribe rotation-related sensor");
    ScreenRotationController::Init();
    ···
}

知識分享

如果應用的方向需要隨系統切換,可以在module.json5的ability中配置orientation為auto_rotation_restricted。

想了解更多關于開源的內容,請訪問:

51CTO 開源基礎軟件社區

https://ost.51cto.com

責任編輯:jianghua 來源: 51CTO 開源基礎軟件社區
相關推薦

2023-07-10 16:06:50

鴻蒙檢測鎖屏應用

2022-10-12 15:14:08

開機動畫鴻蒙

2022-03-18 16:07:04

Graphic子系統鴻蒙

2023-07-27 14:42:16

開機Logo鴻蒙

2011-09-09 14:49:31

Windows7開機動畫

2017-06-01 11:17:57

Python異常重試解決方案

2018-09-14 16:20:37

2016-03-13 18:06:47

2020-09-04 13:50:35

前端異常監控代碼

2010-02-24 14:05:08

WCF openati

2018-04-10 15:44:31

Gradle依賴關系異常

2022-08-08 12:47:26

云服務商解決方案電信產業

2011-12-09 11:13:17

2016-03-13 17:35:18

2010-02-26 15:46:48

Silverlight

2009-06-17 11:47:21

Hibernate 刪

2009-11-06 15:25:25

WCF異常

2009-12-23 21:06:47

統一通信多媒體聯絡中心平臺華為

2010-05-31 12:38:48

Nagios中文

2013-05-14 15:47:27

MySQL監控錯誤日志
點贊
收藏

51CTO技術棧公眾號

国产三级国产精品| 妞干网在线视频观看| 国产精品无码久久久久成人app| 国产精品久久久久久久久久10秀| 日韩视频免费观看高清在线视频| 日本香蕉视频在线观看| 亚洲欧洲国产综合| 久久精品国产99国产| 欧美精品精品精品精品免费| 在线免费看黄视频| 狂野欧美xxxx韩国少妇| 欧美日韩国产中文精品字幕自在自线| 视频一区视频二区视频三区视频四区国产 | 成人h精品动漫一区二区三区| 日本一区二区不卡| 亚洲色图综合区| 免费视频国产一区| 精品久久久网站| 手机视频在线观看| av第一福利在线导航| 中文字幕av不卡| 久久99国产精品99久久| 国产精品高潮呻吟久久久| 国产日韩欧美三级| 欧美成人黑人xx视频免费观看| 制服丝袜第二页| 国产精品中文| 欧美网站大全在线观看| 亚洲不卡中文字幕无码| 2020国产在线视频| 国产女主播视频一区二区| 国产日韩一区二区| av网站免费播放| 美女视频网站黄色亚洲| 57pao国产成人免费| 欧美日韩偷拍视频| 欧美疯狂party性派对| 亚洲人成在线播放| 日本一卡二卡在线| 亚洲一区 二区| 欧美卡1卡2卡| 黄色永久免费网站| 日韩在线观看不卡| 色综合久久久久综合体| 成人毛片一区二区| 91av久久| 亚洲成人一区二区| 国产在线观看欧美| 美女精品导航| 一区二区三区在线观看网站| 欧美h视频在线观看| av网页在线| 欧美激情一区二区三区全黄| 日本日本精品二区免费| 每日更新在线观看av| 91视频观看视频| 精品一区国产| 四虎精品在永久在线观看| caoporen国产精品视频| 国产日本一区二区三区| 欧美 日韩 国产 在线| 成人精品视频.| 国产激情一区二区三区在线观看 | gogo高清午夜人体在线| 亚洲一区二区中文在线| 日本中文字幕在线视频观看| 黑森林国产精品av| 黑丝美女久久久| 男人天堂网视频| 九九热线视频只有这里最精品| 色琪琪一区二区三区亚洲区| 9久久婷婷国产综合精品性色| 国产成人午夜性a一级毛片| 欧美三级视频在线播放| 小明看看成人免费视频| 日韩中文字幕无砖| 亚洲精品一区二区三区四区高清 | 大量国产精品视频| 中文字幕av免费在线观看| 一区视频在线| 日韩av不卡电影| 中文字字幕在线观看| 国产在线观看免费一区| 国产精品成人观看视频免费| 日本免费不卡| 国产精品午夜免费| 国产人妻人伦精品| 爱情电影社保片一区| 欧美丝袜自拍制服另类| 人妻体体内射精一区二区| 91综合久久爱com| 亚洲欧美一区二区三区情侣bbw| 能直接看的av| 国产综合亚洲精品一区二| 亚洲91av视频| 在线免费观看中文字幕| 懂色av一区二区三区蜜臀| 日本不卡一区| 最爽无遮挡行房视频在线| 午夜精品一区二区三区免费视频| 国产精品乱码久久久久| 日韩免费成人| 在线视频日本亚洲性| 久久99久久久| 秋霞成人午夜伦在线观看| 91丝袜脚交足在线播放| 国产最新视频在线| 一区二区三区欧美日| 18岁视频在线观看| 视频二区欧美毛片免费观看| 亚洲欧美日韩视频一区| 久久精品国产亚洲av无码娇色| 视频一区二区中文字幕| 粉嫩高清一区二区三区精品视频 | 三上悠亚久久精品| 亚洲国产精选| 亚洲天堂开心观看| 国产一级一片免费播放| 久久99久久久久久久久久久| 久久国产精品免费一区| 69xxx在线| 欧美日韩精品高清| 老司机福利av| 国产一区视频在线观看免费| 欧美一级成年大片在线观看| 国产偷拍一区二区| 中文字幕成人av| 免费在线观看毛片网站| a看欧美黄色女同性恋| 日韩在线视频网站| 青青视频在线免费观看| 不卡影院免费观看| 国产精品视频二| 亚洲国产aⅴ精品一区二区三区| 亚洲天堂成人在线| 免费观看一区二区三区毛片| 成人性生交大片免费看视频在线| 国产精品亚洲天堂| 日韩福利影视| 深夜福利一区二区| 中日精品一色哟哟| 国产欧美视频一区二区三区| 情侣黄网站免费看| 五月综合久久| 欧美在线不卡区| 偷拍自拍在线| 精品国产999| 国模私拍在线观看| 亚洲人www| 精品国产一区二区三| 91制片在线观看| 亚洲第一中文字幕在线观看| 久久久久久久久久久97| 国产福利不卡视频| 91午夜在线观看| 国产精品一线| 欧美一级大片在线观看| 污污网站免费在线观看| 欧美性少妇18aaaa视频| 亚洲乱码国产乱码精品精大量| 国产视频亚洲| 热re99久久精品国产99热| 欧美性suv| 中文字幕精品av| 一级黄色片免费看| 亚洲色欲色欲www| 国产精品无码自拍| 在线亚洲自拍| 日韩精品电影网站| 欧洲精品一区二区三区| 日韩视频永久免费观看| 国产男女猛烈无遮挡| 亚洲综合免费观看高清在线观看| 久久国产免费视频| 免费欧美日韩| 亚洲巨乳在线观看| 日韩在线观看中文字幕| 91高清在线免费观看| 韩国三级在线观看久| 在线不卡中文字幕| 国产亚洲第一页| 久久久青草青青国产亚洲免观| 天天干在线影院| 欧美aa国产视频| 免费国产在线精品一区二区三区| 黄色成人在线视频| 色综合色综合网色综合| 蝌蚪视频在线播放| 欧美一区二区三区思思人| 日韩精品久久久久久久| 欧美激情一区二区三区四区 | 99这里只有精品视频| 欧美一区在线直播| 免费超碰在线| 日韩风俗一区 二区| 亚洲在线精品视频| 亚洲第一久久影院| 欧美精品日韩在线| 99久久精品国产一区| 亚洲视频一二三四| 午夜亚洲影视| 国产一二三四区在线观看| 亚洲福利天堂| av免费观看久久| 精品视频一区二区三区四区五区| 久久99亚洲热视| а天堂8中文最新版在线官网| 日韩午夜在线播放| 中日韩av在线| 欧美日韩国产在线看| 欧美久久久久久久久久久久| 国产人久久人人人人爽| 扒开伸进免费视频| 久久99国产精品麻豆| 女人另类性混交zo| 亚洲性人人天天夜夜摸| 在线不卡日本| 精品美女视频| 精品日本一区二区三区| 久久久91麻豆精品国产一区| 国产精品video| 在线视频cao| 久久久久久成人| 国产写真视频在线观看| 最近更新的2019中文字幕| 欧美日韩激情视频一区二区三区| 精品剧情v国产在线观看在线| 在线观看中文字幕2021| 色妹子一区二区| 五月天激情四射| 欧美日韩国产一区中文午夜| 欧美成人aaaaⅴ片在线看| 亚洲影院久久精品| 日本天堂中文字幕| 最新国产精品久久精品| 国产视频三区四区| 国产日韩欧美综合在线| 人妻精品久久久久中文字幕| 99re热视频精品| 日本护士做爰视频| 丰满亚洲少妇av| 波多野结衣三级视频| 国产经典欧美精品| 91性高潮久久久久久久| 久久99精品久久久久久久久久久久| 国产a级片免费观看| 国产人成精品一区二区三| 日本中文字幕亚洲| 1024成人| www国产精品内射老熟女| 在线亚洲观看| 精品国产成人av在线免| 美女网站久久| 欧美成人黄色网址| 麻豆精品一区二区三区| 中文字幕成人在线视频| 精品一区二区免费在线观看| 韩国一区二区在线播放| 国产精品资源在线看| 男人添女人荫蒂国产| 国产91对白在线观看九色| 少妇熟女视频一区二区三区 | 337人体粉嫩噜噜噜| 欧美国产精品劲爆| 一级性生活免费视频| 亚洲精品乱码久久久久| 久久精品视频久久| 欧美午夜精品久久久久久久| 亚洲中文无码av在线| 欧美日韩不卡一区| 亚洲毛片欧洲毛片国产一品色| 日韩电影大全免费观看2023年上| 你懂的视频在线观看| 色综合伊人色综合网站| 在线观看h网| 欧美亚洲成人网| 欧美天堂一区| 福利精品视频| 久久成人高清| 在线视频福利一区| 亚洲东热激情| 亚洲高清免费在线观看| 国产精品一区二区三区99| 国产精品嫩草av| 国产精品少妇自拍| 2021亚洲天堂| 色欧美乱欧美15图片| 国产伦子伦对白视频| 亚洲国产成人在线视频| 国产三级在线| 欧美国产日韩视频| 欧美精品高清| 97人人干人人| 视频精品在线观看| 97在线免费视频观看| 亚洲欧美成人| 久久综合桃花网| 久久精品人人爽人人爽| 青娱乐免费在线视频| 色婷婷av一区| 精品人妻伦一区二区三区久久| 精品视频在线播放免| 爆操欧美美女| 国产成人高潮免费观看精品| 日韩精品一区二区三区中文字幕| 欧美日韩一区在线播放| 欧美日韩伊人| 日韩一区二区三区不卡视频| 成人动漫在线一区| 青青操在线播放| 欧美午夜性色大片在线观看| 亚洲爱情岛论坛永久| 自拍视频国产精品| 老色鬼在线视频| 91成人免费在线观看| 日韩电影免费网址| 国产成人久久婷婷精品流白浆| 国产精品99久| 日本黄色录像视频| 色综合久久88色综合天天| 农村少妇久久久久久久| 久久福利网址导航| 四虎精品在线观看| 色吧亚洲视频| 久久伊人亚洲| 男男做爰猛烈叫床爽爽小说| 亚洲香肠在线观看| av av片在线看| 久久精品99国产精品酒店日本| 亚洲第一二三四区| 蜜桃传媒视频第一区入口在线看| 国产精品av一区二区| 欧美又黄又嫩大片a级| 中文幕一区二区三区久久蜜桃| 天天干天天干天天操| 亚洲第一天堂av| 91色在线看| 国产一区二区自拍| 国产一区久久| 一区二区三区四区影院| 亚洲黄色片在线观看| 99免费在线视频| 欧美成人午夜剧场免费观看| 亚洲伦理一区二区| 中文字幕超清在线免费观看| 精品无人区卡一卡二卡三乱码免费卡| 美国美女黄色片| 欧美三级视频在线| 欧美性天天影视| 成人春色激情网| 自拍偷拍欧美专区| 奇米777在线| 亚洲午夜精品在线| 欧美特黄一级视频| 91精品国产乱码久久久久久蜜臀| 乱亲女h秽乱长久久久| 男人和女人啪啪网站| 久久青草欧美一区二区三区| 成人免费毛片视频| 综合av色偷偷网| 97精品资源在线观看| 天堂av免费看| 成人不卡免费av| 麻豆成人免费视频| 中文字幕一区二区精品| 国产精品久久久久久久久久辛辛| av电影一区二区三区| 盗摄精品av一区二区三区| 国产成人无码精品亚洲| 亚洲欧美综合图区| 精品亚洲a∨| 中文字幕乱码免费| 不卡的看片网站| 日韩在线播放中文字幕| 色狠狠av一区二区三区香蕉蜜桃| 24小时成人在线视频| 2022中文字幕| av中文一区二区三区| 姑娘第5集在线观看免费好剧| 日韩有码在线播放| 999久久久精品一区二区| 亚洲国产精品久久久久婷蜜芽| 国产欧美一区二区精品久导航| 国产内射老熟女aaaa∵| 2019最新中文字幕| 大片网站久久| 日本精品一二三区| 在线观看成人小视频| 日韩av激情| 日本免费一区二区三区| 国产精品1区二区.| 国产suv精品一区二区33| 久久精品国产一区| 久久这里只有精品一区二区| 中文字幕第80页| 亚洲大尺度视频在线观看| 第九色区av在线| 国产精品视频免费一区二区三区 | 亚洲成av人片一区二区梦乃| 成人影视在线播放|