From b9cf7c64a6de431d3389e9130b3835d4d4d87254 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Maty=C3=A1=C5=A1=20Latner?= <matyas.latner@nic.cz>
Date: Mon, 1 Jun 2015 14:40:32 +0200
Subject: [PATCH] #14 Assets integrity checksum for iOS

---
 ios/Info.plist.xml                       | 2 ++
 ios/build.gradle                         | 2 ++
 ios/src/cz/nic/tablexia/IOSLauncher.java | 4 ++++
 3 files changed, 8 insertions(+)

diff --git a/ios/Info.plist.xml b/ios/Info.plist.xml
index fbe480ed3..1542ac955 100644
--- a/ios/Info.plist.xml
+++ b/ios/Info.plist.xml
@@ -24,6 +24,8 @@
     <string>${app.build}</string>
     <key>cz.nic.tablexia.BuildType</key>
     <string>${app.buildtype}</string>
+    <key>cz.nic.tablexia.AssetsChecksums</key>
+    <string>${app.assetschecksums}</string>
     <key>LSRequiresIPhoneOS</key>
     <true/>
     <key>UIViewControllerBasedStatusBarAppearance</key>
diff --git a/ios/build.gradle b/ios/build.gradle
index 7d2d7ca3a..2ba757377 100644
--- a/ios/build.gradle
+++ b/ios/build.gradle
@@ -29,6 +29,7 @@ def updateRoboVMProperties(String buildType, String applicationId, String iconNa
     props.setProperty('app.version', tablexiaVersionName)
     props.setProperty('app.buildtype', buildType)
     props.setProperty('app.build', '' + tablexiaVersionCode)
+    props.setProperty('app.assetschecksums', getMapConvertedToString(rootProject.ext.assetsChecksum))
     props.setProperty('app.executable', appName + '-' + buildType + '-' + tablexiaVersionName)
 
     props.store(propsFile.newDataOutputStream(), '')
@@ -118,6 +119,7 @@ launchIPhoneSimulator.dependsOn assemble
 launchIPhoneSimulator.dependsOn updateRoboVMXML
 launchIOSDevice.dependsOn assemble
 launchIOSDevice.dependsOn updateRoboVMXML
+updateRoboVMXML.dependsOn(':util:checksum:runJarChecksum')
 
 updateRoboVMXML.dependsOn copyNatives
 build.dependsOn createDebugIPA
diff --git a/ios/src/cz/nic/tablexia/IOSLauncher.java b/ios/src/cz/nic/tablexia/IOSLauncher.java
index 1e51c84fa..cc0b4cc5c 100644
--- a/ios/src/cz/nic/tablexia/IOSLauncher.java
+++ b/ios/src/cz/nic/tablexia/IOSLauncher.java
@@ -11,6 +11,8 @@ import org.robovm.apple.uikit.UIApplication;
 
 import java.util.Locale;
 
+import cz.nic.tablexia.util.Utility;
+
 public class IOSLauncher extends IOSApplication.Delegate {
 
     public static final Tablexia.SQLConnectionType SQL_CONNECTION_TYPE = new Tablexia.SQLConnectionType("SQLite.JDBCDriver", "jdbc:sqlite:");
@@ -22,12 +24,14 @@ public class IOSLauncher extends IOSApplication.Delegate {
         NSDictionary infoDictionary = NSBundle.getMainBundle().getInfoDictionary();
         String buildType = infoDictionary.get(new NSString("cz.nic.tablexia.BuildType")).toString();
         String versionName = infoDictionary.get(new NSString("CFBundleShortVersionString")).toString();
+        String checksums = infoDictionary.get(new NSString("cz.nic.tablexia.AssetsChecksums")).toString();
 
         //TODO check application state
         return new IOSApplication(new Tablexia(buildType,
                                                Locale.getDefault(),
                                                versionName,
                                                SQL_CONNECTION_TYPE,
+                                               Utility.createChecksumMapFromString(checksums),
                                                false), config);
     }
 
-- 
GitLab