Toggle navigation
Toggle navigation
This project
Loading...
Sign in
developOne
/
harmonyPool
Go to a project
Toggle navigation
Projects
Groups
Snippets
Help
Toggle navigation pinning
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Network
Create a new issue
Builds
Commits
Authored by
王士厅
2024-05-21 18:25:38 +0800
Browse Files
Options
Browse Files
Download
Plain Diff
Commit
7c6b9bc2e7614cfb3756e56710f2d9323e3877b8
7c6b9bc2
2 parents
fe75415c
233d5805
Merge branch 'main' of
http://192.168.1.42/developOne/harmonyPool
Show whitespace changes
Inline
Side-by-side
Showing
57 changed files
with
578 additions
and
199 deletions
sight_harmony/commons/wdKit/src/main/ets/utils/LazyDataSource.ets
sight_harmony/commons/wdNetwork/src/main/ets/http/HttpCommonParams.ets
sight_harmony/features/wdComponent/oh-package.json5
sight_harmony/features/wdComponent/src/main/ets/components/ENewspaperPageComponent.ets
sight_harmony/features/wdComponent/src/main/ets/components/FeedBackActivity.ets
sight_harmony/features/wdComponent/src/main/ets/components/MorningEveningPaper/MorningEveningPaperComponent.ets
sight_harmony/features/wdComponent/src/main/ets/components/MorningEveningPaper/topicInfoView.ets
sight_harmony/features/wdComponent/src/main/ets/components/SpacialTopicPageComponent.ets
sight_harmony/features/wdComponent/src/main/ets/components/cardViewAdv/CardAdvBottom.ets
sight_harmony/features/wdComponent/src/main/ets/components/cardViewAdv/CardAdvTop.ets
sight_harmony/features/wdComponent/src/main/ets/components/cardview/Card15Component.ets
sight_harmony/features/wdComponent/src/main/ets/components/cardview/Card6Component.ets
sight_harmony/features/wdComponent/src/main/ets/components/comment/view/CommentTabComponent.ets
sight_harmony/features/wdComponent/src/main/ets/components/compview/ZhSingleRow04.ets
sight_harmony/features/wdComponent/src/main/ets/components/mine/MinePageMoreFunctionUI.ets
sight_harmony/features/wdComponent/src/main/ets/components/mine/MinePagePersonFunctionUI.ets
sight_harmony/features/wdComponent/src/main/ets/components/mine/MinePageUserSimpleInfoUI.ets
sight_harmony/features/wdComponent/src/main/ets/components/mine/message/MessageListUI.ets
sight_harmony/features/wdComponent/src/main/ets/components/page/AppointmentListPage.ets
sight_harmony/features/wdComponent/src/main/ets/components/page/BottomNavigationComponent.ets
sight_harmony/features/wdComponent/src/main/ets/components/page/CardView.ets
sight_harmony/features/wdComponent/src/main/ets/components/page/FollowListPage.ets
sight_harmony/features/wdComponent/src/main/ets/components/page/MinePageComponent.ets
sight_harmony/features/wdComponent/src/main/ets/components/page/PrivacySettingPage.ets
sight_harmony/features/wdComponent/src/main/ets/components/page/SettingAboutPage.ets
sight_harmony/features/wdComponent/src/main/ets/components/page/SettingPage.ets
sight_harmony/features/wdComponent/src/main/ets/components/setting/AboutPageUI.ets
sight_harmony/features/wdComponent/src/main/ets/components/setting/MineSettingComponent.ets
sight_harmony/features/wdComponent/src/main/ets/components/view/OperRowListView.ets
sight_harmony/features/wdComponent/src/main/ets/model/InteractMessageModel.ets
sight_harmony/features/wdComponent/src/main/ets/pages/MineHomePage.ets
sight_harmony/features/wdComponent/src/main/ets/pages/OtherNormalUserHomePage.ets
sight_harmony/features/wdComponent/src/main/ets/pages/SearchPage.ets
sight_harmony/features/wdComponent/src/main/ets/pages/VideoPlayPage.ets
sight_harmony/features/wdComponent/src/main/ets/viewmodel/MessageUnReadItem.ets
sight_harmony/features/wdComponent/src/main/ets/viewmodel/PageHelper.ets
sight_harmony/features/wdComponent/src/main/ets/viewmodel/PageModel.ets
sight_harmony/features/wdComponent/src/main/resources/base/media/more_w.png
sight_harmony/features/wdDetailPlayLive/src/main/ets/pages/DetailPlayLivePage.ets
sight_harmony/features/wdDetailPlayLive/src/main/ets/pages/DetailPlayVLivePage.ets
sight_harmony/features/wdDetailPlayLive/src/main/ets/widgets/details/video/PlayUIComponent.ets
sight_harmony/features/wdDetailPlayLive/src/main/ets/widgets/details/video/TopPlayComponet.ets
sight_harmony/features/wdDetailPlayLive/src/main/ets/widgets/vertical/PlayerComponent.ets
sight_harmony/features/wdDetailPlayLive/src/main/ets/widgets/vertical/PlayerInfoComponent.ets
sight_harmony/features/wdDetailPlayLive/src/main/ets/widgets/vertical/PlayerUIComponent.ets
sight_harmony/features/wdDetailPlayLive/src/main/ets/widgets/vertical/PlayerVideoControlComponent.ets
sight_harmony/features/wdLogin/oh-package.json5
sight_harmony/features/wdLogin/src/main/ets/pages/login/LoginPage.ets
sight_harmony/features/wdLogin/src/main/ets/pages/login/ModifyPasswordPage.ets
sight_harmony/features/wdPlayer/Index.ets
sight_harmony/features/wdPlayer/src/main/ets/controller/WDAliPlayerController.ets
sight_harmony/features/wdPlayer/src/main/ets/pages/AliPlayerRenderView.ets
sight_harmony/features/wdPlayer/src/main/ets/pages/WDPlayerRenderLiveView.ets
sight_harmony/features/wdPlayer/src/main/ets/pages/WDPlayerRenderVLiveView.ets
sight_harmony/features/wdPlayer/src/main/ets/pages/WDPlayerRenderView.ets
sight_harmony/features/wdPlayer/src/main/ets/utils/GlobalSetting.ets
sight_harmony/features/wdTracking/src/main/ets/common/TrackConstants.ets
sight_harmony/commons/wdKit/src/main/ets/utils/LazyDataSource.ets
View file @
7c6b9bc
...
...
@@ -171,6 +171,24 @@ export class LazyDataSource<T> extends BasicDataSource<T> {
}
}
// 删除index指定索引位置的元素
public deleteItems(startIndex: number, count?: number): void {
if (startIndex < 0) {
return
}
this.dataArray.splice(startIndex, count || (this.dataArray.length - startIndex));
let to = 0
if (count == undefined) {
to = this.dataArray.length - 1
} else {
to = count + startIndex
if (to >= this.dataArray.length) {
to = this.dataArray.length - 1;
}
}
this.notifyDataMove(startIndex, to);
}
// 删除最后1个元素
public pop(): void {
this.deleteItem()
...
...
sight_harmony/commons/wdNetwork/src/main/ets/http/HttpCommonParams.ets
View file @
7c6b9bc
...
...
@@ -42,23 +42,23 @@ export class HttpParams {
switch (HostManager.getHost()) {
case HostEnum.HOST_UAT:
headers['X-Ca-Stage'] = 'PRE'
headers['Authorization'] = 'APPCODE 83092caa603a421aa0222308b3f6b27a'
headers['appCode'] = '83092caa603a421aa0222308b3f6b27a'
headers['Authorization'] = 'APPCODE 5e1b07c336ac48ae90794fc4d69beaf9'
headers['appCode'] = '5e1b07c336ac48ae90794fc4d69beaf9'
break
case HostEnum.HOST_SIT:
headers['X-Ca-Stage'] = 'TEST'
headers['Authorization'] = 'APPCODE 0af1f9085e484c97b2a44704bae72c07'
headers['appCode'] = '0af1f9085e484c97b2a44704bae72c07'
headers['Authorization'] = 'APPCODE b7d32f50747d456d8c84ae51f3baaf56'
headers['appCode'] = 'b7d32f50747d456d8c84ae51f3baaf56'
break
case HostEnum.HOST_PRODUCT:
headers['X-Ca-Stage'] = 'RELEASE'
headers['Authorization'] = 'APPCODE 3d4181bceeb94d9780e10dbb6c67bbf6'
headers['appCode'] = '3d4181bceeb94d9780e10dbb6c67bbf6'
headers['Authorization'] = 'APPCODE c148017260324c3ba7e612757e8146c1'
headers['appCode'] = 'c148017260324c3ba7e612757e8146c1'
break
case HostEnum.HOST_DEV:
headers['X-Ca-Stage'] = 'TEST'
headers['Authorization'] = 'APPCODE ff33172859e14f9a8299e3bd769e79f9'
headers['appCode'] = 'ff33172859e14f9a8299e3bd769e79f9'
headers['Authorization'] = 'APPCODE 9272b6a5ad0549a0ab399d0011109793'
headers['appCode'] = '9272b6a5ad0549a0ab399d0011109793'
break
default:
break
...
...
@@ -82,26 +82,7 @@ export class HttpParams {
}
private static getVersion() {
// TODO
// TODO
build时间,待对接build生成属性
return '202401242103';
}
private static getVersionCode() {
// TODO
return '10000';
}
public static getVersionName() {
// TODO 读取配置
return '1.0.0';
}
//获取机型
static getPhoneModel() {
return 'getPhoneModel'
}
//获取当前手机系统版本号
static getSystemVersion() {
return 'getSystemVersion'
}
}
\ No newline at end of file
...
...
sight_harmony/features/wdComponent/oh-package.json5
View file @
7c6b9bc
...
...
@@ -20,6 +20,7 @@
"wdJsBridge"
:
"file:../../commons/wdJsBridge"
,
"wdDetailPlayApi"
:
"file:../../features/wdDetailPlayApi"
,
"wdHwAbility"
:
"file:../../features/wdHwAbility"
,
"wdShare"
:
"file:../../features/wdShare"
"wdShare"
:
"file:../../features/wdShare"
,
"wdTracking"
:
"file:../../features/wdTracking"
}
}
...
...
sight_harmony/features/wdComponent/src/main/ets/components/ENewspaperPageComponent.ets
View file @
7c6b9bc
...
...
@@ -321,6 +321,7 @@ export struct ENewspaperPageComponent {
if (this.isOpenListDialog) {
ENewspaperListDialog({
newspaperListBean: this.newspaperListBean,
scrollIndex: this.swiperIndex,
closeDialog: () => {
this.isOpenListDialog = false
}
...
...
sight_harmony/features/wdComponent/src/main/ets/components/FeedBackActivity.ets
View file @
7c6b9bc
import { FeedbackTypeBean, PhotoListBean } from 'wdBean/Index';
import { FastClickUtil, Logger, NetworkUtil, StringUtils, ToastUtils, UserDataLocal } from 'wdKit/Index';
import { AppUtils,
DeviceUtil,
FastClickUtil, Logger, NetworkUtil, StringUtils, ToastUtils, UserDataLocal } from 'wdKit/Index';
import { MultiPictureDetailViewModel } from '../viewmodel/MultiPictureDetailViewModel';
import { CustomTitleUI } from './reusable/CustomTitleUI'
import { picker } from '@kit.CoreFileKit';
...
...
@@ -8,7 +10,6 @@ import { router } from '@kit.ArkUI';
import { CommonConstants } from 'wdConstant/Index';
import { ProcessUtils } from 'wdRouter/Index';
import { HashMap } from '@kit.ArkTS';
import { HttpParams } from 'wdNetwork/src/main/ets/http/HttpCommonParams';
const TAG = 'FeedBackActivity'
...
...
@@ -355,8 +356,8 @@ export struct FeedBackActivity {
map.set("userName", UserDataLocal.getUserName());
}
//设备
map.set("appVersion", "V" + HttpParams.getVersionName());
map.set("appDevice", "harmony" + HttpParams.getSystemVersion() + " " + HttpParams.getPhoneModel());
map.set("appVersion", "V" + AppUtils.getAppVersionName());
map.set("appDevice", "harmony" + DeviceUtil.getDisplayVersion() + " " + DeviceUtil.getProductModel());
// //投诉图片
// if (imageUrl.size() > 0) {
// String[] str = imageUrl.toArray(new String[imageUrl.size()]);
...
...
sight_harmony/features/wdComponent/src/main/ets/components/MorningEveningPaper/MorningEveningPaperComponent.ets
View file @
7c6b9bc
...
...
@@ -244,10 +244,12 @@ export struct MorningEveningPaperComponent {
topicInfoView({ frontLinkObject: this.pageInfoBean?.topicInfo?.frontLinkObject })
}
if (this.audioPlayUrl.length > 0){
ListItem() {
this.AudioBarView(this.simpleAudioDialog)
}
}
}
ListItem() {
SingleColumn999Component({
...
...
sight_harmony/features/wdComponent/src/main/ets/components/MorningEveningPaper/topicInfoView.ets
View file @
7c6b9bc
...
...
@@ -39,7 +39,7 @@ export struct topicInfoView {
.borderRadius(2)
.padding({ left: 6, top: 4, bottom: 4 })
Image($r('app.media.more'))// .height($r('app.float.top_arrow_size'))
Image($r('app.media.more
_w
'))// .height($r('app.float.top_arrow_size'))
.width(12)
.height(12)
.margin({ left: 4, right: 7 })
...
...
sight_harmony/features/wdComponent/src/main/ets/components/SpacialTopicPageComponent.ets
View file @
7c6b9bc
...
...
@@ -90,9 +90,6 @@ export struct SpacialTopicPageComponent {
this.publishCommentModel.targetType = String(this.contentDetailData?.newsType || '')
this.publishCommentModel.visitorComment = String(this.contentDetailData?.visitorComment || '')
// }
if (this.contentDetailData[0]?.openComment) {
this.operationButtonList = ['collect', 'share']
}
this.trySendData2H5()
}
}
...
...
sight_harmony/features/wdComponent/src/main/ets/components/cardViewAdv/CardAdvBottom.ets
View file @
7c6b9bc
import { CompDTO } from 'wdBean/Index';
import { DateTimeUtils, Logger } from 'wdKit/Index';
import { PageHelper } from '../../viewmodel/PageHelper';
import PageModel from '../../viewmodel/PageModel';
/**
...
...
@@ -61,6 +62,7 @@ export struct CardAdvBottom {
}
if (currentIndex >= 0) {
this.pageModel.compList.deleteItem(currentIndex)
PageHelper.updateFirstPageEndIndex(this.pageModel, true, currentIndex)
}
}
}
...
...
sight_harmony/features/wdComponent/src/main/ets/components/cardViewAdv/CardAdvTop.ets
View file @
7c6b9bc
import { CompDTO } from 'wdBean/Index';
import { DateTimeUtils, Logger } from 'wdKit/Index';
import {PageHelper} from '../../viewmodel/PageHelper';
import PageModel from '../../viewmodel/PageModel';
/**
...
...
@@ -73,6 +74,7 @@ export struct CardAdvTop {
}
if (currentIndex >= 0) {
this.pageModel.compList.deleteItem(currentIndex)
PageHelper.updateFirstPageEndIndex(this.pageModel, true, currentIndex)
}
}
}
...
...
sight_harmony/features/wdComponent/src/main/ets/components/cardview/Card15Component.ets
View file @
7c6b9bc
...
...
@@ -58,6 +58,7 @@ export struct Card15Component {
}
}
.fontSize($r('app.float.font_size_18'))
.lineHeight(26)
.fontColor(this.clicked ? 0x848484 : $r('app.color.color_222222'))
.width(CommonConstants.FULL_WIDTH)
.textOverflowStyle(2)
...
...
sight_harmony/features/wdComponent/src/main/ets/components/cardview/Card6Component.ets
View file @
7c6b9bc
...
...
@@ -92,7 +92,7 @@ export struct Card6Component {
.alignItems(HorizontalAlign.Start)
.justifyContent(FlexAlign.Start)
.width('64%')
.height(this.contentDTO.appStyle === CompStyle.Card_13 ?
78
: 156)
.height(this.contentDTO.appStyle === CompStyle.Card_13 ?
''
: 156)
Stack() {
Image(this.loadImg ? this.contentDTO.coverUrl : '')
...
...
@@ -102,7 +102,6 @@ export struct Card6Component {
.height(this.contentDTO.appStyle === CompStyle.Card_13 ? 78 : 156)
CardMediaInfo({ contentDTO: this.contentDTO })
}
.alignContent(Alignment.BottomEnd)
}
.onClick((event: ClickEvent) => {
this.clicked = true;
...
...
@@ -118,5 +117,6 @@ export struct Card6Component {
.width(CommonConstants.FULL_WIDTH)
// .height(this.contentDTO.appStyle === CompStyle.Card_13 ? 107 : 217)
.justifyContent(FlexAlign.SpaceBetween)
.alignItems(VerticalAlign.Top)
}
}
\ No newline at end of file
...
...
sight_harmony/features/wdComponent/src/main/ets/components/comment/view/CommentTabComponent.ets
View file @
7c6b9bc
...
...
@@ -99,6 +99,7 @@ export struct CommentTabComponent {
bottom: { anchor: "__container__", align: VerticalAlign.Bottom },
})
.id("Image")
.visibility(this.contentDetail.appstyle !== 9 ? Visibility.Visible : Visibility.Hidden)
}
Text(this.placeHolder)
.fontSize(12)
...
...
@@ -110,11 +111,13 @@ export struct CommentTabComponent {
bottom: { anchor: "__container__", align: VerticalAlign.Bottom },
})
.id("Text")
.visibility(this.contentDetail.appstyle !== 9 ? Visibility.Visible : Visibility.Hidden)
}
}
}
.height(30)
.onClick(() => {
if(this.contentDetail.appstyle === 9) return
this.onCommentFocus && this.onCommentFocus()
this.publishCommentModel.rootCommentId = '-1';
...
...
@@ -134,6 +137,7 @@ export struct CommentIconComponent {
@ObjectLink publishCommentModel: publishCommentModel
/*展示类型*/
@State type: number = 1
@Prop contentDetail: ContentDetailDTO
styleType: number = 1 //1: 白色背景(图文底部栏) 2: 黑色背景(图集底部栏)
// aboutToAppear(): void {
// setTimeout(() => {
...
...
@@ -206,7 +210,10 @@ export struct CommentIconComponent {
}
}
}.width(24).height(24)
}
.width(24)
.height(24)
.visibility(this.contentDetail.appstyle !== 9 ? Visibility.Visible : Visibility.Hidden)
// .backgroundColor(Color.Blue)
}
...
...
sight_harmony/features/wdComponent/src/main/ets/components/compview/ZhSingleRow04.ets
View file @
7c6b9bc
...
...
@@ -148,7 +148,7 @@ struct localCard {
offsetY: 3
}) // 设置下方阴影
.margin({
right:
10
right:
-2
})
}
}
\ No newline at end of file
...
...
sight_harmony/features/wdComponent/src/main/ets/components/mine/MinePageMoreFunctionUI.ets
View file @
7c6b9bc
...
...
@@ -2,6 +2,7 @@ import MinePageMoreFunctionModel from '../../viewmodel/MinePageMoreFunctionModel
import { WDRouterRule, WDRouterPage, ProcessUtils } from 'wdRouter'
import { Params } from 'wdBean';
import { ToastUtils } from 'wdKit/Index';
import { TrackingButton, TrackConstants } from 'wdTracking/Index';
@Component
export default struct MinePageMoreFunctionUI {
...
...
@@ -70,13 +71,16 @@ export default struct MinePageMoreFunctionUI {
.onClick(() => {
console.log(index + "")
if (item.msg == "设置") { //设置
trackButtonClick("myPageUserSetting")
let params: Params = {
pageID: 'mainSetting'
}
WDRouterRule.jumpWithPage(WDRouterPage.settingPage, params)
}else if (item.msg == "关于") { // 关于
trackButtonClick("myPageUserAbout")
WDRouterRule.jumpWithPage(WDRouterPage.aboutPage)
}else if (item.msg == "意见反馈") { // 关于
trackButtonClick("myPageUserFeedBack")
ProcessUtils.gotoFeedBackActivity()
}
})
...
...
@@ -91,3 +95,7 @@ export default struct MinePageMoreFunctionUI {
.margin({ left: '23lpx', right: '23lpx', top: "19lpx" })
}
}
function trackButtonClick(buttonName: string){
TrackingButton.click(buttonName, TrackConstants.PageName.My, TrackConstants.PageName.My)
}
\ No newline at end of file
...
...
sight_harmony/features/wdComponent/src/main/ets/components/mine/MinePagePersonFunctionUI.ets
View file @
7c6b9bc
import { WDRouterRule, WDRouterPage } from 'wdRouter'
import { TrackConstants } from 'wdTracking/src/main/ets/common/TrackConstants'
import { TrackingButton } from 'wdTracking/src/main/ets/tracking/TrackingButton'
import MinePageDatasModel from '../../model/MinePageDatasModel'
import MinePagePersonalFunctionsItem from '../../viewmodel/MinePagePersonalFunctionsItem'
import { PagePersonFunction } from './PagePersonFunction'
...
...
@@ -25,6 +27,7 @@ export default struct MinePagePersonFunctionUI {
}else {
let params: Record<string, string> = {'comment': "1"};
WDRouterRule.jumpWithPage(WDRouterPage.mineHomePage,params)
trackButtonClick("myPageUserComment")
}
break;
}
...
...
@@ -33,6 +36,7 @@ export default struct MinePagePersonFunctionUI {
WDRouterRule.jumpWithPage(WDRouterPage.loginPage)
return
}
trackButtonClick("myPageUserSubscribe")
WDRouterRule.jumpWithPage(WDRouterPage.appointmentListPage)
break;
}
...
...
@@ -42,6 +46,7 @@ export default struct MinePagePersonFunctionUI {
return
}
WDRouterRule.jumpWithPage(WDRouterPage.followListPage)
trackButtonClick("myPageUserFollow")
break;
}
case "收藏":{
...
...
@@ -50,6 +55,7 @@ export default struct MinePagePersonFunctionUI {
return
}
WDRouterRule.jumpWithPage(WDRouterPage.myCollectionListPagePage)
trackButtonClick("myPageUserCollection")
break;
}
case "历史":{
...
...
@@ -66,6 +72,7 @@ export default struct MinePagePersonFunctionUI {
return
}
this.messageClick()
trackButtonClick("myPageUserNotice")
WDRouterRule.jumpWithPage(WDRouterPage.mineMessagePage)
break;
}
...
...
@@ -89,3 +96,7 @@ export default struct MinePagePersonFunctionUI {
}
}
function trackButtonClick(buttonName: string){
TrackingButton.click(buttonName, TrackConstants.PageName.My, TrackConstants.PageName.My)
}
...
...
sight_harmony/features/wdComponent/src/main/ets/components/mine/MinePageUserSimpleInfoUI.ets
View file @
7c6b9bc
import { StringUtils, UserDataLocal } from 'wdKit'
import { WDRouterPage, WDRouterRule } from 'wdRouter'
import { TrackingButton, TrackConstants } from 'wdTracking/Index'
import MinePageDatasModel from '../../model/MinePageDatasModel'
const TAG = "MinePageUserSimpleInfoUI"
...
...
@@ -45,6 +46,7 @@ export default struct MinePageUserSimpleInfoUI {
.alignContent(Alignment.Center)
.onClick(()=>{
this.jumpLogin()
trackButtonClick("myPageUserHead")
})
if(this.isLogin){
...
...
@@ -68,6 +70,7 @@ export default struct MinePageUserSimpleInfoUI {
}.width('100%')
.onClick(()=>{
this.jumpLogin()
trackButtonClick("myPageUserName")
})
Stack(){
...
...
@@ -101,6 +104,7 @@ export default struct MinePageUserSimpleInfoUI {
Blank()
}.onClick(()=>{
this.jumpLogin()
trackButtonClick("myPageUserLogin")
})
.margin({top:'11lpx',left:'23lpx'})
.width('352lpx')
...
...
@@ -198,3 +202,7 @@ export default struct MinePageUserSimpleInfoUI {
}
}
}
function trackButtonClick(buttonName: string){
TrackingButton.click(buttonName, TrackConstants.PageName.My, TrackConstants.PageName.My)
}
...
...
sight_harmony/features/wdComponent/src/main/ets/components/mine/message/MessageListUI.ets
View file @
7c6b9bc
import { DateTimeUtils, StringUtils, ToastUtils } from 'wdKit/Index'
import { WDRouterPage, WDRouterRule } from 'wdRouter/Index'
import { WDMessageCenterMessageType } from '../../../model/InteractMessageModel'
import {
Remark,
WDMessageCenterMessageType } from '../../../model/InteractMessageModel'
import MinePageDatasModel from '../../../model/MinePageDatasModel'
import { MessageItem } from '../../../viewmodel/MessageItem'
import { CustomPullToRefresh } from '../../reusable/CustomPullToRefresh'
...
...
@@ -66,6 +66,24 @@ export struct MessageListUI {
if (value.activeInfo.title) {
item.desc = value.activeInfo.title.replace("null","")
}
let remark = JSON.parse(value.activeInfo.remark) as Remark
switch (value.activeInfo.contentType){
case "204":
item.desc = remark.userName + "关注了你"
break;
case "206":
item.desc = remark.userName +"赞了你的作品"
break;
case "207":
item.desc = remark.userName + "赞了你的评论"
break;
case "208":
item.desc = remark.userName + "评论了你的作品"
break;
case "209":
item.desc = remark.userName + "回复了你的评论"
break;
}
if (value.activeInfo.time) {
item.time = this.getPublishTime(value.subscribeInfo.time,DateTimeUtils.getDateTimestamp(value.activeInfo.time) + "")
}
...
...
sight_harmony/features/wdComponent/src/main/ets/components/page/AppointmentListPage.ets
View file @
7c6b9bc
import { DateTimeUtils } from 'wdKit/Index';
import { TrackingPageBrowse, TrackConstants } from 'wdTracking/Index';
import { AppointmentListUI } from '../mine/appointment/AppointmentListUI'
const TAG = "AppointmentListPage"
...
...
@@ -5,6 +7,19 @@ const TAG = "AppointmentListPage"
@Entry
@Component
struct AppointmentListPage {
pageShowTime:number = 0;
pageHideTime:number = 0;
onPageShow() {
this.pageShowTime = DateTimeUtils.getTimeStamp()
}
onPageHide(): void {
this.pageHideTime = DateTimeUtils.getTimeStamp()
let duration = 0
duration = Math.floor((this.pageHideTime - this.pageShowTime)/1000)
TrackingPageBrowse.trackCommonPageExposureEnd(TrackConstants.PageName.My_Saved_Live,TrackConstants.PageName.My_Saved_Live,duration)
}
build() {
Column(){
...
...
sight_harmony/features/wdComponent/src/main/ets/components/page/BottomNavigationComponent.ets
View file @
7c6b9bc
...
...
@@ -73,7 +73,7 @@ export struct BottomNavigationComponent {
TabContent() {
if (CompUtils.isMine(navItem)) {
// 我的页面组件数据列表
MinePageComponent()
MinePageComponent(
{isMinePage: this.currentNavIndex === this.bottomNavList.length-1}
)
} else if (navItem.name === '视频') {
// 视频频道,包含视频和直播
VideoChannelPage({
...
...
sight_harmony/features/wdComponent/src/main/ets/components/page/CardView.ets
View file @
7c6b9bc
...
...
@@ -424,7 +424,7 @@ export struct PaperSingleColumn999CardView {
Text(this.item?.newsTitle)
.fontColor('#222222')
.fontSize(16)
.fontWeight(FontWeight.
Bold
)
.fontWeight(FontWeight.
Medium
)
.alignSelf(ItemAlign.Start)
.maxLines(3)
.textOverflow({ overflow: TextOverflow.Ellipsis })// 超出的部分显示省略号。
...
...
@@ -478,6 +478,7 @@ export struct PaperSingleColumn999CardView {
if (this.item) {
Row() {
Row() {
if (this.item?.source.length > 0) {
Text(this.item?.source)
.fontSize(12)
.fontColor('#B0B0B0')
...
...
@@ -486,9 +487,12 @@ export struct PaperSingleColumn999CardView {
.width(16)
.height(16)
.margin({ top: 10, bottom: 10 })
}
Text(this.getPublishTime())
.fontSize(12)
.fontColor('#B0B0B0')
.margin({ left: this.item?.source.length > 0?0:16 })
if (this.item.objectType != '2' && this.interactData && this.interactData.commentNum && Number(this.interactData.collectNum) > 0) {
Text(this.interactData.commentNum + "评")
.fontSize(12)
...
...
sight_harmony/features/wdComponent/src/main/ets/components/page/FollowListPage.ets
View file @
7c6b9bc
import { Params } from 'wdBean';
import { FollowFirstTabsComponent } from '../mine/follow/FollowFirstTabsComponent'
import router from '@ohos.router';
import { DateTimeUtils } from 'wdKit/Index';
import { TrackingPageBrowse, TrackConstants } from 'wdTracking/Index';
@Entry
@Component
struct FollowListPage {
@State params:Record<string, string> = router.getParams() as Record<string, string>;
@State curIndex: string = '0';
pageShowTime:number = 0;
pageHideTime:number = 0;
onPageShow() {
this.curIndex = this.params?.['index'];
this.pageShowTime = DateTimeUtils.getTimeStamp()
}
onPageHide(): void {
this.pageHideTime = DateTimeUtils.getTimeStamp()
let duration = 0
duration = Math.floor((this.pageHideTime - this.pageShowTime)/1000)
TrackingPageBrowse.trackCommonPageExposureEnd(TrackConstants.PageName.My_Follow,TrackConstants.PageName.My_Follow,duration)
}
build() {
...
...
sight_harmony/features/wdComponent/src/main/ets/components/page/MinePageComponent.ets
View file @
7c6b9bc
...
...
@@ -5,10 +5,12 @@ import MinePageDatasModel from '../../model/MinePageDatasModel'
import MinePageUserSimpleInfoUI from '../mine/MinePageUserSimpleInfoUI'
import MinePagePersonFunctionUI from '../mine/MinePagePersonFunctionUI'
import MinePageMoreFunctionUI from '../mine/MinePageMoreFunctionUI'
import { SPHelper, StringUtils } from 'wdKit'
import {
DateTimeUtils,
SPHelper, StringUtils } from 'wdKit'
import { SpConstants } from 'wdConstant'
import dataPreferences from '@ohos.data.preferences';
import { MergeRecordDialog } from '../../dialog/MergeRecordDialog'
import { TrackingPageBrowse } from 'wdTracking/src/main/ets/tracking/TrackingPageBrowse'
import { TrackConstants } from 'wdTracking/src/main/ets/common/TrackConstants'
const TAG = 'MinePageComponent';
...
...
@@ -52,12 +54,35 @@ export struct MinePageComponent {
autoCancel: false
})
@Consume @Watch('pageShowForUpdateData') pageShow :number
@Consume @Watch('pageHideForUpdateData') pageHide :number
pageShowTime:number = 0;
pageHideTime:number = 0;
pageFirstCreateTime:number = 0;
@Prop isMinePage:boolean = false;
//第一次还没创建时候 pageShow 接收不到监听
pageShowForUpdateData(): void {
if(this.isMinePage){
this.getMessageData()
this.pageShowTime = DateTimeUtils.getTimeStamp()
}
}
pageHideForUpdateData(): void {
if(this.isMinePage){
this.pageHideTime = DateTimeUtils.getTimeStamp()
let duration = 0
if(this.pageShowTime != 0){
duration = (this.pageHideTime - this.pageShowTime)/1000
}else{
duration = (this.pageHideTime - this.pageFirstCreateTime)/1000
}
TrackingPageBrowse.trackCommonPageExposureEnd(TrackConstants.PageName.My,TrackConstants.PageName.My,Math.floor(duration))
}
}
aboutToAppear(){
this.pageFirstCreateTime = DateTimeUtils.getTimeStamp()
this.getUserLogin()
this.getFunctionData()
this.addLoginStatusObserver()
...
...
sight_harmony/features/wdComponent/src/main/ets/components/page/PrivacySettingPage.ets
View file @
7c6b9bc
import { PermissionUtil } from 'wdKit'
import {
DateTimeUtils,
PermissionUtil } from 'wdKit'
import { PrivacySettingModel } from '../../model/PrivacySettingModel'
import { Params } from 'wdBean';
import { WDRouterPage, WDRouterRule } from 'wdRouter';
import { HttpUtils } from 'wdNetwork/Index';
import { TrackingPageBrowse, TrackConstants } from 'wdTracking/Index';
const TAG = 'PrivacySettingPage';
const DiyString = '开启个性化推荐'
...
...
@@ -15,9 +16,19 @@ export struct PrivacySettingPage {
tips: string = '设置前可查阅'
privacyTips: string = '《隐私政策》'
tipsEnd = '中相应权限使用规则'
pageShowTime:number = 0;
pageHideTime:number = 0;
onPageShow(): void {
this.getPermissionStatus();
this.pageShowTime = DateTimeUtils.getTimeStamp()
}
onPageHide(): void {
this.pageHideTime = DateTimeUtils.getTimeStamp()
let duration = 0
duration = Math.floor((this.pageHideTime - this.pageShowTime)/1000)
TrackingPageBrowse.trackCommonPageExposureEnd(TrackConstants.PageName.Privacy_Setting,TrackConstants.PageName.Privacy_Setting,duration)
}
aboutToAppear() {
...
...
sight_harmony/features/wdComponent/src/main/ets/components/page/SettingAboutPage.ets
View file @
7c6b9bc
import { DateTimeUtils } from 'wdKit/Index';
import { TrackingPageBrowse, TrackConstants } from 'wdTracking/Index';
import { AboutPageUI } from '../setting/AboutPageUI';
@Entry
@Component
struct SettingAboutPage {
pageShowTime:number = 0;
pageHideTime:number = 0;
onPageShow() {
this.pageShowTime = DateTimeUtils.getTimeStamp()
}
onPageHide(): void {
this.pageHideTime = DateTimeUtils.getTimeStamp()
let duration = 0
duration = Math.floor((this.pageHideTime - this.pageShowTime)/1000)
TrackingPageBrowse.trackCommonPageExposureEnd(TrackConstants.PageName.About,TrackConstants.PageName.About,duration)
}
build() {
Column(){
AboutPageUI()
...
...
sight_harmony/features/wdComponent/src/main/ets/components/page/SettingPage.ets
View file @
7c6b9bc
...
...
@@ -4,6 +4,7 @@ import { AccountAndSecurityLayout } from '../setting/AccountAndSecurityLayout';
import router from '@ohos.router';
import { Action, Params } from 'wdBean';
import { DateTimeUtils } from 'wdKit/Index';
import { TrackingPageBrowse, TrackConstants } from 'wdTracking/Index';
@Entry
@Component
...
...
@@ -13,10 +14,39 @@ struct SettingPage {
@State params:Params = router.getParams() as Params;
@State enterActivityTime:number = 0;
onPageShow() {
pageShowSettingTime:number = 0;
pageHideSettingTime:number = 0;
pageShowAccountTime:number = 0;
pageHideAccountTime:number = 0;
onPageShow() {
this.pageType = this.params.pageID;
this.enterActivityTime = DateTimeUtils.getTimeStamp()
if (this.pageType == 'mainSetting'){
this.pageShowSettingTime = DateTimeUtils.getTimeStamp()
}else{
this.pageShowAccountTime = DateTimeUtils.getTimeStamp()
}
}
onPageHide(): void {
if (this.pageType == 'mainSetting'){
this.pageHideSettingTime = DateTimeUtils.getTimeStamp()
}else{
this.pageHideAccountTime = DateTimeUtils.getTimeStamp()
}
let duration = 0
if(this.pageType == 'mainSetting'){
duration = Math.floor((this.pageHideSettingTime - this.pageShowSettingTime)/1000)
}else{
duration = Math.floor((this.pageHideAccountTime - this.pageShowAccountTime)/1000)
}
if(this.pageType == 'mainSetting'){
TrackingPageBrowse.trackCommonPageExposureEnd(TrackConstants.PageName.Setting,TrackConstants.PageName.Setting,duration)
}else{
TrackingPageBrowse.trackCommonPageExposureEnd(TrackConstants.PageName.Account_Management,TrackConstants.PageName.Account_Management,duration)
}
}
build() {
...
...
sight_harmony/features/wdComponent/src/main/ets/components/setting/AboutPageUI.ets
View file @
7c6b9bc
...
...
@@ -24,11 +24,7 @@ export struct AboutPageUI {
})
build() {
// Navigation() {
//滑动区域
this.aboutUi()
// }.titleMode(NavigationTitleMode.Mini)
// .title('关于')
}
aboutToAppear() {
...
...
@@ -55,18 +51,6 @@ export struct AboutPageUI {
this.dialogController.open()
})
)
// Row(){
//
// }.backgroundColor(Color.Yellow)
// .width('100%')
// .height('97lpx')
// Row(){
//
// }.backgroundColor(Color.Yellow)
// .width('100%')
// .height('97lpx')
List() {
ForEach(this.listData, (item: string, index: number) => {
...
...
sight_harmony/features/wdComponent/src/main/ets/components/setting/MineSettingComponent.ets
View file @
7c6b9bc
...
...
@@ -85,69 +85,6 @@ export struct MineSettingComponent {
}
}
// // 页面布局
// @Builder settingList() {
// Column() {
// List() {
// // 循环渲染ListItemGroup,contactsGroups为多个分组联系人contacts和标题title的数据集合
// ForEach(this.listData, (item: Array<string>, index: number) => {
// ListItemGroup({ header: index === 0 ? this.itemHead("") : this.itemHead("1") }) {
// // 循环渲染ListItem
// ForEach(item, (subItem: string, subIndex: number) => {
// ListItem() {
// if (subIndex == 6) {
// this.getArrowCell(subItem, subIndex, index)
// } else if (subIndex == 1 || subIndex == 3 || subIndex == 4 || subIndex == 5) {
// if (subIndex == 1 && index == 1) {
// this.getArrowCell(subItem, subIndex, index)
// } else {
// this.getSwitchCell(subItem, subIndex)
// }
//
// } else {
// this.getArrowCell(subItem, subIndex, index)
// }
//
// }.padding({ left: '27lpx' })
// .onClick(() => {
//
// // // 在Home页面中
// // let paramsInfo: object = {
// // pageId: 123,
// // pageType:'AccountAndSecurityLayout'
// // };
// console.log(subIndex + "")
// if (subIndex == 0 && index == 0) {
//
// let params: Params = {
// pageID: 'AccountAndSecurityLayout'
// }
// WDRouterRule.jumpWithPage(WDRouterPage.settingPage, params)
// }else if (subIndex == 2 && index == 0) {
// WDRouterRule.jumpWithPage(WDRouterPage.privacySettingPage)
// }else if (subIndex == 0 && index == 1) {
// this.dialogController.open()
// }
//
// })
// .height('117lpx')
// })
// }
// .divider({
// strokeWidth: 1,
// startMargin: 15,
// endMargin: 10,
// color: '#f0f0f0'
// })
// })
// }.onScrollFrameBegin((offset, state) => {
// return { offsetRemain: 0 }
// })
// }
// .backgroundColor(Color.White)
// .borderRadius(8)
// }
// 页面布局
@Builder settingList() {
Column() {
...
...
@@ -247,12 +184,6 @@ export struct MineSettingComponent {
Row() {
// 左侧logo和标题
Row() {
// 判断有没有图片
// if (this.privacySwitch) {
// Image('https://pic.rmb.bdstatic.com/e182cf67c341d1128d2a6cc05886bf62.jpeg@s_0,h_2000')
// .height('38lpx')
// .margin({ right: '5lpx' })
// }
Text(`${item.title}`)
.margin({ top: '8lpx' })
.height('38lpx')
...
...
sight_harmony/features/wdComponent/src/main/ets/components/view/OperRowListView.ets
View file @
7c6b9bc
...
...
@@ -234,7 +234,11 @@ export struct OperRowListView {
if (this.showCommentIcon) {
Column() {
if (this.publishCommentModel?.targetId) {
CommentIconComponent({ publishCommentModel: this.publishCommentModel, styleType: this.styleType })
CommentIconComponent({
publishCommentModel: this.publishCommentModel,
styleType: this.styleType,
contentDetail: this.contentDetailData
})
.onClick(() => {
this.onCommentIconClick()
...
...
sight_harmony/features/wdComponent/src/main/ets/model/InteractMessageModel.ets
View file @
7c6b9bc
...
...
@@ -109,4 +109,5 @@ export class Remark{
coverImageUrl:string = ""
relationId:string = ""
status:string = ""
userName:string = ""
}
\ No newline at end of file
...
...
sight_harmony/features/wdComponent/src/main/ets/pages/MineHomePage.ets
View file @
7c6b9bc
import router from '@ohos.router'
import { NetworkUtil, StringUtils } from 'wdKit';
import {
DateTimeUtils,
NetworkUtil, StringUtils } from 'wdKit';
import { WDRouterPage, WDRouterRule } from 'wdRouter';
import { editModelParams } from '../model/EditInfoModel';
import { HomePageBottomCommentComponent } from '../components/mine/home/HomePageBottomCommentComponent';
...
...
@@ -7,6 +7,7 @@ import { HomePageBottomFollowComponent } from '../components/mine/home/HomePageB
import MinePageDatasModel from '../model/MinePageDatasModel';
import { EmptyComponent } from '../components/view/EmptyComponent';
import { CustomTitleUI } from '../components/reusable/CustomTitleUI';
import { TrackingPageBrowse, TrackConstants } from 'wdTracking/Index';
const TAG = "MineHomePage"
...
...
@@ -37,8 +38,11 @@ struct MineHomePage {
@State isCommentEnter:string = "";
@State isConnectNetwork : boolean = NetworkUtil.isNetConnected()
@State topSafeHeight: number = AppStorage.get<number>('topSafeHeight') || 0
pageShowTime:number = 0;
pageHideTime:number = 0;
onPageShow(): void {
this.pageShowTime = DateTimeUtils.getTimeStamp()
this.getUserInfo()
let intervalID = setInterval(() => {
...
...
@@ -50,6 +54,13 @@ struct MineHomePage {
}, 200);
}
onPageHide(): void {
this.pageHideTime = DateTimeUtils.getTimeStamp()
let duration = 0
duration = Math.floor((this.pageHideTime - this.pageShowTime)/1000)
TrackingPageBrowse.trackCommonPageExposureEnd(TrackConstants.PageName.Main_Personal,TrackConstants.PageName.Main_Personal,duration)
}
build() {
if(this.isConnectNetwork){
Stack({ alignContent: Alignment.Top }){
...
...
sight_harmony/features/wdComponent/src/main/ets/pages/OtherNormalUserHomePage.ets
View file @
7c6b9bc
import router from '@ohos.router'
import { Params } from 'wdBean';
import { NetworkUtil, StringUtils } from 'wdKit';
import { DateTimeUtils, NetworkUtil, StringUtils } from 'wdKit';
import { TrackingPageBrowse, TrackConstants } from 'wdTracking/Index';
import { OtherHomePageBottomCommentComponent } from '../components/mine/home/OtherHomePageBottomCommentComponent';
import { OtherHomePageBottomFollowComponent } from '../components/mine/home/OtherHomePageBottomFollowComponent';
import { CustomTitleUI } from '../components/reusable/CustomTitleUI';
...
...
@@ -16,9 +17,20 @@ struct OtherNormalUserHomePage {
@State params:Record<string, string> = router.getParams() as Record<string, string>;
@Watch('change') @State curUserId: string = '-1';
@State topSafeHeight: number = AppStorage.get<number>('topSafeHeight') || 0
pageShowTime:number = 0;
pageHideTime:number = 0;
onPageShow() {
this.curUserId = this.params?.['userId'];
this.pageShowTime = DateTimeUtils.getTimeStamp()
}
onPageHide(): void {
this.pageHideTime = DateTimeUtils.getTimeStamp()
let duration = 0
duration = Math.floor((this.pageHideTime - this.pageShowTime)/1000)
TrackingPageBrowse.trackCommonPageExposureEnd(TrackConstants.PageName.Customer_Personal,TrackConstants.PageName.Customer_Personal,duration)
}
change(){
...
...
sight_harmony/features/wdComponent/src/main/ets/pages/SearchPage.ets
View file @
7c6b9bc
import { DateTimeUtils } from 'wdKit/Index';
import { TrackingPageBrowse, TrackConstants } from 'wdTracking/Index';
import { SearchComponent } from '../components/search/SearchComponent'
@Entry
@Component
struct SearchPage {
pageShowTime:number = 0;
pageHideTime:number = 0;
onPageShow() {
this.pageShowTime = DateTimeUtils.getTimeStamp()
}
onPageHide(): void {
this.pageHideTime = DateTimeUtils.getTimeStamp()
let duration = 0
duration = Math.floor((this.pageHideTime - this.pageShowTime)/1000)
TrackingPageBrowse.trackCommonPageExposureEnd(TrackConstants.PageName.Search,TrackConstants.PageName.Search,duration)
}
build() {
Column(){
SearchComponent()
...
...
sight_harmony/features/wdComponent/src/main/ets/pages/VideoPlayPage.ets
View file @
7c6b9bc
import { DateFormatUtil, WDPlayerController, WDPlayerRenderLiveView } from 'wdPlayer/Index';
import { DateFormatUtil, WD
AliPlayerController, WD
PlayerController, WDPlayerRenderLiveView } from 'wdPlayer/Index';
import router from '@ohos.router';
import { StringUtils } from 'wdKit/Index';
import { Action } from 'wdBean';
...
...
@@ -10,7 +10,7 @@ const TAG = 'VideoPlayPage';
export struct VideoPlayPage {
//是否处于播放状态中
@State isPlayStatus: boolean = true
playerController: WD
PlayerController = new WD
PlayerController();
playerController: WD
AliPlayerController = new WDAli
PlayerController();
//视频地址
@State videoUrl: string = ''
//封面图
...
...
sight_harmony/features/wdComponent/src/main/ets/viewmodel/MessageUnReadItem.ets
View file @
7c6b9bc
...
...
@@ -41,11 +41,23 @@ class SystemInfo{
time: string = ""
title: string = ""
userId: number = -1
remark: string = ""
}
class ActiveInfo{
id:string = ""
classify: string = ""
contentId: string = ""
contentType: string = ""
id: number = -1
message: string = ""
platform: string = ""
privateMailId: number = -1
privateMailIds: string = ""
privateMailNum: number = -1
read: boolean = false
source: string = ""
time: string = ""
title: string = ""
userId: number = -1
remark: string = ""
}
\ No newline at end of file
...
...
sight_harmony/features/wdComponent/src/main/ets/viewmodel/PageHelper.ets
View file @
7c6b9bc
...
...
@@ -80,7 +80,7 @@ export class PageHelper {
return;
}
pageModel.pageInfo = pageInfo;
pageModel.
cache
PageInfoMd5 = pageInfo.md5
pageModel.
display
PageInfoMd5 = pageInfo.md5
//解析页面挂角广告资源
pageAdvModel.analysisAdvSource(pageInfo);
this.parseGroup(pageModel, true)
...
...
@@ -129,7 +129,7 @@ export class PageHelper {
return;
}
pageModel.pageInfo = pageInfo;
if (pageInfo.md5 == pageModel.
cache
PageInfoMd5) {
if (pageInfo.md5 == pageModel.
display
PageInfoMd5) {
// 缓存一致,不解析
Logger.debug(TAG, 'getPageInfo 与缓存一致,不解析广告。。。')
} else {
...
...
@@ -138,6 +138,7 @@ export class PageHelper {
// 保存缓存
CacheData.saveCacheData(CacheData.comPageInfoCacheKey + pageModel.pageId, pageInfo, pageInfo.md5)
}
pageModel.displayPageInfoMd5 = pageInfo.md5
//解析页面挂角广告资源
pageAdvModel.analysisAdvSource(pageInfo);
}
...
...
@@ -185,15 +186,25 @@ export class PageHelper {
Logger.debug(TAG, 'parseGroup isCache: ' + isCache)
if (isCache) {
pageDto = await PageViewModel.getPageGroupCacheData(pageModel.bizCopy()) as PageDTO
pageModel.
cache
GroupInfoMd5 = pageDto.md5
pageModel.
display
GroupInfoMd5 = pageDto.md5
} else {
pageDto = await PageViewModel.getPageGroupCompData(pageModel.bizCopy()) as PageDTO
if (pageDto.md5 == pageModel.
cache
GroupInfoMd5) {
if (pageDto.md5 == pageModel.
display
GroupInfoMd5) {
Logger.debug(TAG, 'parseGroup cache load, return: ' + pageDto.md5)
// 下拉刷新场景,数据没变,拦截刷新UI,重置相关参数
if (pageModel.loadStrategy === 2) {
// 缓存数据一致,不再刷新
this.refreshUIEnd(pageModel, true)
// 第一页不刷新,分页数据清除
pageModel.hasMore = true
this.deleteMorePage(pageModel)
pageModel.pageTotalCompSize = pageModel.compList.size()
}
pageModel.currentPage++
return
}
Logger.debug(TAG, 'parseGroup cache load, save: ')
pageModel.displayGroupInfoMd5 = pageDto.md5
Logger.debug(TAG, 'parseGroup cache load, save: ' + pageDto.md5)
// 保存缓存
CacheData.saveCacheData(CacheData.compGroupInfoDataCacheKey + pageModel.pageId + pageModel.groupId, pageDto,
pageDto.md5)
...
...
@@ -238,9 +249,11 @@ export class PageHelper {
// 批查互动数据
this.allCompBatchRequest(pageInfo.oneRequestPageGroupCompList.convertToArray(), pageModel)
//
// 记录第一页数量
this.saveFirstPageEndIndex(pageModel)
if (!isCache) {
pageModel.currentPage++
}
pageModel.viewType = ViewType.LOADED
this.refreshUIEnd(pageModel, true)
...
...
@@ -754,6 +767,40 @@ export class PageHelper {
}
}
saveFirstPageEndIndex(pageModel: PageModel) {
pageModel.firstPageEndIndex = pageModel.compList.size() - 1
}
static updateFirstPageEndIndex(pageModel: PageModel, isDel: boolean, index: number) {
if (index > pageModel.firstPageEndIndex) {
return
}
// 这里默认删除、添加都是一条一条处理
let count = 1
let endIndex = pageModel.firstPageEndIndex
if (isDel) {
// 第一页里删除
let offset = Math.min(endIndex - index, count)
endIndex = endIndex - offset
} else {
// 第一页里添加
endIndex = endIndex + count
}
pageModel.firstPageEndIndex = endIndex
}
/**
* 删除分页数据,保留第一页的数据。(下拉刷新场景用到)
*/
deleteMorePage(pageModel: PageModel) {
Logger.debug(TAG, 'deleteMorePage endindex: ' + pageModel.firstPageEndIndex)
if (pageModel.firstPageEndIndex < 0) {
return
}
// 从第二页开始删
pageModel.compList.deleteItems(pageModel.firstPageEndIndex + 1)
}
}
...
...
sight_harmony/features/wdComponent/src/main/ets/viewmodel/PageModel.ets
View file @
7c6b9bc
...
...
@@ -63,9 +63,11 @@ export default class PageModel {
pageType: number = 0;
extra: string = ''
// 缓存数据相关
cachePageInfoMd5: string = ''
cacheGroupInfoMd5: string = ''
// 页面加载,md5数据相关(初始缓存、下拉刷新用到)
displayPageInfoMd5: string = ''
displayGroupInfoMd5: string = ''
// 第一页,最后一个comp下标,用于区分分页加载(下拉刷新,清除分页数据)
firstPageEndIndex = -1
/**
* 简单复制业务数据
...
...
sight_harmony/features/wdComponent/src/main/resources/base/media/more_w.png
0 → 100644
View file @
7c6b9bc
479 Bytes
sight_harmony/features/wdDetailPlayLive/src/main/ets/pages/DetailPlayLivePage.ets
View file @
7c6b9bc
...
...
@@ -8,7 +8,7 @@ import { Logger, WindowModel } from 'wdKit/Index';
import { router, window } from '@kit.ArkUI';
import { devicePLSensorManager } from 'wdDetailPlayApi/Index';
import { LiveCommentComponent } from 'wdComponent/Index';
import { WDPlayerController } from 'wdPlayer/Index';
import { WD
AliPlayerController, WD
PlayerController } from 'wdPlayer/Index';
import { OperRowListView } from 'wdComponent/src/main/ets/components/view/OperRowListView';
import { publishCommentModel } from 'wdComponent/src/main/ets/components/comment/model/PublishCommentModel';
import { ResponseDTO } from 'wdNetwork/Index';
...
...
@@ -19,7 +19,7 @@ let TAG: string = 'DetailPlayLivePage';
export struct DetailPlayLivePage {
//横竖屏,默认竖屏
@Provide displayDirection: DisplayDirection = DisplayDirection.VERTICAL
playerController: WD
PlayerController = new WD
PlayerController();
playerController: WD
AliPlayerController = new WDAli
PlayerController();
liveViewModel: LiveViewModel = new LiveViewModel()
@State relId: string = ''
@State contentId: string = ''
...
...
sight_harmony/features/wdDetailPlayLive/src/main/ets/pages/DetailPlayVLivePage.ets
View file @
7c6b9bc
...
...
@@ -4,7 +4,7 @@ import router from '@ohos.router';
import { WindowModel } from 'wdKit/Index';
import { PlayerComponent } from '../widgets/vertical/PlayerComponent';
import { PlayerInfoComponent } from '../widgets/vertical/PlayerInfoComponent';
import { WDPlayerController } from 'wdPlayer/Index';
import { WD
AliPlayerController, WD
PlayerController } from 'wdPlayer/Index';
import { DisplayDirection } from 'wdConstant/Index';
import { LiveEmptyComponent, WDLiveViewDefaultType } from 'wdComponent/Index';
import { PlayerEndView } from '../widgets/vertical/PlayerEndView';
...
...
@@ -16,7 +16,7 @@ const TAG = 'DetailPlayVLivePage'
@Component
export struct DetailPlayVLivePage {
private liveViewModel: LiveViewModel = new LiveViewModel()
private playerController: WD
PlayerController = new WD
PlayerController();
private playerController: WD
AliPlayerController = new WDAli
PlayerController();
private swiperController: SwiperController = new SwiperController()
@Provide bottomSafeHeight: number = AppStorage.get<number>('bottomSafeHeight') || 0
@Provide topSafeHeight: number = AppStorage.get<number>('topSafeHeight') || 0
...
...
sight_harmony/features/wdDetailPlayLive/src/main/ets/widgets/details/video/PlayUIComponent.ets
View file @
7c6b9bc
...
...
@@ -2,14 +2,14 @@ import { window } from '@kit.ArkUI'
import lottie from '@ohos/lottie';
import { NumberFormatterUtils, StringUtils, WindowModel } from 'wdKit/Index'
import { DateFormatUtil, WDPlayerController } from 'wdPlayer/Index'
import { DateFormatUtil, WD
AliPlayerController, WD
PlayerController } from 'wdPlayer/Index'
import { LiveDetailsBean, LiveRoomDataBean } from 'wdBean/Index'
import { DisplayDirection } from 'wdConstant/Index'
import { LiveFollowComponent, LottieView } from 'wdComponent/Index'
@Component
export struct PlayUIComponent {
playerController
: WDPlayerController = new WDPlayerController()
;
playerController
?: WDAliPlayerController
;
//菜单键是否可见
@State @Watch('onChangeMenuVisible') isMenuVisible: boolean = true
@Consume liveDetailsBean: LiveDetailsBean
...
...
@@ -39,12 +39,14 @@ export struct PlayUIComponent {
aboutToAppear(): void {
this.onChangeMenuVisible()
//播放进度监听
if (this.playerController) {
this.playerController.onTimeUpdate = (position: number, duration: number) => {
this.currentTime = DateFormatUtil.secondToTime(Math.floor(position / 1000));
this.totalTime = DateFormatUtil.secondToTime(Math.floor(duration / 1000));
this.progressVal = Math.floor(position * 100 / duration);
}
}
}
aboutToDisappear(): void {
if (this.liveDetailsBean.liveInfo?.liveState == 'running') {
...
...
@@ -312,10 +314,10 @@ export struct PlayUIComponent {
.onClick(() => {
if (this.isPlayStatus) {
this.isPlayStatus = false
this.playerController.pause()
this.playerController
?
.pause()
} else {
this.isPlayStatus = true
this.playerController.play()
this.playerController
?
.play()
}
})
}
...
...
sight_harmony/features/wdDetailPlayLive/src/main/ets/widgets/details/video/TopPlayComponet.ets
View file @
7c6b9bc
import { LiveDetailsBean } from 'wdBean/Index';
import { StringUtils } from 'wdKit/Index';
import { WDPlayerController, WDPlayerRenderLiveView } from 'wdPlayer/Index';
import { WD
AliPlayerController, WD
PlayerController, WDPlayerRenderLiveView } from 'wdPlayer/Index';
import { PlayUIComponent } from './PlayUIComponent';
import { Logger } from 'wdKit/Index';
...
...
@@ -10,12 +10,14 @@ const TAG: string = 'TopPlayComponent'
@Component
export struct TopPlayComponent {
@Consume @Watch('updateData') liveDetailsBean: LiveDetailsBean
playerController?: WDPlayerController
playerController?: WD
Ali
PlayerController
@State imgUrl: string = ''
//未开始
@State isWait: boolean = false
//已结束直播
@State isEnd: boolean = false
private playUrl: string = ""
private xComponentIsLoaded: boolean = false
aboutToAppear(): void {
if (this.playerController) {
...
...
@@ -49,16 +51,31 @@ export struct TopPlayComponent {
// this.playerController?.firstPlay('https://rmrbcmsonline.peopleapp.com/upload/rmh/video/mp4/202404/1713752415708fb81d0b8f137b.mp4');
if (StringUtils.isNotEmpty(playUrl)) {
Logger.debug(TAG, `${playUrl}`)
this.playerController?.firstPlay(playUrl);
this.playUrl = playUrl
this.tryToPlay()
}
}
}
tryToPlay() {
if (!this.xComponentIsLoaded) {
Logger.debug(TAG, "需要xComponent加载完成")
return
}
if (this.playUrl.length == 0) {
Logger.debug(TAG, "播放地址为空")
return
}
this.playerController?.firstPlay(this.playUrl);
}
build() {
Stack() {
WDPlayerRenderLiveView({
playerController: this.playerController,
onLoad: async () => {
this.xComponentIsLoaded = true
this.tryToPlay()
}
})
.height('100%')
...
...
sight_harmony/features/wdDetailPlayLive/src/main/ets/widgets/vertical/PlayerComponent.ets
View file @
7c6b9bc
import { LiveDetailsBean } from 'wdBean/Index';
import { WDPlayerController, WDPlayerRenderVLiveView, WDPlayerRenderView } from 'wdPlayer/Index';
import { WDPlayerController, WDPlayerRenderVLiveView, WDPlayerRenderView, WDAliPlayerController,
AliPlayerRenderView } from 'wdPlayer/Index';
import { PictureLoading } from './PictureLoading';
const TAG = 'PlayerComponent'
@Component
export struct PlayerComponent {
@Prop playerController: WDPlayerController;
@Prop playerController: WD
Ali
PlayerController;
@Consume @Watch('updateData') liveDetailsBean: LiveDetailsBean
@Consume @Watch('pageShowChange') pageShow: number
@Consume @Watch('pageHideChange') pageHide: number
...
...
@@ -78,7 +79,7 @@ export struct PlayerComponent {
}
})
} else if (this.liveStreamType == 0) {
WD
PlayerRenderView({
Ali
PlayerRenderView({
playerController: this.playerController,
onLoad: () => {
this.playerController?.firstPlay(this.playUrl);
...
...
sight_harmony/features/wdDetailPlayLive/src/main/ets/widgets/vertical/PlayerInfoComponent.ets
View file @
7c6b9bc
import { WDPlayerController } from 'wdPlayer/Index'
import { WD
AliPlayerController, WD
PlayerController } from 'wdPlayer/Index'
import { PlayerUIComponent } from './PlayerUIComponent'
@Component
export struct PlayerInfoComponent {
swiperController?: SwiperController
private playerController?: WDPlayerController
private playerController?: WD
Ali
PlayerController
@Consume bottomSafeHeight: number
@Consume topSafeHeight: number
@Consume liveState: string
...
...
sight_harmony/features/wdDetailPlayLive/src/main/ets/widgets/vertical/PlayerUIComponent.ets
View file @
7c6b9bc
import { ContentDetailDTO } from 'wdBean/Index';
import { WDPlayerController } from 'wdPlayer/Index';
import { WD
AliPlayerController, WD
PlayerController } from 'wdPlayer/Index';
import { PlayerCommentComponent } from './PlayerCommentComponent';
import { PlayerTitleComponent } from './PlayerTitleComponent';
import { PlayerVideoControlComponent } from './PlayerVideoControlComponent';
@Component
export struct PlayerUIComponent {
private playerController?: WDPlayerController
private playerController?: WD
Ali
PlayerController
@Consume isShowControl: boolean
build() {
...
...
sight_harmony/features/wdDetailPlayLive/src/main/ets/widgets/vertical/PlayerVideoControlComponent.ets
View file @
7c6b9bc
...
...
@@ -2,13 +2,13 @@ import { window } from '@kit.ArkUI'
import { NumberFormatterUtils, WindowModel } from 'wdKit/Index'
import { devicePLSensorManager } from 'wdDetailPlayApi/Index'
import { DateFormatUtil, WDPlayerController } from 'wdPlayer/Index'
import { DateFormatUtil, WD
AliPlayerController, WD
PlayerController } from 'wdPlayer/Index'
import { LiveDetailsBean, LiveRoomDataBean } from 'wdBean/Index'
@Component
export struct PlayerVideoControlComponent {
private playerController?: WDPlayerController
private playerController?: WD
Ali
PlayerController
@Consume liveDetailsBean: LiveDetailsBean
@Consume liveRoomDataBean: LiveRoomDataBean
@State currentTime: string = ''
...
...
sight_harmony/features/wdLogin/oh-package.json5
View file @
7c6b9bc
...
...
@@ -12,6 +12,7 @@
"wdWebComponent"
:
"file:../../commons/wdWebComponent"
,
"wdBean"
:
"file:../../features/wdBean"
,
"wdRouter"
:
"file:../../commons/wdRouter"
,
"wdNetwork"
:
"file:../../commons/wdNetwork"
"wdNetwork"
:
"file:../../commons/wdNetwork"
,
"wdTracking"
:
"file:../../features/wdTracking"
}
}
...
...
sight_harmony/features/wdLogin/src/main/ets/pages/login/LoginPage.ets
View file @
7c6b9bc
...
...
@@ -10,6 +10,7 @@ import {InterestsHobbiesModel} from '../../../../../../../products/phone/src/mai
import HuaweiAuth from '../../utils/HuaweiAuth'
import { loginComponentManager, LoginWithHuaweiIDButton } from '@hms.core.account.LoginComponent'
import { BusinessError } from '@ohos.base'
import { TrackingPageBrowse, TrackConstants } from 'wdTracking/Index'
@Extend(Row)
function otherStyle() {
...
...
@@ -55,6 +56,8 @@ struct LoginPage {
customStyle: true,
maskColor:"#00000000"
})
pageShowTime:number = 0;
pageHideTime:number = 0;
loginViewModel = new LoginViewModel()
@State isProtocol:boolean=false
...
...
@@ -70,7 +73,15 @@ struct LoginPage {
}
onPageShow() {
Logger.debug(TAG, "onPageShow:" + this.isCodeSend + "")
Logger.debug(TAG, "onPageShow:" + this.isCodeSend + " ")
this.pageShowTime = DateTimeUtils.getTimeStamp()
}
onPageHide(): void {
this.pageHideTime = DateTimeUtils.getTimeStamp()
let duration = 0
duration = Math.floor((this.pageHideTime - this.pageShowTime)/1000)
TrackingPageBrowse.trackCommonPageExposureEnd(TrackConstants.PageName.Login_Page,TrackConstants.PageName.Login_Page,duration)
}
build() {
...
...
sight_harmony/features/wdLogin/src/main/ets/pages/login/ModifyPasswordPage.ets
View file @
7c6b9bc
import { CustomToast} from 'wdKit/Index';
import { CustomToast
, DateTimeUtils
} from 'wdKit/Index';
import { WDRouterPage, WDRouterRule } from 'wdRouter/Index';
import { LoginModel } from './LoginModel';
import { ModifyPasswordRequestItem } from './ModifyPasswordRequestItem';
import { router } from '@kit.ArkUI';
import { encryptMessage } from '../../utils/cryptoUtil';
import { TrackingPageBrowse, TrackConstants } from 'wdTracking/Index';
/**
* 修改密码页面
...
...
@@ -26,7 +27,19 @@ struct ModifyPasswordPage {
customStyle: true,
maskColor:"#00000000"
})
pageShowTime:number = 0;
pageHideTime:number = 0;
onPageShow() {
this.pageShowTime = DateTimeUtils.getTimeStamp()
}
onPageHide(): void {
this.pageHideTime = DateTimeUtils.getTimeStamp()
let duration = 0
duration = Math.floor((this.pageHideTime - this.pageShowTime)/1000)
TrackingPageBrowse.trackCommonPageExposureEnd(TrackConstants.PageName.Change_Passwd,TrackConstants.PageName.Change_Passwd,duration)
}
build() {
Row() {
...
...
sight_harmony/features/wdPlayer/Index.ets
View file @
7c6b9bc
...
...
@@ -15,3 +15,5 @@ export { DateFormatUtil } from "./src/main/ets/utils/DateFormatUtil"
export { WDAliPlayerController } from "./src/main/ets/controller/WDAliPlayerController"
export { WDListPlayerData, WDAliListPlayerController } from "./src/main/ets/controller/WDAliListPlayerController"
export { AliPlayerRenderView } from "./src/main/ets/pages/AliPlayerRenderView"
\ No newline at end of file
...
...
sight_harmony/features/wdPlayer/src/main/ets/controller/WDAliPlayerController.ets
View file @
7c6b9bc
...
...
@@ -11,8 +11,10 @@ import {
import { initGlobalPlayerSettings, setupPlayerConfig } from '../utils/GlobalSetting';
import prompt from '@ohos.promptAction';
import { Logger } from '../utils/Logger';
import { PlayerConstants, AVPlayerStatus, Events } from '../constants/PlayerConstants';
import { Logger } from 'wdKit/Index';
const TAG = "WDAliPlayerController"
/*
* 此播放器为阿里播放器鸿蒙版本封装,可播放单个视频、或直播
...
...
@@ -54,7 +56,7 @@ export class WDAliPlayerController {
public onFirstFrameDisplay?: () => void
constructor() {
Logger.info("初始化")
Logger.info(
TAG,
"初始化")
initGlobalPlayerSettings()
this.initPromise = this.createAVPlayer();
}
...
...
@@ -64,24 +66,24 @@ export class WDAliPlayerController {
*/
private createAVPlayer(): Promise<void> {
return new Promise((resolve, reject) => {
Logger.debug("开始创建")
Logger.debug(
TAG,
"开始创建")
let traceId = ''
this.avPlayer = AliPlayerFactory.createAliPlayer(getContext(), traceId)
if (this.avPlayer) {
Logger.debug("创建完成1")
Logger.debug(
TAG,
"创建完成1")
setupPlayerConfig(this.avPlayer!)
this.bindState();
resolve();
} else {
Logger.error("创建完成0")
Logger.error('[WDPlayerController] createAvPlayer fail!');
Logger.error(TAG, "创建完成0")
Logger.error(TAG, '[WDPlayerController] createAvPlayer fail!');
reject();
}
});
}
public destory() {
Logger.debug("播放器销毁")
Logger.debug(
TAG,
"播放器销毁")
this.avPlayer?.stop()
this.avPlayer?.release()
}
...
...
@@ -94,13 +96,13 @@ export class WDAliPlayerController {
// 当调用play()方法后,会调用
onPrepared: () => {
this.duration = this.avPlayer?.getDuration();
Logger.debug("已准备好", `${this.duration}`)
Logger.debug(
TAG,
"已准备好", `${this.duration}`)
}
}
);
this.avPlayer?.setOnRenderingStartListener({
onRenderingStart: () => {
Logger.debug("首帧开始显示")
Logger.debug(
TAG,
"首帧开始显示")
if (this.onFirstFrameDisplay) {
this.onFirstFrameDisplay()
}
...
...
@@ -108,7 +110,7 @@ export class WDAliPlayerController {
});
this.avPlayer?.setOnCompletionListener({
onCompletion: () => {
Logger.debug("播放完成")
Logger.debug(
TAG,
"播放完成")
}
});
this.avPlayer?.setOnInfoListener({
...
...
@@ -116,7 +118,7 @@ export class WDAliPlayerController {
if (bean.getCode() === InfoCode.CurrentPosition) {
let position : number = bean.getExtraValue()
Logger.debug(`播放进度条:${position}/ ${this.duration}`)
Logger.debug(
TAG,
`播放进度条:${position}/ ${this.duration}`)
this.initProgress(position);
} else if (bean.getCode() === InfoCode.BufferedPosition) {
...
...
@@ -126,7 +128,7 @@ export class WDAliPlayerController {
}
} else if (bean.getCode() === InfoCode.SwitchToSoftwareVideoDecoder) {
Logger.debug(`DOWNGRADE TO SOFTWARE DECODE`)
Logger.debug(
TAG,
`DOWNGRADE TO SOFTWARE DECODE`)
// this.mSwitchedToSoftListener?.onSwitched();
}
}
...
...
@@ -134,7 +136,7 @@ export class WDAliPlayerController {
this.avPlayer?.setOnStateChangedListener({
onStateChanged: (status: number) => {
this.avPlayerStatus = status
Logger.debug("status update:" + `${this.getStatusStringWith(status)}`)
Logger.debug(
TAG,
"status update:" + `${this.getStatusStringWith(status)}`)
switch (status) {
case initalized: {
...
...
@@ -189,7 +191,7 @@ export class WDAliPlayerController {
});
this.avPlayer?.setOnErrorListener({
onError:(errorInfo) => {
Logger.error("播放错误", JSON.stringify(errorInfo))
Logger.error(
TAG,
"播放错误", JSON.stringify(errorInfo))
this.errorCode = errorInfo.getCode()
this.errorMesage = errorInfo.getMsg()
this.status = PlayerConstants.STATUS_ERROR;
...
...
@@ -240,16 +242,24 @@ export class WDAliPlayerController {
setXComponentController(controller: XComponentController) {
this.setSurfaceId(controller.getXComponentSurfaceId())
if (this.avPlayerStatus > PlayerConstants.STATUS_IDLE) {
Logger.info(TAG, "设置SurfaceId: " + this.surfaceId)
this.avPlayer?.setSurfaceId(this.surfaceId)
}
}
setSurfaceId(surfaceId: string) {
this.surfaceId = surfaceId
if (this.avPlayerStatus > PlayerConstants.STATUS_IDLE) {
Logger.info(TAG, "设置SurfaceId: " + this.surfaceId)
this.avPlayer?.setSurfaceId(this.surfaceId)
}
}
async firstPlay(url: string) {
this.url = url;
if (this.avPlayer == null) {
Logger.info("等待播放器初始化")
Logger.info(
TAG,
"等待播放器初始化")
await this.initPromise;
} else {
if (this.avPlayerStatus != idle) {
...
...
@@ -269,10 +279,10 @@ export class WDAliPlayerController {
this.avPlayer?.setAutoPlay(false)
Logger.debug("开始播放", this.url)
Logger.debug(
TAG,
"开始播放", this.url)
this.setAliPlayerURL(this.url);
Logger.info(
"设置SurfaceId
" + this.surfaceId)
Logger.info(
TAG, "设置SurfaceId:
" + this.surfaceId)
this.avPlayer?.setSurfaceId(this.surfaceId)
this.avPlayer?.prepare()
...
...
@@ -287,17 +297,17 @@ export class WDAliPlayerController {
}
pause() {
Logger.debug("暂停", this.url)
Logger.debug(
TAG,
"暂停", this.url)
this.avPlayer?.pause();
}
play() {
Logger.debug("播放", this.url)
Logger.debug(
TAG,
"播放", this.url)
this.avPlayer?.start();
}
stop() {
Logger.debug("停止", this.url)
Logger.debug(
TAG,
"停止", this.url)
this.avPlayer?.stop();
}
...
...
@@ -405,7 +415,7 @@ export class WDAliPlayerController {
if (this.onVolumeUpdate) {
this.onVolumeUpdate(this.volume);
}
console.log(
"volume : " + this.volume)
Logger.debug(TAG,
"volume : " + this.volume)
}
onBrightActionUpdate(event: GestureEvent) {
...
...
@@ -429,7 +439,7 @@ export class WDAliPlayerController {
}
watchStatus() {
console.log('watchStatus',
this.status)
Logger.debug(TAG, 'watchStatus: ' +
this.status)
if (this.onStatusChange) {
this.onStatusChange(this.status)
}
...
...
sight_harmony/features/wdPlayer/src/main/ets/pages/AliPlayerRenderView.ets
0 → 100644
View file @
7c6b9bc
import componentUtils from '@ohos.arkui.componentUtils';
import { WDPlayerController } from '../controller/WDPlayerController'
import { WindowModel } from 'wdKit';
import { Logger } from '../utils/Logger';
import { enableAliPlayer } from '../utils/GlobalSetting';
import { WDAliPlayerController } from '../controller/WDAliPlayerController';
class Size {
width: Length = "100%";
height: Length = "100%";
constructor(width: Length, height: Length) {
this.width = width;
this.height = height;
}
}
let insIndex: number = 0;
const TAG = 'AliPlayerRenderView'
class MGPlayRenderViewIns {
static intCount: number = 0;
static add() {
MGPlayRenderViewIns.intCount++;
WindowModel.shared.setWindowKeepScreenOn(true);
console.log("add-- +1")
}
static del() {
console.log("del-- -1")
MGPlayRenderViewIns.intCount--;
if (MGPlayRenderViewIns.intCount <= 0) {
WindowModel.shared.setWindowKeepScreenOn(false);
}
}
}
/**
* 播放窗口组件,对接阿里播放器的RenderView
*/
@Component
export struct AliPlayerRenderView {
private playerController?: WDAliPlayerController;
private xComponentController: XComponentController = new XComponentController();
private insId: string = "AliPlayerRenderView" + insIndex;
onLoad?: ((event?: object) => void);
@State videoWidth: number = 16
@State videoHeight: number = 9
@State videoRatio: number = 16 / 9
@State selfSize: Size = new Size('100%', '100%');
private enableAliPlayer = true
aboutToAppear() {
MGPlayRenderViewIns.add();
insIndex++;
if (!this.playerController) {
return
}
this.playerController.onVideoSizeChange = (width: number, height: number) => {
// console.log(`WDPlayerRenderView onVideoSizeChange width:${width} videoTop:${height}`)
Logger.info(TAG, ` onVideoSizeChange width:${width} videoTop:${height}`)
this.videoWidth = width;
this.videoHeight = height;
this.videoRatio = width / height
this.updateLayout()
}
}
aboutToDisappear() {
Logger.info(TAG, `aboutToDisappear`)
MGPlayRenderViewIns.del();
}
build() {
Row() {
// 设置为“surface“类型时XComponent组件可以和其他组件一起进行布局和渲染。
XComponent({
id: this.insId,
type: XComponentType.SURFACE,
libraryname: enableAliPlayer && this.enableAliPlayer ? "premierlibrary" : undefined,
controller: this.xComponentController
})
.onLoad(async (event) => {
Logger.info(TAG, 'onLoad')
this.xComponentController.setXComponentSurfaceSize({
surfaceWidth: 1920,
surfaceHeight: 1080
});
if (enableAliPlayer && this.enableAliPlayer) {
this.playerController?.setSurfaceId(this.insId)
} else {
this.playerController?.setXComponentController(this.xComponentController)
}
if (this.onLoad) {
this.onLoad(event)
}
})
.zIndex(1000)
.width(this.selfSize.width)
.height(this.selfSize.height)
}
.onAreaChange(() => {
this.updateLayout()
})
.backgroundColor("#000000")
.justifyContent(FlexAlign.Center)
.height('100%')
.width('100%')
.align(this.videoWidth > this.videoHeight ? Alignment.Top : Alignment.Center)
}
updateLayout() {
let info = componentUtils.getRectangleById(this.insId);
if (info.size.width > 0 && info.size.height > 0 && this.videoHeight > 0 && this.videoWidth > 0) {
if (info.size.width / info.size.height > this.videoWidth / this.videoHeight) {
let scale = info.size.height / this.videoHeight;
this.selfSize = new Size((this.videoWidth * scale / info.size.width) * 100 + "%", '100%');
} else {
let scale = info.size.width / this.videoWidth;
this.selfSize = new Size('100%', (this.videoHeight * scale / info.size.height) * 100 + "%");
}
}
}
}
\ No newline at end of file
...
...
sight_harmony/features/wdPlayer/src/main/ets/pages/WDPlayerRenderLiveView.ets
View file @
7c6b9bc
...
...
@@ -3,6 +3,7 @@ import { WDPlayerController } from '../controller/WDPlayerController'
import { WindowModel } from 'wdKit';
import { Logger } from '../utils/Logger';
import { enableAliPlayer } from '../utils/GlobalSetting';
import { WDAliPlayerController } from '../controller/WDAliPlayerController';
class Size {
width: Length = "100%";
...
...
@@ -40,7 +41,7 @@ class MGPlayRenderViewIns {
*/
@Component
export struct WDPlayerRenderLiveView {
private playerController?: WDPlayerController;
private playerController?: WD
Ali
PlayerController;
private xComponentController: XComponentController = new XComponentController();
onLoad?: ((event?: object) => void);
videoWidth: number = 0
...
...
sight_harmony/features/wdPlayer/src/main/ets/pages/WDPlayerRenderVLiveView.ets
View file @
7c6b9bc
...
...
@@ -3,6 +3,7 @@ import { WDPlayerController } from '../controller/WDPlayerController'
import { WindowModel } from 'wdKit';
import { Logger } from '../utils/Logger';
import { enableAliPlayer } from '../utils/GlobalSetting';
import { WDAliPlayerController } from '../controller/WDAliPlayerController';
class Size {
width: Length = "100%";
...
...
@@ -40,7 +41,7 @@ class MGPlayRenderViewIns {
*/
@Component
export struct WDPlayerRenderVLiveView {
private playerController?: WDPlayerController;
private playerController?: WD
Ali
PlayerController;
private xComponentController: XComponentController = new XComponentController();
private insId: string = "WDPlayRenderView" + insIndex;
onLoad?: ((event?: object) => void);
...
...
sight_harmony/features/wdPlayer/src/main/ets/pages/WDPlayerRenderView.ets
View file @
7c6b9bc
...
...
@@ -48,6 +48,7 @@ export struct WDPlayerRenderView {
@State videoHeight: number = 9
@State videoRatio: number = 16 / 9
@State selfSize: Size = new Size('100%', '100%');
private enableAliPlayer = false
aboutToAppear() {
MGPlayRenderViewIns.add();
...
...
@@ -78,7 +79,7 @@ export struct WDPlayerRenderView {
XComponent({
id: this.insId,
type: XComponentType.SURFACE,
libraryname: enableAliPlayer ? "premierlibrary" : undefined,
libraryname: enableAliPlayer
&& this.enableAliPlayer
? "premierlibrary" : undefined,
controller: this.xComponentController
})
.onLoad(async (event) => {
...
...
@@ -87,7 +88,7 @@ export struct WDPlayerRenderView {
surfaceWidth: 1920,
surfaceHeight: 1080
});
if (enableAliPlayer) {
if (enableAliPlayer
&& this.enableAliPlayer
) {
this.playerController?.setSurfaceId(this.insId)
} else {
this.playerController?.setXComponentController(this.xComponentController)
...
...
sight_harmony/features/wdPlayer/src/main/ets/utils/GlobalSetting.ets
View file @
7c6b9bc
...
...
@@ -43,4 +43,4 @@ export function setupPlayerConfig(player: AliPlayer) {
* 3、WDAliListPlayerController 暂时由于SDK问题,不能使用
* 4、
* */
export const enableAliPlayer = false
\ No newline at end of file
export const enableAliPlayer = true
\ No newline at end of file
...
...
sight_harmony/features/wdTracking/src/main/ets/common/TrackConstants.ets
View file @
7c6b9bc
...
...
@@ -97,7 +97,7 @@ export namespace TrackConstants {
/// 设置页
Setting = "settingPage",
/// 账号管理
/// 账号管理
//账户与安全
Account_Management = "accountManagementPage",
/// 注销账户
Cancel_Account = "cancelAccountPage",
...
...
Please
register
or
login
to post a comment