﻿<?xml version="1.0" encoding="utf-8"?>
<!--
       Licensed to the Apache Software Foundation (ASF) under one
       or more contributor license agreements.  See the NOTICE file
       distributed with this work for additional information
       regarding copyright ownership.  The ASF licenses this file
       to you under the Apache License, Version 2.0 (the
       "License"); you may not use this file except in compliance
       with the License.  You may obtain a copy of the License at

         http://www.apache.org/licenses/LICENSE-2.0

       Unless required by applicable law or agreed to in writing,
       software distributed under the License is distributed on an
       "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
       KIND, either express or implied.  See the License for the
       specific language governing permissions and limitations
       under the License.
-->
<Package xmlns="http://schemas.microsoft.com/appx/2010/manifest" xmlns:m2="http://schemas.microsoft.com/appx/2013/manifest">
  <Identity Name="$packagename$" Version="1.0.0.0" Publisher="CN=$username$" />
  <Properties>
    <DisplayName>$projectname$</DisplayName>
    <PublisherDisplayName>$username$</PublisherDisplayName>
    <Logo>images\StoreLogo.png</Logo>
  </Properties>
  <Prerequisites>
    <OSMinVersion>6.3.0</OSMinVersion>
    <OSMaxVersionTested>6.3.0</OSMaxVersionTested>
  </Prerequisites>
  <Resources>
    <Resource Language="x-generate" />
  </Resources>
  <Applications>
    <Application Id="App" StartPage="www/index.html">
      <m2:VisualElements DisplayName="$projectname$" 
                         Description="CordovaApp"
                         ForegroundText="light"
                         BackgroundColor="#464646"
                         Square150x150Logo="images\Square150x150Logo.png"
                         Square30x30Logo="images\Square30x30Logo.png">
        <m2:DefaultTile Square70x70Logo="images\Square70x70Logo.png"
                        Square310x310Logo="images\Square310x310Logo.png"
                        Wide310x150Logo="images\Wide310x150Logo.png">
          <m2:ShowNameOnTiles>
            <m2:ShowOn Tile="square150x150Logo" />
            <m2:ShowOn Tile="wide310x150Logo" />
            <m2:ShowOn Tile="square310x310Logo" />
          </m2:ShowNameOnTiles>
        </m2:DefaultTile>
        <m2:SplashScreen Image="images\SplashScreen.png" />
      </m2:VisualElements>
    </Application>
  </Applications>
  <Capabilities>
    <Capability Name="internetClient" />
  </Capabilities>
</Package>