Cosmos2.0百变UI下,Launcher, ScreenLock, Wallpaper的默认设置问题

1. robot launcher 
void VappLauncherSettingProvider::getLauncherIfAny( 
 VappLauncherId &id, 
 VfxObject *parentObj) const 

 VappLauncherNativeFactory *factory; 
 factory = VFX_OBJ_GET_INSTANCE(VappLauncherNativeFactory); 
 VfxS32 totalNum = factory->getTotalNum(); 
 VFX_ASSERT(totalNum > 0); 
 VappLauncherId **allId = VappLauncherId::newArray(totalNum, parentObj); 
 factory->getAllId(allId, totalNum); 
 id.assignWith(*(allId[2])); //default is 0, 1: fruit launcher, 2: robot launcher. 请改为2 
 VappLauncherId::deleteArray(allId, totalNum); 

 
2. wallpaper的设置,由于需求描述里,home和screenlock的wallpapler设置不一样。所以需要引入一个参数来区别。 
 请给函数 VappWallpaperSettingProvider::getFallbackWallpaperId增加一个传参,并且它是有默认值的, 其声明如下: 
 static void getFallbackWallpaperId( 
 VappWallpaperId &id, // [OUT] the fallback id 
 VappWallpaperSrcEnum src = VAPP_WALLPAPER_SRC_HOMESCREEN 
 ); 
其实现修改成如下形式: 
void VappWallpaperSettingProvider::getFallbackWallpaperId(VappWallpaperId &id, VappWallpaperSrcEnum src) 

 // restore to theme wallpaper as default 
#if defined(__COSMOS_MMI_PACKAGE__) && defined(MMI_WP_THEME_NUM) 
// id.assignWith(VAPP_WALLPAPER_FACTORY_IMAGE, 
// MMI_WP_THEME_NUM  IMG_ID_WP_THEME_START : IMG_ID_PHNSET_WP_START); 
 if (src == VAPP_WALLPAPER_SRC_HOMESCREEN) 
 id.assignWith(VAPP_WALLPAPER_FACTORY_NATIVE, 12); // 12代表桃花的那套wallpaper,这个数字可能有出入,要根据贵司的工程里的资源来决定。 
 else if (src == VAPP_WALLPAPER_SRC_LOCK) 
 id.assignWith(VAPP_WALLPAPER_FACTORY_VIDEO, VDO_ID_SYS_MP4_02); //VDO_ID_SYS_MP4_02代表第2张擦玻璃 
video wallpaper 
#else 
 id.assignWith(VAPP_WALLPAPER_FACTORY_IMAGE, 
 IMG_ID_PHNSET_WP_START); 
#endif 
}
 
 
3. 在调用这个函数的地方补上增加的传参 
请将函数VappWallpaperSettingProvider::getDefaultWallpaper中调用getFallbackWallpaperId的地方增加传参。如下形式: 
VappWallpaperId VappWallpaperSettingProvider::getDefaultWallpaper( 
 const VappWallpaperSrcEnum src, 
 VfxObject *parentObj) const 

 MMI_TRACE(TRACE_GROUP_3, TRC_VAPP_WALLPAPER_SETTING_GET_DEFAULT_WALLPAPER); 
 VfxWString archiveFilename; 
 getSystemArchiveFilename(src, archiveFilename); 
 VfxArchive *ar = createArchive( 
 src, 
 archiveFilename, 
 VappArchiveFileSource::SOURCE_MODE_READ, 
 parentObj); 
 VappWallpaperId id; 
 if (!ar) 
 { 
 // revert to default setting 
 getFallbackWallpaperId(id, src); //加src 
 } 
 else 
 { 
 id.decodeFromArchive(ar); 
 VFX_OBJ_CLOSE(ar); 
 // if under USB Mass Storage mode, 
 // use fallback wallpaper instead of file-based wallpaper 
 if(m_mscMode) 
 { 
 const VfxBool isFileBased = VappWallpaperKit::isFileBasedWallpaper(id); 
 if(isFileBased) 
 { 
 getFallbackWallpaperId(id, src); //加src 
 } 
 } 
 } 
 return id; 
}
 
 
在函数VappWallpaperKit::createWallpaperWithoutSetup里调用getFallbackWallpaperId的地方补上传参。 
VappWallpaper* VappWallpaperKit::createWallpaperWithoutSetup(VfxObject *parentObj, VappWallpaperSrcEnumsrc) 

 VappWallpaper *wallpaper = NULL; 
 // Use wallpaper ID to create wallpaper 
 VappWallpaperSettingProvider *setting = VFX_OBJ_GET_INSTANCE(VappWallpaperSettingProvider); 
 VappWallpaperKit *wallpaperKit = NULL; 
 VFX_OBJ_CREATE(wallpaperKit, VappWallpaperKit, parentObj); 
 wallpaper = wallpaperKit->create(setting->getDefaultWallpaper(src, parentObj), parentObj); 
 if(NULL == wallpaper) 
 { 
 VappWallpaperId fallbackId; 
 setting->getFallbackWallpaperId(fallbackId, src); //加src 
 wallpaper = wallpaperKit->create(fallbackId, parentObj); 
 } 
 VFX_OBJ_CLOSE(wallpaperKit); 
 return wallpaper; 

4. 在文件vapp_wallpaper_setting_method.cpp 和vapp_wallpaper_mav.cpp中包含头文件vapp_wallpaper_def.h 
5. screen lock 设置。修改函数VappScreenLockSettingProvider::getScreenLockIfAny里的数据 
void VappScreenLockSettingProvider::getScreenLockIfAny( 
 VappScreenLockId &id, 
 VfxObject *parentObj) const 

#if defined(__COSMOS_3D_V10__) && defined(__MMI_VUI_SCREEN_LOCK_STEAM__) 
 // 
 // On 3D project, choose the steam screen lock by default. 
 // 
 id.assignWith(VAPP_SCREEN_LOCK_SRC_NATIVE, VAPP_SCREEN_LOCK_TYPE_STEAM); 
#else 
 // 
 // Otherwise, choose the first native screen lock by default. 
 // 
 VappScreenLockNativeFactory *factory; 
 factory = VFX_OBJ_GET_INSTANCE(VappScreenLockNativeFactory); 
 VfxS32 totalNum = factory->getTotalNum(); 
 VFX_ASSERT(totalNum > 0); 
 VappScreenLockId **allId = VappScreenLockId::newArray(totalNum, parentObj); 
 factory->getAllId(allId, totalNum); 
 id.assignWith(*(allId[3])); //default 0, 改成3表示第4种拉链锁屏。 
 VappScreenLockId::deleteArray(allId, totalNum); 
#endif /* defined(__COSMOS_3D_V10__) && defined(__MMI_VUI_SCREEN_LOCK_STEAM__) */ 
}  
其他的默认设置搭配方式是类似的,同理可修改相对应的地方。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值