You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cordova.apache.org by "Chris Brody (JIRA)" <ji...@apache.org> on 2018/01/19 17:58:00 UTC

[jira] [Commented] (CB-13802) Avoid unnecessary ApplicationView access on Windows 8.1

    [ https://issues.apache.org/jira/browse/CB-13802?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16332652#comment-16332652 ] 

Chris Brody commented on CB-13802:
----------------------------------

I also raised CB-13803 to report the possible crash on Windows 8.1, which would be resolved by the suggested changes.

> Avoid unnecessary ApplicationView access on Windows 8.1
> -------------------------------------------------------
>
>                 Key: CB-13802
>                 URL: https://issues.apache.org/jira/browse/CB-13802
>             Project: Apache Cordova
>          Issue Type: Bug
>          Components: cordova-windows
>            Reporter: Chris Brody
>            Assignee: Jesse MacFadyen
>            Priority: Minor
>
> From changes in CB-12238, CB-12784, and CB-13641 I noticed a few spots where {{Windows.UI.ViewManagement.ApplicationView.getForCurrentView()}} is called for no good reason on Windows 8.1, along with a couple "else crash on 8.1" comments nearby.
> The following changes (NOT TESTED) would resolve this issue:
> {code:sh}
> diff --git a/cordova-js-src/splashscreen.js b/cordova-js-src/splashscreen.js
> index 97fd86c..77bca75 100644
> --- a/cordova-js-src/splashscreen.js
> +++ b/cordova-js-src/splashscreen.js
> @@ -198,7 +198,7 @@ function enableUserInteraction() {
>  
>  // Enter fullscreen mode
>  function enterFullScreen() {
> -    if (Windows.UI.ViewManagement.ApplicationViewBoundsMode) { // else crash on 8.1
> +    if (isWin10UWP && Windows.UI.ViewManagement.ApplicationViewBoundsMode) {
>          var view = Windows.UI.ViewManagement.ApplicationView.getForCurrentView();
>          view.setDesiredBoundsMode(Windows.UI.ViewManagement.ApplicationViewBoundsMode.useCoreWindow);
>          view.suppressSystemOverlays = true;
> @@ -207,7 +207,7 @@ function enterFullScreen() {
>  
>  // Exit fullscreen mode
>  function exitFullScreen() {
> -    if (Windows.UI.ViewManagement.ApplicationViewBoundsMode) { // else crash on 8.1
> +    if (isWin10UWP && Windows.UI.ViewManagement.ApplicationViewBoundsMode) {
>          var view = Windows.UI.ViewManagement.ApplicationView.getForCurrentView();
>          view.setDesiredBoundsMode(Windows.UI.ViewManagement.ApplicationViewBoundsMode.useVisible);
>          view.suppressSystemOverlays = false;
> @@ -216,8 +216,10 @@ function exitFullScreen() {
>  
>  // Make title bg color match splashscreen bg color
>  function colorizeTitleBar() {
> -    var appView = Windows.UI.ViewManagement.ApplicationView.getForCurrentView();
>      if (isWin10UWP && !isBgColorTransparent) {
> +        var appView =
> +            Windows.UI.ViewManagement.ApplicationView.getForCurrentView();
> +
>          titleInitialBgColor = appView.titleBar.backgroundColor;
>  
>          appView.titleBar.backgroundColor = titleBgColor;
> @@ -227,8 +229,10 @@ function colorizeTitleBar() {
>  
>  // Revert title bg color
>  function revertTitleBarColor() {
> -    var appView = Windows.UI.ViewManagement.ApplicationView.getForCurrentView();
>      if (isWin10UWP && !isBgColorTransparent) {
> +        var appView =
> +            Windows.UI.ViewManagement.ApplicationView.getForCurrentView();
> +
>          appView.titleBar.backgroundColor = titleInitialBgColor;
>          appView.titleBar.buttonBackgroundColor = titleInitialBgColor;
>      }
> {code}
> Unfortunately I do not know how to test splashscreen changes myself, guidance would be appreciated.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@cordova.apache.org
For additional commands, e-mail: issues-help@cordova.apache.org