From 75a3b94788931f14bb963e6a948e1bec333c0c4d Mon Sep 17 00:00:00 2001 From: Tina Jin Date: Tue, 23 Apr 2019 10:53:44 -0700 Subject: [PATCH] New Managed App Config and Status Bar sample --- Managed App Config/MyApp.qml | 332 ++++++++++++++++++ Managed App Config/MyApp.qmlproject | 32 ++ Managed App Config/README.md | 57 +++ Managed App Config/appicon.png | Bin 0 -> 26669 bytes Managed App Config/appinfo.json | 96 +++++ Managed App Config/assets/clear.png | Bin 0 -> 347 bytes Managed App Config/assets/info.png | Bin 0 -> 953 bytes .../controls/CustomizedText.qml | 17 + .../controls/DescriptionPage.qml | 93 +++++ Managed App Config/controls/HeaderBar.qml | 59 ++++ Managed App Config/default-app.png | Bin 0 -> 24553 bytes Managed App Config/image | 0 Managed App Config/iteminfo.json | 54 +++ Managed App Config/qtquickcontrols2.conf | 10 + Managed App Config/restrictions.xml | 16 + Managed App Config/specfile.xml | 37 ++ Managed App Config/thumbnail.png | Bin 0 -> 1932 bytes Status Bar/MyApp.qml | 207 +++++++++++ Status Bar/MyApp.qmlproject | 32 ++ Status Bar/README.md | 41 +++ Status Bar/appicon.png | Bin 0 -> 26669 bytes Status Bar/appinfo.json | 101 ++++++ Status Bar/assets/clear.png | Bin 0 -> 347 bytes Status Bar/assets/info.png | Bin 0 -> 953 bytes Status Bar/controls/DescriptionPage.qml | 91 +++++ Status Bar/controls/HeaderBar.qml | 70 ++++ Status Bar/default-app.png | Bin 0 -> 24553 bytes Status Bar/image | 0 Status Bar/iteminfo.json | 55 +++ Status Bar/qtquickcontrols2.conf | 10 + Status Bar/thumbnail.png | Bin 0 -> 2735 bytes 31 files changed, 1410 insertions(+) create mode 100644 Managed App Config/MyApp.qml create mode 100644 Managed App Config/MyApp.qmlproject create mode 100644 Managed App Config/README.md create mode 100644 Managed App Config/appicon.png create mode 100644 Managed App Config/appinfo.json create mode 100644 Managed App Config/assets/clear.png create mode 100644 Managed App Config/assets/info.png create mode 100644 Managed App Config/controls/CustomizedText.qml create mode 100644 Managed App Config/controls/DescriptionPage.qml create mode 100644 Managed App Config/controls/HeaderBar.qml create mode 100644 Managed App Config/default-app.png create mode 100644 Managed App Config/image create mode 100644 Managed App Config/iteminfo.json create mode 100644 Managed App Config/qtquickcontrols2.conf create mode 100644 Managed App Config/restrictions.xml create mode 100644 Managed App Config/specfile.xml create mode 100644 Managed App Config/thumbnail.png create mode 100644 Status Bar/MyApp.qml create mode 100644 Status Bar/MyApp.qmlproject create mode 100644 Status Bar/README.md create mode 100644 Status Bar/appicon.png create mode 100644 Status Bar/appinfo.json create mode 100644 Status Bar/assets/clear.png create mode 100644 Status Bar/assets/info.png create mode 100644 Status Bar/controls/DescriptionPage.qml create mode 100644 Status Bar/controls/HeaderBar.qml create mode 100644 Status Bar/default-app.png create mode 100644 Status Bar/image create mode 100644 Status Bar/iteminfo.json create mode 100644 Status Bar/qtquickcontrols2.conf create mode 100644 Status Bar/thumbnail.png diff --git a/Managed App Config/MyApp.qml b/Managed App Config/MyApp.qml new file mode 100644 index 0000000..23f324a --- /dev/null +++ b/Managed App Config/MyApp.qml @@ -0,0 +1,332 @@ +/* Copyright 2017 Esri + * + * Licensed 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. + * + */ + +import QtQuick 2.7 +import QtQuick.Layouts 1.1 +import QtQuick.Controls 2.1 +import QtQuick.Controls.Material 2.1 +import QtGraphicalEffects 1.0 + +import ArcGIS.AppFramework 1.0 +import ArcGIS.AppFramework.Controls 1.0 +import ArcGIS.AppFramework.Management 1.0 + +import "controls" as Controls + +App { + id: app + width: 414 + height: 736 + function units(value) { + return AppFramework.displayScaleFactor * value + } + property real scaleFactor: AppFramework.displayScaleFactor + property int baseFontSize : app.info.propertyValue("baseFontSize", 15 * scaleFactor) + (isSmallScreen ? 0 : 3) + property bool isSmallScreen: (width || height) < units(400) + property bool isTablet: AppFramework.systemInformation.family === "tablet" + property bool isPhone: (AppFramework.systemInformation.family === "phone") + + property bool isSupported:ManagedAppConfiguration.supported + + Page{ + anchors.fill: parent + header: ToolBar{ + id:header + width: parent.width + height: 50 * scaleFactor + Material.background: "#8f499c" + Controls.HeaderBar{} + } + + // sample starts here ------------------------------------------------------------------ + contentItem: Rectangle { + anchors.top:header.bottom + + Connections { + target: ManagedAppConfiguration + + onPolicyDefaultsChanged : { + defaultPortalName.text = ManagedAppConfiguration.defaultValue("portalName"); + defaultPortalUrl.text = ManagedAppConfiguration.defaultValue("portalUrl"); + defaultJson.text = JSON.stringify(ManagedAppConfiguration.policyDefaults, null, 2); + } + + onPolicySettingsChanged : { + portalName.text = ManagedAppConfiguration.value("portalName", false, "ArcGIS"); + portalUrl.text = ManagedAppConfiguration.value("portalUrl", false, "www.arcgis.com"); + settingsJson.text = JSON.stringify(ManagedAppConfiguration.policySettings, null, 2); + } + } + + Rectangle { + anchors.margins: 5 * scaleFactor + anchors.fill: parent + color:"#F5F5F5" + + Rectangle { + anchors.margins: 4 * scaleFactor + anchors.fill: parent + color:"#F5F5F5" + + ColumnLayout { + anchors.fill: parent + spacing: 0 + + Item { + Layout.preferredHeight: 35 * scaleFactor + Layout.preferredWidth: parent.width + + RowLayout { + anchors.fill: parent + spacing: 10 * scaleFactor + + Controls.CustomizedText { + Layout.preferredWidth: isTablet ? Math.max(0.18 * parent.width, 10 * scaleFactor) : Math.max(0.3 * parent.width, 10 * scaleFactor) + cusText: qsTr("Default portalUrl: ") + } + + Item { + Layout.fillWidth: true + TextField { + id: defaultPortalUrl + width: parent.width + text: "portalUrl" + Material.accent: "#8f499c" + font.pixelSize: 11 * scaleFactor + clip: true + anchors.verticalCenter: parent.verticalCenter + } + } + } + } + + Item { + Layout.preferredHeight: 35 * scaleFactor + Layout.preferredWidth: parent.width + + RowLayout { + anchors.fill: parent + spacing: 10 * scaleFactor + + Controls.CustomizedText { + Layout.preferredWidth: isTablet ? Math.max(0.18 * parent.width, 10 * scaleFactor) : Math.max(0.3 * parent.width, 10 * scaleFactor) + cusText: qsTr("Default portalName: ") + } + + Item { + Layout.fillWidth: true + + TextField { + id: defaultPortalName + width: parent.width + anchors.verticalCenter: parent.verticalCenter + placeholderText: "portalName" + Material.accent: "#8f499c" + selectByMouse: true + font.pixelSize: 11 * scaleFactor + } + } + } + } + + + Item { + Layout.preferredHeight: (parent.height - 140)/2.1 + Layout.preferredWidth: parent.width + + RowLayout { + anchors.fill: parent + spacing: 10 * scaleFactor + + Item { + Layout.preferredWidth: isTablet ? Math.max(0.18 * parent.width, 10 * scaleFactor) : Math.max(0.3 * parent.width, 10 * scaleFactor) + Layout.preferredHeight: parent.height + + ColumnLayout { + anchors.fill: parent + spacing: 0 + + Controls.CustomizedText { + text: "Default JSON: " + Layout.preferredWidth: parent.width + + } + + Item { + Layout.fillHeight: true + } + } + } + + Item { + Layout.fillHeight: true + Layout.fillWidth: true + clip: true + + Flickable { + anchors.fill: parent + contentWidth: this.width + contentHeight:defaultJson.height + boundsBehavior: Flickable.StopAtBounds + + Label { + id: defaultJson + wrapMode: TextArea.Wrap + width: parent.width + font.pixelSize: 11 * scaleFactor + } + } + } + } + } + + + Item { + Layout.preferredHeight: 35 * scaleFactor + Layout.preferredWidth: parent.width + + RowLayout { + anchors.fill: parent + spacing: 10 * scaleFactor + + Controls.CustomizedText { + Layout.preferredWidth: isTablet ? Math.max(0.18 * parent.width, 10 * scaleFactor) : Math.max(0.3 * parent.width, 10 * scaleFactor) + cusText: qsTr("Settings portalUrl: ") + } + + Item { + Layout.fillWidth: true + + TextField { + id: portalUrl + width: parent.width + anchors.verticalCenter: parent.verticalCenter + placeholderText: "portalUrl" + Material.accent: "#8f499c" + selectByMouse: true + font.pixelSize: 11 * scaleFactor + } + } + } + } + + Item { + Layout.preferredHeight: 35 * scaleFactor + Layout.preferredWidth: parent.width + + RowLayout { + anchors.fill: parent + spacing: 10 * scaleFactor + + Controls.CustomizedText { + Layout.preferredWidth: isTablet ? Math.max(0.18 * parent.width, 10 * scaleFactor) : Math.max(0.3 * parent.width, 10 * scaleFactor) + cusText: qsTr( "Settings portalName: ") + } + + Item { + Layout.fillWidth: true + + TextField { + id: portalName + width: parent.width + anchors.verticalCenter: parent.verticalCenter + placeholderText: "portalName" + Material.accent: "#8f499c" + selectByMouse: true + font.pixelSize: 11 * scaleFactor + } + } + } + } + + + Item { + Layout.preferredHeight: (parent.height - 140)/2.1 + Layout.preferredWidth: parent.width + + RowLayout { + anchors.fill: parent + spacing: 10 * scaleFactor + + Item { + Layout.preferredWidth: isTablet ? Math.max(0.18 * parent.width, 10 * scaleFactor) : Math.max(0.3 * parent.width, 10 * scaleFactor) + Layout.fillHeight: true + + ColumnLayout { + anchors.fill: parent + spacing: 0 + + Controls.CustomizedText { + text: "Settings JSON: " + Layout.preferredWidth: parent.width + } + + Item { + Layout.fillHeight: true + } + } + } + + Item { + Layout.fillHeight: true + Layout.fillWidth: true + clip: true + + Flickable { + anchors.fill: parent + contentWidth: this.width + contentHeight:defaultJson.height + boundsBehavior: Flickable.StopAtBounds + + Label { + id: settingsJson + wrapMode: TextArea.Wrap + width: parent.width + font.pixelSize: 11 * scaleFactor + } + } + } + } + } + } + } + } + } + } + + + Component.onCompleted: { + defaultPortalName.text = ManagedAppConfiguration.defaultValue("portalName"); + defaultPortalUrl.text = ManagedAppConfiguration.defaultValue("portalUrl"); + defaultJson.text = JSON.stringify(ManagedAppConfiguration.policyDefaults, null, 2); + + console.log("defaults: ", JSON.stringify(ManagedAppConfiguration.policyDefaults, null, 1)); + + portalName.text = ManagedAppConfiguration.value("portalName", false, "ArcGIS"); + portalUrl.text = ManagedAppConfiguration.value("portalUrl", false, "www.arcgis.com") + settingsJson.text = JSON.stringify(ManagedAppConfiguration.policySettings, null, 2); + + console.log("settings: ", JSON.stringify(ManagedAppConfiguration.policySettings)); + } + + // sample ends here ------------------------------------------------------------------------ + Controls.DescriptionPage{ + id:descPage + visible: false + } +} + + diff --git a/Managed App Config/MyApp.qmlproject b/Managed App Config/MyApp.qmlproject new file mode 100644 index 0000000..6abbd20 --- /dev/null +++ b/Managed App Config/MyApp.qmlproject @@ -0,0 +1,32 @@ +//------------------------------------------------------------------------------ + +import QmlProject 1.1 + +Project { + mainFile: "MyApp.qml" + + QmlFiles { + directory: "." + recursive: true + } + + JavaScriptFiles { + directory: "." + recursive: true + } + + ImageFiles { + directory: "." + recursive: true + } + + Files { + directory: "." + recursive: true + filter: "*.json;*.html;*.txt;*.conf;*.xml" + } + + importPaths: [ + ] +} + diff --git a/Managed App Config/README.md b/Managed App Config/README.md new file mode 100644 index 0000000..a087f9c --- /dev/null +++ b/Managed App Config/README.md @@ -0,0 +1,57 @@ +## Managed App Config + +This sample app demonstrates how to use AppFramework.Management plugin -ManagedAppConfiguration QML type to allow Enterprise Mobility Management (EMM) software to overwrite certain provided default settings. Currently, managed app configuration is only supported on iOS and Android platforms. + +In this sample app, the default portal URL is “www.arcgis.com” and the default portal name is “ArcGIS”. You can upload the app installation file into the EMM software and set the preferred portal URL and name values. The portal URL and name set in the EMM will be shown in the Settings portalURL and Settings portalName field in the sample app. You can see what happens when changing values in EMM software in Settings JSON field. + +To use this feature, you will need to: + +Step 1: Include restriction .xml file for Android and configuration schema .xml file for iOS in your app project folder. In this sample app, the restriction file is "restrictions.xml" and the configuration schema file is "specfile.xml". + +Step 2: Include the management property into the appinfo.json file. You can go to the appinfo.json file, line 82 to check how we add the management property. + +Step 3: Use ManagedAppConfiguration QML type to read policy settings in AppStudio app. + +Step 4: Upload the app to your EMM software and follow the steps provided by your EMM software to setup managed app configuration using key-value pairs. + +Please read this [blog](https://community.esri.com/groups/appstudio/blog/2019/03/04/support-for-managed-app-configuration-with-enterprise-mobility-management-solutions) to learn more. + + + +[Resource Level](https://geonet.esri.com/groups/appstudio/blog/2016/12/06/how-to-describe-our-resources-in-terms-of-difficulty-complexity-and-time-to-digest): 🍌🍌 + + +## Instructions to run this sample in AppStudio Desktop + +1. Download the `.zip` file +2. Unzip and copy this folder into AppStudio Apps folder (Windows: `C:\Users\\ArcGIS\AppStudio\Apps` Mac or linux: `Home\ArcGIS\AppStudio\Apps`) +3. The new app will now appear in the AppStudio Desktop. Run the application or open it in the bundled Qt-Creator IDE to look at the code and modify. + +## Issues + +Find a bug or want to request a new feature? Please let us know by submitting an issue. + +## Contributing + +Esri welcomes contributions from anyone and everyone. Please see our [guidelines for contributing](https://github.com/esri/contributing). + +## Licensing +Copyright 2017 Esri + +Licensed 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. + +A copy of the license is available in the repository's [license.txt](license.txt) file. + + +[](Esri Tags: ArcGIS Runtime SDK Qt QML JavaScript iOS Android Xamarin Ionic PhoneGap Mac linux Windows Apps samples templates appstudio) +[](Esri Language: Qt QML JavaScript) diff --git a/Managed App Config/appicon.png b/Managed App Config/appicon.png new file mode 100644 index 0000000000000000000000000000000000000000..39504b966783aa4ec58c7086a74e03aa0a3bbe71 GIT binary patch literal 26669 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 bb%Xu~a~|hNXxfgr00000NkvXXu0mjfV)nVh literal 0 HcmV?d00001 diff --git a/Managed App Config/controls/CustomizedText.qml b/Managed App Config/controls/CustomizedText.qml new file mode 100644 index 0000000..94aecbf --- /dev/null +++ b/Managed App Config/controls/CustomizedText.qml @@ -0,0 +1,17 @@ +import QtQuick 2.7 +import QtQuick.Controls 2.1 +import QtQuick.Layouts 1.1 + + +import ArcGIS.AppFramework 1.0 +import ArcGIS.AppFramework.Controls 1.0 + +Text { + property string cusText + text: cusText + font.pixelSize: 12 * scaleFactor + horizontalAlignment: Text.AlignRight + verticalAlignment: Text.AlignVCenter + elide: Text.ElideRight +} + diff --git a/Managed App Config/controls/DescriptionPage.qml b/Managed App Config/controls/DescriptionPage.qml new file mode 100644 index 0000000..0572ab6 --- /dev/null +++ b/Managed App Config/controls/DescriptionPage.qml @@ -0,0 +1,93 @@ +import QtQuick 2.7 +import QtQuick.Controls 2.1 +import QtQuick.Layouts 1.1 + +import ArcGIS.AppFramework 1.0 +import ArcGIS.AppFramework.Controls 1.0 + +Item { + id: descPage + width: parent.width + height: parent.height + + Rectangle{ + anchors.fill:parent + + ColumnLayout{ + anchors.fill:parent + spacing: 0 + clip:true + + Rectangle{ + id:descPageheader + color:"#8f499c" + Layout.preferredWidth: parent.width + Layout.preferredHeight: 50 * scaleFactor + + ImageButton { + source: "../assets/clear.png" + height: 30 * scaleFactor + width: 30 * scaleFactor + checkedColor : "transparent" + pressedColor : "transparent" + hoverColor : "transparent" + glowColor : "transparent" + anchors { + right: parent.right + rightMargin: 10 * scaleFactor + verticalCenter: parent.verticalCenter + } + onClicked: { + descPage.visible = 0 + } + } + + Text { + id: aboutApp + text:qsTr("About") + color:"white" + font.pixelSize: app.baseFontSize * 1.1 + font.bold: true + anchors.centerIn: parent + maximumLineCount: 2 + elide: Text.ElideRight + } + } + + Rectangle{ + color:"black" + Layout.fillWidth: true + Layout.fillHeight: true + + Flickable { + anchors.fill:parent + contentHeight: descText.height + clip:true + + Text{ + id: descText + y: 30 * scaleFactor + text:app.info.description + anchors.horizontalCenterOffset: 0 + color:"white" + width: 0.85 * parent.width + horizontalAlignment: Text.AlignLeft + linkColor: "#e5e6e7" + wrapMode: Text.WordWrap + elide: Text.ElideRight + anchors.horizontalCenter: parent.horizontalCenter + font { + pixelSize: app.baseFontSize + } + onLinkActivated: Qt.openUrlExternally(link) + } + } + } + } + } +} + + + + + diff --git a/Managed App Config/controls/HeaderBar.qml b/Managed App Config/controls/HeaderBar.qml new file mode 100644 index 0000000..2ddd736 --- /dev/null +++ b/Managed App Config/controls/HeaderBar.qml @@ -0,0 +1,59 @@ +import QtQuick 2.7 +import QtQuick.Controls 2.1 +import QtQuick.Layouts 1.1 + + +import ArcGIS.AppFramework 1.0 +import ArcGIS.AppFramework.Controls 1.0 + +RowLayout{ + anchors.fill: parent + spacing:0 + clip:true + + Rectangle{ + Layout.preferredWidth: 50*scaleFactor + } + + Text { + text:app.info.title + color:"white" + font.pixelSize: app.baseFontSize * 1.1 + font.bold: true + maximumLineCount:2 + wrapMode: Text.Wrap + elide: Text.ElideRight + anchors{ + verticalCenter: parent.verticalCenter + horizontalCenter:parent.horizontalCenter + } + } + + Rectangle{ + id:infoImageRect + Layout.alignment: Qt.AlignRight + Layout.preferredWidth: 50*scaleFactor + + ImageButton { + id:infoImage + source: "../assets/info.png" + height: 30 * scaleFactor + width: 30 * scaleFactor + checkedColor : "transparent" + pressedColor : "transparent" + hoverColor : "transparent" + glowColor : "transparent" + anchors { + centerIn: parent + } + onClicked: { + descPage.visible = 1 + } + } + } +} + + + + + diff --git a/Managed App Config/default-app.png b/Managed App Config/default-app.png new file mode 100644 index 0000000000000000000000000000000000000000..8fa9021601d248039e237f0a31607ed7c9cea37d GIT binary patch literal 24553 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 literal 0 HcmV?d00001 diff --git a/Managed App Config/image b/Managed App Config/image new file mode 100644 index 0000000..e69de29 diff --git a/Managed App Config/iteminfo.json b/Managed App Config/iteminfo.json new file mode 100644 index 0000000..5accf58 --- /dev/null +++ b/Managed App Config/iteminfo.json @@ -0,0 +1,54 @@ +{ + "access": "public", + "accessInformation": null, + "appCategories": [ + ], + "avgRating": 0, + "banner": null, + "categories": [ + ], + "commentsEnabled": true, + "created": 1551467725000, + "culture": "en-au", + "description": "\n

This sample app demonstrates how to use AppFramework.Management plugin -ManagedAppConfiguration QML type to allow Enterprise Mobility Management (EMM) software to overwrite certain provided default settings. Currently, managed app configuration is only supported on iOS and Android platforms. 

\n

 

\n

In this sample app, the default portal URL is “www.arcgis.com” and the default portal name is “ArcGIS”. You can upload the app installation file into the EMM software and set the preferred portal URL and name values. The portal URL and name set in the EMM will be shown in the Settings portalURL and Settings portalName field in the sample app. You can see what happens when changing values in EMM software in Settings JSON field. 

\n

 

\n

To use this feature, you will need to:

\n

 

\n

Step 1:  Include restriction .xml file for Android and configuration schema .xml file for iOS in your app project folder. In this sample app, the restriction file is "restrictions.xml" and the configuration schema file is "specfile.xml".

\n

 

\n

Step 2: Include the management property into the appinfo.json file. You can go to the appinfo.json file, line 82 to check how we add the management property.   

\n

 

\n

Step 3: Use ManagedAppConfiguration QML type to read policy settings in AppStudio app.

\n

 

\n

Step 4: Upload the app to your EMM software and follow the steps provided by your EMM software to setup managed app configuration using key-value pairs.

\n

 

\n


", + "documentation": null, + "extent": [ + ], + "groupDesignations": null, + "guid": null, + "industries": [ + ], + "itemControl": "admin", + "languages": [ + ], + "largeThumbnail": null, + "licenseInfo": null, + "listed": false, + "modified": 1551469253000, + "numComments": 2, + "numRatings": 0, + "numViews": 3, + "orgId": "2U3NfasNQ9o9LkLt", + "properties": null, + "protected": false, + "proxyFilter": null, + "scoreCompleteness": 83, + "screenshots": [ + ], + "size": 37768, + "snippet": "This sample app demonstrates how to use AppFramework.Management plugin -ManagedAppConfiguration QML type to allow Enterprise Mobility Management (EMM) software to overwrite certain provided default settings", + "spatialReference": null, + "thumbnail": "thumbnail/thumbnail.png", + "title": "Managed App Config", + "type": "Native Application", + "typeKeywords": [ + "API_QML", + "App", + "Application", + "AppStudio", + "Configuration", + "Native", + "qml" + ], + "url": null +} diff --git a/Managed App Config/qtquickcontrols2.conf b/Managed App Config/qtquickcontrols2.conf new file mode 100644 index 0000000..1ddd1cd --- /dev/null +++ b/Managed App Config/qtquickcontrols2.conf @@ -0,0 +1,10 @@ +; This file can be edited to change the style of the application +; See Styling Qt Quick Controls 2 in the documentation for details: +; http://doc.qt.io/qt-5/qtquickcontrols2-styles.html + +[Controls] +Style=Material + +[Universal] +Theme=Light +;Accent=Steel diff --git a/Managed App Config/restrictions.xml b/Managed App Config/restrictions.xml new file mode 100644 index 0000000..248fe03 --- /dev/null +++ b/Managed App Config/restrictions.xml @@ -0,0 +1,16 @@ + + + + + + + + diff --git a/Managed App Config/specfile.xml b/Managed App Config/specfile.xml new file mode 100644 index 0000000..522f0d5 --- /dev/null +++ b/Managed App Config/specfile.xml @@ -0,0 +1,37 @@ + + + 1.0.0 + com.esri.appstudioapp + + + + www.arcgis.com + + + + + ArcGIS + + + + + + + + + + + + + + + + + + diff --git a/Managed App Config/thumbnail.png b/Managed App Config/thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..ec4184fc5a2436781dfb291ced4731a60eaa915e GIT binary patch literal 1932 zcmb7FjW-ht8(+FbKH5%+B1IuxOJq_LLtTt_#EY6;O?Nh#d~;_F>y7K9qBXJ1N3r3O zj~4T>p^Mv;k=KxSgm{H9^WHWa*7EMY=e&Qwea?BF-+9h?&hz}vbDodftG=Fk+D6&{ z06-7!btOQJZ`JyX)?T$eR^A3y!@f8#WFi2dbKp?}117>_p8=PTG@f zn_1>VxMoi{o*hy{U67a%Vr%G&siLp7Ov=*M%WeT?N{hk-^BcM7)qYLViO9p4&V6Q= z>Jz&_y^%#&L#hp}DH2ChrITed=NReVKzVqGG#n0H#)#UAWsOrep)P`>e&M;Xp3_OnPi|RjM z3Z%n6Dv0HTYtCo$QuH>cFE_(+j?@@jv#{M8w$H2u)e!6{_=SsJ#%^w&=lu&65ng9? z|M4Pw6f!K8*DX~X%L7v0w0(iH`@ev>T;NC5_B9|$Yi?}NW=Q&@abWVn9m5p7ed?u^xs@>YW{~JxO^!uE#Jr)c)k{)3mh7K9}m(@fy;>$4p44y}~3?u!Xx2XsU_&|HVC7Y2w3M}~Qhrdx!Yo$&5 z)op+9Ll!;&5ga<~ucygXh8cJGn`N@NK!c{dzL8}B+*-LHVFcy-A=wes^42ZenkZ*D z^kkyqB?RgUnGJKp$zKli;6C{5bO~{SFs(T|Js@m$cXownSAc~@<5-}#{Q@=66IP)O z!c%q&WB}wu1e`vEL!oJ`xS`Mbhr}%2UN58hY1zl@GX_<7`+ao^7bJ%3qJ^_MW~J4T%_Y(&TQ%#tBQm^)>RJH)U7#ShI68WwFR9@m{O_&u zi{QNd6fnOo`;XLdqY7qi{Cj8?i3uxsh0{=+2t zx;UMBFMN%@a7w58PE=|4d)BZ180n^Uf9Ha{Yt{wh)eJ?nr#d%R` z=$@i$mh=K)JSZL*wBf(1Pae$*^nlaPN5+p=;8X9KyGf(TE;Ot#lwm-8lEi9Xd&J$b z5h=j@K>asTmIMZwaGaLctV)8;VXiOzIK~)Bqj*oE@h75N>zZcQXBUVw`F80EiuLWS z+nZfn@*}(S0cmGfOdPX=dUN|C)~{X_2X@FA6rW?S4QpofY*?ZR-V7vLcf2*EA&LMi zxE{#%%dgz~c=31>JeFK6Y-^dCzhQO1l17hFXBG3guzX8b^V8!-1v2TK;~%osRLA*_ z?v|--aj%aC-Sram-Uu=tj=$}*^5j}tVNKw9@neP#1=RcR1d6z_qmUj%@J4gyG383p zvc{D=?A5tkCTwp;Pqr9&$o;|@eu7oEUkWJyoGWw5G}3wl9?+jwy8Rv7ivOwvD{Nn( zM7i*1EHB6>Ms%g${)QJM32KDha412+t+bL1fp14aPH#B$_L@KcsB$v-q9Tm#3h3Z) zIAH!4OT<_ie7jTwdqM=|waYyc%rbu-FqL#D=Y7`>+H(h`sV!_W0H4?bzZDBNkw2e6 z7tq_4ZwHUfOy<0wc9P8a>a-NW(6)v8E(uwwDA9_!^*r*<-R#plbv3l%Q>7)yLZNbT z3)fU$g|auMrldU0mk+(HQ{VR&<14(wPPMq@WeXHR`2P=cQ2(zytpCLZOUYw%b+$vF Rgav>4@E?4yG`fe~`!6D>usi?& literal 0 HcmV?d00001 diff --git a/Status Bar/MyApp.qml b/Status Bar/MyApp.qml new file mode 100644 index 0000000..569b5fe --- /dev/null +++ b/Status Bar/MyApp.qml @@ -0,0 +1,207 @@ +/* Copyright 2017 Esri + * + * Licensed 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. + * + */ + +import QtQuick 2.9 +import QtQuick.Layouts 1.1 +import QtQuick.Controls 2.2 +import QtQuick.Controls.Material 2.2 +import QtGraphicalEffects 1.0 +import QtQuick.Dialogs 1.2 +import QtQuick.Layouts 1.3 + +import ArcGIS.AppFramework 1.0 +import ArcGIS.AppFramework.Platform 1.0 + +import "controls" as Controls + +AppLayout { + id: appLayout + width: 400 + height: 750 + + delegate: App { + id: app + height: appLayout.height + width: appLayout.width + + function units(value) { + return AppFramework.displayScaleFactor * value + } + + property real scaleFactor: AppFramework.displayScaleFactor + property int baseFontSize : app.info.propertyValue("baseFontSize", 15 * scaleFactor) + (isSmallScreen ? 0 : 3) + property bool isSmallScreen: (width || height) < units(400) + + StackView { + id: stackView + initialItem: landingPage + anchors.fill: parent + } + + Component { + id: landingPage + + Page { + header: ToolBar { + id:header + width: parent.width + height: 50 * app.scaleFactor + Material.background: Material.color(Material.Purple) + Material.elevation: 0 + Controls.HeaderBar{} + } + + Rectangle { + anchors.margins: 5 * app.scaleFactor + anchors.fill: parent + color:"#F5F5F5" + + // sample starts here ------------------------------------------------------------------ + + ColumnLayout { + id: contentColumn + anchors.fill: parent + spacing: 20 * app.scaleFactor + + Item { + Layout.preferredHeight: 20 * app.scaleFactor + } + + ComboBox { + id: colorBox + Layout.alignment: Qt.AlignHCenter + displayText: "Color: " + currentText + currentIndex: Material.Purple + Layout.preferredWidth: parent.width * 0.7 + + model: ListModel { + ListElement { name: "Red" } + ListElement { name: "Pink" } + ListElement { name: "Purple" } + ListElement { name: "DeepPurple" } + ListElement { name: "Indigo" } + ListElement { name: "Blue" } + ListElement { name: "LightBlue" } + ListElement { name: "Cyan" } + ListElement { name: "Teal" } + ListElement { name: "Green" } + ListElement { name: "LightGreen" } + ListElement { name: "Lime" } + ListElement { name: "Yellow" } + ListElement { name: "Amber" } + ListElement { name: "Orange" } + ListElement { name: "DeepOrange" } + ListElement { name: "Brown" } + ListElement { name: "Grey" } + ListElement { name: "BlueGrey" } + } + + delegate: ItemDelegate { + id: colorDelegate + text: modelData + width: colorBox.popup.width + + Rectangle { + anchors.fill: parent + parent: colorDelegate.background + color: Material.color(index) + } + } + + onCurrentIndexChanged: { + StatusBar.color = Material.color(colorBox.currentIndex) + } + } + + ComboBox { + id: themeBox + Layout.alignment: Qt.AlignHCenter + displayText: "Theme: " + currentText + currentIndex: Material.Dark + Layout.preferredWidth: parent.width * 0.7 + + model: ListModel { + ListElement { name: "Light" } + ListElement { name: "Dark" } + } + + delegate: ItemDelegate { + id: themeDelegate + text: modelData + width: themeBox.popup.width + } + + onCurrentIndexChanged: { + StatusBar.theme = themeBox.currentIndex + } + } + + Button { + Layout.alignment: Qt.AlignHCenter + Layout.preferredWidth: parent.width * 0.7 + text: "reset" + + onClicked: { + StatusBar.theme = Material.Dark + themeBox.currentIndex = Material.Dark + StatusBar.color = Material.color(Material.Purple) + colorBox.currentIndex = Material.Purple + } + } + + Item { + Layout.preferredHeight: 10 * app.scaleFactor + } + + + Label { + text: "Note: Status bars are not displayed by default on devices; it first has to be enabled by setting the property display.statusBar to true in the app's appinfo.json." + Layout.alignment: Qt.AlignHCenter + Layout.preferredWidth: parent.width * 0.7 + wrapMode: Label.Wrap + } + + Item { + Layout.fillHeight: true + Layout.fillWidth: true + } + } + } + + + contentItem: Rectangle { + anchors.top:header.bottom + } + } + } + + // sample ends here -------------------------------------------------------- + + Component { + id: descriptionPage + + Controls.DescriptionPage { + id: descPage + } + } + } + + Component.onCompleted: { + StatusBar.theme = Material.Dark + StatusBar.color = Material.color(Material.Purple) + } +} + diff --git a/Status Bar/MyApp.qmlproject b/Status Bar/MyApp.qmlproject new file mode 100644 index 0000000..b8ff5f5 --- /dev/null +++ b/Status Bar/MyApp.qmlproject @@ -0,0 +1,32 @@ +//------------------------------------------------------------------------------ + +import QmlProject 1.1 + +Project { + mainFile: "MyApp.qml" + + QmlFiles { + directory: "." + recursive: true + } + + JavaScriptFiles { + directory: "." + recursive: true + } + + ImageFiles { + directory: "." + recursive: true + } + + Files { + directory: "." + recursive: true + filter: "*.json;*.html;*.txt" + } + + importPaths: [ + ] +} + diff --git a/Status Bar/README.md b/Status Bar/README.md new file mode 100644 index 0000000..7cd2462 --- /dev/null +++ b/Status Bar/README.md @@ -0,0 +1,41 @@ +## Status Bar + +This sample demonstrates how to change status bar color and theme using the StatusBar component, which is included in the ArcGIS.AppFramework.Platform plugin. In addition, AppLayout component, which is included in the ArcGIS.AppFramework.Platform plugin is used along with the StatusBar component to handle various heights of the status bar across devices. + +[Resource Level](https://geonet.esri.com/groups/appstudio/blog/2016/12/06/how-to-describe-our-resources-in-terms-of-difficulty-complexity-and-time-to-digest): 🍌🍌 + + +## Instructions to run this sample in AppStudio Desktop + +1. Download the `.zip` file +2. Unzip and copy this folder into AppStudio Apps folder (Windows: `C:\Users\\ArcGIS\AppStudio\Apps` Mac or linux: `Home\ArcGIS\AppStudio\Apps`) +3. The new app will now appear in the AppStudio Desktop. Run the application or open it in the bundled Qt-Creator IDE to look at the code and modify. + +## Issues + +Find a bug or want to request a new feature? Please let us know by submitting an issue. + +## Contributing + +Esri welcomes contributions from anyone and everyone. Please see our [guidelines for contributing](https://github.com/esri/contributing). + +## Licensing +Copyright 2017 Esri + +Licensed 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. + +A copy of the license is available in the repository's [license.txt](license.txt) file. + + +[](Esri Tags: ArcGIS Runtime SDK Qt QML JavaScript iOS Android Xamarin Ionic PhoneGap Mac linux Windows Apps samples templates appstudio) +[](Esri Language: Qt QML JavaScript) diff --git a/Status Bar/appicon.png b/Status Bar/appicon.png new file mode 100644 index 0000000000000000000000000000000000000000..39504b966783aa4ec58c7086a74e03aa0a3bbe71 GIT binary patch literal 26669 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 bb%Xu~a~|hNXxfgr00000NkvXXu0mjfV)nVh literal 0 HcmV?d00001 diff --git a/Status Bar/controls/DescriptionPage.qml b/Status Bar/controls/DescriptionPage.qml new file mode 100644 index 0000000..af2933e --- /dev/null +++ b/Status Bar/controls/DescriptionPage.qml @@ -0,0 +1,91 @@ +import QtQuick 2.7 +import QtQuick.Controls 2.2 +import QtQuick.Controls.Material 2.2 +import QtQuick.Layouts 1.1 + +import ArcGIS.AppFramework 1.0 +import ArcGIS.AppFramework.Controls 1.0 +import ArcGIS.AppFramework.Platform 1.0 + +Item { + id: descPage + width: desAppLayout.width + height: desAppLayout.height + + Rectangle { + anchors.fill:parent + + ColumnLayout { + anchors.fill:parent + spacing: 0 + clip:true + + Rectangle { + id:descPageheader + color: Material.color(Material.Purple) + Layout.preferredWidth: parent.width + Layout.preferredHeight: 50 * app.scaleFactor + + ImageButton { + source: "../assets/clear.png" + height: 30 * app.scaleFactor + width: 30 * app.scaleFactor + checkedColor : "transparent" + pressedColor : "transparent" + hoverColor : "transparent" + glowColor : "transparent" + anchors { + right: parent.right + rightMargin: 10 * app.scaleFactor + verticalCenter: parent.verticalCenter + } + onClicked: { + stackView.pop() + // descPage.visible = 0 + } + } + + Text { + id: aboutApp + text:qsTr("About") + color:"white" + font.pixelSize: app.baseFontSize * 1.1 + font.bold: true + anchors.centerIn: parent + maximumLineCount: 2 + elide: Text.ElideRight + } + } + + Rectangle{ + color:"black" + Layout.fillWidth: true + Layout.fillHeight: true + + Flickable { + anchors.fill:parent + contentHeight: descText.height + clip:true + + Text{ + id: descText + y: 30 * app.scaleFactor + text:app.info.description + anchors.horizontalCenterOffset: 0 + color:"white" + width: 0.85 * parent.width + horizontalAlignment: Text.AlignLeft + linkColor: "#e5e6e7" + wrapMode: Text.WordWrap + elide: Text.ElideRight + anchors.horizontalCenter: parent.horizontalCenter + font { + pixelSize: app.baseFontSize + } + onLinkActivated: Qt.openUrlExternally(link) + } + } + } + } + } +} diff --git a/Status Bar/controls/HeaderBar.qml b/Status Bar/controls/HeaderBar.qml new file mode 100644 index 0000000..08fbab0 --- /dev/null +++ b/Status Bar/controls/HeaderBar.qml @@ -0,0 +1,70 @@ +import QtQuick 2.7 +import QtQuick.Controls 2.2 +import QtQuick.Controls.Material 2.2 +import QtQuick.Layouts 1.1 + +import ArcGIS.AppFramework 1.0 +import ArcGIS.AppFramework.Controls 1.0 + + +RowLayout { + anchors.fill: parent + spacing:0 + clip:true + + Item { + Layout.preferredWidth: 50 * app.scaleFactor + } + + Item { + Layout.fillWidth: true + } + + Text { + text:app.info.title + color:"white" + font.pixelSize: app.baseFontSize + font.bold: true + maximumLineCount:2 + wrapMode: Text.Wrap + elide: Text.ElideRight + Layout.alignment: Qt.AlignHCenter + } + + Item { + Layout.fillWidth: true + } + + Item { + id: infoIcon + Layout.preferredWidth: 50 * app.scaleFactor + + Rectangle { + id:infoImageRect + anchors.fill: parent + + ImageButton { + id:infoImage + source: "../assets/info.png" + height: 30 * app.scaleFactor + width: 30 * app.scaleFactor + checkedColor : "transparent" + pressedColor : "transparent" + hoverColor : "transparent" + glowColor : "transparent" + anchors { + centerIn: parent + } + onClicked: { + stackView.push(descriptionPage) +// descPage.visible = 1 + } + } + } + } +} + + + + + diff --git a/Status Bar/default-app.png b/Status Bar/default-app.png new file mode 100644 index 0000000000000000000000000000000000000000..8fa9021601d248039e237f0a31607ed7c9cea37d GIT binary patch literal 24553 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 literal 0 HcmV?d00001 diff --git a/Status Bar/image b/Status Bar/image new file mode 100644 index 0000000..e69de29 diff --git a/Status Bar/iteminfo.json b/Status Bar/iteminfo.json new file mode 100644 index 0000000..fef87c9 --- /dev/null +++ b/Status Bar/iteminfo.json @@ -0,0 +1,55 @@ +{ + "access": "public", + "accessInformation": null, + "appCategories": [ + ], + "avgRating": 0, + "banner": null, + "categories": [ + ], + "commentsEnabled": true, + "created": 1553205148000, + "culture": "en-au", + "description": "\n

This sample demonstrates how to change status bar color and theme using the StatusBar component, which is included in the ArcGIS.AppFramework.Platform plugin. In addition, AppLayout component, which is included in the ArcGIS.AppFramework.Platform plugin is used along with the StatusBar component to handle various heights of the status bar across devices.   

\n


\n

Resource Level:🍌

", + "documentation": null, + "extent": [ + ], + "groupDesignations": null, + "guid": null, + "industries": [ + ], + "isOrgItem": true, + "itemControl": "admin", + "languages": [ + ], + "largeThumbnail": null, + "licenseInfo": null, + "listed": false, + "modified": 1554226723000, + "numComments": 3, + "numRatings": 0, + "numViews": 10, + "orgId": "2U3NfasNQ9o9LkLt", + "properties": null, + "protected": false, + "proxyFilter": null, + "scoreCompleteness": 81, + "screenshots": [ + ], + "size": 35288, + "snippet": "This sample demonstrates how to change status bar color and theme", + "spatialReference": null, + "thumbnail": "thumbnail/thumbnail.png", + "title": "Status Bar", + "type": "Native Application", + "typeKeywords": [ + "API_QML", + "App", + "Application", + "AppStudio", + "Configuration", + "Native", + "qml" + ], + "url": null +} diff --git a/Status Bar/qtquickcontrols2.conf b/Status Bar/qtquickcontrols2.conf new file mode 100644 index 0000000..1ddd1cd --- /dev/null +++ b/Status Bar/qtquickcontrols2.conf @@ -0,0 +1,10 @@ +; This file can be edited to change the style of the application +; See Styling Qt Quick Controls 2 in the documentation for details: +; http://doc.qt.io/qt-5/qtquickcontrols2-styles.html + +[Controls] +Style=Material + +[Universal] +Theme=Light +;Accent=Steel diff --git a/Status Bar/thumbnail.png b/Status Bar/thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..42f75a23800a9ddf68e0209f05e848d72cb38811 GIT binary patch literal 2735 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 Rt-%v0V0H