${CMAKE_CURRENT_SOURCE_DIR}/nativeui/makephone/src/MainCallingView.cpp
${CMAKE_CURRENT_SOURCE_DIR}/nativeui/main/src/VolumeSettingView.cpp
${CMAKE_CURRENT_SOURCE_DIR}/nativeui/main/src/VolumeSettingPresenter.cpp
- ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/player/src/BluetoothView.cpp
+ #音乐
+ ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/player/src/MusicPlayerSourceView.cpp
${CMAKE_CURRENT_SOURCE_DIR}/nativeui/player/src/PlayersView.cpp
${CMAKE_CURRENT_SOURCE_DIR}/nativeui/player/src/PlayersPresenter.cpp
${CMAKE_CURRENT_SOURCE_DIR}/nativeui/player/src/PlayersModel.cpp
${CMAKE_CURRENT_SOURCE_DIR}/nativeui/player/src/PlayersCaseListAdapter.cpp
${CMAKE_CURRENT_SOURCE_DIR}/nativeui/player/src/PlayerListDelSongView.cpp
${CMAKE_CURRENT_SOURCE_DIR}/nativeui/player/src/PlayerListitemView.cpp
+
${CMAKE_CURRENT_SOURCE_DIR}/nativeui/activity/src/MainActivityView.cpp
${CMAKE_CURRENT_SOURCE_DIR}/nativeui/activity/src/ActivityWeekView.cpp
${CMAKE_CURRENT_SOURCE_DIR}/nativeui/activity/src/ActivityPresenter.cpp
#include "BluetoothWrapper.h"\r
#include "BluetoothPresenter.h"\r
#include "ConnectPhonePresenter.h"\r
-#include "BluetoothView.h"\r
+#include "MusicPlayerSourceView.h"\r
#include "BluetoothItemView.h"\r
#include "PlayersModel.h"\r
#include "PhoneAudio.h"\r
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "OnDrag:playersView new fail");
return false;
}
- volumeSettingView->SetVisible(false);
- playersView->SetVisible(true);
+ playersView->ChangeView(PlayersView::MUSIC_VOLUME_CONTROL_VIEW,PlayersView::MAIN_MUSICPLAYER_VIEW);
}
if (playerCoefficients == VOLUMEPHONE) {
MainCallingView *mainCallView = MainCallingView::GetInstance();
+++ /dev/null
-/*\r
- * Copyright (c) CompanyNameMagicTag 2021-2021. All rights reserved.\r
- * Description: Bluetooth view 设置页面\r
- * Create: 2021-09-5\r
- */\r
-\r
-#ifndef BLUETOOTH_VIEW_H\r
-#define BLUETOOTH_VIEW_H\r
-\r
-#include "components/ui_label.h"\r
-#include "components/ui_label_ext.h"\r
-#include "components/ui_image_view.h"\r
-#include "components/ui_radio_button.h"\r
-#include "components/ui_label_button.h"\r
-#include "components/ui_view_group.h"\r
-#include "components/ui_scroll_view.h"\r
-#include "BaseView.h"\r
-\r
-namespace OHOS {\r
-class PlayerOnDragListener;\r
-class BluetoothView {\r
-public:\r
- BluetoothView();\r
- virtual ~BluetoothView();\r
- UIViewGroup *LoadMusicSourceView(void);\r
- static BluetoothView *GetInstance(void);\r
- UIViewGroup *group{nullptr};\r
- UIScrollView *scrollView{nullptr};\r
- UIRadioButton *GetPhoneButton(void);\r
- UIRadioButton *GetWatchButton(void);\r
- UIButton *GetSettingButton(void);\r
-private:\r
- UILabel *titleLabel{nullptr};\r
- UIImageView *phoneBackground{nullptr};\r
- UIImageView *watchBackground{nullptr};\r
- UIImageView *bluetoothBackground{nullptr};\r
- UILabel *watchLabel{nullptr};\r
- UILabel *phoneLabel{nullptr};\r
- UILabel *bluetoothLabel{nullptr};\r
- UIImageView *watchImage{nullptr};\r
- UIImageView *phoneImage{nullptr};\r
- UIImageView *bluetoothImage{nullptr};\r
- UIRadioButton *watchButton{nullptr};\r
- UIRadioButton *phoneButton{nullptr};\r
- UIButton *settingButton{nullptr};\r
- int LoadTitleLabel(void);\r
- int LoadImageBackGround(void);\r
- int LoadRadioButton(void);\r
- int LoadButtonView(void);\r
- int LoadLabel(void);\r
- int LoadImage(void);\r
-};\r
-} // namespace OHOS\r
-#endif
\ No newline at end of file
--- /dev/null
+/*\r
+ * @Author: luozheng 1732036298@qq.com\r
+ * @Date: 2024-08-05 15:20:03\r
+ * @LastEditors: luozheng 1732036298@qq.com\r
+ * @LastEditTime: 2024-08-08 16:15:50\r
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/player/include/MusicPlayerSourceView.h\r
+ */\r
+\r
+#ifndef MUSIC_PLAYER_SOURCE_VIEW_H\r
+#define MUSIC_PLAYER_SOURCE_VIEW_H\r
+\r
+#include "components/ui_label_ext.h"\r
+#include "components/ui_image_view.h"\r
+#include "components/ui_radio_button.h"\r
+#include "components/ui_label_button.h"\r
+#include "components/ui_view_group.h"\r
+#include "components/ui_scroll_view.h"\r
+#include "BaseView.h"\r
+\r
+namespace OHOS\r
+{\r
+ static constexpr const char *PHONE_MUSIC_LABEL_BUTTON = "phone_music_label_button";\r
+ static constexpr const char *WATCH_MUSIC_LABEL_BUTTON = "watch_music_label_button";\r
+ static constexpr const char *BLUETOOTH_HEADSET_LABEL_BUTTON = "bluetooth_headset_label_button";\r
+ class PlayerOnDragListener;\r
+ class MusicPlayerSourceView : public UIView::OnClickListener, public UIView::OnDragListener\r
+ {\r
+ public:\r
+ struct LabelConfig\r
+ {\r
+ int16_t left;\r
+ int16_t top;\r
+ int16_t width;\r
+ int16_t height;\r
+ int16_t fontSize;\r
+ int16_t lineHeigh;\r
+ uint16_t textId;\r
+ uint8_t lineBreakMode;\r
+ };\r
+ struct ButtonConfig\r
+ {\r
+ int16_t x;\r
+ int16_t y;\r
+ int16_t w;\r
+ int16_t h;\r
+ const char *viewId;\r
+ bool flag;\r
+ };\r
+ MusicPlayerSourceView();\r
+ ~MusicPlayerSourceView();\r
+ static MusicPlayerSourceView *GetInstance(void);\r
+ bool OnClick(UIView &view, const ClickEvent &event) override;\r
+ UIViewGroup *CreateMusicPlayerSourceView(void);\r
+ void UpdateBluetoothHeadSetViewIsVisible(void);\r
+ void UpdateBluetoothHeadsetConnectLabel(void);\r
+ UIViewGroup *group{nullptr};\r
+\r
+ private:\r
+ UILabelButton *MusicPlayerSourceViewLabelButtonInit(ButtonConfig &buttonconfig);\r
+ UILabelExt *MusicPlayerSourceViewLabelInit(LabelConfig &labelconfig);\r
+ bool CreateMusicPlayerSourceViewLabelButton(void);\r
+ bool CreateMusicPlayerSourceViewLabel(void);\r
+ bool CreateMusicPlayerSourceViewImage(void);\r
+ void ClearAll();\r
+\r
+ UIScrollView *scrollView{nullptr};\r
+ UILabelExt *titleLabel{nullptr}; // 标题\r
+\r
+ UILabelExt *phoneLabel{nullptr}; // 手机音乐\r
+ UIImageView *phoneImage{nullptr};\r
+ UILabelButton *phoneLableButton{nullptr};\r
+\r
+ UILabelExt *watchLabel{nullptr}; // 手表音乐\r
+ UIImageView *watchImage{nullptr};\r
+ UILabelButton *watchLableButton{nullptr};\r
+\r
+ UILabelExt *bluetoothHeadsetLabel{nullptr}; // 蓝牙耳机\r
+ UIImageView *bluetoothHeadsetImage{nullptr};\r
+ UILabelButton *bluetoothHeadsetLableButton{nullptr};\r
+ UILabelExt *bluetoothHeadsetConnectState{nullptr}; // 蓝牙耳机配对状态\r
+\r
+ UIView::OnDragListener *dragListener{nullptr};\r
+ };\r
+}\r
+#endif
\ No newline at end of file
-#ifndef PLAYER_LIST_DEL_SONG_VIEW_H
-#define PLAYER_LIST_DEL_SONG_VIEW_H
+/*
+ * @Author: luozheng 1732036298@qq.com
+ * @Date: 2024-08-05 15:20:03
+ * @LastEditors: luozheng 1732036298@qq.com
+ * @LastEditTime: 2024-08-06 18:31:14
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/player/include/PlayerListDelSongView.h
+ */
+
+#ifndef MUSIC_PLAYER_LIST_DEL_SONG_VIEW_H
+#define MUSIC_PLAYER_LIST_DEL_SONG_VIEW_H
#include "string"
#include "iostream"
-#ifndef PLAYER_LIST_ITEM_VIEW_H
-#define PLAYER_LIST_ITEM_VIEW_H
+/*
+ * @Author: luozheng 1732036298@qq.com
+ * @Date: 2024-08-05 15:20:03
+ * @LastEditors: luozheng 1732036298@qq.com
+ * @LastEditTime: 2024-08-06 18:31:23
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/player/include/PlayerListitemView.h
+ */
+
+#ifndef MUSIC_PLAYER_LIST_ITEM_VIEW_H
+#define MUSIC_PLAYER_LIST_ITEM_VIEW_H
#include "components/ui_label.h"
#include "components/ui_label_ext.h"
/*\r
- * Copyright (c) CompanyNameMagicTag 2021-2021. All rights reserved.\r
- * Description: Player view\r
- * Author:\r
- * Create: 2021-07-26\r
+ * @Author: luozheng 1732036298@qq.com\r
+ * @Date: 2024-08-05 15:20:03\r
+ * @LastEditors: luozheng 1732036298@qq.com\r
+ * @LastEditTime: 2024-08-06 18:31:31\r
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/player/include/PlayersCaseListAdapter.h\r
*/\r
\r
-#ifndef PLAYERS_CASE_LIST_ADAPTER_H\r
-#define PLAYERS_CASE_LIST_ADAPTER_H\r
+#ifndef MUSIC_PLAYERS_CASE_LIST_ADAPTER_H\r
+#define MUSIC_PLAYERS_CASE_LIST_ADAPTER_H\r
\r
#include <list>\r
#include <string>\r
/*
- * Copyright (c) CompanyNameMagicTag 2021-2021. All rights reserved.
- * Description: Player view
- * Author:
- * Create: 2021-07-26
+ * @Author: luozheng 1732036298@qq.com
+ * @Date: 2024-08-05 15:20:03
+ * @LastEditors: luozheng 1732036298@qq.com
+ * @LastEditTime: 2024-08-08 18:32:13
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/player/include/PlayersModel.h
*/
-#ifndef PLAYERS_MODEL_H
-#define PLAYERS_MODEL_H
+#ifndef MUSIC_PLAYERS_MODEL_H
+#define MUSIC_PLAYERS_MODEL_H
#include "stdio.h"
#include "gfx_utils/list.h"
void ConncetBtResetButton();
void ClearActivateAudioInterrupt(void);
void GetDuration(int64_t &duration);
+public:
+ bool GetMusicSource();
+ void SetMusicSource(bool value);
+private:
+ bool musicSourceFlag{false};//音乐来源标志:false:默认为手表音乐,true:手机音乐
private:
PlayersCaseListAdapter *m_PlayersCaseListAdapter{nullptr};
int64_t duration_{0};
/*\r
- * Copyright (c) CompanyNameMagicTag 2021-2021. All rights reserved.\r
- * Description: Player view\r
- * Author:\r
- * Create: 2021-07-26\r
+ * @Author: luozheng 1732036298@qq.com\r
+ * @Date: 2024-08-05 15:20:03\r
+ * @LastEditors: luozheng 1732036298@qq.com\r
+ * @LastEditTime: 2024-08-08 19:03:35\r
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/player/include/PlayersPresenter.h\r
*/\r
\r
-#ifndef PLAYERS_PRESENTER_H\r
-#define PLAYERS_PRESENTER_H\r
+#ifndef MUSIC_PLAYERS_PRESENTER_H\r
+#define MUSIC_PLAYERS_PRESENTER_H\r
#include "gfx_utils/list.h"\r
#include "ohos_types.h"\r
#include "components/ui_view.h"\r
#include "player.h"\r
#include "audio_manager.h"\r
#include "audio_base_type.h"\r
-#include "BluetoothView.h"\r
+#include "MusicPlayerSourceView.h"\r
#include "VolumeSettingView.h"\r
#include "VolumeSettingPresenter.h"\r
#include "BluetoothModel.h"\r
#define BLUETOOTH_EAR_PHONE_VIEW "BluetoothEarPhoneView"\r
#define BLUETOOTH_OPTIONS_VIEW "BluetoothOptionsView"\r
#define BLUETOOTH_RECONNECT_VIEW "BluetoothReconnectView"\r
-#define BLUETOOTH_VIEW "BluetoothView"\r
-#define TIPS_SUCC_MESSAGE_VIEW "TipsSuccMessageView"\r
+#define MUSIC_PLAYER_SOURCE_VIEW "MusicPlayerSourceView" //音乐来源视图的滑动监听\r
+#define TIPS_SUCC_MESSAGE_VIEW "TipsSuccMessageView" \r
#define TIPS_FAIL_MESSAGE_VIEW "TipsFailMessageView"\r
#define TIPS_CONN_FAIL_MESSAGE_VIEW "TipsConnFailMessageView"\r
\r
public:\r
PlayerOnDragListener();\r
~PlayerOnDragListener();\r
- virtual bool OnDragEnd(UIView& view, const DragEvent& event) override;\r
bool OnDrag(UIView& view, const DragEvent& event) override;\r
+ bool OnDragEnd(UIView& view, const DragEvent& event) override;\r
static PlayerOnDragListener *GetInstance();\r
private:\r
void OnDragChangView(const DragEvent& event, int16_t hideView, int16_t showView, bool isStopScan);\r
void DropEarPhoneView(const DragEvent& event);\r
void DropEarListView(const DragEvent& event);\r
void CorrespondingJump(const DragEvent& event, int16_t hideView);\r
+ bool X_DRAG_FLAG{false};\r
};\r
\r
// Bluetooth View redirection\r
UIViewGroup *container[BLUETOOTHEJUMP_MAX]{nullptr}; // CONTAINER_NUM :蓝牙耳机连接的9个界面容器\r
BluetoothEarPhoneView *bluetoothEarPhoneView{nullptr};\r
BluetoothEarListView *bluetoothEarListView{nullptr};\r
- BluetoothView *bluetoothView{nullptr};\r
+ MusicPlayerSourceView *bluetoothView{nullptr};\r
BluetoothOptionsView *bluetoothOptionsView{nullptr};\r
BluetoothDeviceListView *bluetoothDeviceListView{nullptr};\r
BluetoothReconnectView *bluetoothReconnectView{nullptr};\r
void OnClickSuccBack(void);\r
void OnClickConnFailBack(void);\r
void OnClickFailBack(void);\r
- void SetTitleSetText(const char *text);\r
- void SetMusicSourceSetText(const char *text);\r
- void SetPhoneMusicConnectStatusSetText(const char *text);\r
- void SetPhoneMusicConnectStatusLabelIsVisible(bool status);\r
- void SetMusicListButtonIsVisible(bool status);\r
- void SetOptionsButtonImageStyle(ImageInfo *image);\r
+ void UpdatePlayerView(void);\r
void SetPlaybackProgress(int64_t value);\r
void SetPlayerState(bool value);\r
void PlayerbackReset(void);\r
/*\r
- * Copyright (c) CompanyNameMagicTag 2021-2021. All rights reserved.\r
- * Description: Player view\r
- * Author:\r
- * Create: 2021-07-26\r
+ * @Author: luozheng 1732036298@qq.com\r
+ * @Date: 2024-08-05 15:20:03\r
+ * @LastEditors: luozheng 1732036298@qq.com\r
+ * @LastEditTime: 2024-08-08 18:43:24\r
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/player/include/PlayersView.h\r
*/\r
\r
-#ifndef PLAYERS_VIEW_H\r
-#define PLAYERS_VIEW_H\r
+#ifndef MUSIC_PLAYERS_VIEW_H\r
+#define MUSIC_PLAYERS_VIEW_H\r
\r
#include <string>\r
#include "components/ui_image_view.h"\r
#include "components/ui_scroll_view.h"\r
#include "PlayerListDelSongView.h"\r
#include "common/image_cache_manager.h"\r
-namespace OHOS {\r
+#include "VolumeSettingView.h"\r
+#include "player/include/MusicPlayerSourceView.h"\r
+namespace OHOS\r
+{\r
#define PLAY_PROGRESS_MIN 0\r
#define PLAY_PROGRESS_MAX 100\r
-class JumpView;\r
-class PlayersPresenter;\r
-class PlayersCaseListAdapter;\r
-class PlayersView : public UICardPage{\r
-public:\r
- PlayersView();\r
- virtual ~PlayersView();\r
- static PlayersView *GetInstance(void);\r
- bool InitView(void);\r
- void PreLoad(void) override;\r
- void UnLoad(void) override;\r
- bool OnDragEvent(const DragEvent& event) override;\r
-\r
- void SetUpLabel(const char *title, int16_t x, int16_t y);\r
- void ShowUpListView(void);\r
- void TitleSetText(const char *text);\r
- void PlayerModelButtonSetSrc(uint32_t playMode);\r
- void CreateMusicSourceLabel(void);\r
- void MusicSourceLabelSetText(const char *text);\r
- void CreatePhoneMusicConnectStatusLabel(void);\r
- void PhoneMusicConnectStatusLabelSetText(const char *text);\r
- void PhoneMusicConnectStatusLabelIsSetVisible(bool status);\r
- void MusicListButtonIsSetVisible(bool status);\r
- void OptionsButtonSetImageStyle(ImageInfo *image);\r
- int16_t GetVolumeRank(void);\r
- void SetVolumeRank(int16_t value);\r
- void SetVolumeAddOne(void);\r
- UILabelButton *GetBackButton(void);\r
- UIButton *GetPullButton(void);\r
- UIButton *GetOptionsButton(void);\r
- UIButton *GetPreButton(void);\r
- UIButton *GetNextButton(void);\r
- UIButton *GetMusicListButton(void);\r
- UILabel *GetTitleLabel(void);\r
- UILabel *GetMusicSourceLabel(void);\r
- UILabel *GetPhoneMusicConnectStatusLabel(void);\r
- UICheckBox *GetPlayerButton(void);\r
- UIImageView *GetSoundButton(void);\r
- UIImageView *GetPlayerModelButton(void);\r
- UICircleProgress *GetPlaybackProgress(void);\r
- UICheckBox::UICheckBoxState GetPlayerButtonState(void);\r
- void SetPlayerButtonState(UICheckBox::UICheckBoxState state);\r
- UIList *GetPlayerList(void);\r
- void SetPlayerListGroupStatus(bool status);\r
- void SetPlayerCtrVolume(float leftVolume, float rightVolume);\r
- void CreateJumpView(void);\r
- void CreatePlayersPresenter(void);\r
- void CreatePlayerOnDragListener(void);\r
- void ShowUpDelSongView(void);\r
- void SetPlayerDelSongViewStatus(bool status);\r
- PlayerListDelSongView *GetDelSongView()\r
+ class VolumeSettingView;\r
+ class JumpView;\r
+ class PlayersPresenter;\r
+ class PlayersCaseListAdapter;\r
+ class PlayersView : public UICardPage\r
{\r
- return p_PlayerListDelSongView;\r
- }\r
-private:\r
- void PreLoadPlayerImageRes(void);\r
- void UnLoadPlayerImageRes(void);\r
-private:\r
- bool InitBackGround(void);\r
- void TearDownView();\r
- void CreatePlayerMusicName();\r
- int ShowUpCheckBoxButton();\r
- int ShowUpButton();\r
- int ShowUpButtonOptions();\r
- int ShowUpButtonView();\r
- int ShowUpCircleProgress();\r
- int ShowUpMusicListbutton();\r
- bool ShowUpPlayerMode();\r
- void SetUpButton(UIButton *btn, const Point& point, int16_t width, int16_t height,\r
- UIView::OnClickListener *listener);\r
- bool LoadPlayerImage(UIImageView *View, uint32_t resId);\r
- bool LoadPlayerButtonImage(UIButton *button, uint32_t resId);\r
+ public:\r
+ struct ButtonConfig\r
+ {\r
+ int16_t x;\r
+ int16_t y;\r
+ int16_t w;\r
+ int16_t h;\r
+ UIView::OnClickListener *clickListener;\r
+ };\r
+ enum MUSICPLAYERVIEWID : uint8_t\r
+ {\r
+ MAIN_MUSICPLAYER_VIEW = 0, // 音乐播放器主视图\r
+ MUSIC_SOURCE_VIEW, // 音乐来源视图\r
+ MUSIC_VOLUME_CONTROL_VIEW, // 音量调节视图\r
+ MUSIC_LIST_VIEW, // 音乐列表视图\r
+ MUSIC_DELETE_VIEW, // 音乐删除视图\r
+ MUISC_CONNECTING, // 连接动画视图\r
+ MUISC_BLUETOOTH_HEADSET_LIST_VIEW, // 蓝牙耳机列表视图\r
+ MUSIC_CONNECTED_BLUETOOTH_HEADSET_VIEW, // 已连接的蓝牙耳机设备视图\r
+ MUSIC_PHONE_BLUETOOTH_CONNECT_FAIL_VIEW, // 与手机蓝牙连接失败视图\r
+ MUSICPLAYERJUMPVIEWID_MAX,\r
+ };\r
+ PlayersView();\r
+ virtual ~PlayersView();\r
+ static PlayersView *GetInstance(void);\r
+ bool InitView(void);\r
+ void PreLoad(void) override;\r
+ void UnLoad(void) override;\r
+ void CreateJumpView(void);\r
+ void CreatePlayersPresenter(void);\r
+ void CreatePlayerOnDragListener(void);\r
+ void SetPlayerButtonState(UICheckBox::UICheckBoxState state);\r
+ void PlayerModelButtonSetSrc(uint32_t playMode);\r
+ void ShowUpListView(void);\r
+ int16_t GetVolumeRank(void);\r
+ void SetVolumeRank(int16_t value);\r
+ void SetVolumeAddOne(void);\r
+ void SetPlayerCtrVolume(float leftVolume, float rightVolume);\r
+\r
+ void SetPlayerListGroupStatus(bool status);\r
+ void ShowUpDelSongView(void);\r
+ void SetPlayerDelSongViewStatus(bool status);\r
+\r
+ UIButton *GetMusicListButton(void);\r
+ UIButton *GetPreButton(void);\r
+ UIButton *GetNextButton(void);\r
+ UIButton *GetPlayerModelButton(void);\r
+ UIButton *GetOptionsButton(void);\r
+ UIButton *GetSoundButton(void);\r
+ UICheckBox *GetPlayerButton(void);\r
+\r
+ UIList *GetPlayerList(void);\r
+ UICircleProgress *GetPlaybackProgress(void);\r
+ UICheckBox::UICheckBoxState GetPlayerButtonState(void);\r
+\r
+ void UpdatePlayerView(void);\r
+\r
+ VolumeSettingView *GetVolumeSettingView();\r
+ PlayerListDelSongView *GetPlayerListDelSongView();\r
+ UIViewGroup *GetPlayerGroupView(int index);\r
+ static bool LoadPlayerImage(UIImageView *View, uint32_t resId);\r
+ void ChangeView(int16_t hideView, int16_t showView);\r
+ bool ChangeToMainMusicPlayerView(int16_t thisView);\r
+ bool ChangeToMusicSourceView(int16_t thisView);\r
+ bool ChangeToVolumeControlView(int16_t thisView);\r
+\r
+ private:\r
+ UIButton *PlayerViewButtonInit(ButtonConfig &buttonconfig);\r
+ bool CreatePlayerOnClickListener(void);\r
+ bool CreatePlayerImageView(void);\r
+ bool CreatePlayerLabelView(void);\r
+ bool CreatePlayerProgressView(void);\r
+ bool CreatePlayerCheckBoxButtonView(void);\r
+ bool CreatePlayerButtonView(void);\r
+ bool CreatePlayerScrollView(void);\r
+ bool CreatePlayerView(void);\r
+ void ClearAll(void);\r
+ bool LoadPlayerButtonImage(UIButton *button, uint32_t resId);\r
+ bool LoadPlayerCheckBoxButtonImage(UICheckBox *button, uint32_t resId, uint32_t hlResId);\r
+ bool PreLoadPlayerModeImageRes();\r
+ bool UnLoadPlayerModeImageRes();\r
+ void PreLoadPlayerImageRes(void);\r
+ void UnLoadPlayerImageRes(void);\r
+ bool ClickFunc(int16_t interface);\r
+ bool CheckViewParam(int16_t hideView, int16_t showView);\r
+ void DestroyTempView(int16_t hideView);\r
+ void MusicSourceLabelSetText(int textId);\r
+ void MusicListButtonIsSetVisible(bool status);\r
+ void PhoneMusicConnectStatusLabelSetText(int textId);\r
+ void PhoneMusicConnectStatusLabelIsSetVisible(bool status);\r
+ void PhoneMusicConnectStatusLabelColor(bool state);\r
+ void OptionsButtonSetImageStyle(ImageInfo *image);\r
+ void UpdateMusicPlayerModelButton(void);\r
+\r
+ private:\r
+ VolumeSettingView *volumeSettingView{nullptr}; // 声音设置\r
+ MusicPlayerSourceView *musicPlayerSourceView{nullptr}; // 音乐来源\r
+ PlayerListDelSongView *playerListDelSongView{nullptr}; // 音乐删除视图\r
+\r
+ private:\r
+ UIView::OnClickListener *clickListener{nullptr};\r
+ UIViewGroup *group[MUSICPLAYERJUMPVIEWID_MAX]{nullptr};\r
+ UIImageView *musicPlayerBackGround{nullptr}; // 音乐播放器背景\r
+ UIImageView *elipse{nullptr}; // 放复选框的绿色椭圆图片\r
+ UICircleProgress *playbackProgress{nullptr}; // 音乐播放进度条\r
+ UICheckBox *play_or_pause_Button{nullptr}; // 音乐播放和暂停复选按钮\r
+ UIButton *music_list_button{nullptr}; // 音乐列表按钮\r
+ UIButton *musicSourceButton{nullptr}; // 音乐来源按钮\r
+ UIButton *preMusicButton{nullptr}; // 上一首音乐按钮\r
+ UIButton *nextMusicButton{nullptr}; // 下一首音乐按钮\r
+ UIButton *playerModelButton{nullptr}; // 音乐播放模式按钮\r
+ UIButton *soundButton{nullptr}; // 调节声音按钮\r
+ UILabelExt *MusciSourceLabel{nullptr}; // 音乐来源标签\r
+ UILabelExt *PhoneMusicConnectStatusLabel{nullptr}; // 手机音乐连接状态标签\r
+\r
+ UIScrollView *DelSongView{nullptr};\r
+\r
+ UIScrollView *listGroup{nullptr}; // 音乐列表容器视图\r
+ UILabel *musicListTitle{nullptr}; // 音乐列表的标题\r
+ UIList *musicList{nullptr}; // 音乐列表\r
+ PlayersCaseListAdapter *musicAdapter{nullptr}; // 音乐列表适配器\r
+\r
+ JumpView *jumpView{nullptr};\r
+ PlayersPresenter *playersPresenter{nullptr};\r
+ PlayerOnDragListener *playerOnDragListener{nullptr};\r
\r
- UIImageView *backGround{nullptr}; //音乐播放器背景\r
- UIImageView *elipse{nullptr}; //放复选框的绿色椭圆图片\r
- UIButton * music_list_button{nullptr}; //音乐列表按钮\r
- UILabel *subTitleLabel{nullptr}; //副标题标签:在这里为音乐作者\r
- PlayersCaseListAdapter *adapterText{nullptr};\r
- UILabel *titleLabel{nullptr}; //主标题标签:在这里为音乐名\r
- UILabelButton *backButton{nullptr}; //返回按钮\r
- UIButton *pullButton{nullptr}; //上拉按钮\r
- UIButton *optionsButton{nullptr}; //选项按钮\r
- UIButton *preButton{nullptr}; //上一首按钮\r
- UIButton *nextButton{nullptr}; //下一首按钮\r
- UIScrollView *listGroup{nullptr}; //列表组:可能是歌单~暂定\r
- UIImageView *soundButton{nullptr}; //声音按钮\r
- UIImageView *playerModelButton{nullptr}; //播放模式按钮\r
- UICheckBox *playerButton{nullptr}; //播放按钮\r
- UICircleProgress *playbackProgress{nullptr};//播放进度条\r
- UILabel *musicListTitle{nullptr}; //歌单列表名\r
- int16_t volumeSet{0}; //声音值的大小设置\r
- PlayerListDelSongView *p_PlayerListDelSongView{nullptr};\r
- UILabel *MusciSourceLabel{nullptr}; //音乐来源标签\r
- UILabel *PhoneMusicConnectStatusLabel{nullptr};//手机音乐连接状态标签\r
- UIScrollView *DelSongView{nullptr};\r
- UIList *list{nullptr};\r
- JumpView *jumpView{nullptr};\r
- PlayersPresenter *playersPresenter{nullptr};\r
- PlayerOnDragListener *playerOnDragListener{nullptr};\r
- uint8_t state = UICheckBox::UICheckBoxState::MAX_STATUS_NUM;\r
- UIView::OnClickListener *playerlistener{nullptr};\r
- UIView::OnClickListener *soundlistener{nullptr};\r
- UIView::OnClickListener *nextlistener{nullptr};\r
- UIView::OnClickListener *prelistener{nullptr};\r
- UIView::OnClickListener *modellistener{nullptr};\r
- UIView::OnClickListener *optionslistener{nullptr};\r
- UIView::OnClickListener *music_list_button_listener{nullptr};\r
- bool viewiInitStatus{false};\r
- bool resLoadStatus{false};\r
-};\r
+ int16_t volumeSet{0}; // 声音值的大小设置\r
+ bool viewiInitStatus{false};\r
+ bool resLoadStatus{false};\r
+ };\r
} // namespace OHOS\r
-#endif // MAIN_VIEW_H\r
+#endif\r
+++ /dev/null
-/*\r
- * Copyright (c) CompanyNameMagicTag 2021-2021. All rights reserved.\r
- * Description: bluetooth view 设置页面\r
- * Create: 2021-09-5\r
- */\r
-#include "player/include/BluetoothView.h"\r
-#include "player/include/PlayersView.h"\r
-#include "UiConfig.h"\r
-#include "BluetoothEarPhoneView.h"\r
-#include "PlayersPresenter.h"\r
-#include "ui_resource_image.h"\r
-#include "common/image_cache_manager.h"\r
-namespace OHOS {\r
-static BluetoothView *g_bluetoothView{nullptr};\r
-static constexpr uint16_t TEXT_WIDTH = 120;\r
-static constexpr uint16_t TEXT_HEIGHT = 35;\r
-static constexpr uint16_t HEIGHT = 55;\r
-static constexpr uint16_t HEIGHT2 = 40;\r
-static constexpr uint16_t WIDTH = 80;\r
-static constexpr uint16_t WIDTH2 = 80;\r
-static constexpr uint16_t BUTTON_WIDTH = 180;\r
-static constexpr uint16_t BUTTON_HEIGHT = 40;\r
-\r
-constexpr uint16_t BLUETOOTH_OK = 0;\r
-constexpr int16_t BLUETOOTH_ERROR = (-1);\r
-\r
-static constexpr uint16_t IMAGE_X = 83;\r
-static constexpr uint16_t IMAGE_Y = 150;\r
-static constexpr uint16_t IMAGE_Y2 = 270;\r
-static constexpr uint16_t IMAGE_Y3 = 390;\r
-static constexpr uint16_t STEP_LABEL_X = 143;\r
-static constexpr uint16_t BUTTON_X = 300;\r
-static constexpr uint16_t BUTTON_X2 = 326;\r
-static constexpr uint16_t BUTTON_X3 = 135;\r
-static constexpr uint16_t BUTTON_Y = 140;\r
-static constexpr uint16_t BUTTON_Y2 = 260;\r
-static constexpr uint16_t BUTTON_Y3 = 397;\r
-static constexpr uint16_t BUTTON_Y4 = 402;\r
-static constexpr uint16_t STEP_LABEL_Y = 153;\r
-static constexpr uint16_t STEP_LABEL_Y2 = 273;\r
-static constexpr uint16_t STEP_LABEL_Y3 = 393;\r
-\r
-BluetoothView::BluetoothView()\r
-{\r
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BluetoothView::BluetoothView");\r
- g_bluetoothView = this;\r
-\r
-}\r
-\r
-BluetoothView::~BluetoothView()\r
-{\r
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BluetoothView::~BluetoothView");\r
- group->RemoveAll(); \r
- UIView::OnClickListener *click = watchButton->GetOnClickListener();\r
- if (click != nullptr) {\r
- delete click;\r
- }\r
- delete watchButton;\r
- watchButton = nullptr;\r
- click = phoneButton->GetOnClickListener();\r
- if (click != nullptr) {\r
- delete click;\r
- }\r
- click = nullptr;\r
- delete phoneButton;\r
- phoneButton = nullptr;\r
- delete settingButton;\r
- settingButton = nullptr;\r
- delete titleLabel;\r
- titleLabel = nullptr;\r
- delete phoneBackground;\r
- phoneBackground = nullptr;\r
- delete watchBackground;\r
- watchBackground = nullptr;\r
- delete bluetoothBackground;\r
- bluetoothBackground = nullptr;\r
- delete watchLabel;\r
- watchLabel = nullptr;\r
- delete phoneLabel;\r
- phoneLabel = nullptr;\r
- delete bluetoothLabel;\r
- bluetoothLabel = nullptr;\r
- delete watchImage;\r
- watchImage = nullptr;\r
- delete phoneImage;\r
- phoneImage = nullptr;\r
- delete bluetoothImage;\r
- bluetoothImage = nullptr;\r
- delete scrollView;\r
- scrollView = nullptr;\r
- delete group;\r
- group = nullptr;\r
- g_bluetoothView = nullptr;\r
-}\r
-\r
-BluetoothView *BluetoothView::GetInstance(void)\r
-{\r
- return g_bluetoothView;\r
-}\r
-\r
-UIButton *BluetoothView::GetSettingButton(void)\r
-{\r
- return settingButton;\r
-}\r
-\r
-UIRadioButton *BluetoothView::GetWatchButton(void)\r
-{\r
- return watchButton;\r
-}\r
-\r
-UIRadioButton *BluetoothView::GetPhoneButton(void)\r
-{\r
- return phoneButton;\r
-}\r
-\r
-// Button OnClick\r
-class BluetoothOnClickListener : public UIView::OnClickListener {\r
-public:\r
- BluetoothOnClickListener(UIView* view) : view_(view){}\r
- ~BluetoothOnClickListener() {}\r
-\r
- bool OnClick(UIView& view, const ClickEvent& event) override\r
- {\r
- UNUSED(view);\r
- UNUSED(event);\r
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BluetoothOnClickListener OnClick");\r
- BluetoothView *bluetoothView = BluetoothView::GetInstance();\r
- PlayersPresenter *playersPresenter = PlayersPresenter::GetInstance();\r
- ImageInfo *image;\r
- if (bluetoothView == nullptr) {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "bluetoothView is nullptr");\r
- return false;\r
- }\r
- if (view_ == (UIView *)bluetoothView->GetWatchButton()) {\r
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "watchButton OnClick");//手表音乐\r
- image = ImageCacheManager::GetInstance().LoadOneInMultiRes(PLAYER_LOCAL_MUSIC_COLOR, PLAYER_IAMGES);\r
- playersPresenter->SetOptionsButtonImageStyle(image);\r
- playersPresenter->SetPhoneMusicConnectStatusLabelIsVisible(false);\r
- playersPresenter->SetMusicListButtonIsVisible(true);\r
- playersPresenter->SetMusicSourceSetText("本地音乐");\r
- } else if (view_ == (UIView *)bluetoothView->GetPhoneButton()) {\r
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "phoneButton OnClick");//手机音乐\r
- image = ImageCacheManager::GetInstance().LoadOneInMultiRes(PLAYER_PHONE_COLOR, PLAYER_IAMGES);\r
- playersPresenter->SetOptionsButtonImageStyle(image);\r
- playersPresenter->SetPhoneMusicConnectStatusLabelIsVisible(true);\r
- playersPresenter->SetMusicListButtonIsVisible(false);\r
- /* -------------------------------------------------------------------------- */\r
- // 以后会用\r
- // std::string phonemusic_connect_status_text = "";\r
- // if(获取连接状态。。。)\r
- // {\r
- // 获取成功。。。\r
- // phonemusic_connect_status_text = "已连接";\r
- // }\r
- // else\r
- // {\r
- // 获取失败。。。\r
- // phonemusic_connect_status_text = "未连接";\r
- // }\r
- // playersPresenter->SetPhoneMusicConnectStatusSetText(phonemusic_connect_status_text.c_str());\r
- /* -------------------------------------------------------------------------- */\r
- playersPresenter->SetPhoneMusicConnectStatusSetText("未连接");\r
- playersPresenter->SetMusicSourceSetText("手机音乐");//还有小bug,切换到其他界面时标签内容为“手机音乐”,会被还原成本地音乐\r
- } else if (view_ == (UIView *)bluetoothView->GetSettingButton()) {\r
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "settingButton OnClick");\r
- image = ImageCacheManager::GetInstance().LoadOneInMultiRes(PLAYER_EARPHONE_COLOR, PLAYER_IAMGES);\r
- playersPresenter->SetOptionsButtonImageStyle(image);\r
- JumpView *jumpView = JumpView::GetInstance();\r
- if (jumpView == nullptr) {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "jumpView GetInstance fail");\r
- return false;\r
- }\r
- jumpView->ChangeView(JumpView::BluetoothJumpViewNum::BLUETOOTHEVIEW,\r
- JumpView::BluetoothJumpViewNum::BLUETOOTHEARPHONEVIEW);\r
- }\r
- return true;\r
- }\r
-private:\r
- UIView *view_ = nullptr;\r
-};\r
-\r
-/// @brief 加载标题文本:音乐来源\r
-/// @return \r
-int BluetoothView::LoadTitleLabel(void)\r
-{\r
- if (titleLabel == nullptr) {\r
- titleLabel = new UILabel();\r
- if (titleLabel == nullptr) {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "titleLabel new fail");\r
- return BLUETOOTH_ERROR;\r
- }\r
- }\r
- titleLabel->SetPosition(173, 52, 120, 35);\r
- titleLabel->SetText("音乐来源");\r
- titleLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, FONT_THIRTY_SIZE);\r
- return BLUETOOTH_OK;\r
-}\r
-\r
-/// @brief 加载要放置各种组件的背景图片,一共三个\r
-/// @return \r
-int BluetoothView::LoadImageBackGround(void)\r
-{\r
- if(phoneBackground == nullptr){\r
- phoneBackground = new UIImageView();\r
- if (phoneBackground == nullptr) {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "phoneBackground UIImageView new fail");\r
- return BLUETOOTH_ERROR;\r
- }\r
- }\r
- if(watchBackground == nullptr){\r
- watchBackground = new UIImageView();\r
- if (watchBackground == nullptr) {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "watchBackground UIImageView new fail");\r
- return BLUETOOTH_ERROR;\r
- }\r
- }\r
- if(bluetoothBackground == nullptr){\r
- bluetoothBackground = new UIImageView();\r
- if (bluetoothBackground == nullptr) {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "bluetoothBackground UIImageView new fail");\r
- return BLUETOOTH_ERROR;\r
- }\r
- }\r
-\r
- const char* BackgroundImage = "/user/res/SETTING_BACKGROUND.bin";\r
- phoneBackground->SetPosition(43,120);\r
- phoneBackground->SetStyle(STYLE_BORDER_RADIUS, 100);\r
- phoneBackground->SetSrc(BackgroundImage);\r
-\r
- watchBackground->SetPosition(43,240);\r
- watchBackground->SetStyle(STYLE_BORDER_RADIUS, 100);\r
- watchBackground->SetSrc(BackgroundImage);\r
-\r
- bluetoothBackground->SetPosition(43,360);\r
- bluetoothBackground->SetStyle(STYLE_BORDER_RADIUS, 100);\r
- bluetoothBackground->SetSrc(BackgroundImage);\r
- return BLUETOOTH_OK;\r
-}\r
-\r
-/// @brief 加载图片图标\r
-/// @param \r
-/// @return \r
-int BluetoothView::LoadImage(void)\r
-{\r
- ImageInfo *image;\r
- // 图片图标\r
- phoneImage = new UIImageView();\r
- if (phoneImage == nullptr) {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "phoneImage new fail");\r
- return BLUETOOTH_ERROR;\r
- }\r
- phoneImage->SetPosition(IMAGE_X, IMAGE_Y, WIDTH2, HEIGHT2);\r
- image = ImageCacheManager::GetInstance().LoadOneInMultiRes(PLAYER_PHONE_WHITE, PLAYER_IAMGES);\r
- phoneImage->SetSrc(image);\r
-\r
-\r
- watchImage = new UIImageView();\r
- if (watchImage == nullptr) {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "watchImage new fail");\r
- return BLUETOOTH_ERROR;\r
- }\r
- watchImage->SetPosition(IMAGE_X, IMAGE_Y2, WIDTH2, HEIGHT2);\r
- image = ImageCacheManager::GetInstance().LoadOneInMultiRes(PLAYER_LOCAL_MUSIC_WHITE, PLAYER_IAMGES);\r
- watchImage->SetSrc(image);\r
-\r
- bluetoothImage = new UIImageView();\r
- if (bluetoothImage == nullptr) {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "bluetoothImage new fail");\r
- return BLUETOOTH_ERROR;\r
- }\r
- bluetoothImage->SetPosition(IMAGE_X, IMAGE_Y3, WIDTH2, HEIGHT2);\r
- image = ImageCacheManager::GetInstance().LoadOneInMultiRes(PLAYER_EARPHONE_WHITE, PLAYER_IAMGES);\r
- bluetoothImage->SetSrc(image);\r
- return BLUETOOTH_OK;\r
-}\r
-\r
-/// @brief 加载文本\r
-/// @param \r
-/// @return \r
-int BluetoothView::LoadLabel(void)\r
-{\r
- /* -------------------------------------------------------------------------- */\r
- if (phoneLabel == nullptr) {\r
- phoneLabel = new UILabel();\r
- if (phoneLabel == nullptr) {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "phoneLabel new fail");\r
- return BLUETOOTH_ERROR;\r
- }\r
- }\r
- phoneLabel->SetPosition(STEP_LABEL_X, STEP_LABEL_Y, TEXT_WIDTH, TEXT_HEIGHT);\r
- phoneLabel->SetText("手机音乐");\r
- phoneLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, FONT_THIRTY_SIZE);\r
- /* -------------------------------------------------------------------------- */\r
- if (watchLabel == nullptr) {\r
- watchLabel = new UILabel();\r
- if (watchLabel == nullptr) {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "watchLabel new fail");\r
- return BLUETOOTH_ERROR;\r
- }\r
- }\r
- watchLabel->SetPosition(STEP_LABEL_X, STEP_LABEL_Y2, TEXT_WIDTH, TEXT_HEIGHT);\r
- watchLabel->SetText("本地音乐");\r
- watchLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, FONT_THIRTY_SIZE);\r
- /* -------------------------------------------------------------------------- */\r
- if (bluetoothLabel == nullptr) {\r
- bluetoothLabel = new UILabel();\r
- if (bluetoothLabel == nullptr) {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "bluetoothLabel new fail");\r
- return BLUETOOTH_ERROR;\r
- }\r
- }\r
- bluetoothLabel->SetPosition(STEP_LABEL_X, STEP_LABEL_Y3, TEXT_WIDTH, TEXT_HEIGHT);\r
- bluetoothLabel->SetText("蓝牙音乐");\r
- bluetoothLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, FONT_THIRTY_SIZE);\r
- /* -------------------------------------------------------------------------- */\r
- return BLUETOOTH_OK;\r
-}\r
-\r
-/// @brief 加载两个radiobutton\r
-/// @return \r
-int BluetoothView::LoadRadioButton(void)\r
-{\r
- /* -------------------------------------------------------------------------- */\r
- if (phoneButton == nullptr) {\r
- phoneButton = new UIRadioButton("MusicCategory");\r
- if (phoneButton == nullptr) {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "phoneButton UIRadio new fail");\r
- return BLUETOOTH_ERROR;\r
- }\r
- }\r
- UIView::OnClickListener *listener1 = new BluetoothOnClickListener(reinterpret_cast<UIView*>(phoneButton));\r
- if (listener1 == nullptr) {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "listener1 new fail");\r
- return BLUETOOTH_ERROR;\r
- }\r
- phoneButton->SetPosition(BUTTON_X, BUTTON_Y, WIDTH, HEIGHT);\r
- \r
- phoneButton->SetImages(PNG_CHECKBOX_ON_IMAGE,PNG_CHECKBOX_OFF_IMAGE);\r
- phoneButton->SetOnClickListener(listener1);\r
- \r
- /* -------------------------------------------------------------------------- */\r
- if (watchButton == nullptr) {\r
- watchButton = new UIRadioButton("MusicCategory");\r
- if (watchButton == nullptr) {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "watchButton UIRadio new fail");\r
- return BLUETOOTH_ERROR;\r
- }\r
- }\r
- UIView::OnClickListener *listener2 = new BluetoothOnClickListener(reinterpret_cast<UIView*>(watchButton));\r
- if (listener2 == nullptr) {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "listener2 new fail");\r
- return BLUETOOTH_ERROR;\r
- }\r
- watchButton->SetState(UICheckBox::SELECTED);\r
- watchButton->SetPosition(BUTTON_X, BUTTON_Y2, WIDTH, HEIGHT);\r
- watchButton->SetImages(PNG_CHECKBOX_ON_IMAGE,PNG_CHECKBOX_OFF_IMAGE);\r
- watchButton->SetOnClickListener(listener2);\r
- /* -------------------------------------------------------------------------- */\r
- return BLUETOOTH_OK;\r
-}\r
-\r
-/// @brief 加载蓝牙耳机按钮视图\r
-/// @return \r
-int BluetoothView::LoadButtonView(void)\r
-{\r
- if (settingButton == nullptr) {\r
- settingButton = new UIButton();\r
- if (settingButton == nullptr) {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "settingButton UIButton new fail");\r
- return BLUETOOTH_ERROR;\r
- }\r
- }\r
- // 跳转按钮\r
- UIView::OnClickListener *clickListener = (UIView::OnClickListener *)OHOS::PlayersPresenter::GetInstance();\r
- if (clickListener == nullptr) {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "clickListener GetInstance fail");\r
- return BLUETOOTH_ERROR;\r
- }\r
- settingButton->SetPosition(BUTTON_X2,BUTTON_Y3, WIDTH, HEIGHT);\r
- settingButton->SetStyle(STYLE_BACKGROUND_COLOR, 0xffffffff);\r
- settingButton->SetStyle(STYLE_BACKGROUND_OPA, 0x00);\r
- settingButton->SetStyleForState(STYLE_BACKGROUND_OPA, 0x00, UIButton::PRESSED);\r
- settingButton->SetStyleForState(STYLE_BORDER_COLOR, 0xffffffff, UIButton::PRESSED);\r
- settingButton->SetStyleForState(STYLE_BORDER_OPA, 0x00, UIButton::PRESSED);\r
- settingButton->SetOnClickListener(clickListener);\r
- settingButton->SetImageSrc(PNG_SETTING_NEXT_IMAGE, PNG_SETTING_NEXT_IMAGE);\r
- settingButton->SetViewId(BLUETOOTH_SETTING_BUTTON);\r
- return BLUETOOTH_OK;\r
-}\r
-\r
-\r
-/// @brief 加载音乐来源视图\r
-/// @return \r
-UIViewGroup *BluetoothView::LoadMusicSourceView(void)\r
-{\r
- if(group == nullptr)\r
- {\r
- group = new UIViewGroup();\r
- if (group == nullptr) {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "group new fail");\r
- return nullptr;\r
- }\r
- }\r
- group->SetPosition(0, 0, 466, 466);\r
- group->SetStyle(STYLE_BACKGROUND_OPA, 0);\r
- if (scrollView == nullptr) {\r
- scrollView = new UIScrollView();\r
- if (scrollView == nullptr) {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "scrollView new fail");\r
- return nullptr;\r
- }\r
- }\r
- scrollView->SetPosition(0, 0,466,466);\r
- scrollView->SetScrollBlankSize(40);\r
- scrollView->SetReboundSize(50);\r
- scrollView->SetDirection(1);\r
- group->Add(scrollView);\r
-\r
- LoadTitleLabel();\r
- LoadImageBackGround();\r
- LoadImage();\r
- LoadLabel();\r
- LoadRadioButton();\r
- LoadButtonView();\r
- \r
- scrollView->Add(titleLabel);\r
- \r
- scrollView->Add(phoneBackground);\r
- scrollView->Add(watchBackground);\r
- scrollView->Add(bluetoothBackground);\r
-\r
- scrollView->Add(watchImage);\r
- scrollView->Add(phoneImage);\r
- scrollView->Add(bluetoothImage);\r
-\r
- scrollView->Add(watchLabel);\r
- scrollView->Add(phoneLabel);\r
- scrollView->Add(bluetoothLabel);\r
-\r
- scrollView->Add(watchButton);\r
- scrollView->Add(phoneButton);\r
- scrollView->Add(settingButton);\r
-\r
- UIView::OnDragListener *earDragListener = (UIView::OnDragListener *)OHOS::PlayerOnDragListener::GetInstance();\r
- if (earDragListener == nullptr) {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "earDragListener GetInstance fail");\r
- return nullptr;\r
- }\r
- group->SetOnDragListener(earDragListener);\r
- group->SetViewId(BLUETOOTH_VIEW);\r
- group->SetDraggable(true);\r
- group->SetTouchable(true);\r
- return group;\r
-}\r
-}\r
--- /dev/null
+/*\r
+ * Copyright (c) CompanyNameMagicTag 2021-2021. All rights reserved.\r
+ * Description: bluetooth view 设置页面\r
+ * Create: 2021-09-5\r
+ */\r
+#include "player/include/MusicPlayerSourceView.h"\r
+#include "player/include/PlayersView.h"\r
+#include "player/include/PlayersModel.h"\r
+#include "UiConfig.h"\r
+#include "BluetoothEarPhoneView.h"\r
+#include "player/include/PlayersPresenter.h"\r
+#include "ui_resource_image.h"\r
+#include "ui_resource_string.h"\r
+#include "settings/include/SettingModel.h"\r
+#include "ui_resource_string.h"\r
+namespace OHOS\r
+{\r
+ static MusicPlayerSourceView *g_bluetoothView{nullptr};\r
+ MusicPlayerSourceView::MusicPlayerSourceView()\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "MusicPlayerSourceView::MusicPlayerSourceView");\r
+ g_bluetoothView = this;\r
+ }\r
+\r
+ MusicPlayerSourceView::~MusicPlayerSourceView()\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "MusicPlayerSourceView::~MusicPlayerSourceView");\r
+ ClearAll();\r
+ g_bluetoothView = nullptr;\r
+ }\r
+\r
+ MusicPlayerSourceView *MusicPlayerSourceView::GetInstance(void)\r
+ {\r
+ return g_bluetoothView;\r
+ }\r
+\r
+ bool MusicPlayerSourceView::OnClick(UIView &view, const ClickEvent &event)\r
+ {\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "MusicPlayerSourceView::OnClick");\r
+ UILabelButton *button = dynamic_cast<UILabelButton *>(&view);\r
+ if (!button)\r
+ {\r
+ return false;\r
+ }\r
+ PlayersPresenter *playersPresenter = PlayersPresenter::GetInstance();\r
+ if (!playersPresenter)\r
+ {\r
+ return false;\r
+ }\r
+ ImageInfo *image;\r
+ if (button == phoneLableButton) // 若点击的是手机音乐按钮\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "OnClick phoneLableButton");\r
+ PlayersModel::GetInstance()->SetMusicSource(true);\r
+ UpdateBluetoothHeadSetViewIsVisible();\r
+\r
+ // 1.a2dp未连接,向手机发起a2dp连接\r
+\r
+ playersPresenter->UpdatePlayerView();\r
+ }\r
+ else if (button == watchLableButton) // 若点击的是手表音乐按钮\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "OnClick watchLableButton");\r
+ PlayersModel::GetInstance()->SetMusicSource(false);\r
+ UpdateBluetoothHeadSetViewIsVisible();\r
+\r
+ playersPresenter->UpdatePlayerView();\r
+ }\r
+ else if (button == bluetoothHeadsetLableButton)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "OnClick bluetoothHeadsetLableButton");\r
+ }\r
+\r
+ return true;\r
+ }\r
+\r
+ // class BluetoothOnClickListener : public UIView::OnClickListener\r
+ // {\r
+ // public:\r
+ // BluetoothOnClickListener(UIView *view) : view_(view) {}\r
+ // ~BluetoothOnClickListener() {}\r
+\r
+ // bool OnClick(UIView &view, const ClickEvent &event) override\r
+ // {\r
+ // UNUSED(view);\r
+ // UNUSED(event);\r
+ // WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BluetoothOnClickListener OnClick");\r
+ // MusicPlayerSourceView *bluetoothView = MusicPlayerSourceView::GetInstance();\r
+ // PlayersPresenter *playersPresenter = PlayersPresenter::GetInstance();\r
+ // ImageInfo *image;\r
+ // if (bluetoothView == nullptr)\r
+ // {\r
+ // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "bluetoothView is nullptr");\r
+ // return false;\r
+ // }\r
+ // if (view_ == (UIView *)bluetoothView->GetWatchButton())\r
+ // {\r
+ // WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "watchButton OnClick"); // 手表音乐\r
+ // image = ImageCacheManager::GetInstance().LoadOneInMultiRes(PLAYER_LOCAL_MUSIC_COLOR, PLAYER_IAMGES);\r
+ // playersPresenter->SetOptionsButtonImageStyle(image);\r
+ // playersPresenter->SetPhoneMusicConnectStatusLabelIsVisible(false);\r
+ // playersPresenter->SetMusicListButtonIsVisible(true);\r
+ // playersPresenter->SetMusicSourceSetText("本地音乐");\r
+ // }\r
+ // else if (view_ == (UIView *)bluetoothView->GetPhoneButton())\r
+ // {\r
+ // WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "phoneButton OnClick"); // 手机音乐\r
+ // image = ImageCacheManager::GetInstance().LoadOneInMultiRes(PLAYER_PHONE_COLOR, PLAYER_IAMGES);\r
+ // playersPresenter->SetOptionsButtonImageStyle(image);\r
+ // playersPresenter->SetPhoneMusicConnectStatusLabelIsVisible(true);\r
+ // playersPresenter->SetMusicListButtonIsVisible(false);\r
+ // /* -------------------------------------------------------------------------- */\r
+ // // 以后会用\r
+ // // std::string phonemusic_connect_status_text = "";\r
+ // // if(获取连接状态。。。)\r
+ // // {\r
+ // // 获取成功。。。\r
+ // // phonemusic_connect_status_text = "已连接";\r
+ // // }\r
+ // // else\r
+ // // {\r
+ // // 获取失败。。。\r
+ // // phonemusic_connect_status_text = "未连接";\r
+ // // }\r
+ // // playersPresenter->SetPhoneMusicConnectStatusSetText(phonemusic_connect_status_text.c_str());\r
+ // /* -------------------------------------------------------------------------- */\r
+ // playersPresenter->SetPhoneMusicConnectStatusSetText("未连接");\r
+ // playersPresenter->SetMusicSourceSetText("手机音乐"); // 还有小bug,切换到其他界面时标签内容为“手机音乐”,会被还原成本地音乐\r
+ // }\r
+ // else if (view_ == (UIView *)bluetoothView->GetSettingButton())\r
+ // {\r
+ // WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "settingButton OnClick");\r
+ // image = ImageCacheManager::GetInstance().LoadOneInMultiRes(PLAYER_EARPHONE_COLOR, PLAYER_IAMGES);\r
+ // playersPresenter->SetOptionsButtonImageStyle(image);\r
+ // JumpView *jumpView = JumpView::GetInstance();\r
+ // if (jumpView == nullptr)\r
+ // {\r
+ // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "jumpView GetInstance fail");\r
+ // return false;\r
+ // }\r
+ // jumpView->ChangeView(JumpView::BluetoothJumpViewNum::BLUETOOTHEVIEW,\r
+ // JumpView::BluetoothJumpViewNum::BLUETOOTHEARPHONEVIEW);\r
+ // }\r
+ // return true;\r
+ // }\r
+\r
+ // private:\r
+ // UIView *view_ = nullptr;\r
+ // };\r
+\r
+ void MusicPlayerSourceView::ClearAll()\r
+ {\r
+ if (group != nullptr)\r
+ {\r
+ group->RemoveAll();\r
+ if (scrollView != nullptr)\r
+ {\r
+ scrollView->RemoveAll();\r
+ if (titleLabel)\r
+ {\r
+ delete titleLabel;\r
+ titleLabel = nullptr;\r
+ }\r
+ if (phoneLableButton)\r
+ {\r
+ delete phoneLableButton;\r
+ phoneLableButton = nullptr;\r
+ }\r
+ if (watchLableButton)\r
+ {\r
+ delete watchLableButton;\r
+ watchLableButton = nullptr;\r
+ }\r
+ if (bluetoothHeadsetLableButton)\r
+ {\r
+ delete bluetoothHeadsetLableButton;\r
+ bluetoothHeadsetLableButton = nullptr;\r
+ }\r
+ if (phoneImage)\r
+ {\r
+ delete phoneImage;\r
+ phoneImage = nullptr;\r
+ }\r
+ if (watchImage)\r
+ {\r
+ delete watchImage;\r
+ watchImage = nullptr;\r
+ }\r
+ if (bluetoothHeadsetImage)\r
+ {\r
+ delete bluetoothHeadsetImage;\r
+ bluetoothHeadsetImage = nullptr;\r
+ }\r
+ if (phoneLabel)\r
+ {\r
+ delete phoneLabel;\r
+ phoneLabel = nullptr;\r
+ }\r
+ if (watchLabel)\r
+ {\r
+ delete watchLabel;\r
+ watchLabel = nullptr;\r
+ }\r
+ if (bluetoothHeadsetLabel)\r
+ {\r
+ delete bluetoothHeadsetLabel;\r
+ bluetoothHeadsetLabel = nullptr;\r
+ }\r
+ if (bluetoothHeadsetConnectState)\r
+ {\r
+ delete bluetoothHeadsetConnectState;\r
+ bluetoothHeadsetConnectState = nullptr;\r
+ }\r
+ delete scrollView;\r
+ scrollView = nullptr;\r
+ }\r
+ ImageCacheManager::GetInstance().UnloadOneInMultiRes(PLAYER_PHONE_WHITE, PLAYER_IAMGES);\r
+ ImageCacheManager::GetInstance().UnloadOneInMultiRes(PLAYER_LOCAL_MUSIC_WHITE, PLAYER_IAMGES);\r
+ ImageCacheManager::GetInstance().UnloadOneInMultiRes(PLAYER_EARPHONE_WHITE, PLAYER_IAMGES);\r
+ if (dragListener)\r
+ {\r
+ delete dragListener;\r
+ dragListener = nullptr;\r
+ }\r
+ delete group;\r
+ group = nullptr;\r
+ }\r
+ }\r
+\r
+ UILabelExt *MusicPlayerSourceView::MusicPlayerSourceViewLabelInit(LabelConfig &labelconfig)\r
+ {\r
+ UILabelExt *label = new UILabelExt();\r
+ if (label == nullptr)\r
+ {\r
+ return nullptr;\r
+ }\r
+ label->SetPosition(labelconfig.left, labelconfig.top, labelconfig.width, labelconfig.height);\r
+ label->SetStyle(STYLE_TEXT_FONT, labelconfig.fontSize);\r
+ label->SetStyle(STYLE_LINE_HEIGHT, labelconfig.lineHeigh);\r
+ label->SetTextId(labelconfig.textId);\r
+ label->SetLineBreakMode(labelconfig.lineBreakMode);\r
+ // label->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);\r
+ label->SetRollSpeed(70);\r
+ label->SetFont(DEFAULT_VECTOR_FONT_FILENAME, labelconfig.fontSize);\r
+ return label;\r
+ }\r
+\r
+ UILabelButton *MusicPlayerSourceView::MusicPlayerSourceViewLabelButtonInit(ButtonConfig &buttonconfig)\r
+ {\r
+ UILabelButton *button = new UILabelButton();\r
+ if (button == nullptr)\r
+ {\r
+ return nullptr;\r
+ }\r
+ button->SetPosition(buttonconfig.x, buttonconfig.y, buttonconfig.w, buttonconfig.h);\r
+ button->SetViewId(buttonconfig.viewId);\r
+ button->SetStyle(STYLE_BACKGROUND_COLOR, 0xff191919);\r
+ button->SetStyle(STYLE_BACKGROUND_OPA, 0xff);\r
+ button->SetStyleForState(STYLE_BACKGROUND_COLOR, 0xff000000, UIButton::PRESSED);\r
+ button->SetOnClickListener(this);\r
+ if (buttonconfig.flag)\r
+ {\r
+ button->SetImagePosition(300, 30);\r
+ button->SetImageSrc(PNG_CHECKBOX_OFF_IMAGE, PNG_CHECKBOX_OFF_IMAGE);\r
+ }\r
+ else\r
+ {\r
+ button->SetImagePosition(326, 37);\r
+ button->SetImageSrc(PNG_SETTING_NEXT_IMAGE, PNG_SETTING_NEXT_IMAGE);\r
+ }\r
+ return button;\r
+ }\r
+\r
+ bool MusicPlayerSourceView::CreateMusicPlayerSourceViewLabelButton(void)\r
+ {\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "MusicPlayerSourceView::CreateMusicPlayerSourceViewLabelButton");\r
+ ButtonConfig buttonconfig = {\r
+ .x = 43,\r
+ .y = 120,\r
+ .w = 380,\r
+ .h = 100,\r
+ .viewId = PHONE_MUSIC_LABEL_BUTTON,\r
+ .flag = true,\r
+ };\r
+ phoneLableButton = MusicPlayerSourceViewLabelButtonInit(buttonconfig);\r
+ if (nullptr == phoneLableButton)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "phoneLableButton new fail!!");\r
+ return false;\r
+ }\r
+ /* ---------------------------- watchLableButton ---------------------------- */\r
+ buttonconfig.y += 120;\r
+ buttonconfig.viewId = WATCH_MUSIC_LABEL_BUTTON;\r
+ watchLableButton = MusicPlayerSourceViewLabelButtonInit(buttonconfig);\r
+ if (nullptr == watchLableButton)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "watchLableButton new fail!!");\r
+ return false;\r
+ }\r
+ /* ----------------------- bluetoothHeadsetLableButton ---------------------- */\r
+ buttonconfig.y += 120;\r
+ buttonconfig.viewId = BLUETOOTH_HEADSET_LABEL_BUTTON;\r
+ buttonconfig.flag = false;\r
+ bluetoothHeadsetLableButton = MusicPlayerSourceViewLabelButtonInit(buttonconfig);\r
+ if (nullptr == bluetoothHeadsetLableButton)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "bluetoothHeadsetLableButton new fail!!");\r
+ return false;\r
+ }\r
+\r
+ return true;\r
+ }\r
+\r
+ bool MusicPlayerSourceView::CreateMusicPlayerSourceViewLabel(void)\r
+ {\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "MusicPlayerSourceView::CreateMusicPlayerSourceViewLabel");\r
+ LabelConfig labelConfig = {\r
+ .left = 83,\r
+ .top = 50,\r
+ .width = 300,\r
+ .height = 35,\r
+ .fontSize = 30,\r
+ .lineHeigh = 35,\r
+ .textId = STR_MUSIC_SOURCE, /*音乐来源*/\r
+ .lineBreakMode = UILabel::LINE_BREAK_OSCILLATION,\r
+ };\r
+ titleLabel = MusicPlayerSourceViewLabelInit(labelConfig);\r
+ if (nullptr == titleLabel)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "titleLabel new fail!!");\r
+ return false;\r
+ }\r
+ titleLabel->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);\r
+ /* ------------------------------- phoneLabel ------------------------------- */\r
+ labelConfig = {\r
+ .left = 143,\r
+ .top = 153,\r
+ .width = 180,\r
+ .height = 35,\r
+ .fontSize = 30,\r
+ .lineHeigh = 35,\r
+ .textId = STR_MOBILE_MUSIC, /*手机音乐*/\r
+ .lineBreakMode = UILabel::LINE_BREAK_OSCILLATION,\r
+ };\r
+ phoneLabel = MusicPlayerSourceViewLabelInit(labelConfig);\r
+ if (nullptr == phoneLabel)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "phoneLabel new fail!!");\r
+ return false;\r
+ }\r
+ /* ------------------------------- watchLabel ------------------------------- */\r
+ labelConfig.top += 120;\r
+ labelConfig.textId = STR_WATCH_MUSIC; // 手表音乐\r
+ watchLabel = MusicPlayerSourceViewLabelInit(labelConfig);\r
+ if (nullptr == watchLabel)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "watchLabel new fail!!");\r
+ return false;\r
+ }\r
+ /* -------------------------- bluetoothHeadsetLabel ------------------------- */\r
+ labelConfig.top = 381;\r
+ labelConfig.textId = STR_BLUETOOTH_HEADPHONES; // 蓝牙耳机\r
+ bluetoothHeadsetLabel = MusicPlayerSourceViewLabelInit(labelConfig);\r
+ if (nullptr == bluetoothHeadsetLabel)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "bluetoothHeadsetLabel new fail!!");\r
+ return false;\r
+ }\r
+ /* ---------------------- bluetoothHeadsetConnectState ---------------------- */\r
+ labelConfig.top = 413;\r
+ labelConfig.textId = (SettingModel::GetInstance().GetEarPhoneConnectStatus()) ? STR_PAIRED : STR_NOT_PAIRED;\r
+ bluetoothHeadsetConnectState = MusicPlayerSourceViewLabelInit(labelConfig);\r
+ if (nullptr == bluetoothHeadsetConnectState)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "bluetoothHeadsetConnectState new fail!!");\r
+ return false;\r
+ }\r
+ return true;\r
+ }\r
+\r
+ bool MusicPlayerSourceView::CreateMusicPlayerSourceViewImage(void)\r
+ {\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "MusicPlayerSourceView::CreateMusicPlayerSourceViewImage");\r
+ ImageInfo *image;\r
+ /* ------------------------------- phoneImage ------------------------------- */\r
+ int x = 83;\r
+ int y = 150;\r
+ int w = 40;\r
+ int h = 40;\r
+ phoneImage = new UIImageView();\r
+ if (phoneImage == nullptr)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "phoneImage new fail");\r
+ return false;\r
+ }\r
+ phoneImage->SetPosition(x, y, w, h);\r
+ if (!PlayersView::LoadPlayerImage(phoneImage, PLAYER_PHONE_WHITE))\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "phoneImage LoadPlayerImage fail");\r
+ return false;\r
+ }\r
+ /* ------------------------------- watchImage ------------------------------- */\r
+ y += 120;\r
+ watchImage = new UIImageView();\r
+ if (watchImage == nullptr)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "watchImage new fail");\r
+ return false;\r
+ }\r
+ watchImage->SetPosition(x, y, w, h);\r
+ if (!PlayersView::LoadPlayerImage(watchImage, PLAYER_LOCAL_MUSIC_WHITE))\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "phoneImage LoadPlayerImage fail");\r
+ return false;\r
+ }\r
+ /* -------------------------- bluetoothHeadsetImage ------------------------- */\r
+ y += 120;\r
+ bluetoothHeadsetImage = new UIImageView();\r
+ if (bluetoothHeadsetImage == nullptr)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "bluetoothHeadsetImage new fail");\r
+ return false;\r
+ }\r
+ bluetoothHeadsetImage->SetPosition(x, y, w, h);\r
+ if (!PlayersView::LoadPlayerImage(bluetoothHeadsetImage, PLAYER_EARPHONE_WHITE))\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "phoneImage LoadPlayerImage fail");\r
+ return false;\r
+ }\r
+ return true;\r
+ }\r
+\r
+ UIViewGroup *MusicPlayerSourceView::CreateMusicPlayerSourceView(void)\r
+ {\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "MusicPlayerSourceView::CreateMusicPlayerSourceView");\r
+ if (group == nullptr)\r
+ {\r
+ group = new UIViewGroup();\r
+ if (group == nullptr)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "group new fail");\r
+ return nullptr;\r
+ }\r
+ }\r
+ group->SetPosition(0, 0, 466, 466);\r
+ group->SetStyle(STYLE_BACKGROUND_OPA, 0);\r
+ group->SetTouchable(true);\r
+ group->SetDraggable(true);\r
+ group->SetIntercept(true);\r
+ group->SetViewId(MUSIC_PLAYER_SOURCE_VIEW);\r
+ if (dragListener == nullptr)\r
+ {\r
+ dragListener = static_cast<UIView::OnDragListener *>(new PlayerOnDragListener());\r
+ if (dragListener == nullptr)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "dragListener new fail");\r
+ return nullptr;\r
+ }\r
+ }\r
+ group->SetOnDragListener(dragListener);\r
+ /* -------------------------------------------------------------------------- */\r
+ if (scrollView == nullptr)\r
+ {\r
+ scrollView = new UIScrollView();\r
+ if (scrollView == nullptr)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "scrollView new fail");\r
+ return nullptr;\r
+ }\r
+ }\r
+ scrollView->SetPosition(0, 0, 466, 466);\r
+ scrollView->SetScrollBlankSize(75);\r
+ scrollView->SetReboundSize(35);\r
+ scrollView->SetDirection(UIScrollView::VERTICAL);\r
+ group->Add(scrollView);\r
+\r
+ if (!CreateMusicPlayerSourceViewLabelButton() || !CreateMusicPlayerSourceViewLabel() || !CreateMusicPlayerSourceViewImage())\r
+ {\r
+ return nullptr;\r
+ }\r
+\r
+ UpdateBluetoothHeadsetConnectLabel();\r
+ UpdateBluetoothHeadSetViewIsVisible();\r
+ /* ----------------------------------- Add ---------------------------------- */\r
+\r
+ scrollView->Add(titleLabel);\r
+ scrollView->Add(phoneLableButton);\r
+ scrollView->Add(watchLableButton);\r
+ scrollView->Add(bluetoothHeadsetLableButton);\r
+ scrollView->Add(phoneImage);\r
+ scrollView->Add(watchImage);\r
+ scrollView->Add(bluetoothHeadsetImage);\r
+ scrollView->Add(phoneLabel);\r
+ scrollView->Add(watchLabel);\r
+ scrollView->Add(bluetoothHeadsetLabel);\r
+ scrollView->Add(bluetoothHeadsetConnectState);\r
+ /* -------------------------------------------------------------------------- */\r
+ return group;\r
+ }\r
+\r
+ void MusicPlayerSourceView::UpdateBluetoothHeadSetViewIsVisible(void)\r
+ {\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "MusicPlayerSourceView::CreateMusicPlayerSourceViewImage");\r
+ bool value = PlayersModel::GetInstance()->GetMusicSource();\r
+ if (bluetoothHeadsetLabel && bluetoothHeadsetImage && bluetoothHeadsetLableButton && bluetoothHeadsetConnectState)\r
+ {\r
+ bluetoothHeadsetLabel->SetVisible(value ? false : true);\r
+ bluetoothHeadsetImage->SetVisible(value ? false : true);\r
+ bluetoothHeadsetLableButton->SetVisible(value ? false : true);\r
+ bluetoothHeadsetConnectState->SetVisible(value ? false : true);\r
+ }\r
+ if (phoneLableButton && watchLableButton)\r
+ {\r
+ if (value)\r
+ {\r
+ phoneLableButton->SetImageSrc(PNG_CHECKBOX_ON_IMAGE, PNG_CHECKBOX_ON_IMAGE);\r
+ watchLableButton->SetImageSrc(PNG_CHECKBOX_OFF_IMAGE, PNG_CHECKBOX_OFF_IMAGE);\r
+ }\r
+ else\r
+ {\r
+ phoneLableButton->SetImageSrc(PNG_CHECKBOX_OFF_IMAGE, PNG_CHECKBOX_OFF_IMAGE);\r
+ watchLableButton->SetImageSrc(PNG_CHECKBOX_ON_IMAGE, PNG_CHECKBOX_ON_IMAGE);\r
+ }\r
+ }\r
+ scrollView->Invalidate();\r
+ }\r
+\r
+ void MusicPlayerSourceView::UpdateBluetoothHeadsetConnectLabel(void)\r
+ {\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "MusicPlayerSourceView::UpdateBluetoothHeadsetConnectLabel");\r
+ if (bluetoothHeadsetConnectState)\r
+ {\r
+ bool state = SettingModel::GetInstance().GetEarPhoneConnectStatus();\r
+ bluetoothHeadsetConnectState->SetTextId(state ? STR_PAIRED : STR_NOT_PAIRED);\r
+ bluetoothHeadsetConnectState->SetTextColor(state ? Color::GetColorFromRGBA(0x4f, 0xc3, 0x4c, 0xff) : Color::GetColorFromRGBA(0xff, 0xff, 0xff, 0x7f));\r
+ bluetoothHeadsetConnectState->Invalidate();\r
+ }\r
+ }\r
+}\r
if((&view == P_PlayersCaseListAdapter->p_BtnOnClickListListener->m_button[index_]) && \r
P_PlayersCaseListAdapter->p_BtnOnClickListListener->playOrDeleteStatus[index_] == 0)\r
{\r
- playersView->GetDelSongView()->SetTheSongLabelStyle(sliceId_);\r
+ playersView->GetPlayerListDelSongView()->SetTheSongLabelStyle(sliceId_);\r
playersView->SetPlayerDelSongViewStatus(true);\r
return false;\r
}\r
std::string strSongName = sliceId_;\r
std::string pureName = strSongName.substr(0, strSongName.rfind(".")); //获取纯粹歌曲名\r
const char *songName = pureName.c_str();\r
- //playersView->TitleSetText(songName);\r
//playersView->SetPlayerListGroupStatus(false);//这是点击歌曲后就会播放歌曲歌单隐藏\r
/* -------------------------------------------------------------------------- */\r
SongClick(P_PlayersCaseListAdapter,index_);\r
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "PlayerInit playersPresenter GetInstance fail");
return OHOS_FAILURE;
}
- // playersPresenter->SetTitleSetText(songName);
playersPresenter->SetPlaybackProgress(circleProgress);
playersPresenter->SetPlayerState(playButtonState);
// PlayerStat();
const char *songName = pureName.c_str();
PlayersPresenter *playersPresenter = PlayersPresenter::GetInstance();
if (playersPresenter != nullptr) {
- // playersPresenter->SetTitleSetText(songName);
playersPresenter->SetPlaybackProgress(0); // 0:进度0%
}
int32_t ret;
duration = duration_;
}
+bool PlayersModel::GetMusicSource()
+{
+ return musicSourceFlag;
+}
+
+void PlayersModel::SetMusicSource(bool value)
+{
+ musicSourceFlag = value;
+}
+
}
\ No newline at end of file
#include "bts_avrcp_controller.h"\r
#include "bts_avrcp_target.h"\r
#include <PlayerListDelSongView.h>\r
+#include "ConfigModel.h"\r
\r
namespace OHOS {\r
static PlayerOnDragListener *g_pPlayerOnDragListener = nullptr;\r
//切换到音乐来源视图\r
bool JumpView::ChangeBluetoothView(int16_t hideView, int16_t thisView)\r
{\r
+ /*\r
UNUSED(hideView);\r
if (container[thisView] == nullptr) {\r
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ChangeBluetoothView");\r
- bluetoothView = new BluetoothView();\r
+ bluetoothView = new MusicPlayerSourceView();\r
if (bluetoothView == nullptr) {\r
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "bluetoothView new fail");\r
return false;\r
}\r
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "JumpView::ChangeBluetoothView");\r
BluetoothModel::GetInstance()->SetTagConnectView(false);\r
+ */\r
return true;\r
}\r
\r
return;\r
}\r
\r
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "playerButton OnClick");\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "play_or_pause_Button OnClick");\r
uint8_t state = UICheckBox::UICheckBoxState::MAX_STATUS_NUM;\r
int32_t playerState;\r
int32_t connCtState = avrcp_ct_get_device_connect_state(BluetoothModel::GetInstance()->GetLastConnedAddr());\r
/* -------------------------------------------------------------------------- */\r
}\r
\r
+/*当声音按钮被点击时候调用*/\r
void ButtonOnClickListener::SoundButtonOnClick()\r
{\r
- \r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ButtonOnClickListener SoundButtonOnClick");\r
PlayersView *playersView = PlayersView::GetInstance();\r
if (playersView == nullptr) {\r
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SoundButtonOnClick playersView nullptr err");\r
return;\r
}\r
- if (volumeSettingView == nullptr) {\r
- volumeSettingView = new VolumeSettingView();\r
- if (volumeSettingView == nullptr) {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "volumeSetting nullptr err");\r
- return;\r
- }\r
- if (!volumeSettingView->SetUpVolume()) {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "volumeSetting SetUpVolume fail");\r
- return;\r
- }\r
- RootView::GetInstance()->Add(volumeSettingView);\r
- }\r
- int32_t volume = AudioManager::GetInstance().GetVolume(AUDIO_STREAM_MUSIC);\r
+ playersView->ChangeView(PlayersView::MAIN_MUSICPLAYER_VIEW, PlayersView::MUSIC_VOLUME_CONTROL_VIEW);\r
+ int32_t volume = ConfigModel::GetInstance()->GetSystemVolume();\r
WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "current volume = %d", volume);\r
- volumeSettingView->GetProgress()->SetValue(volume);\r
- if (volume == 0) {\r
- ImageInfo *image = ImageCacheManager::GetInstance().LoadOneInMultiRes(PLAYER_MUTE_BUTTON, PLAYER_IAMGES);\r
- volumeSettingView->GetDecreaseButton()->SetImageSrc(image, image);\r
+ if( playersView->GetVolumeSettingView()->GetProgress()) {\r
+ playersView->GetVolumeSettingView()->GetProgress()->SetValue(volume);\r
}\r
- VolumeSliderEventListener *volumeSliderEventListener = volumeSettingView->GetVolumeEventListener();\r
+ VolumeSliderEventListener *volumeSliderEventListener = playersView->GetVolumeSettingView()->GetVolumeEventListener();\r
if (volumeSliderEventListener == nullptr) {\r
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SoundButtonOnClick volumeSliderEventListener nullptr err");\r
return;\r
}\r
volumeSliderEventListener->SetPlayerCoefficients(VOLUMEPLAYERS); // 进度条系数\r
- playersView->SetVisible(false);\r
- volumeSettingView->SetVisible(true);\r
- // 刷新UI\r
- RootView::GetInstance()->Invalidate();\r
-\r
+ return;\r
}\r
-\r
+//当音乐来源按钮被点击时候调用\r
void ButtonOnClickListener::OptionsButtonOnClick()\r
{\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ButtonOnClickListener OptionsButtonOnClick");\r
PlayersView *playersView = PlayersView::GetInstance();\r
if (playersView == nullptr) {\r
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "OptionsButtonOnClick playersView nullptr err");\r
return;\r
}\r
- JumpView *jumpView = JumpView::GetInstance();\r
- if (jumpView == nullptr) {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "jumpView GetInstance fail");\r
- return;\r
- }\r
- playersView->SetVisible(false);\r
- jumpView->ChangeView(JumpView::BluetoothJumpViewNum::BLUETOOTHEJUMP_MAX,\r
- JumpView::BluetoothJumpViewNum::BLUETOOTHEVIEW);\r
+ playersView->ChangeView(PlayersView::MAIN_MUSICPLAYER_VIEW,PlayersView::MUSIC_SOURCE_VIEW);\r
+ return;\r
}\r
\r
void ButtonOnClickListener::PlayerModelButtonOnClick()\r
\r
bool ButtonOnClickListener::OnClick(UIView& view, const ClickEvent& event)\r
{\r
-\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ButtonOnClickListener OnClick");\r
UNUSED(event);\r
PlayersView *playersView = PlayersView::GetInstance();\r
if (playersView == nullptr) {\r
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "PlayersView::GetInstance");\r
return false;\r
}\r
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ButtonOnClickListener OnClick");\r
- if (view_ == (UIView *)playersView->GetPlayerButton()) {\r
+ if (&view == (UIView *)playersView->GetPlayerButton()) {\r
PlayerButtonOnClick();\r
- } else if (view_ == (UIView *)playersView->GetNextButton()) {\r
+ } else if (&view == (UIView *)playersView->GetNextButton()) {\r
if (playersView->GetPlaybackProgress() != nullptr) {\r
playersView->GetPlaybackProgress()->SetValue(0); // 0:进度0%\r
playersView->GetPlaybackProgress()->Invalidate();\r
}\r
PlayersModel::GetInstance()->LoopingPlayout();\r
- } else if (view_ == (UIView *)playersView->GetPreButton()) {\r
+ } else if (&view == (UIView *)playersView->GetPreButton()) {\r
if (playersView->GetPlaybackProgress() != nullptr) {\r
playersView->GetPlaybackProgress()->SetValue(0); // 0:进度0%\r
playersView->GetPlaybackProgress()->Invalidate();\r
}\r
PlayersModel::GetInstance()->PreviousPlayout();\r
- } else if (view_ == (UIView *)playersView->GetPlayerModelButton()) {\r
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "playerModelButton OnClick");\r
+ } else if (&view == (UIView *)playersView->GetPlayerModelButton()) {\r
PlayersModel::GetInstance()->SetPlayerModelAddOne();\r
if (PlayersModel::GetInstance()->GetPlayerModel() > RANDOM) {\r
PlayersModel::GetInstance()->SetPlayerModel(LOOP);\r
}\r
PlayerModelButtonOnClick();\r
- } else if (view_ == (UIView *)playersView->GetSoundButton()) {\r
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "soundButton OnClick");\r
+ } else if (&view == (UIView *)playersView->GetSoundButton()) {\r
SoundButtonOnClick();\r
- } else if (view_ == (UIView *)playersView->GetOptionsButton()) {\r
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "optionsButton OnClick");\r
+ } else if (&view == (UIView *)playersView->GetOptionsButton()) {\r
OptionsButtonOnClick();\r
- }\r
- if(strcmp(view.GetViewId(),"music_list_button") == 0)\r
+ }else if(&view == playersView->GetMusicListButton())\r
{\r
PlayersPresenter::GetInstance()->ShowPlayerListGroup();\r
}\r
else if(strcmp(view.GetViewId(),ENSURE_DELETE_BUTTON) == 0) //删除音乐\r
{\r
- playersView->GetDelSongView()->DeleteSongNameFile();\r
+ playersView->GetPlayerListDelSongView()->DeleteSongNameFile();\r
}\r
else if(strcmp(view.GetViewId(),CANCEL_DELETE_BUTTON) == 0) //不删除音乐\r
{\r
}\r
}\r
\r
+/*从音乐来源视图回到音乐主视图*/\r
void PlayerOnDragListener::OnDragChangBluetoothView(const DragEvent& event)\r
{\r
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "OnDragChangBluetoothView");\r
- if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT) {\r
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "DIRECTION_LEFT_TO_RIGHT");\r
+ if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT && X_DRAG_FLAG) {\r
PlayersView *playersView = PlayersView::GetInstance();\r
if (playersView == nullptr) {\r
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "playersView GetInstance fail");\r
return;\r
}\r
- BluetoothView *bluetoothView = BluetoothView::GetInstance();\r
- if (bluetoothView == nullptr) {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "bluetoothView GetInstance fail");\r
- return;\r
- }\r
- bluetoothView->group->SetVisible(false);\r
- playersView->SetVisible(true);\r
- // 刷新UI\r
- RootView::GetInstance()->Invalidate();\r
+ playersView->ChangeView(PlayersView::MUSIC_SOURCE_VIEW,PlayersView::MAIN_MUSICPLAYER_VIEW);\r
+ X_DRAG_FLAG = true;\r
}\r
}\r
\r
JumpView::BluetoothJumpViewNum::BLUETOOTHEVIEW, true);\r
}\r
\r
+bool PlayerOnDragListener::OnDrag(UIView& view, const DragEvent& event)\r
+{\r
+ UNUSED(view);\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AiVoicePresenter::OnDrag");\r
+ if ((event.GetDeltaX() > X_DRAG_OFFSET) && (event.GetDeltaX() > (DOUBLES * MATH_ABS(event.GetDeltaY())))) // 拖动过程中判断是否是水平滑动\r
+ {\r
+ X_DRAG_FLAG = true;\r
+ }\r
+ return true;\r
+}\r
+\r
bool PlayerOnDragListener::OnDragEnd(UIView& view, const DragEvent& event)\r
{\r
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PlayerOnDragListener::OnDragEnd- %s", view.GetViewId());\r
} else if (strcmp(view.GetViewId(), BLUETOOTH_OPTIONS_VIEW) == 0) {\r
OnDragChangView(event, JumpView::BluetoothJumpViewNum::BLUETOOTHEOPTIONSVIEW,\r
JumpView::BluetoothJumpViewNum::BLUETOOTHDEVICELISTVIEW, false);\r
- } else if (strcmp(view.GetViewId(), BLUETOOTH_VIEW) == 0) {\r
+ } else if (strcmp(view.GetViewId(), MUSIC_PLAYER_SOURCE_VIEW) == 0) {\r
OnDragChangBluetoothView(event);\r
+ return false;\r
} else if (strcmp(view.GetViewId(), BLUETOOTH_DEVICE_LIST_VIEW) == 0) {\r
OnDragChangView(event, JumpView::BluetoothJumpViewNum::BLUETOOTHDEVICELISTVIEW,\r
JumpView::BluetoothJumpViewNum::BLUETOOTHEVIEW, false);\r
return;\r
}\r
\r
-bool PlayerOnDragListener::OnDrag(UIView& view, const DragEvent& event)\r
-{\r
- UNUSED(view);\r
- if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT) {\r
- PlayersView *playersView = PlayersView::GetInstance();\r
- if (playersView == nullptr) {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "PlayerbackReset playersView GetInstance fail");\r
- return false;\r
- }\r
- playersView->SetPlayerListGroupStatus(false);\r
- RootView::GetInstance()->Invalidate();\r
- }\r
- return false;\r
-}\r
-\r
void PlayersPresenter::OnClickRescanButton(void)\r
{\r
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "RescanButtonOnClickListener OnClick");\r
return false;\r
}\r
\r
-void PlayersPresenter::SetTitleSetText(const char *text)\r
+void PlayersPresenter::UpdatePlayerView(void)\r
{\r
PlayersView *playersView = PlayersView::GetInstance();\r
if (playersView == nullptr) {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SetTitleSetText playersView GetInstance fail");\r
- return;\r
- }\r
- if (playersView->GetTitleLabel() == nullptr) {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SetTitleSetText titleLabel nullptr");\r
- return;\r
- }\r
- playersView->TitleSetText(text);\r
-}\r
-\r
-/// @brief 设置音乐来源标签内容\r
-/// @param text 文本内容\r
-void PlayersPresenter::SetMusicSourceSetText(const char *text)\r
-{\r
- PlayersView *playersView = PlayersView::GetInstance();\r
- if (playersView == nullptr) {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SetMusicSourceSetText playersView GetInstance fail");\r
- return;\r
- }\r
- if (playersView->GetMusicSourceLabel() == nullptr) {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SetMusicSourceSetText MusciSourceLabel nullptr");\r
- return;\r
- }\r
- playersView->MusicSourceLabelSetText(text);\r
-}\r
-\r
-/// @brief 设置手机音乐连接状态文本内容\r
-/// @param text 文本内容\r
-void PlayersPresenter::SetPhoneMusicConnectStatusSetText(const char *text)\r
-{\r
- PlayersView *playersView = PlayersView::GetInstance();\r
- if (playersView == nullptr) {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SetPhoneMusicConnectStatusSetText playersView GetInstance fail");\r
- return;\r
- }\r
- if (playersView->GetPhoneMusicConnectStatusLabel() == nullptr) {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SetPhoneMusicConnectStatusSetText PhoneMusicConnectStatusLabel nullptr");\r
- return;\r
- }\r
- playersView->PhoneMusicConnectStatusLabelSetText(text);\r
-}\r
-\r
-/// @brief 设置手机音乐连接状态标签是否可见\r
-/// @param status true 可见 false 阴藏\r
-void PlayersPresenter::SetPhoneMusicConnectStatusLabelIsVisible(bool status)\r
-{\r
- PlayersView *playersView = PlayersView::GetInstance();\r
- if (playersView == nullptr) {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SetPhoneMusicConnectStatusLabelIsVisible playersView GetInstance fail");\r
- return;\r
- }\r
- if (playersView->GetPhoneMusicConnectStatusLabel() == nullptr) {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SetPhoneMusicConnectStatusLabelIsVisible PhoneMusicConnectStatusLabel nullptr");\r
- return;\r
- }\r
- playersView->PhoneMusicConnectStatusLabelIsSetVisible(status);\r
-}\r
-\r
-/// @brief 设置音乐列表按钮是否可见\r
-/// @param status true 可见 false 阴藏\r
-void PlayersPresenter::SetMusicListButtonIsVisible(bool status)\r
-{\r
- PlayersView *playersView = PlayersView::GetInstance();\r
- if (playersView == nullptr) {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SetMusicListButtonIsVisible playersView GetInstance fail");\r
- return;\r
- }\r
- if (playersView->GetMusicListButton() == nullptr) {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SetMusicListButtonIsVisible music_list_button nullptr");\r
- return;\r
- }\r
- playersView->MusicListButtonIsSetVisible(status);\r
-}\r
-\r
-/// @brief 设置选项按钮的图片样式:点击该按钮后进入音乐来源视图,点击里面的按钮,改选项按钮会被替换相应图片\r
-/// @param image 图片信息\r
-void PlayersPresenter::SetOptionsButtonImageStyle(ImageInfo *image)\r
-{\r
- PlayersView *playersView = PlayersView::GetInstance();\r
- if (playersView == nullptr) {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SetOptionsButtonImageStyle playersView GetInstance fail");\r
- return;\r
- }\r
- if (playersView->GetOptionsButton() == nullptr) {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SetOptionsButtonImageStyle optionsButton nullptr");\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "playersView GetInstance fail");\r
return;\r
}\r
- playersView->OptionsButtonSetImageStyle(image);\r
+ playersView->UpdatePlayerView();\r
}\r
\r
void PlayersPresenter::SetPlaybackProgress(int64_t value)\r
*/\r
#include <stdlib.h>\r
#include <unistd.h>\r
-#include "common/image_cache_manager.h"\r
#include "ui_resource_image.h"\r
#include "player/include/PlayersView.h"\r
#include "UiConfig.h"\r
#include "player/include/PlayersCaseListAdapter.h"\r
#include "main/include/MainViewSample.h"\r
#include "traing/training_card/include/TraingCardView.h"\r
-\r
+#include "wearable_log.h"\r
+#include "settings/include/SettingModel.h"\r
namespace OHOS\r
{\r
static PlayersView *g_pPlayersView = nullptr;\r
if (viewiInitStatus == true)\r
{\r
UnLoadPlayerImageRes();\r
- state = GetPlayerButtonState();\r
+ uint8_t state = GetPlayerButtonState();\r
if (state == UICheckBox::UICheckBoxState::SELECTED)\r
{\r
PlayersModel::GetInstance()->SetPlayButtonState(true);\r
}\r
RemoveAll();\r
- listGroup->RemoveAll();\r
- delete list;\r
- list = nullptr;\r
- delete playerlistener;\r
- playerlistener = nullptr;\r
- delete playerButton;\r
- playerButton = nullptr;\r
- delete soundlistener;\r
- soundlistener = nullptr;\r
- delete nextButton;\r
- nextButton = nullptr;\r
- delete nextlistener;\r
- nextlistener = nullptr;\r
- delete preButton;\r
- preButton = nullptr;\r
- TearDownView();\r
- delete adapterText;\r
- adapterText = nullptr;\r
- delete backGround;\r
- delete titleLabel;\r
- delete subTitleLabel;\r
- delete MusciSourceLabel;\r
- MusciSourceLabel = nullptr;\r
- if (music_list_button != nullptr)\r
+ ClearAll();\r
+ if (listGroup)\r
{\r
- delete music_list_button;\r
- music_list_button = nullptr;\r
+ listGroup->RemoveAll();\r
+ if (musicListTitle)\r
+ {\r
+ delete musicListTitle;\r
+ musicListTitle = nullptr;\r
+ }\r
+ if (musicAdapter)\r
+ {\r
+ delete musicAdapter;\r
+ musicAdapter = nullptr;\r
+ }\r
+ if (musicList)\r
+ {\r
+ delete musicList;\r
+ musicList = nullptr;\r
+ }\r
+ delete listGroup;\r
+ listGroup = nullptr;\r
}\r
- if (PhoneMusicConnectStatusLabel != nullptr)\r
+ if (jumpView)\r
{\r
- delete PhoneMusicConnectStatusLabel;\r
- PhoneMusicConnectStatusLabel = nullptr;\r
+ delete jumpView;\r
+ jumpView = nullptr;\r
+ }\r
+ if (playersPresenter)\r
+ {\r
+ delete playersPresenter;\r
+ playersPresenter = nullptr;\r
+ }\r
+ if (playerOnDragListener)\r
+ {\r
+ delete playerOnDragListener;\r
+ playerOnDragListener = nullptr;\r
}\r
- backGround = nullptr;\r
- titleLabel = nullptr;\r
- subTitleLabel = nullptr;\r
- delete playbackProgress;\r
- playbackProgress = nullptr;\r
- delete jumpView;\r
- jumpView = nullptr;\r
- delete playersPresenter;\r
- playersPresenter = nullptr;\r
- delete playerOnDragListener;\r
- playerOnDragListener = nullptr;\r
}\r
g_pPlayersView = nullptr;\r
}\r
\r
- void PlayersView::TitleSetText(const char *text)\r
- {\r
- titleLabel->SetText(text);\r
- titleLabel->SetLineBreakMode(UILabel::LINE_BREAK_MARQUEE);\r
- titleLabel->SetAlign(UITextLanguageAlignment::TEXT_ALIGNMENT_CENTER,\r
- UITextLanguageAlignment::TEXT_ALIGNMENT_CENTER);\r
- }\r
-\r
- void PlayersView::PlayerModelButtonSetSrc(uint32_t playMode)\r
- {\r
- ImageInfo *image = ImageCacheManager::GetInstance().LoadOneInMultiRes(playMode, PLAYER_IAMGES);\r
- playerModelButton->SetSrc(image);\r
- }\r
-\r
int16_t PlayersView::GetVolumeRank(void)\r
{\r
return volumeSet;\r
volumeSet++;\r
}\r
\r
- UIButton *PlayersView::GetPullButton(void)\r
- {\r
- return pullButton;\r
- }\r
-\r
+ /*获取音乐来源按钮*/\r
UIButton *PlayersView::GetOptionsButton(void)\r
{\r
- return optionsButton;\r
+ return musicSourceButton;\r
}\r
\r
+ /*获取上一首音乐按钮*/\r
UIButton *PlayersView::GetPreButton(void)\r
{\r
- return preButton;\r
+ return preMusicButton;\r
}\r
\r
+ /*获取下一首音乐按钮*/\r
UIButton *PlayersView::GetNextButton(void)\r
{\r
- return nextButton;\r
+ return nextMusicButton;\r
}\r
\r
// 获取音乐列表按钮\r
return music_list_button;\r
}\r
\r
- UILabel *PlayersView::GetTitleLabel(void)\r
+ /*获取播放模式按钮*/\r
+ UIButton *PlayersView::GetPlayerModelButton(void)\r
{\r
- return titleLabel;\r
+ return playerModelButton;\r
}\r
\r
- // 获取音乐来源标签\r
- UILabel *PlayersView::GetMusicSourceLabel(void)\r
+ /*获取声音调节按钮*/\r
+ UIButton *PlayersView::GetSoundButton(void)\r
{\r
- return MusciSourceLabel;\r
+ return soundButton;\r
}\r
\r
- // 获手机音乐连接状态标签\r
- UILabel *PlayersView::GetPhoneMusicConnectStatusLabel(void)\r
+ /*获取音乐播放和暂停复选按钮*/\r
+ UICheckBox *PlayersView::GetPlayerButton(void)\r
{\r
- return PhoneMusicConnectStatusLabel;\r
+ return play_or_pause_Button;\r
}\r
\r
- UICheckBox *PlayersView::GetPlayerButton(void)\r
+ /*获取音乐播放进度条*/\r
+ UICircleProgress *PlayersView::GetPlaybackProgress(void)\r
{\r
- return playerButton;\r
+ return playbackProgress;\r
}\r
\r
- UIImageView *PlayersView::GetSoundButton(void)\r
+ /*获取音乐列表*/\r
+ UIList *PlayersView::GetPlayerList(void)\r
{\r
- return soundButton;\r
+ return musicList;\r
}\r
\r
- UICircleProgress *PlayersView::GetPlaybackProgress(void)\r
+ /*获取声音设置视图*/\r
+ VolumeSettingView *PlayersView::GetVolumeSettingView()\r
{\r
- return playbackProgress;\r
+ return volumeSettingView;\r
}\r
\r
- UIImageView *PlayersView::GetPlayerModelButton(void)\r
+ PlayerListDelSongView *PlayersView::GetPlayerListDelSongView()\r
{\r
- return playerModelButton;\r
+ return playerListDelSongView;\r
+ }\r
+\r
+ UIViewGroup *PlayersView::GetPlayerGroupView(int index)\r
+ {\r
+ return group[index];\r
}\r
\r
+ /*获取音乐播放和暂停复选按钮的状态*/\r
UICheckBox::UICheckBoxState PlayersView::GetPlayerButtonState(void)\r
{\r
- return playerButton->GetState();\r
+ return play_or_pause_Button->GetState();\r
}\r
\r
void PlayersView::SetPlayerButtonState(UICheckBox::UICheckBoxState state)\r
{\r
- if (playerButton == nullptr)\r
+ if (play_or_pause_Button == nullptr)\r
{\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "PlayersView::SetPlayerButtonState playerButton NULL");\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "PlayersView::SetPlayerButtonState play_or_pause_Button NULL");\r
return;\r
}\r
- return playerButton->SetState(state);\r
+ return play_or_pause_Button->SetState(state);\r
}\r
\r
- UIList *PlayersView::GetPlayerList(void)\r
- {\r
- return list;\r
- }\r
/// @brief 根据传入的status参数来控制歌曲列表组的显示与隐藏。\r
/// @param status\r
void PlayersView::SetPlayerListGroupStatus(bool status)\r
PlayersModel::GetInstance()->GetPlayerCtr()->SetVolume(leftVolume, rightVolume);\r
}\r
\r
- void PlayersView::TearDownView()\r
- {\r
- delete prelistener;\r
- prelistener = nullptr;\r
- delete playerModelButton;\r
- playerModelButton = nullptr;\r
- delete modellistener;\r
- modellistener = nullptr;\r
- delete soundButton;\r
- soundButton = nullptr;\r
- delete optionslistener;\r
- optionslistener = nullptr;\r
- delete optionsButton;\r
- optionsButton = nullptr;\r
- delete pullButton;\r
- pullButton = nullptr;\r
- delete listGroup;\r
- listGroup = nullptr;\r
- }\r
-\r
PlayersView *PlayersView::GetInstance(void)\r
{\r
return g_pPlayersView;\r
musicListTitle->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);\r
listGroup->Add(musicListTitle);\r
\r
- // list type\r
- if (adapterText == nullptr)\r
+ if (musicAdapter == nullptr)\r
{\r
- adapterText = new PlayersCaseListAdapter();\r
- if (adapterText == nullptr)\r
+ musicAdapter = new PlayersCaseListAdapter();\r
+ if (musicAdapter == nullptr)\r
{\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "adapterText new fail");\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "musicAdapter new fail");\r
return;\r
}\r
}\r
- if (list == nullptr)\r
+ if (musicList == nullptr)\r
{\r
- list = new UIList(UIList::VERTICAL);\r
- if (list == nullptr)\r
+ musicList = new UIList(UIList::VERTICAL);\r
+ if (musicList == nullptr)\r
{\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "list new fail");\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "musicList new fail");\r
return;\r
}\r
- list->SetPosition(67, 138, 332, 500);\r
- list->SetStartIndex(0); // 0 : list start index\r
- list->SetAdapter(adapterText);\r
+ musicList->SetPosition(67, 138, 332, 500);\r
+ musicList->SetStartIndex(0);\r
+ musicList->SetAdapter(musicAdapter);\r
}\r
- listGroup->Add(list);\r
+ listGroup->Add(musicList);\r
RootView::GetInstance()->Add(listGroup);\r
UIView::OnDragListener *dragListener = (UIView::OnDragListener *)OHOS::PlayerOnDragListener::GetInstance();\r
if (dragListener == nullptr)\r
/// @param songName\r
void PlayersView::ShowUpDelSongView()\r
{\r
- if (p_PlayerListDelSongView == nullptr)\r
+ if (playerListDelSongView == nullptr)\r
{\r
- p_PlayerListDelSongView = new PlayerListDelSongView();\r
+ playerListDelSongView = new PlayerListDelSongView();\r
}\r
- DelSongView = p_PlayerListDelSongView->InitDelSongView();\r
+ DelSongView = playerListDelSongView->InitDelSongView();\r
RootView::GetInstance()->Add(DelSongView);\r
DelSongView->SetTouchable(true);\r
DelSongView->SetVisible(false);\r
}\r
\r
- // 设置按钮的位置和监听\r
- void PlayersView::SetUpButton(UIButton *btn, const Point &point,\r
- int16_t width, int16_t height, UIView::OnClickListener *listener)\r
+ // 创建跳转视图\r
+ void PlayersView::CreateJumpView(void)\r
{\r
- if (btn == nullptr)\r
+ if (jumpView == nullptr)\r
{\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "PlayersView::SetUpButton nullptr");\r
- return;\r
+ jumpView = new JumpView();\r
+ if (jumpView == nullptr)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "jumpView new fail");\r
+ return;\r
+ }\r
}\r
- Add(btn);\r
- btn->SetPosition(point.x, point.y, width, height);\r
- btn->SetOnClickListener(listener);\r
}\r
- // å¤\8dé\80\89æ¡\86ï¼\9aé\80\89䏿\92æ\94¾æ\9cªé\80\89䏿\9a\82å\81\9c\r
- int PlayersView::ShowUpCheckBoxButton()\r
+ // å\88\9b建ä¸\80个é\9f³ä¹\90æ\92æ\94¾å\99¨ç\9a\84é\80»è¾\91å±\82\r
+ void PlayersView::CreatePlayersPresenter(void)\r
{\r
- ImageInfo *ImagePlay;\r
- ImageInfo *ImagerPause;\r
- if (playerButton == nullptr)\r
- {\r
- playerButton = new UICheckBox();\r
- }\r
- if (soundButton == nullptr)\r
- {\r
- soundButton = new UIImageView();\r
- }\r
- if ((playerButton == nullptr) || (soundButton == nullptr))\r
- {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "new fail");\r
- return OHOS_FAILURE;\r
- }\r
- playerlistener = new ButtonOnClickListener(reinterpret_cast<UIView *>(playerButton));\r
- if (playerlistener == nullptr)\r
- {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "playerlistener new fail");\r
- return OHOS_FAILURE;\r
- }\r
- playerButton->SetPosition(195, 195, 80, 80); // 140:x 139:y 172:width 172:height\r
- playerButton->SetOnClickListener(playerlistener);\r
- // ImagePlay = ImageCacheManager::GetInstance().LoadOneInMultiRes(PLAYER_MUSIC_PLAY, PLAYER_IAMGES); // 播放图片\r
- // ImagerPause = ImageCacheManager::GetInstance().LoadOneInMultiRes(PLAYER_MUSIC_PAUSE, PLAYER_IAMGES); // 暂停图片\r
- // playerButton->SetImages(ImagePlay, ImagerPause);\r
- Add(playerButton);\r
-\r
- soundlistener = new ButtonOnClickListener(reinterpret_cast<UIView *>(soundButton));\r
- if (soundlistener == nullptr)\r
+ if (playersPresenter == nullptr)\r
{\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "soundlistener new fail");\r
- return OHOS_FAILURE;\r
+ playersPresenter = new PlayersPresenter();\r
+ if (playersPresenter == nullptr)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "playersPresenter new fail");\r
+ return;\r
+ }\r
}\r
- soundButton->SetTouchable(true);\r
- soundButton->SetPosition(321, 321, 60, 60);\r
- soundButton->SetOnClickListener(soundlistener);\r
- // if (LoadPlayerImage(soundButton, PLAYER_MUSIC_VOICE) == false)\r
- // {\r
- // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "playerModelButton LoadPlayerImage fail");\r
- // return false;\r
- // }\r
- Add(soundButton);\r
- return OHOS_SUCCESS;\r
}\r
- // 显示按钮:下一首,上一首,播放模式\r
- int PlayersView::ShowUpButton()\r
- {\r
- struct Point pointBtn;\r
- ImageInfo *image;\r
- pointBtn.x = 366; // 366:x\r
- pointBtn.y = 213; // 213:y\r
- nextlistener = new ButtonOnClickListener(reinterpret_cast<UIView *>(nextButton));\r
- if (nextlistener == nullptr)\r
- {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "nextlistener new fail");\r
- return OHOS_FAILURE;\r
- }\r
- SetUpButton(nextButton, pointBtn, 60, 60, nextlistener); // 93:width 116:height\r
- // image = ImageCacheManager::GetInstance().LoadOneInMultiRes(PLAYER_MUSIC_NEXT, PLAYER_IAMGES);\r
- // nextButton->SetImageSrc(image, image);\r
- nextButton->SetStyle(STYLE_BACKGROUND_COLOR, 0xffffffff);\r
- nextButton->SetStyle(STYLE_BACKGROUND_OPA, 0x00);\r
- nextButton->SetStyleForState(STYLE_BACKGROUND_COLOR, 0xfffbfbfb, UIButton::PRESSED);\r
- nextButton->SetStyleForState(STYLE_BACKGROUND_OPA, 0x00, UIButton::PRESSED);\r
- nextButton->SetStyleForState(STYLE_BORDER_COLOR, 0xff0b1928, UIButton::PRESSED);\r
- pointBtn.x = 60; // 60:x\r
- pointBtn.y = 213; // 213:y\r
- prelistener = new ButtonOnClickListener(reinterpret_cast<UIView *>(preButton));\r
- if (prelistener == nullptr)\r
- {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "prelistener new fail");\r
- return OHOS_FAILURE;\r
- }\r
- SetUpButton(preButton, pointBtn, 60, 60, prelistener); // 86:width 116:height\r
- // image = ImageCacheManager::GetInstance().LoadOneInMultiRes(PLAYER_MUSIC_PROVE, PLAYER_IAMGES);\r
- // preButton->SetImageSrc(image, image);\r
- preButton->SetStyle(STYLE_BACKGROUND_COLOR, 0xffffffff);\r
- preButton->SetStyle(STYLE_BACKGROUND_OPA, 0x00);\r
- preButton->SetStyleForState(STYLE_BACKGROUND_COLOR, 0xfffbfbfb, UIButton::PRESSED);\r
- preButton->SetStyleForState(STYLE_BACKGROUND_OPA, 0x00, UIButton::PRESSED);\r
- preButton->SetStyleForState(STYLE_BORDER_COLOR, 0xff0b1928, UIButton::PRESSED);\r
- pointBtn.x = 105; // 105:x\r
- pointBtn.y = 321; // 321:y\r
- modellistener = new ButtonOnClickListener(reinterpret_cast<UIView *>(playerModelButton));\r
- if (modellistener == nullptr)\r
- {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "modellistener new fail");\r
- return OHOS_FAILURE;\r
- }\r
- playerModelButton->SetTouchable(true);\r
- playerModelButton->SetPosition(pointBtn.x, pointBtn.y, 60, 60);\r
- playerModelButton->SetOnClickListener(modellistener);\r
- // if (ShowUpPlayerMode() == false)\r
- // {\r
- // return OHOS_FAILURE;\r
- // }\r
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "playerModel %d", PlayersModel::GetInstance()->GetPlayerModel());\r
- Add(playerModelButton);\r
-\r
- return OHOS_SUCCESS;\r
- }\r
- // 显示音乐播放模式:LOOP 循环播放 SEQUENCE 循序播放 REPEATS 单曲循环 RANDOM 随机播放\r
- bool PlayersView::ShowUpPlayerMode()\r
+ // 创建一个音乐播放器的拖拽监听\r
+ void PlayersView::CreatePlayerOnDragListener(void)\r
{\r
- if (PlayersModel::GetInstance()->GetPlayerModel() == LOOP)\r
+ if (playerOnDragListener == nullptr)\r
{\r
- if (LoadPlayerImage(playerModelButton, PLAYER_PLAYERSMODEL_LOOP) == false)\r
+ playerOnDragListener = new PlayerOnDragListener();\r
+ if (playerOnDragListener == nullptr)\r
{\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "load PLAYER_PLAYERSMODEL_LOOP fail");\r
- return false;\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "playerOnDragListener new fail");\r
+ return;\r
}\r
}\r
- else if (PlayersModel::GetInstance()->GetPlayerModel() == SEQUENCE)\r
+ }\r
+\r
+ /*删除容器上所有组件*/\r
+ void PlayersView::ClearAll(void)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "PlayersView::ClearAll");\r
+ if (group[MAIN_MUSICPLAYER_VIEW] != nullptr)\r
{\r
- if (LoadPlayerImage(playerModelButton, PLAYER_PLAYERSMODEL_SEQUENCE) == false)\r
+ group[MAIN_MUSICPLAYER_VIEW]->RemoveAll();\r
+ if (musicPlayerBackGround != nullptr)\r
{\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "load PLAYERSMODEL_SEQUENCE fail");\r
- return false;\r
+ delete musicPlayerBackGround;\r
+ musicPlayerBackGround = nullptr;\r
}\r
- }\r
- else if (PlayersModel::GetInstance()->GetPlayerModel() == REPEATS)\r
- {\r
- if (LoadPlayerImage(playerModelButton, PLAYER_PLAYERSMODEL_REPEATS) == false)\r
+ if (elipse != nullptr)\r
{\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "load PLAYERSMODEL_REPEATS fail");\r
- return false;\r
+ delete elipse;\r
+ elipse = nullptr;\r
}\r
- }\r
- else if (PlayersModel::GetInstance()->GetPlayerModel() == RANDOM)\r
- {\r
- if (LoadPlayerImage(playerModelButton, PLAYER_PLAYERSMODEL_RANDOM) == false)\r
+ if (playbackProgress != nullptr)\r
{\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "load PLAYERSMODEL_RANDOM fail");\r
- return false;\r
+ delete playbackProgress;\r
+ playbackProgress = nullptr;\r
}\r
+ if (play_or_pause_Button != nullptr)\r
+ {\r
+ delete play_or_pause_Button;\r
+ play_or_pause_Button = nullptr;\r
+ }\r
+ if (music_list_button != nullptr)\r
+ {\r
+ delete music_list_button;\r
+ music_list_button = nullptr;\r
+ }\r
+ if (musicSourceButton != nullptr)\r
+ {\r
+ delete musicSourceButton;\r
+ musicSourceButton = nullptr;\r
+ }\r
+ if (preMusicButton != nullptr)\r
+ {\r
+ delete preMusicButton;\r
+ preMusicButton = nullptr;\r
+ }\r
+ if (nextMusicButton != nullptr)\r
+ {\r
+ delete nextMusicButton;\r
+ nextMusicButton = nullptr;\r
+ }\r
+ if (playerModelButton != nullptr)\r
+ {\r
+ delete playerModelButton;\r
+ playerModelButton = nullptr;\r
+ }\r
+ if (soundButton != nullptr)\r
+ {\r
+ delete soundButton;\r
+ soundButton = nullptr;\r
+ }\r
+ if (MusciSourceLabel)\r
+ {\r
+ delete MusciSourceLabel;\r
+ MusciSourceLabel = nullptr;\r
+ }\r
+ if (PhoneMusicConnectStatusLabel)\r
+ {\r
+ delete PhoneMusicConnectStatusLabel;\r
+ PhoneMusicConnectStatusLabel = nullptr;\r
+ }\r
+ if (clickListener != nullptr)\r
+ {\r
+ delete clickListener;\r
+ clickListener = nullptr;\r
+ }\r
+ delete group[MAIN_MUSICPLAYER_VIEW];\r
+ group[MAIN_MUSICPLAYER_VIEW] = nullptr;\r
}\r
- return true;\r
- }\r
- // 显示按钮视图\r
- int PlayersView::ShowUpButtonView()\r
- {\r
- int ret;\r
- ret = ShowUpCheckBoxButton();\r
- if (ret == OHOS_FAILURE)\r
- {\r
- return OHOS_FAILURE;\r
- }\r
- if (nextButton == nullptr)\r
- {\r
- nextButton = new UIButton();\r
- }\r
- if (preButton == nullptr)\r
- {\r
- preButton = new UIButton();\r
- }\r
- if (optionsButton == nullptr)\r
- {\r
- optionsButton = new UIButton();\r
- }\r
- if (music_list_button == nullptr)\r
- {\r
- music_list_button = new UIButton();\r
- }\r
- if (pullButton == nullptr)\r
+ if (volumeSettingView != nullptr)\r
{\r
- pullButton = new UIButton();\r
+ delete volumeSettingView;\r
+ volumeSettingView = nullptr;\r
}\r
- if (playerModelButton == nullptr)\r
+ if (musicPlayerSourceView != nullptr)\r
{\r
- playerModelButton = new UIImageView();\r
+ delete musicPlayerSourceView;\r
+ musicPlayerSourceView = nullptr;\r
}\r
- if ((nextButton == nullptr) || (preButton == nullptr) || (playerModelButton == nullptr) || (optionsButton == nullptr) ||\r
- (pullButton == nullptr))\r
+\r
+ for (int i = MAIN_MUSICPLAYER_VIEW; i < MUSICPLAYERJUMPVIEWID_MAX; i++)\r
{\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "UIButton new fail");\r
- return OHOS_FAILURE;\r
+ group[i] = nullptr;\r
}\r
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ShowUpButtonView");\r
+ }\r
\r
- ret = ShowUpButton();\r
- if (ret == OHOS_FAILURE)\r
+ UIButton *PlayersView::PlayerViewButtonInit(ButtonConfig &buttonconfig)\r
+ {\r
+ UIButton *button = new UIButton();\r
+ if (button == nullptr)\r
{\r
- return OHOS_FAILURE;\r
+ return nullptr;\r
}\r
- ret = ShowUpButtonOptions();\r
- if (ret == OHOS_FAILURE)\r
+ button->SetPosition(buttonconfig.x, buttonconfig.y, buttonconfig.w, buttonconfig.h);\r
+ button->SetStyle(STYLE_BACKGROUND_COLOR, 0xffffffff);\r
+ button->SetStyle(STYLE_BACKGROUND_OPA, 0x00);\r
+ button->SetStyleForState(STYLE_BACKGROUND_COLOR, 0x00, UIButton::PRESSED);\r
+ button->SetOnClickListener(buttonconfig.clickListener);\r
+\r
+ return button;\r
+ }\r
+\r
+ /*创建音乐播放器的点击监听*/\r
+ bool PlayersView::CreatePlayerOnClickListener(void)\r
+ {\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PlayersView::CreatePlayerOnClickListener");\r
+ clickListener = static_cast<UIView::OnClickListener *>(new ButtonOnClickListener());\r
+ if (clickListener == nullptr)\r
{\r
- return OHOS_FAILURE;\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "clickListener new fail!!");\r
+ return false;\r
}\r
- ret = ShowUpCircleProgress();\r
- if (ret == OHOS_FAILURE)\r
+ return true;\r
+ }\r
+\r
+ /*创建音乐播放器的图片视图*/\r
+ bool PlayersView::CreatePlayerImageView(void)\r
+ {\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PlayersView::CreatePlayerImageVIew");\r
+ /* -------------------------- musicPlayerBackGround ------------------------- */\r
+ if (musicPlayerBackGround == nullptr)\r
{\r
- return OHOS_FAILURE;\r
+ musicPlayerBackGround = new UIImageView();\r
+ if (musicPlayerBackGround == nullptr)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "musicPlayerBackGround new fail");\r
+ return false;\r
+ }\r
}\r
- ret = ShowUpMusicListbutton();\r
- if (ret == OHOS_FAILURE)\r
+ musicPlayerBackGround->SetPosition(0, 0, HORIZONTAL_RESOLUTION, VERTICAL_RESOLUTION);\r
+ /* --------------------------------- elipse --------------------------------- */\r
+ if (elipse == nullptr)\r
{\r
- return OHOS_FAILURE;\r
+ elipse = new UIImageView();\r
+ if (elipse == nullptr)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "elipse new fail");\r
+ return false;\r
+ }\r
}\r
- return OHOS_SUCCESS;\r
+ elipse->SetPosition(173, 173, 120, 120);\r
+\r
+ return true;\r
}\r
\r
- // 显示音乐列表按钮\r
- int PlayersView::ShowUpMusicListbutton()\r
+ /*创建音乐播放器的标签视图*/\r
+ bool PlayersView::CreatePlayerLabelView(void)\r
{\r
- struct Point pointBtn;\r
- pointBtn.x = 213;\r
- pointBtn.y = 35;\r
- music_list_button_listener = new ButtonOnClickListener(reinterpret_cast<UIView *>(music_list_button));\r
- if (music_list_button_listener == nullptr)\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PlayersView::CreatePlayerLabelView");\r
+ if (MusciSourceLabel == nullptr)\r
{\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "music_list_button_listener new fail");\r
- return OHOS_FAILURE;\r
+ MusciSourceLabel = new UILabelExt();\r
+ if (MusciSourceLabel == nullptr)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "MusciSourceLabel new fail");\r
+ return false;\r
+ }\r
}\r
- SetUpButton(music_list_button, pointBtn, 60, 60, music_list_button_listener); // 75:width 76:height\r
- // ImageInfo *image = ImageCacheManager::GetInstance().LoadOneInMultiRes(PLAYER_MUSIC_LIST, PLAYER_IAMGES);\r
- // music_list_button->SetImageSrc(image, image);\r
- music_list_button->SetViewId("music_list_button");\r
- music_list_button->SetStyle(STYLE_BACKGROUND_COLOR, 0xffffffff);\r
- music_list_button->SetStyle(STYLE_BACKGROUND_OPA, 0x00);\r
- music_list_button->SetStyleForState(STYLE_BACKGROUND_COLOR, 0xfffbfbfb, UIButton::PRESSED);\r
- music_list_button->SetStyleForState(STYLE_BACKGROUND_OPA, 0x00, UIButton::PRESSED);\r
- music_list_button->SetStyleForState(STYLE_BORDER_COLOR, 0xff0b1928, UIButton::PRESSED);\r
-\r
- return OHOS_SUCCESS;\r
- }\r
- /*\r
- 创建了两个按钮:optionslistener:显示选项按钮,点击后里面有三种模式:1手机音乐,2本地音乐,3蓝牙耳机\r
- pullButton:上拉按钮上拉后显示歌单\r
- */\r
- int PlayersView::ShowUpButtonOptions()\r
- {\r
- struct Point pointBtn;\r
- pointBtn.x = 213;\r
- pointBtn.y = 366;\r
- optionslistener = new ButtonOnClickListener(reinterpret_cast<UIView *>(optionsButton));\r
- if (optionslistener == nullptr)\r
+ MusciSourceLabel->SetPosition(83, 90, 300, 35);\r
+ MusciSourceLabel->SetStyle(STYLE_TEXT_FONT, 30);\r
+ MusciSourceLabel->SetStyle(STYLE_LINE_HEIGHT, 35);\r
+ MusciSourceLabel->SetLineBreakMode(UILabel::LINE_BREAK_OSCILLATION);\r
+ MusciSourceLabel->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);\r
+ MusciSourceLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);\r
+ /* -------------------------------------------------------------------------- */\r
+ if (PhoneMusicConnectStatusLabel == nullptr)\r
{\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "optionslistener new fail");\r
- return OHOS_FAILURE;\r
+ PhoneMusicConnectStatusLabel = new UILabelExt();\r
+ if (PhoneMusicConnectStatusLabel == nullptr)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "PhoneMusicConnectStatusLabel new fail");\r
+ return false;\r
+ }\r
}\r
- SetUpButton(optionsButton, pointBtn, 60, 60, optionslistener); // 75:width 76:height\r
- // ImageInfo *image = ImageCacheManager::GetInstance().LoadOneInMultiRes(PLAYER_LOCAL_MUSIC_COLOR, PLAYER_IAMGES);\r
- // optionsButton->SetImageSrc(image, image);\r
- optionsButton->SetStyle(STYLE_BACKGROUND_COLOR, 0xffffffff);\r
- optionsButton->SetStyle(STYLE_BACKGROUND_OPA, 0x00);\r
- optionsButton->SetStyleForState(STYLE_BACKGROUND_COLOR, 0xfffbfbfb, UIButton::PRESSED);\r
- optionsButton->SetStyleForState(STYLE_BACKGROUND_OPA, 0x00, UIButton::PRESSED);\r
- optionsButton->SetStyleForState(STYLE_BORDER_COLOR, 0xff0b1928, UIButton::PRESSED);\r
+ PhoneMusicConnectStatusLabel->SetPosition(83, 40, 300, 35);\r
+ PhoneMusicConnectStatusLabel->SetTextColor(Color::GetColorFromRGBA(0xff, 0x5a, 0x36, 0xff));\r
+ PhoneMusicConnectStatusLabel->SetStyle(STYLE_TEXT_FONT, 30);\r
+ PhoneMusicConnectStatusLabel->SetStyle(STYLE_LINE_HEIGHT, 35);\r
+ PhoneMusicConnectStatusLabel->SetLineBreakMode(UILabel::LINE_BREAK_OSCILLATION);\r
+ PhoneMusicConnectStatusLabel->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);\r
+ PhoneMusicConnectStatusLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);\r
+ PhoneMusicConnectStatusLabel->SetVisible(false);\r
\r
- pointBtn.x = 178; // 178:x\r
- pointBtn.y = 394; // 394:y\r
- SetUpButton(pullButton, pointBtn, 95, 48, nullptr); // 95:width 48:height\r
- pullButton->SetImageSrc(PNG_PULLBUTTON_FACE_IMAGE, PNG_PULLBUTTON_FACE_IMAGE);\r
- pullButton->SetVisible(false);\r
- return OHOS_SUCCESS;\r
+ return true;\r
}\r
- // 显示播放进度条\r
- int PlayersView::ShowUpCircleProgress()\r
+\r
+ /*创建音乐播放器的进度条组件视图*/\r
+ bool PlayersView::CreatePlayerProgressView(void)\r
{\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PlayersView::CreatePlayerProgressView");\r
if (playbackProgress == nullptr)\r
{\r
playbackProgress = new UICircleProgress();\r
if (playbackProgress == nullptr)\r
{\r
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "playbackProgress new fail");\r
- return OHOS_FAILURE;\r
+ return false;\r
}\r
}\r
playbackProgress->SetPosition(158, 158, 150, 150);\r
playbackProgress->SetForegroundStyle(STYLE_BORDER_COLOR, 0xffffffff);\r
playbackProgress->SetForegroundStyle(STYLE_LINE_COLOR, 0xffffffff);\r
playbackProgress->SetForegroundStyle(STYLE_LINE_WIDTH, 6); // 6:width\r
- Add(playbackProgress);\r
- return OHOS_SUCCESS;\r
+\r
+ return true;\r
}\r
- // 创建跳转视图\r
- void PlayersView::CreateJumpView(void)\r
+\r
+ /*创建音乐播放器的播放和暂停按钮组件视图*/\r
+ bool PlayersView::CreatePlayerCheckBoxButtonView(void)\r
{\r
- if (jumpView == nullptr)\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PlayersView::CreatePlayerCheckBoxButtonView");\r
+ if (play_or_pause_Button == nullptr)\r
{\r
- jumpView = new JumpView();\r
- if (jumpView == nullptr)\r
+ play_or_pause_Button = new UICheckBox();\r
+ if (play_or_pause_Button == nullptr)\r
{\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "jumpView new fail");\r
- return;\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "new fail");\r
+ return false;\r
}\r
}\r
+ play_or_pause_Button->SetPosition(195, 195, 80, 80);\r
+ play_or_pause_Button->SetOnClickListener(clickListener);\r
+ return true;\r
}\r
- // 创建一个音乐播放器的逻辑层\r
- void PlayersView::CreatePlayersPresenter(void)\r
+\r
+ /*创建音乐播放器的按钮视图*/\r
+ bool PlayersView::CreatePlayerButtonView(void)\r
{\r
- if (playersPresenter == nullptr)\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PlayersView::CreatePlayerImageVIew");\r
+ ButtonConfig buttonConfig = {\r
+ .x = 213,\r
+ .y = 35,\r
+ .w = 60,\r
+ .h = 60,\r
+ .clickListener = clickListener,\r
+ };\r
+ /* ---------------------------- music_list_button --------------------------- */\r
+ music_list_button = PlayerViewButtonInit(buttonConfig);\r
+ if (nullptr == music_list_button)\r
{\r
- playersPresenter = new PlayersPresenter();\r
- if (playersPresenter == nullptr)\r
- {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "playersPresenter new fail");\r
- return;\r
- }\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "music_list_button new fail!!");\r
+ return false;\r
}\r
- }\r
- // 创建一个音乐播放器的拖拽监听\r
- void PlayersView::CreatePlayerOnDragListener(void)\r
- {\r
- if (playerOnDragListener == nullptr)\r
+ /* ----------------------------- preMusicButton ----------------------------- */\r
+ buttonConfig.x = 60;\r
+ buttonConfig.y = 213;\r
+ preMusicButton = PlayerViewButtonInit(buttonConfig);\r
+ if (nullptr == preMusicButton)\r
{\r
- playerOnDragListener = new PlayerOnDragListener();\r
- if (playerOnDragListener == nullptr)\r
- {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "playerOnDragListener new fail");\r
- return;\r
- }\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "preMusicButton new fail!!");\r
+ return false;\r
}\r
- }\r
- // 初始化背景图片\r
- bool PlayersView::InitBackGround(void)\r
- {\r
- if (backGround == nullptr)\r
+ /* ----------------------------- nextMusicButton ---------------------------- */\r
+ buttonConfig.x = 366;\r
+ buttonConfig.y = 213;\r
+ nextMusicButton = PlayerViewButtonInit(buttonConfig);\r
+ if (nullptr == nextMusicButton)\r
{\r
- backGround = new UIImageView();\r
- if (backGround == nullptr)\r
- {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "backGround new fail");\r
- return false;\r
- }\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "nextMusicButton new fail!!");\r
+ return false;\r
}\r
- backGround->SetPosition(0, 0, HORIZONTAL_RESOLUTION, VERTICAL_RESOLUTION);\r
- // if (LoadPlayerImage(backGround, PLAYER_BACKGROUND) == false)\r
- // {\r
- // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "backGround LoadPlayerImage fail");\r
- // return false;\r
- // }\r
- /* -------------------------------------------------------------------------- */\r
- if (elipse == nullptr)\r
+ /* ---------------------------- playerModelButton --------------------------- */\r
+ buttonConfig.x = 105;\r
+ buttonConfig.y = 321;\r
+ playerModelButton = PlayerViewButtonInit(buttonConfig);\r
+ if (nullptr == playerModelButton)\r
{\r
- elipse = new UIImageView();\r
- if (elipse == nullptr)\r
- {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "elipse new fail");\r
- return false;\r
- }\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "playerModelButton new fail!!");\r
+ return false;\r
}\r
- elipse->SetPosition(173, 173, 120, 120);\r
- // if (LoadPlayerImage(elipse, PLAYER_ELLIPSE) == false)\r
- // {\r
- // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "elipse LoadPlayerImage fail");\r
- // return false;\r
- // }\r
- Add(backGround);\r
- Add(elipse);\r
- return true;\r
- }\r
- // 创建音乐名,作者名\r
- void PlayersView::CreatePlayerMusicName()\r
- {\r
- if (titleLabel == nullptr)\r
+ /* ------------------------------ musicSourceButton ----------------------------- */\r
+ buttonConfig.x = 213;\r
+ buttonConfig.y = 366;\r
+ musicSourceButton = PlayerViewButtonInit(buttonConfig);\r
+ if (nullptr == musicSourceButton)\r
{\r
- titleLabel = new UILabel();\r
- if (titleLabel == nullptr)\r
- {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "titleLabel new fail");\r
- return;\r
- }\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "musicSourceButton new fail!!");\r
+ return false;\r
}\r
- titleLabel->SetPosition(127, 35, 200, 53); // 127:x 35:y 200:width 53:height\r
- titleLabel->SetText("Music Name");\r
- titleLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, FONT_FORTY_SIZE);\r
- Add(titleLabel);\r
-\r
- if (subTitleLabel == nullptr)\r
+ /* ------------------------------- soundButton ------------------------------ */\r
+ buttonConfig.x = 321;\r
+ buttonConfig.y = 321;\r
+ soundButton = PlayerViewButtonInit(buttonConfig);\r
+ if (nullptr == soundButton)\r
{\r
- subTitleLabel = new UILabel();\r
- if (subTitleLabel == nullptr)\r
- {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "subTitleLabel new fail");\r
- return;\r
- }\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "soundButton new fail!!");\r
+ return false;\r
}\r
- subTitleLabel->SetPosition(77, 92, 300, 38); // 77:x 92:y 300:width 38:height\r
- subTitleLabel->SetText("Musical Authors");\r
- subTitleLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30); // 30:font data\r
- subTitleLabel->SetAlign(UITextLanguageAlignment::TEXT_ALIGNMENT_CENTER, UITextLanguageAlignment::TEXT_ALIGNMENT_CENTER);\r
- Add(subTitleLabel);\r
- return;\r
- }\r
- // 拖拽监听:从下到上拖拽后显示音乐列表\r
- bool PlayersView::OnDragEvent(const DragEvent &event)\r
- {\r
- /* 300: y limit of drag start point */\r
- // if ((event.GetDragDirection() == DragEvent::DIRECTION_BOTTOM_TO_TOP) && (event.GetStartPoint().y > 300)) {\r
- // PlayersPresenter::GetInstance()->ShowPlayerListGroup();\r
- // return true;\r
- // }\r
- return false;\r
+\r
+ return true;\r
}\r
\r
- /// @brief 创建音乐来源标签\r
- /// @param\r
- void PlayersView::CreateMusicSourceLabel(void)\r
+ bool PlayersView::CreatePlayerScrollView(void)\r
{\r
- if (MusciSourceLabel == nullptr)\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PlayersView::CreatePlayerScrollVIew");\r
+ if (group[MAIN_MUSICPLAYER_VIEW] == nullptr)\r
{\r
- MusciSourceLabel = new UILabel();\r
- if (MusciSourceLabel == nullptr)\r
+ group[MAIN_MUSICPLAYER_VIEW] = new UIScrollView();\r
+ if (group[MAIN_MUSICPLAYER_VIEW] == nullptr)\r
{\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "MusciSourceLabel new fail");\r
- return;\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "group[MAIN_MUSICPLAYER_VIEW] new fail!");\r
+ return false;\r
}\r
+ group[MAIN_MUSICPLAYER_VIEW]->SetPosition(0, 0, 466, 466);\r
+ group[MAIN_MUSICPLAYER_VIEW]->SetStyle(STYLE_BACKGROUND_OPA, 0xff);\r
+ group[MAIN_MUSICPLAYER_VIEW]->SetTouchable(true);\r
+ group[MAIN_MUSICPLAYER_VIEW]->SetDraggable(true);\r
}\r
- MusciSourceLabel->SetPosition(163, 90, 140, 41);\r
- MusciSourceLabel->SetText("本地音乐");\r
- MusciSourceLabel->SetStyle(STYLE_TEXT_FONT, 35);\r
- MusciSourceLabel->SetStyle(STYLE_LINE_HEIGHT, 41);\r
- MusciSourceLabel->SetLineBreakMode(UILabel::LINE_BREAK_ADAPT);\r
- MusciSourceLabel->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);\r
- MusciSourceLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 35);\r
- Add(MusciSourceLabel);\r
+ return true;\r
}\r
\r
- /// @brief 设置音乐来源标签内容\r
- /// @param text 文本内容\r
- void PlayersView::MusicSourceLabelSetText(const char *text)\r
+ bool PlayersView::CreatePlayerView(void)\r
{\r
- MusciSourceLabel->SetText(text);\r
- MusciSourceLabel->Invalidate();\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PlayersView::CreatePlayerVIew");\r
+ if (!CreatePlayerOnClickListener() || !CreatePlayerScrollView() || !CreatePlayerImageView() ||\r
+ !CreatePlayerProgressView() || !CreatePlayerCheckBoxButtonView() || !CreatePlayerButtonView() || !CreatePlayerLabelView())\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "PlayersView::CreatePlayerVIew");\r
+ return false;\r
+ }\r
+ /* ----------------------------------- Add ---------------------------------- */\r
+ group[MAIN_MUSICPLAYER_VIEW]->Add(musicPlayerBackGround);\r
+ group[MAIN_MUSICPLAYER_VIEW]->Add(elipse);\r
+ group[MAIN_MUSICPLAYER_VIEW]->Add(playbackProgress);\r
+ group[MAIN_MUSICPLAYER_VIEW]->Add(play_or_pause_Button);\r
+ group[MAIN_MUSICPLAYER_VIEW]->Add(music_list_button);\r
+ group[MAIN_MUSICPLAYER_VIEW]->Add(musicSourceButton);\r
+ group[MAIN_MUSICPLAYER_VIEW]->Add(preMusicButton);\r
+ group[MAIN_MUSICPLAYER_VIEW]->Add(nextMusicButton);\r
+ group[MAIN_MUSICPLAYER_VIEW]->Add(playerModelButton);\r
+ group[MAIN_MUSICPLAYER_VIEW]->Add(musicSourceButton);\r
+ group[MAIN_MUSICPLAYER_VIEW]->Add(soundButton);\r
+ group[MAIN_MUSICPLAYER_VIEW]->Add(MusciSourceLabel);\r
+ group[MAIN_MUSICPLAYER_VIEW]->Add(PhoneMusicConnectStatusLabel);\r
+ Add(group[MAIN_MUSICPLAYER_VIEW]);\r
+ /* -------------------------------------------------------------------------- */\r
+ return true;\r
}\r
\r
- /// @brief 创建手机音乐连接状态标签\r
- /// @param\r
- void PlayersView::CreatePhoneMusicConnectStatusLabel(void)\r
+ /*设置音乐来源标签内容*/\r
+ void PlayersView::MusicSourceLabelSetText(int textId)\r
{\r
- if (PhoneMusicConnectStatusLabel == nullptr)\r
- {\r
- PhoneMusicConnectStatusLabel = new UILabel();\r
- if (PhoneMusicConnectStatusLabel == nullptr)\r
- {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "PhoneMusicConnectStatusLabel new fail");\r
- return;\r
- }\r
- }\r
- PhoneMusicConnectStatusLabel->SetPosition(188, 40, 90, 35);\r
- PhoneMusicConnectStatusLabel->SetText("未连接");\r
- PhoneMusicConnectStatusLabel->SetTextColor(Color::GetColorFromRGBA(0xff, 0x5a, 0x36, 0xff));\r
- PhoneMusicConnectStatusLabel->SetStyle(STYLE_TEXT_FONT, 30);\r
- PhoneMusicConnectStatusLabel->SetStyle(STYLE_LINE_HEIGHT, 35);\r
- PhoneMusicConnectStatusLabel->SetLineBreakMode(UILabel::LINE_BREAK_ADAPT);\r
- PhoneMusicConnectStatusLabel->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);\r
- PhoneMusicConnectStatusLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);\r
- PhoneMusicConnectStatusLabel->SetVisible(false);\r
- Add(PhoneMusicConnectStatusLabel);\r
+ MusciSourceLabel->SetTextId(textId);\r
+ MusciSourceLabel->ForceResetText();\r
}\r
\r
/// @brief 设置手机音乐连接状态标签内容\r
- /// @param text 文本内容\r
- void PlayersView::PhoneMusicConnectStatusLabelSetText(const char *text)\r
+ void PlayersView::PhoneMusicConnectStatusLabelSetText(int textId)\r
{\r
- PhoneMusicConnectStatusLabel->SetText(text);\r
+ PhoneMusicConnectStatusLabel->SetTextId(textId);\r
PhoneMusicConnectStatusLabel->Invalidate();\r
}\r
\r
/// @brief 设置手机连接状态标签是否可见\r
- /// @param status\r
void PlayersView::PhoneMusicConnectStatusLabelIsSetVisible(bool status)\r
{\r
PhoneMusicConnectStatusLabel->SetVisible(status);\r
}\r
\r
- /// @brief 设置音乐列表按钮是否可见\r
- /// @param status\r
+ // 设置手机音乐连接状态标签颜色\r
+ void PlayersView::PhoneMusicConnectStatusLabelColor(bool state)\r
+ {\r
+ if (state)\r
+ {\r
+ PhoneMusicConnectStatusLabel->SetTextColor(Color::GetColorFromRGBA(0x66, 0x66, 0x66, 0xff));\r
+ }\r
+ else\r
+ {\r
+ PhoneMusicConnectStatusLabel->SetTextColor(Color::GetColorFromRGBA(0xff, 0x5a, 0x36, 0xff));\r
+ }\r
+ }\r
+\r
+ /*设置音乐列表按钮是否可见*/\r
void PlayersView::MusicListButtonIsSetVisible(bool status)\r
{\r
music_list_button->SetVisible(status);\r
}\r
\r
/// @brief 设置选项按钮的图片样式:点击该按钮后进入音乐来源视图,点击里面的按钮,改选项按钮会被替换相应图片\r
- /// @param image 图片信息\r
void PlayersView::OptionsButtonSetImageStyle(ImageInfo *image)\r
{\r
- optionsButton->SetImageSrc(image, image);\r
- optionsButton->Invalidate();\r
+ musicSourceButton->SetImageSrc(image, image);\r
+ musicSourceButton->Invalidate();\r
}\r
+\r
+ void PlayersView::PlayerModelButtonSetSrc(uint32_t playMode)\r
+ {\r
+ LoadPlayerButtonImage(playerModelButton, playMode);\r
+ }\r
+\r
+ /*更新音乐播放模式按钮*/\r
+ void PlayersView::UpdateMusicPlayerModelButton(void)\r
+ {\r
+ if (PlayersModel::GetInstance()->GetMusicSource())\r
+ {\r
+ playerModelButton->SetTouchable(false);\r
+ }\r
+ else\r
+ {\r
+ playerModelButton->SetTouchable(true);\r
+ }\r
+ PreLoadPlayerModeImageRes();\r
+ }\r
+\r
+ void PlayersView::UpdatePlayerView(void)\r
+ {\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "UpdatePlayerView");\r
+ // 1.a2dp未连接,向手机发起a2dp连接\r
+\r
+ // 2.\r
+ ImageInfo *image;\r
+ if (PlayersModel::GetInstance()->GetMusicSource())\r
+ {\r
+ image = ImageCacheManager::GetInstance().LoadOneInMultiRes(PLAYER_PHONE_COLOR, PLAYER_IAMGES);\r
+ if (!image)\r
+ {\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "LoadImage fail!!");\r
+ return;\r
+ }\r
+\r
+ OptionsButtonSetImageStyle(image);\r
+ PhoneMusicConnectStatusLabelIsSetVisible(true);\r
+ MusicListButtonIsSetVisible(false);\r
+ UpdateMusicPlayerModelButton();\r
+\r
+ bool phonecon = SettingModel::GetInstance().GetPhoneConnectStatus(); // 获取手机连接状态\r
+ bool a2dp = uapi_a2dp_snk_get_device_connect_state(); // 获取a2dp连接状态\r
+ if (phonecon && a2dp)\r
+ {\r
+ PhoneMusicConnectStatusLabelSetText(STR_CONNECTED); /*已连接*/\r
+ MusicSourceLabelSetText(STR_MOBILE_MUSIC); // 手机音乐\r
+ PhoneMusicConnectStatusLabelColor(false);\r
+ }\r
+ else\r
+ {\r
+ PhoneMusicConnectStatusLabelSetText(STR_DISCONNECTED); /*未连接*/\r
+ MusicSourceLabelSetText(STR_MOBILE_MUSIC); // 手机音乐\r
+ PhoneMusicConnectStatusLabelColor(true);\r
+ }\r
+ }\r
+ else\r
+ {\r
+ image = ImageCacheManager::GetInstance().LoadOneInMultiRes(PLAYER_LOCAL_MUSIC_COLOR, PLAYER_IAMGES);\r
+ if (!image)\r
+ {\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "LoadImage fail!!");\r
+ return;\r
+ }\r
+ OptionsButtonSetImageStyle(image);\r
+ PhoneMusicConnectStatusLabelIsSetVisible(false);\r
+ MusicListButtonIsSetVisible(true);\r
+ MusicSourceLabelSetText(STR_WATCH_MUSIC); /*手表音乐*/\r
+ UpdateMusicPlayerModelButton();\r
+ }\r
+ }\r
+\r
// 初始化音乐播放器主视图\r
bool PlayersView::InitView(void)\r
{\r
- int ret;\r
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, " PlayersView InitView");\r
-\r
- if (InitBackGround() == false)\r
+ if (CreatePlayerView() == false)\r
{\r
return false;\r
}\r
-\r
- // CreatePlayerMusicName();\r
- CreatePhoneMusicConnectStatusLabel();\r
- CreateMusicSourceLabel();\r
+ /* -------------------------------------------------------------------------- */\r
+ UpdatePlayerView();\r
+ /* -------------------------------------------------------------------------- */\r
// changeView\r
CreateJumpView();\r
// OnClick\r
// OnDrag\r
CreatePlayerOnDragListener();\r
// 按键设置\r
- ret = ShowUpButtonView();\r
- if (ret == OHOS_FAILURE)\r
- {\r
- return false;\r
- }\r
- // 需要一个模拟信息,假装发生了按键点击,开始播放音乐\r
- // 调用 OnClick 回调函数来处理点击事件\r
- // playerButton.OnClick(,);\r
- // 遍历文件名到list链表\r
+\r
PlayersListGroup::GetInstance()->SetUpListCase();\r
PlayersModel::GetInstance()->PlayerInit();\r
ShowUpListView();\r
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "PlayersView::UnLoad");\r
UnLoadPlayerImageRes();\r
}\r
- // 加载音乐图片\r
+\r
+ // 加载图片组件音乐图片\r
bool PlayersView::LoadPlayerImage(UIImageView *view, uint32_t resId)\r
{\r
std::string file = PLAYER_IAMGES;\r
return true;\r
}\r
\r
+ // 加载按钮组件音乐图片\r
bool PlayersView::LoadPlayerButtonImage(UIButton *button, uint32_t resId)\r
{\r
std::string file = PLAYER_IAMGES;\r
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "PlayersView::LoadPlayerImage %x fail", resId);\r
return false;\r
}\r
- button->SetImageSrc(image,image);\r
+ button->SetImageSrc(image, image);\r
return true;\r
}\r
\r
- /*预加载音乐播放器资源*/\r
- void PlayersView::PreLoadPlayerImageRes(void)\r
+ bool PlayersView::LoadPlayerCheckBoxButtonImage(UICheckBox *button, uint32_t resId, uint32_t hlResId)\r
{\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "PlayersView::playerResPreLoad");\r
- if(!resLoadStatus)\r
+ std::string file = PLAYER_IAMGES;\r
+ ImageInfo *image1 = ImageCacheManager::GetInstance().LoadOneInMultiRes(resId, file);\r
+ ImageInfo *image2 = ImageCacheManager::GetInstance().LoadOneInMultiRes(hlResId, file);\r
+ if (image1 == nullptr || image2 == nullptr)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "PlayersView::LoadPlayerImage resId = %x,hlResId = %x fail", resId, hlResId);\r
+ return false;\r
+ }\r
+ button->SetImages(image1, image2);\r
+ return true;\r
+ }\r
+\r
+ // 显示音乐播放模式:LOOP 循环播放 SEQUENCE 循序播放 REPEATS 单曲循环 RANDOM 随机播放\r
+ /*预加载音乐播放模式的图片*/\r
+ bool PlayersView::PreLoadPlayerModeImageRes(void)\r
+ {\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PlayersView::PreLoadPlayerModeImageRes");\r
+ if (PlayersModel::GetInstance()->GetMusicSource())\r
+ {\r
+ if (LoadPlayerButtonImage(playerModelButton, PLAYER_PLAYERSMODEL_UNUSABLE) == false)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "load PLAYERSMODEL_RANDOM fail");\r
+ return false;\r
+ }\r
+ return true;\r
+ }\r
+ /* -------------------------------------------------------------------------- */\r
+ if (PlayersModel::GetInstance()->GetPlayerModel() == LOOP)\r
+ {\r
+ if (LoadPlayerButtonImage(playerModelButton, PLAYER_PLAYERSMODEL_LOOP) == false)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "load PLAYER_PLAYERSMODEL_LOOP fail");\r
+ return false;\r
+ }\r
+ }\r
+ else if (PlayersModel::GetInstance()->GetPlayerModel() == SEQUENCE)\r
{\r
- if (LoadPlayerImage(soundButton, PLAYER_MUSIC_VOICE) == false)\r
+ if (LoadPlayerButtonImage(playerModelButton, PLAYER_PLAYERSMODEL_SEQUENCE) == false)\r
{\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "playerModelButton LoadPlayerImage fail");\r
- return ;\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "load PLAYERSMODEL_SEQUENCE fail");\r
+ return false;\r
}\r
- if (LoadPlayerImage(backGround, PLAYER_BACKGROUND) == false)\r
+ }\r
+ else if (PlayersModel::GetInstance()->GetPlayerModel() == REPEATS)\r
+ {\r
+ if (LoadPlayerButtonImage(playerModelButton, PLAYER_PLAYERSMODEL_REPEATS) == false)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "load PLAYERSMODEL_REPEATS fail");\r
+ return false;\r
+ }\r
+ }\r
+ else if (PlayersModel::GetInstance()->GetPlayerModel() == RANDOM)\r
+ {\r
+ if (LoadPlayerButtonImage(playerModelButton, PLAYER_PLAYERSMODEL_RANDOM) == false)\r
{\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "backGround LoadPlayerImage fail");\r
- return ;\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "load PLAYERSMODEL_RANDOM fail");\r
+ return false;\r
}\r
+ }\r
+ return true;\r
+ }\r
\r
+ /*卸载音乐播放模式的图片*/\r
+ bool PlayersView::UnLoadPlayerModeImageRes(void)\r
+ {\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PlayersView::UnLoadPlayerModeImageRes");\r
+ int16_t playermodel = PlayersModel::GetInstance()->GetPlayerModel();\r
+ switch (playermodel)\r
+ {\r
+ case LOOP:\r
+ ImageCacheManager::GetInstance().UnloadOneInMultiRes(PLAYER_PLAYERSMODEL_LOOP, PLAYER_IAMGES);\r
+ break;\r
+ case SEQUENCE:\r
+ ImageCacheManager::GetInstance().UnloadOneInMultiRes(PLAYER_PLAYERSMODEL_SEQUENCE, PLAYER_IAMGES);\r
+ break;\r
+ case REPEATS:\r
+ ImageCacheManager::GetInstance().UnloadOneInMultiRes(PLAYER_PLAYERSMODEL_REPEATS, PLAYER_IAMGES);\r
+ break;\r
+ case RANDOM:\r
+ ImageCacheManager::GetInstance().UnloadOneInMultiRes(PLAYER_PLAYERSMODEL_RANDOM, PLAYER_IAMGES);\r
+ break;\r
+ default:\r
+ break;\r
+ }\r
+ return true;\r
+ }\r
+\r
+ /*预加载音乐播放器资源*/\r
+ void PlayersView::PreLoadPlayerImageRes(void)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "PlayersView::playerResPreLoad");\r
+ if (!resLoadStatus)\r
+ {\r
+ if (LoadPlayerImage(musicPlayerBackGround, PLAYER_BACKGROUND) == false)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "musicPlayerBackGround LoadPlayerImage fail");\r
+ return;\r
+ }\r
if (LoadPlayerImage(elipse, PLAYER_ELLIPSE) == false)\r
{\r
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "elipse LoadPlayerImage fail");\r
- return ;\r
+ return;\r
}\r
-\r
- if(!ShowUpPlayerMode())\r
+ if (LoadPlayerButtonImage(music_list_button, PLAYER_MUSIC_LIST) == false)\r
{\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ShowUpPlayerMode fail");\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "music_list_button LoadPlayerImage fail");\r
return;\r
}\r
-\r
- ImageInfo *ImagePlay;\r
- ImageInfo *ImagerPause;\r
- ImagePlay = ImageCacheManager::GetInstance().LoadOneInMultiRes(PLAYER_MUSIC_PLAY, PLAYER_IAMGES); // 播放图片\r
- ImagerPause = ImageCacheManager::GetInstance().LoadOneInMultiRes(PLAYER_MUSIC_PAUSE, PLAYER_IAMGES); // 暂停图片\r
- playerButton->SetImages(ImagePlay, ImagerPause);\r
-\r
- if(LoadPlayerButtonImage(nextButton,PLAYER_MUSIC_NEXT) == false)\r
+ if (LoadPlayerCheckBoxButtonImage(play_or_pause_Button, PLAYER_MUSIC_PLAY, PLAYER_MUSIC_PAUSE) == false)\r
{\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "nextButton LoadPlayerImage fail");\r
- return ;\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "play_or_pause_Button LoadPlayerCheckBoxButtonImage fail");\r
+ return;\r
}\r
-\r
- if(LoadPlayerButtonImage(preButton,PLAYER_MUSIC_PROVE) == false)\r
+ if (LoadPlayerButtonImage(preMusicButton, PLAYER_MUSIC_PROVE) == false)\r
{\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "preButton LoadPlayerImage fail");\r
- return ;\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "preMusicButton LoadPlayerImage fail");\r
+ return;\r
}\r
-\r
- if(LoadPlayerButtonImage(music_list_button,PLAYER_MUSIC_LIST) == false)\r
+ if (LoadPlayerButtonImage(nextMusicButton, PLAYER_MUSIC_NEXT) == false)\r
{\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "music_list_button LoadPlayerImage fail");\r
- return ;\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "nextMusicButton LoadPlayerImage fail");\r
+ return;\r
}\r
-\r
- if(LoadPlayerButtonImage(optionsButton,PLAYER_LOCAL_MUSIC_COLOR) == false)\r
+ if (PreLoadPlayerModeImageRes() == false)\r
{\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "optionsButton LoadPlayerImage fail");\r
- return ;\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "PreLoadPlayerModeImageRes fail");\r
+ return;\r
+ }\r
+ if (LoadPlayerButtonImage(musicSourceButton, PLAYER_LOCAL_MUSIC_COLOR) == false)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "musicSourceButton LoadPlayerImage fail");\r
+ return;\r
+ }\r
+ if (LoadPlayerButtonImage(soundButton, PLAYER_MUSIC_VOICE) == false)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "soundButton LoadPlayerImage fail");\r
+ return;\r
}\r
-\r
resLoadStatus = true;\r
}\r
}\r
- \r
+\r
/*卸载音乐播放器资源*/\r
void PlayersView::UnLoadPlayerImageRes(void)\r
{\r
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "PlayersView::playerResUnLoad");\r
- if(resLoadStatus)\r
+ if (resLoadStatus)\r
{\r
ImageInfo *image = nullptr;\r
- soundButton->SetSrc(image);\r
- backGround->SetSrc(image);\r
+ musicPlayerBackGround->SetSrc(image);\r
elipse->SetSrc(image);\r
+ music_list_button->SetImageSrc(image, image);\r
+ play_or_pause_Button->SetImages(image, image);\r
+ preMusicButton->SetImageSrc(image, image);\r
+ nextMusicButton->SetImageSrc(image, image);\r
+ playerModelButton->SetImageSrc(image, image);\r
+ musicSourceButton->SetImageSrc(image, image);\r
+ soundButton->SetImageSrc(image, image);\r
+ ImageCacheManager::GetInstance().UnloadOneInMultiRes(PLAYER_BACKGROUND, PLAYER_IAMGES);\r
+ ImageCacheManager::GetInstance().UnloadOneInMultiRes(PLAYER_ELLIPSE, PLAYER_IAMGES);\r
+\r
+ ImageCacheManager::GetInstance().UnloadOneInMultiRes(PLAYER_MUSIC_LIST, PLAYER_IAMGES);\r
+ ImageCacheManager::GetInstance().UnloadOneInMultiRes(PLAYER_MUSIC_PLAY, PLAYER_IAMGES);\r
+ ImageCacheManager::GetInstance().UnloadOneInMultiRes(PLAYER_MUSIC_PAUSE, PLAYER_IAMGES);\r
+ ImageCacheManager::GetInstance().UnloadOneInMultiRes(PLAYER_MUSIC_PROVE, PLAYER_IAMGES);\r
+ ImageCacheManager::GetInstance().UnloadOneInMultiRes(PLAYER_MUSIC_NEXT, PLAYER_IAMGES);\r
+ UnLoadPlayerModeImageRes();\r
+ ImageCacheManager::GetInstance().UnloadOneInMultiRes(PLAYER_LOCAL_MUSIC_COLOR, PLAYER_IAMGES);\r
+ ImageCacheManager::GetInstance().UnloadOneInMultiRes(PLAYER_MUSIC_VOICE, PLAYER_IAMGES);\r
\r
- playerButton->SetImages(image,image);\r
- nextButton->SetImageSrc(image,image);\r
- preButton->SetImageSrc(image,image);\r
- music_list_button->SetImageSrc(image,image);\r
- optionsButton->SetImageSrc(image,image);\r
- ImageCacheManager::GetInstance().UnloadOneInMultiRes(PLAYER_MUSIC_VOICE,PLAYER_IAMGES);\r
- ImageCacheManager::GetInstance().UnloadOneInMultiRes(PLAYER_BACKGROUND,PLAYER_IAMGES);\r
- ImageCacheManager::GetInstance().UnloadOneInMultiRes(PLAYER_ELLIPSE,PLAYER_IAMGES);\r
-\r
- ImageCacheManager::GetInstance().UnloadOneInMultiRes(PLAYER_MUSIC_PLAY,PLAYER_IAMGES);\r
- ImageCacheManager::GetInstance().UnloadOneInMultiRes(PLAYER_MUSIC_PAUSE,PLAYER_IAMGES);\r
- ImageCacheManager::GetInstance().UnloadOneInMultiRes(PLAYER_MUSIC_NEXT,PLAYER_IAMGES);\r
- ImageCacheManager::GetInstance().UnloadOneInMultiRes(PLAYER_MUSIC_PROVE,PLAYER_IAMGES);\r
- ImageCacheManager::GetInstance().UnloadOneInMultiRes(PLAYER_MUSIC_LIST,PLAYER_IAMGES);\r
- ImageCacheManager::GetInstance().UnloadOneInMultiRes(PLAYER_LOCAL_MUSIC_COLOR,PLAYER_IAMGES);\r
resLoadStatus = false;\r
}\r
}\r
+\r
+ struct MusicPlayerJumpViewMapper\r
+ {\r
+ const int16_t viewId;\r
+ bool (PlayersView::*func)(int16_t thisView);\r
+ };\r
+\r
+ static const MusicPlayerJumpViewMapper ViewMapper[] = {\r
+ {PlayersView::MAIN_MUSICPLAYER_VIEW, &PlayersView::ChangeToMainMusicPlayerView},\r
+ {PlayersView::MUSIC_SOURCE_VIEW, &PlayersView::ChangeToMusicSourceView},\r
+ {PlayersView::MUSIC_VOLUME_CONTROL_VIEW, &PlayersView::ChangeToVolumeControlView},\r
+ };\r
+\r
+ /*根据传入的 interface 值,在 ViewMapper 数组中查找匹配的 viewId*/\r
+ bool PlayersView::ClickFunc(int16_t interface)\r
+ {\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PlayersView::ClickFunc");\r
+ int funcSize = sizeof(ViewMapper) / sizeof(ViewMapper[0]);\r
+ for (int i = 0; i < funcSize; i++)\r
+ {\r
+ if (interface == ViewMapper[i].viewId)\r
+ {\r
+ bool jug = (this->*(ViewMapper[i].func))(interface);\r
+ if (jug == false)\r
+ {\r
+ return false;\r
+ }\r
+ return true;\r
+ }\r
+ }\r
+ return false;\r
+ }\r
+\r
+ /*检查要切换视图参数是否有效*/\r
+ bool PlayersView::CheckViewParam(int16_t hideView, int16_t showView)\r
+ {\r
+ if (showView < 0 || showView >= MUSICPLAYERJUMPVIEWID_MAX)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "PlayersView::CheckViewParam showView err.");\r
+ return false;\r
+ }\r
+\r
+ if (hideView < 0 || hideView > MUSICPLAYERJUMPVIEWID_MAX)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "PlayersView::CheckViewParam hideView err.");\r
+ return false;\r
+ }\r
+\r
+ return true;\r
+ }\r
+\r
+ /*删除临时视图*/\r
+ void PlayersView::DestroyTempView(int16_t hideView)\r
+ {\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PlayersView::DestroyTempView");\r
+ }\r
+\r
+ /*视图切换*/\r
+ void PlayersView::ChangeView(int16_t hideView, int16_t showView)\r
+ {\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PlayersView::ChangeView");\r
+ if (!CheckViewParam(hideView, showView))\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "PlayersView::ChangeView check param err %d %d.", hideView, showView);\r
+ return;\r
+ }\r
+ group[hideView]->SetVisible(false);\r
+ ClickFunc(showView);\r
+ group[showView]->SetVisible(true);\r
+\r
+ if (RootView::GetInstance() != nullptr)\r
+ {\r
+ RootView::GetInstance()->Invalidate();\r
+ }\r
+\r
+ DestroyTempView(hideView);\r
+ }\r
+\r
+ /*切换到音乐播放器主视图*/\r
+ bool PlayersView::ChangeToMainMusicPlayerView(int16_t thisView)\r
+ {\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PlayersView::ChangeToMainMusicPlayerView");\r
+ if (group[thisView] == nullptr)\r
+ {\r
+ Add(group[thisView]);\r
+ }\r
+ return true;\r
+ }\r
+\r
+ /*切换到音乐来源视图*/\r
+ bool PlayersView::ChangeToMusicSourceView(int16_t thisView)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "PlayersView::ChangeToMusicSourceView");\r
+ if (group[thisView] == nullptr)\r
+ {\r
+ musicPlayerSourceView = new MusicPlayerSourceView();\r
+ if (musicPlayerSourceView == nullptr)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "new group[%d] fail", thisView);\r
+ return false;\r
+ }\r
+ group[thisView] = musicPlayerSourceView->CreateMusicPlayerSourceView();\r
+ Add(group[thisView]);\r
+ }\r
+ return true;\r
+ }\r
+\r
+ /*切换到声音调节视图*/\r
+ bool PlayersView::ChangeToVolumeControlView(int16_t thisView)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "PlayersView::ChangeToVolumeControlView");\r
+ if (group[thisView] == nullptr)\r
+ {\r
+ volumeSettingView = new VolumeSettingView();\r
+ if (volumeSettingView == nullptr)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "new group[%d] fail", thisView);\r
+ return false;\r
+ }\r
+ if (!volumeSettingView->SetUpVolume())\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "volumeSetting SetUpVolume fail");\r
+ return false;\r
+ }\r
+ group[thisView] = volumeSettingView;\r
+ Add(group[thisView]);\r
+ }\r
+ return true;\r
+ }\r
}\r
version https://git-lfs.github.com/spec/v1
-oid sha256:1d533f534345e85d1b84fa56e5887c37eb606d7f5f91077c4c9df6351208f86a
-size 199320
+oid sha256:38a3e44d96390c1ef0c6e1819b4966df60f079ff84bb80de6183e68a53524871
+size 228024