207 if(!iPeriodic) |
207 if(!iPeriodic) |
208 { |
208 { |
209 iPeriodic = CPeriodic::NewL(CActive::EPriorityStandard); |
209 iPeriodic = CPeriodic::NewL(CActive::EPriorityStandard); |
210 } |
210 } |
211 iGlxTvOut = CGlxTv::NewL(*this); |
211 iGlxTvOut = CGlxTv::NewL(*this); |
|
212 |
|
213 iNaviState = CGlxNavigationalState::InstanceL(); |
212 } |
214 } |
213 |
215 |
214 // --------------------------------------------------------------------------- |
216 // --------------------------------------------------------------------------- |
215 // ~CGlxFullScreenViewImp() |
217 // ~CGlxFullScreenViewImp() |
216 // --------------------------------------------------------------------------- |
218 // --------------------------------------------------------------------------- |
324 TRACER("CGlxFullScreenViewImp::DoMLViewActivateL"); |
331 TRACER("CGlxFullScreenViewImp::DoMLViewActivateL"); |
325 |
332 |
326 // hide the toolbar |
333 // hide the toolbar |
327 EnableFSToolbar(EFalse); |
334 EnableFSToolbar(EFalse); |
328 |
335 |
329 CGlxNavigationalState* navigationalState = CGlxNavigationalState::InstanceL(); |
336 if (iMediaList->Count() == 0) |
330 CleanupClosePushL( *navigationalState ); |
337 { |
331 CMPXCollectionPath* naviState = navigationalState->StateLC(); |
338 GLX_LOG_INFO("CGlxFullScreenViewImp::DoMLViewActivateL() - No items!"); |
332 |
339 // While in slideshow from fullscreen view, |
333 if(!iMediaList->Count()) |
340 // 1) Connect USB in mass storage mode or |
334 { |
341 // 2) Delete items through file manager |
335 //Fix For EPKA-7U5DT7-slideshow launched from FullScreen and connect USB in mass storage mode results in Photos crash |
342 // shall result in activating fullscreen view with no items; so, goto grid view. |
336 navigationalState->ActivatePreviousViewL(); |
343 iNaviState->ActivatePreviousViewL(); |
337 } |
344 } |
338 else |
345 else |
339 { |
346 { |
340 //fix for ESLM-7YYDXC: When in FullScreen View, view mode must be 'EView' |
347 //fix for ESLM-7YYDXC: When in FullScreen View, view mode must be 'EView' |
341 //While coming back from SlideShow to FullScreen view, need to set view mode. |
348 //While coming back from SlideShow to FullScreen view, need to set view mode. |
342 if(navigationalState->ViewingMode() != NGlxNavigationalState::EView) |
349 if (iMediaList->Count() && iNaviState->ViewingMode() |
343 { |
350 != NGlxNavigationalState::EView) |
344 navigationalState->SetToViewMode(); |
351 { |
345 } |
352 iNaviState->SetToViewMode(); |
346 } |
353 } |
347 |
354 } |
348 if(naviState->Id() == TMPXItemId(KGlxCollectionPluginImageViewerImplementationUid)) |
355 |
|
356 CMPXCollectionPath* collPath = iNaviState->StateLC(); |
|
357 if (collPath->Id() == TMPXItemId( |
|
358 KGlxCollectionPluginImageViewerImplementationUid)) |
349 { |
359 { |
350 iImgViewerMode = ETrue; |
360 iImgViewerMode = ETrue; |
351 CreateImageViewerInstanceL(); |
361 CreateImageViewerInstanceL(); |
352 } |
362 } |
353 //destroy and close navistate and navipath |
363 CleanupStack::PopAndDestroy(collPath); |
354 CleanupStack::PopAndDestroy( naviState ); |
|
355 CleanupStack::PopAndDestroy( navigationalState ); |
|
356 |
364 |
357 iScrnSize = iUiUtility->DisplaySize(); |
365 iScrnSize = iUiUtility->DisplaySize(); |
358 iGridIconSize = iUiUtility->GetGridIconSize(); |
366 iGridIconSize = iUiUtility->GetGridIconSize(); |
359 |
367 |
360 iHdmiWidth = (iScrnSize.iWidth > iScrnSize.iHeight ?iScrnSize.iWidth :iScrnSize.iHeight); |
368 iHdmiWidth = (iScrnSize.iWidth > iScrnSize.iHeight ?iScrnSize.iWidth :iScrnSize.iHeight); |
493 iSliderWidget->AddEventHandler(*this); |
501 iSliderWidget->AddEventHandler(*this); |
494 iSliderWidget->SetHandleKeyEvent(EFalse); |
502 iSliderWidget->SetHandleKeyEvent(EFalse); |
495 iSliderModel = widgetFactory.createModel<IMulSliderModel> ("mulslidermodel"); |
503 iSliderModel = widgetFactory.createModel<IMulSliderModel> ("mulslidermodel"); |
496 iSliderModel->SetTemplate(ESliderTemplate3); |
504 iSliderModel->SetTemplate(ESliderTemplate3); |
497 iSliderWidget->setModel(iSliderModel); |
505 iSliderWidget->setModel(iSliderModel); |
|
506 iSliderWidget->control()->disableState(IAlfWidgetControl::Focusable); |
498 |
507 |
499 //adding the range and slider tick value |
508 //adding the range and slider tick value |
500 if(iSliderModel) |
509 if(iSliderModel) |
501 { |
510 { |
502 iSliderModel->SetTick(KGlxSliderTickValue); |
511 iSliderModel->SetTick(KGlxSliderTickValue); |
670 if(iZoomControl->Activated()) |
679 if(iZoomControl->Activated()) |
671 { |
680 { |
672 HideUi(iSliderWidget->IsHidden()); |
681 HideUi(iSliderWidget->IsHidden()); |
673 } |
682 } |
674 } |
683 } |
675 iViewWidget->show(ETrue); |
|
676 } |
684 } |
677 |
685 |
678 // --------------------------------------------------------------------------- |
686 // --------------------------------------------------------------------------- |
679 //ActivateFullScreen function. |
687 //ActivateFullScreen function. |
680 // --------------------------------------------------------------------------- |
688 // --------------------------------------------------------------------------- |
690 } |
698 } |
691 if(iSliderWidget) |
699 if(iSliderWidget) |
692 { |
700 { |
693 iSliderWidget->AddEventHandler(*this); |
701 iSliderWidget->AddEventHandler(*this); |
694 } |
702 } |
695 iViewWidget->show(ETrue); |
|
696 iViewWidget->setRect(TRect(TPoint(0,0),AlfUtil::ScreenSize())); |
703 iViewWidget->setRect(TRect(TPoint(0,0),AlfUtil::ScreenSize())); |
697 GlxSetAppState::SetState(EGlxInFullScreenView); |
704 GlxSetAppState::SetState(EGlxInFullScreenView); |
698 } |
705 } |
699 |
706 |
700 // --------------------------------------------------------------------------- |
707 // --------------------------------------------------------------------------- |
952 else |
962 else |
953 { |
963 { |
954 if (iMediaList) |
964 if (iMediaList) |
955 { |
965 { |
956 /** if there is no image to show go back to the previous view */ |
966 /** if there is no image to show go back to the previous view */ |
957 if (!iMediaList->Count()) |
967 if (!iMediaList->Count() && iNaviState->ViewingMode() |
958 { |
968 == NGlxNavigationalState::EView) |
959 iUiUtility->SetViewNavigationDirection(EGlxNavigationBackwards); |
969 { |
960 CGlxNavigationalState* navigationalState = |
970 iUiUtility->SetViewNavigationDirection( |
961 CGlxNavigationalState::InstanceL(); |
971 EGlxNavigationBackwards); |
962 CleanupClosePushL(*navigationalState); |
972 iNaviState->ActivatePreviousViewL(); |
963 navigationalState ->ActivatePreviousViewL(); |
973 } |
964 CleanupStack::PopAndDestroy(navigationalState); |
|
965 } |
|
966 else if (iMediaListMulModelProvider) |
974 else if (iMediaListMulModelProvider) |
967 { |
975 { |
968 UpdateItems(); |
976 UpdateItems(); |
969 |
977 |
970 if (iHdmiController) |
978 if (iHdmiController) |
1117 } |
1125 } |
1118 break; |
1126 break; |
1119 |
1127 |
1120 case ETypeRemove: |
1128 case ETypeRemove: |
1121 { |
1129 { |
1122 // Handle the "C" key or the BackSpace key to Delete an item. |
1130 // If From photos, delete the img. |
1123 ProcessCommandL(EGlxCmdDelete); |
1131 // If Image-Viewer collection and not in private Path |
1124 return EEventConsumed; |
1132 // handle the "C" or BackSpace key to delete the item |
|
1133 if (!iImgViewerMode || (iImageViewerInstance |
|
1134 && !iImageViewerInstance->IsPrivate())) |
|
1135 { |
|
1136 ProcessCommandL(EGlxCmdDelete); |
|
1137 return EEventConsumed; |
|
1138 } |
|
1139 return EEventNotHandled; |
1125 } |
1140 } |
1126 |
|
1127 case ETypeDoubleTap: |
1141 case ETypeDoubleTap: |
1128 { |
1142 { |
1129 GLX_LOG_INFO("CGlxFullScreenViewImp::OfferEventL ETypeDoubleTap"); |
1143 GLX_LOG_INFO("CGlxFullScreenViewImp::OfferEventL ETypeDoubleTap"); |
1130 |
1144 |
1131 MulDoubleTapData* DoubleTapData = (MulDoubleTapData*)(aEvent.CustomEventData()); |
1145 MulDoubleTapData* DoubleTapData = (MulDoubleTapData*)(aEvent.CustomEventData()); |
1146 } |
1160 } |
1147 return EEventConsumed; |
1161 return EEventConsumed; |
1148 } |
1162 } |
1149 case ETypeItemRemoved: |
1163 case ETypeItemRemoved: |
1150 { |
1164 { |
|
1165 GLX_LOG_INFO("CGlxFullScreenViewImp::OfferEventL ETypeItemRemoved"); |
|
1166 TInt focusIndex = iMediaList->FocusIndex(); |
|
1167 TInt mlCount = iMediaList->Count(); |
|
1168 GLX_LOG_INFO2("CGlxFullScreenViewImp::OfferEventL focusIndex=%d, iOldFocusIndex=%d", |
|
1169 focusIndex, iOldFocusIndex); |
|
1170 if (mlCount && (iOldFocusIndex == focusIndex |
|
1171 || iOldFocusIndex == mlCount) && iZoomControl |
|
1172 && iZoomControl->Activated()) |
|
1173 { |
|
1174 GLX_LOG_INFO("Fcused item is removed, Exit zoom view!"); |
|
1175 DeactivateZoomControlL(); |
|
1176 } |
1151 SetItemToHDMIL(); |
1177 SetItemToHDMIL(); |
1152 TInt focusIndex = iMediaList->FocusIndex(); |
|
1153 if (focusIndex != KErrNotFound && EUiOn == GetUiState()) |
1178 if (focusIndex != KErrNotFound && EUiOn == GetUiState()) |
1154 { |
1179 { |
1155 // show/hide the slider |
1180 // show/hide the slider |
1156 if (iSliderWidget) |
1181 if (iSliderWidget) |
1157 { |
1182 { |
1158 iSliderWidget->ShowWidget(CheckIfSliderToBeShownL()); |
1183 iSliderWidget->ShowWidget(CheckIfSliderToBeShownL()); |
1159 } |
1184 } |
1160 } |
1185 } |
1161 /** if this is the last image deleted when Photo is in foreground, go back to the previous view*/ |
1186 /** if this is the last image deleted when Photo is in foreground, go back to the previous view*/ |
1162 if (!iMediaList->Count() && IsForeground()) |
1187 if (mlCount == 0 && IsForeground() |
1163 { |
1188 && iNaviState->ViewingMode() |
1164 iUiUtility->SetViewNavigationDirection( |
1189 == NGlxNavigationalState::EView) |
1165 EGlxNavigationBackwards); |
1190 { |
1166 CGlxNavigationalState* navigationalState = |
1191 iUiUtility->SetViewNavigationDirection( |
1167 CGlxNavigationalState::InstanceL(); |
1192 EGlxNavigationBackwards); |
1168 CleanupClosePushL(*navigationalState); |
1193 iNaviState->ActivatePreviousViewL(); |
1169 navigationalState ->ActivatePreviousViewL(); |
1194 } |
1170 CleanupStack::PopAndDestroy(navigationalState); |
1195 TRAP_IGNORE(ShowDrmExpiryNoteL()); |
1171 } |
|
1172 return EEventConsumed; |
1196 return EEventConsumed; |
1173 } |
1197 } |
1174 case ETypeHighlight: |
1198 case ETypeHighlight: |
1175 { |
1199 { |
|
1200 GLX_LOG_INFO("CGlxFullScreenViewImp::OfferEventL ETypeHighlight"); |
1176 iMediaList->SetFocusL( NGlxListDefs::EAbsolute,(aEvent.CustomEventData())); |
1201 iMediaList->SetFocusL( NGlxListDefs::EAbsolute,(aEvent.CustomEventData())); |
1177 if (AknLayoutUtils::PenEnabled()) |
1202 if (AknLayoutUtils::PenEnabled()) |
1178 { |
1203 { |
1179 iMediaList->SetVisibleWindowIndexL(aEvent.CustomEventData()); |
1204 iMediaList->SetVisibleWindowIndexL(aEvent.CustomEventData()); |
1180 } |
1205 } |