Browse Source

Published on DaveGit

David Walter 3 years ago
parent
commit
fa9f03ec85
100 changed files with 2730 additions and 0 deletions
  1. 21
    0
      android/Lovetester.iml
  2. 1
    0
      android/app/.gitignore
  3. BIN
      android/app/app-release.apk
  4. 93
    0
      android/app/app.iml
  5. 26
    0
      android/app/build.gradle
  6. 88
    0
      android/app/manifest-merger-release-report.txt
  7. 17
    0
      android/app/proguard-rules.pro
  8. 13
    0
      android/app/src/androidTest/java/at/davidwalter/lovetester/ApplicationTest.java
  9. 34
    0
      android/app/src/main/AndroidManifest.xml
  10. BIN
      android/app/src/main/female-web.png
  11. BIN
      android/app/src/main/heart_left-web.png
  12. BIN
      android/app/src/main/heart_right-web.png
  13. BIN
      android/app/src/main/icon-web.png
  14. 89
    0
      android/app/src/main/java/at/davidwalter/lovetester/LoveClass.java
  15. 178
    0
      android/app/src/main/java/at/davidwalter/lovetester/Lovetester.java
  16. 70
    0
      android/app/src/main/java/at/davidwalter/lovetester/Result.java
  17. BIN
      android/app/src/main/male-web.png
  18. 12
    0
      android/app/src/main/res/anim/rotate.xml
  19. BIN
      android/app/src/main/res/drawable-hdpi/female.png
  20. BIN
      android/app/src/main/res/drawable-hdpi/heart_left.png
  21. BIN
      android/app/src/main/res/drawable-hdpi/heart_right.png
  22. BIN
      android/app/src/main/res/drawable-hdpi/icon.png
  23. BIN
      android/app/src/main/res/drawable-hdpi/male.png
  24. BIN
      android/app/src/main/res/drawable-hdpi/share.png
  25. BIN
      android/app/src/main/res/drawable-mdpi/female.png
  26. BIN
      android/app/src/main/res/drawable-mdpi/heart_left.png
  27. BIN
      android/app/src/main/res/drawable-mdpi/heart_right.png
  28. BIN
      android/app/src/main/res/drawable-mdpi/icon.png
  29. BIN
      android/app/src/main/res/drawable-mdpi/male.png
  30. BIN
      android/app/src/main/res/drawable-mdpi/share.png
  31. BIN
      android/app/src/main/res/drawable-xhdpi/female.png
  32. BIN
      android/app/src/main/res/drawable-xhdpi/heart_left.png
  33. BIN
      android/app/src/main/res/drawable-xhdpi/heart_right.png
  34. BIN
      android/app/src/main/res/drawable-xhdpi/icon.png
  35. BIN
      android/app/src/main/res/drawable-xhdpi/male.png
  36. BIN
      android/app/src/main/res/drawable-xhdpi/share.png
  37. BIN
      android/app/src/main/res/drawable-xxhdpi/drawable-hdpi/ic_action_share.png
  38. BIN
      android/app/src/main/res/drawable-xxhdpi/drawable-mdpi/ic_action_share.png
  39. BIN
      android/app/src/main/res/drawable-xxhdpi/drawable-xhdpi/ic_action_share.png
  40. BIN
      android/app/src/main/res/drawable-xxhdpi/drawable-xxhdpi/ic_action_share.png
  41. BIN
      android/app/src/main/res/drawable-xxhdpi/female.png
  42. BIN
      android/app/src/main/res/drawable-xxhdpi/heart_left.png
  43. BIN
      android/app/src/main/res/drawable-xxhdpi/heart_right.png
  44. BIN
      android/app/src/main/res/drawable-xxhdpi/icon.png
  45. BIN
      android/app/src/main/res/drawable-xxhdpi/male.png
  46. BIN
      android/app/src/main/res/drawable-xxhdpi/share.png
  47. 140
    0
      android/app/src/main/res/layout/activity_lovetester.xml
  48. 73
    0
      android/app/src/main/res/layout/activity_result.xml
  49. 4
    0
      android/app/src/main/res/menu/menu_lovetester.xml
  50. 9
    0
      android/app/src/main/res/menu/menu_result.xml
  51. 16
    0
      android/app/src/main/res/values-de/strings.xml
  52. 6
    0
      android/app/src/main/res/values-w820dp/dimens.xml
  53. 5
    0
      android/app/src/main/res/values/dimens.xml
  54. 17
    0
      android/app/src/main/res/values/strings.xml
  55. 10
    0
      android/app/src/main/res/values/styles.xml
  56. BIN
      android/app/src/main/share-web.png
  57. 19
    0
      android/build.gradle
  58. 40
    0
      android/build/intermediates/dex-cache/cache.xml
  59. BIN
      android/build/intermediates/model_data.bin
  60. 18
    0
      android/gradle.properties
  61. BIN
      android/gradle/wrapper/gradle-wrapper.jar
  62. 6
    0
      android/gradle/wrapper/gradle-wrapper.properties
  63. 164
    0
      android/gradlew
  64. 90
    0
      android/gradlew.bat
  65. 10
    0
      android/local.properties
  66. 1
    0
      android/settings.gradle
  67. 481
    0
      iOS/LovetesterNew.xcodeproj/project.pbxproj
  68. 7
    0
      iOS/LovetesterNew.xcodeproj/project.xcworkspace/contents.xcworkspacedata
  69. BIN
      iOS/LovetesterNew.xcodeproj/project.xcworkspace/xcuserdata/david.xcuserdatad/UserInterfaceState.xcuserstate
  70. 10
    0
      iOS/LovetesterNew.xcodeproj/project.xcworkspace/xcuserdata/david.xcuserdatad/WorkspaceSettings.xcsettings
  71. 39
    0
      iOS/LovetesterNew.xcodeproj/xcuserdata/david.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist
  72. 110
    0
      iOS/LovetesterNew.xcodeproj/xcuserdata/david.xcuserdatad/xcschemes/LovetesterNew.xcscheme
  73. 27
    0
      iOS/LovetesterNew.xcodeproj/xcuserdata/david.xcuserdatad/xcschemes/xcschememanagement.plist
  74. 17
    0
      iOS/LovetesterNew/AppDelegate.h
  75. 46
    0
      iOS/LovetesterNew/AppDelegate.m
  76. 76
    0
      iOS/LovetesterNew/Base.lproj/LaunchScreen.xib
  77. 48
    0
      iOS/LovetesterNew/Base.lproj/Localizable.strings
  78. 380
    0
      iOS/LovetesterNew/Base.lproj/Main.storyboard
  79. 28
    0
      iOS/LovetesterNew/Images.xcassets/AppIcon-2.appiconset/Contents.json
  80. 44
    0
      iOS/LovetesterNew/Images.xcassets/AppIcon.appiconset/Contents.json
  81. BIN
      iOS/LovetesterNew/Images.xcassets/AppIcon.appiconset/Icon.png
  82. BIN
      iOS/LovetesterNew/Images.xcassets/AppIcon.appiconset/Icon7-1.png
  83. BIN
      iOS/LovetesterNew/Images.xcassets/AppIcon.appiconset/Icon7.png
  84. BIN
      iOS/LovetesterNew/Images.xcassets/AppIcon.appiconset/Icon@3x.png
  85. BIN
      iOS/LovetesterNew/Images.xcassets/AppIcon.appiconset/Settings@3x.png
  86. BIN
      iOS/LovetesterNew/Images.xcassets/AppIcon.appiconset/Spotlight.png
  87. BIN
      iOS/LovetesterNew/Images.xcassets/ArrowLeft.imageset/ArrowLeft@3x.png
  88. 21
    0
      iOS/LovetesterNew/Images.xcassets/ArrowLeft.imageset/Contents.json
  89. BIN
      iOS/LovetesterNew/Images.xcassets/ArrowRight.imageset/ArrowRight@3x.png
  90. 21
    0
      iOS/LovetesterNew/Images.xcassets/ArrowRight.imageset/Contents.json
  91. 21
    0
      iOS/LovetesterNew/Images.xcassets/Female.imageset/Contents.json
  92. BIN
      iOS/LovetesterNew/Images.xcassets/Female.imageset/Female.png
  93. 21
    0
      iOS/LovetesterNew/Images.xcassets/GenderArrow.imageset/Contents.json
  94. BIN
      iOS/LovetesterNew/Images.xcassets/GenderArrow.imageset/GenderArrow@3x.png
  95. 21
    0
      iOS/LovetesterNew/Images.xcassets/Label.imageset/Contents.json
  96. BIN
      iOS/LovetesterNew/Images.xcassets/Label.imageset/Slice 2.png
  97. 21
    0
      iOS/LovetesterNew/Images.xcassets/LaunchImage.launchimage/Contents.json
  98. 21
    0
      iOS/LovetesterNew/Images.xcassets/Male.imageset/Contents.json
  99. BIN
      iOS/LovetesterNew/Images.xcassets/Male.imageset/Male.png
  100. 0
    0
      iOS/LovetesterNew/Images.xcassets/locked.imageset/Contents.json

+ 21
- 0
android/Lovetester.iml View File

@@ -0,0 +1,21 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<module external.linked.project.path="$MODULE_DIR$" external.root.project.path="$MODULE_DIR$" external.system.id="GRADLE" external.system.module.group="" external.system.module.version="unspecified" type="JAVA_MODULE" version="4">
3
+  <component name="FacetManager">
4
+    <facet type="java-gradle" name="Java-Gradle">
5
+      <configuration>
6
+        <option name="BUILD_FOLDER_PATH" value="$MODULE_DIR$/build" />
7
+      </configuration>
8
+    </facet>
9
+  </component>
10
+  <component name="NewModuleRootManager" inherit-compiler-output="true">
11
+    <output url="file://$MODULE_DIR$/build/classes/main" />
12
+    <output-test url="file://$MODULE_DIR$/build/classes/test" />
13
+    <exclude-output />
14
+    <content url="file://$MODULE_DIR$">
15
+      <excludeFolder url="file://$MODULE_DIR$/.gradle" />
16
+    </content>
17
+    <orderEntry type="inheritedJdk" />
18
+    <orderEntry type="sourceFolder" forTests="false" />
19
+  </component>
20
+</module>
21
+

+ 1
- 0
android/app/.gitignore View File

@@ -0,0 +1 @@
1
+/build

BIN
android/app/app-release.apk View File


+ 93
- 0
android/app/app.iml View File

@@ -0,0 +1,93 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<module external.linked.project.path="$MODULE_DIR$" external.root.project.path="$MODULE_DIR$/.." external.system.id="GRADLE" external.system.module.group="Lovetester" external.system.module.version="unspecified" type="JAVA_MODULE" version="4">
3
+  <component name="FacetManager">
4
+    <facet type="android-gradle" name="Android-Gradle">
5
+      <configuration>
6
+        <option name="GRADLE_PROJECT_PATH" value=":app" />
7
+      </configuration>
8
+    </facet>
9
+    <facet type="android" name="Android">
10
+      <configuration>
11
+        <option name="SELECTED_BUILD_VARIANT" value="debug" />
12
+        <option name="SELECTED_TEST_ARTIFACT" value="_android_test_" />
13
+        <option name="ASSEMBLE_TASK_NAME" value="assembleDebug" />
14
+        <option name="COMPILE_JAVA_TASK_NAME" value="compileDebugSources" />
15
+        <option name="ASSEMBLE_TEST_TASK_NAME" value="assembleDebugTest" />
16
+        <option name="SOURCE_GEN_TASK_NAME" value="generateDebugSources" />
17
+        <option name="TEST_SOURCE_GEN_TASK_NAME" value="generateDebugTestSources" />
18
+        <option name="ALLOW_USER_CONFIGURATION" value="false" />
19
+        <option name="MANIFEST_FILE_RELATIVE_PATH" value="/src/main/AndroidManifest.xml" />
20
+        <option name="RES_FOLDER_RELATIVE_PATH" value="/src/main/res" />
21
+        <option name="RES_FOLDERS_RELATIVE_PATH" value="file://$MODULE_DIR$/src/main/res" />
22
+        <option name="ASSETS_FOLDER_RELATIVE_PATH" value="/src/main/assets" />
23
+      </configuration>
24
+    </facet>
25
+  </component>
26
+  <component name="NewModuleRootManager" inherit-compiler-output="false">
27
+    <output url="file://$MODULE_DIR$/build/intermediates/classes/debug" />
28
+    <output-test url="file://$MODULE_DIR$/build/intermediates/classes/test/debug" />
29
+    <exclude-output />
30
+    <content url="file://$MODULE_DIR$">
31
+      <sourceFolder url="file://$MODULE_DIR$/build/generated/source/r/debug" isTestSource="false" generated="true" />
32
+      <sourceFolder url="file://$MODULE_DIR$/build/generated/source/aidl/debug" isTestSource="false" generated="true" />
33
+      <sourceFolder url="file://$MODULE_DIR$/build/generated/source/buildConfig/debug" isTestSource="false" generated="true" />
34
+      <sourceFolder url="file://$MODULE_DIR$/build/generated/source/rs/debug" isTestSource="false" generated="true" />
35
+      <sourceFolder url="file://$MODULE_DIR$/build/generated/res/rs/debug" type="java-resource" />
36
+      <sourceFolder url="file://$MODULE_DIR$/build/generated/res/generated/debug" type="java-resource" />
37
+      <sourceFolder url="file://$MODULE_DIR$/build/generated/source/r/test/debug" isTestSource="true" generated="true" />
38
+      <sourceFolder url="file://$MODULE_DIR$/build/generated/source/aidl/test/debug" isTestSource="true" generated="true" />
39
+      <sourceFolder url="file://$MODULE_DIR$/build/generated/source/buildConfig/test/debug" isTestSource="true" generated="true" />
40
+      <sourceFolder url="file://$MODULE_DIR$/build/generated/source/rs/test/debug" isTestSource="true" generated="true" />
41
+      <sourceFolder url="file://$MODULE_DIR$/build/generated/res/rs/test/debug" type="java-test-resource" />
42
+      <sourceFolder url="file://$MODULE_DIR$/build/generated/res/generated/test/debug" type="java-test-resource" />
43
+      <sourceFolder url="file://$MODULE_DIR$/src/debug/res" type="java-resource" />
44
+      <sourceFolder url="file://$MODULE_DIR$/src/debug/resources" type="java-resource" />
45
+      <sourceFolder url="file://$MODULE_DIR$/src/debug/assets" type="java-resource" />
46
+      <sourceFolder url="file://$MODULE_DIR$/src/debug/aidl" isTestSource="false" />
47
+      <sourceFolder url="file://$MODULE_DIR$/src/debug/java" isTestSource="false" />
48
+      <sourceFolder url="file://$MODULE_DIR$/src/debug/jni" isTestSource="false" />
49
+      <sourceFolder url="file://$MODULE_DIR$/src/debug/rs" isTestSource="false" />
50
+      <sourceFolder url="file://$MODULE_DIR$/src/main/res" type="java-resource" />
51
+      <sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
52
+      <sourceFolder url="file://$MODULE_DIR$/src/main/assets" type="java-resource" />
53
+      <sourceFolder url="file://$MODULE_DIR$/src/main/aidl" isTestSource="false" />
54
+      <sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
55
+      <sourceFolder url="file://$MODULE_DIR$/src/main/jni" isTestSource="false" />
56
+      <sourceFolder url="file://$MODULE_DIR$/src/main/rs" isTestSource="false" />
57
+      <sourceFolder url="file://$MODULE_DIR$/src/androidTest/res" type="java-test-resource" />
58
+      <sourceFolder url="file://$MODULE_DIR$/src/androidTest/resources" type="java-test-resource" />
59
+      <sourceFolder url="file://$MODULE_DIR$/src/androidTest/assets" type="java-test-resource" />
60
+      <sourceFolder url="file://$MODULE_DIR$/src/androidTest/aidl" isTestSource="true" />
61
+      <sourceFolder url="file://$MODULE_DIR$/src/androidTest/java" isTestSource="true" />
62
+      <sourceFolder url="file://$MODULE_DIR$/src/androidTest/jni" isTestSource="true" />
63
+      <sourceFolder url="file://$MODULE_DIR$/src/androidTest/rs" isTestSource="true" />
64
+      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/assets" />
65
+      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/bundles" />
66
+      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/classes" />
67
+      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/coverage-instrumented-classes" />
68
+      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/dependency-cache" />
69
+      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/dex" />
70
+      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/dex-cache" />
71
+      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/incremental" />
72
+      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/jacoco" />
73
+      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/javaResources" />
74
+      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/libs" />
75
+      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/lint" />
76
+      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/manifests" />
77
+      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/ndk" />
78
+      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/pre-dexed" />
79
+      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/proguard" />
80
+      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/res" />
81
+      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/rs" />
82
+      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/symbols" />
83
+      <excludeFolder url="file://$MODULE_DIR$/build/outputs" />
84
+    </content>
85
+    <orderEntry type="jdk" jdkName="Android API 21 Platform" jdkType="Android SDK" />
86
+    <orderEntry type="sourceFolder" forTests="false" />
87
+    <orderEntry type="library" exported="" name="appcompat-v7-21.0.3" level="project" />
88
+    <orderEntry type="library" exported="" name="play-services-6.5.87" level="project" />
89
+    <orderEntry type="library" exported="" name="support-annotations-21.0.3" level="project" />
90
+    <orderEntry type="library" exported="" name="support-v4-21.0.3" level="project" />
91
+  </component>
92
+</module>
93
+

+ 26
- 0
android/app/build.gradle View File

@@ -0,0 +1,26 @@
1
+apply plugin: 'com.android.application'
2
+
3
+android {
4
+    compileSdkVersion 21
5
+    buildToolsVersion "21.1.2"
6
+
7
+    defaultConfig {
8
+        applicationId "at.davidwalter.lovetester"
9
+        minSdkVersion 15
10
+        targetSdkVersion 21
11
+        versionCode 3
12
+        versionName "1.2"
13
+    }
14
+    buildTypes {
15
+        release {
16
+            minifyEnabled false
17
+            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
18
+        }
19
+    }
20
+}
21
+
22
+dependencies {
23
+    compile fileTree(dir: 'libs', include: ['*.jar'])
24
+    compile 'com.android.support:appcompat-v7:21.0.3'
25
+    compile 'com.google.android.gms:play-services:6.+'
26
+}

+ 88
- 0
android/app/manifest-merger-release-report.txt View File

@@ -0,0 +1,88 @@
1
+-- Merging decision tree log ---
2
+manifest
3
+ADDED from AndroidManifest.xml:2:1
4
+	package
5
+		ADDED from AndroidManifest.xml:3:5
6
+		INJECTED from AndroidManifest.xml:0:0
7
+		INJECTED from AndroidManifest.xml:0:0
8
+	android:versionName
9
+		INJECTED from AndroidManifest.xml:0:0
10
+		INJECTED from AndroidManifest.xml:0:0
11
+	xmlns:android
12
+		ADDED from AndroidManifest.xml:2:11
13
+	android:versionCode
14
+		INJECTED from AndroidManifest.xml:0:0
15
+		INJECTED from AndroidManifest.xml:0:0
16
+uses-permission#android.permission.INTERNET
17
+ADDED from AndroidManifest.xml:5:5
18
+	android:name
19
+		ADDED from AndroidManifest.xml:5:22
20
+uses-permission#android.permission.ACCESS_NETWORK_STATE
21
+ADDED from AndroidManifest.xml:6:5
22
+	android:name
23
+		ADDED from AndroidManifest.xml:6:22
24
+application
25
+ADDED from AndroidManifest.xml:8:5
26
+MERGED from com.android.support:appcompat-v7:21.0.3:16:5
27
+MERGED from com.android.support:support-v4:21.0.3:16:5
28
+MERGED from com.google.android.gms:play-services:6.5.87:20:5
29
+MERGED from com.android.support:support-v4:21.0.3:16:5
30
+	android:label
31
+		ADDED from AndroidManifest.xml:11:9
32
+	android:allowBackup
33
+		ADDED from AndroidManifest.xml:9:9
34
+	android:icon
35
+		ADDED from AndroidManifest.xml:10:9
36
+	android:theme
37
+		ADDED from AndroidManifest.xml:12:9
38
+meta-data#com.google.android.gms.version
39
+ADDED from AndroidManifest.xml:13:9
40
+MERGED from com.google.android.gms:play-services:6.5.87:21:9
41
+	android:value
42
+		ADDED from AndroidManifest.xml:14:13
43
+	android:name
44
+		ADDED from AndroidManifest.xml:13:20
45
+activity#at.davidwalter.lovetester.Lovetester
46
+ADDED from AndroidManifest.xml:15:9
47
+	android:label
48
+		ADDED from AndroidManifest.xml:17:13
49
+	android:windowSoftInputMode
50
+		ADDED from AndroidManifest.xml:18:13
51
+	android:name
52
+		ADDED from AndroidManifest.xml:16:13
53
+intent-filter#android.intent.action.MAIN+android.intent.category.LAUNCHER
54
+ADDED from AndroidManifest.xml:19:13
55
+action#android.intent.action.MAIN
56
+ADDED from AndroidManifest.xml:20:17
57
+	android:name
58
+		ADDED from AndroidManifest.xml:20:25
59
+category#android.intent.category.LAUNCHER
60
+ADDED from AndroidManifest.xml:22:17
61
+	android:name
62
+		ADDED from AndroidManifest.xml:22:27
63
+activity#at.davidwalter.lovetester.Result
64
+ADDED from AndroidManifest.xml:25:9
65
+	android:label
66
+		ADDED from AndroidManifest.xml:27:13
67
+	android:name
68
+		ADDED from AndroidManifest.xml:26:13
69
+activity#com.google.android.gms.ads.AdActivity
70
+ADDED from AndroidManifest.xml:29:9
71
+	android:configChanges
72
+		ADDED from AndroidManifest.xml:30:13
73
+	android:theme
74
+		ADDED from AndroidManifest.xml:31:13
75
+	android:name
76
+		ADDED from AndroidManifest.xml:29:19
77
+uses-sdk
78
+INJECTED from AndroidManifest.xml:0:0 reason: use-sdk injection requested
79
+MERGED from com.android.support:appcompat-v7:21.0.3:15:5
80
+MERGED from com.android.support:support-v4:21.0.3:15:5
81
+MERGED from com.google.android.gms:play-services:6.5.87:18:5
82
+MERGED from com.android.support:support-v4:21.0.3:15:5
83
+	android:targetSdkVersion
84
+		INJECTED from AndroidManifest.xml:0:0
85
+		INJECTED from AndroidManifest.xml:0:0
86
+	android:minSdkVersion
87
+		INJECTED from AndroidManifest.xml:0:0
88
+		INJECTED from AndroidManifest.xml:0:0

+ 17
- 0
android/app/proguard-rules.pro View File

@@ -0,0 +1,17 @@
1
+# Add project specific ProGuard rules here.
2
+# By default, the flags in this file are appended to flags specified
3
+# in /Users/david/Library/Android/sdk/tools/proguard/proguard-android.txt
4
+# You can edit the include path and order by changing the proguardFiles
5
+# directive in build.gradle.
6
+#
7
+# For more details, see
8
+#   http://developer.android.com/guide/developing/tools/proguard.html
9
+
10
+# Add any project specific keep options here:
11
+
12
+# If your project uses WebView with JS, uncomment the following
13
+# and specify the fully qualified class name to the JavaScript interface
14
+# class:
15
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
16
+#   public *;
17
+#}

+ 13
- 0
android/app/src/androidTest/java/at/davidwalter/lovetester/ApplicationTest.java View File

@@ -0,0 +1,13 @@
1
+package at.davidwalter.lovetester;
2
+
3
+import android.app.Application;
4
+import android.test.ApplicationTestCase;
5
+
6
+/**
7
+ * <a href="http://d.android.com/tools/testing/testing_android.html">Testing Fundamentals</a>
8
+ */
9
+public class ApplicationTest extends ApplicationTestCase<Application> {
10
+    public ApplicationTest() {
11
+        super(Application.class);
12
+    }
13
+}

+ 34
- 0
android/app/src/main/AndroidManifest.xml View File

@@ -0,0 +1,34 @@
1
+<?xml version="1.0" encoding="utf-8"?>
2
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
3
+    package="at.davidwalter.lovetester" >
4
+
5
+    <uses-permission android:name="android.permission.INTERNET"/>
6
+    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
7
+
8
+    <application
9
+        android:allowBackup="true"
10
+        android:icon="@drawable/icon"
11
+        android:label="@string/app_name"
12
+        android:theme="@style/AppTheme" >
13
+        <meta-data android:name="com.google.android.gms.version"
14
+            android:value="@integer/google_play_services_version" />
15
+        <activity
16
+            android:name=".Lovetester"
17
+            android:label="@string/app_name"
18
+            android:windowSoftInputMode="adjustPan" >
19
+            <intent-filter>
20
+                <action android:name="android.intent.action.MAIN" />
21
+
22
+                <category android:name="android.intent.category.LAUNCHER" />
23
+            </intent-filter>
24
+        </activity>
25
+        <activity
26
+            android:name=".Result"
27
+            android:label="@string/title_activity_result" >
28
+        </activity>
29
+        <activity android:name="com.google.android.gms.ads.AdActivity"
30
+            android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"
31
+            android:theme="@android:style/Theme.Translucent"/>
32
+    </application>
33
+
34
+</manifest>

BIN
android/app/src/main/female-web.png View File


BIN
android/app/src/main/heart_left-web.png View File


BIN
android/app/src/main/heart_right-web.png View File


BIN
android/app/src/main/icon-web.png View File


+ 89
- 0
android/app/src/main/java/at/davidwalter/lovetester/LoveClass.java View File

@@ -0,0 +1,89 @@
1
+package at.davidwalter.lovetester;
2
+
3
+/**
4
+ * Created by david on 08.01.15.
5
+ */
6
+public class LoveClass {
7
+
8
+    public static int TestLove(String yourname, String othername) {
9
+        int love = 0;
10
+
11
+        int equalCharacters = getEqualCharacters(yourname, othername);
12
+
13
+        long value1 = getChecksum(yourname) * equalCharacters * yourname.length() * getCharactersum(yourname);
14
+        long value2 = getChecksum(othername) * equalCharacters * othername.length() * getCharactersum(othername);
15
+
16
+        if (value1 != 0 && value2 != 0) {
17
+            love = (int)((3.14159265 * 2.71828183 * (long)((value1 * value2) / (value1 + value2)))) % 100;
18
+        } else {
19
+            love = 0;
20
+        }
21
+
22
+        return love;
23
+    }
24
+
25
+    private static int getCharactersum(String n) {
26
+        int e = 0;
27
+
28
+        String name = n.toLowerCase();
29
+
30
+        for (int  i = 0; i < name.length(); i++) {
31
+            e += name.charAt(i) / (i+1);
32
+        }
33
+
34
+        return e;
35
+    }
36
+
37
+    private static int getEqualCharacters(String yn, String on) {
38
+        int equals = 0;
39
+
40
+        String yourname = yn.toLowerCase();
41
+        String othername = on.toLowerCase();
42
+
43
+        for (int i = 0; i < yourname.length(); i++) {
44
+            String tmp = String.valueOf(yourname.charAt(i));
45
+
46
+            for (int j = 0; j < othername.length(); j++) {
47
+                if (yourname.charAt(i) == othername.charAt(j)) {
48
+                    equals++;
49
+                }
50
+            }
51
+        }
52
+
53
+        return equals == 0 ? 1 : equals;
54
+    }
55
+
56
+    private static int getChecksum(String n) {
57
+        int e = 0;
58
+
59
+        String name = n.toLowerCase();
60
+
61
+        for (int i = 0; i < name.length(); i++) {
62
+            char compare = name.charAt(i);
63
+
64
+            if(compare == 'a' || compare == 'j' || compare ==  's' ) e += 1;
65
+            else if(compare == 'b' || compare == 'k' || compare == 't' ) e += 2;
66
+            else if(compare == 'c' || compare == 'l' || compare == 'u' ) e += 3;
67
+            else if(compare == 'd' || compare == 'm' || compare == 'v' ) e += 4;
68
+            else if(compare == 'e' || compare == 'n' || compare == 'w' ) e += 5;
69
+            else if(compare == 'f' || compare == 'o' || compare == 'x' ) e += 6;
70
+            else if(compare == 'g' || compare == 'p' || compare == 'y' ) e += 7;
71
+            else if(compare == 'h' || compare == 'q' || compare == 'z' ) e += 8;
72
+            else if(compare == 'i' || compare == 'r') e += 9;
73
+        }
74
+
75
+        if (e > 10) {
76
+            int tempSum = e;
77
+            int temp = 0;
78
+
79
+            while (tempSum > 0) {
80
+                temp += tempSum % 10;
81
+                tempSum /= 10;
82
+            }
83
+
84
+            e = temp;
85
+        }
86
+
87
+        return e;
88
+    }
89
+}

+ 178
- 0
android/app/src/main/java/at/davidwalter/lovetester/Lovetester.java View File

@@ -0,0 +1,178 @@
1
+package at.davidwalter.lovetester;
2
+
3
+import android.content.Context;
4
+import android.content.Intent;
5
+import android.content.SharedPreferences;
6
+import android.graphics.Color;
7
+import android.support.v7.app.ActionBarActivity;
8
+import android.os.Bundle;
9
+import android.text.Editable;
10
+import android.text.TextWatcher;
11
+import android.view.View;
12
+import android.view.animation.*;
13
+import android.view.inputmethod.InputMethodManager;
14
+import android.widget.Button;
15
+import android.widget.EditText;
16
+import android.widget.ImageButton;
17
+
18
+import com.google.android.gms.ads.AdRequest;
19
+import com.google.android.gms.ads.AdView;
20
+
21
+
22
+public class Lovetester extends ActionBarActivity {
23
+
24
+    SharedPreferences preferences = null;
25
+
26
+    EditText yourname = null;
27
+    EditText othername = null;
28
+
29
+    Button button = null;
30
+    ImageButton yourgender = null;
31
+    ImageButton othergender = null;
32
+
33
+
34
+    Animation animation;// = AnimationUtils.loadAnimation(this, R.anim.rotate);
35
+
36
+    @Override
37
+    protected void onCreate(Bundle savedInstanceState) {
38
+        super.onCreate(savedInstanceState);
39
+        setContentView(R.layout.activity_lovetester);
40
+
41
+        AdView mAdView = (AdView)findViewById(R.id.adView);
42
+        AdRequest adRequest = new AdRequest.Builder().build();
43
+        mAdView.loadAd(adRequest);
44
+
45
+        //Load Settings
46
+        preferences = this.getSharedPreferences("MyPreferences", Context.MODE_PRIVATE);
47
+        Boolean yFemale = preferences.getBoolean("yourgender", true);
48
+        Boolean oFemale = preferences.getBoolean("othergender", false);
49
+
50
+        //Log.v("SearchTerm", "Message");
51
+        animation = AnimationUtils.loadAnimation(this, R.anim.rotate);
52
+
53
+        //init EditTexts
54
+        yourname = (EditText)findViewById(R.id.yourname);
55
+        othername = (EditText)findViewById(R.id.othername);
56
+        yourname.addTextChangedListener(new TextWatcher() {
57
+
58
+            @Override
59
+            public void onTextChanged(CharSequence s, int start, int before, int count)
60
+            {
61
+                EnableButton();
62
+            }
63
+
64
+            @Override
65
+            public void afterTextChanged(Editable s) {
66
+
67
+            }
68
+
69
+            @Override
70
+            public void beforeTextChanged(CharSequence s, int start, int count, int after) {
71
+
72
+            }
73
+        });
74
+        othername.addTextChangedListener(new TextWatcher() {
75
+
76
+            @Override
77
+            public void onTextChanged(CharSequence s, int start, int before, int count) {
78
+                EnableButton();
79
+            }
80
+
81
+            @Override
82
+            public void afterTextChanged(Editable s) {
83
+
84
+            }
85
+
86
+            @Override
87
+            public void beforeTextChanged(CharSequence s, int start, int count, int after) {
88
+
89
+            }
90
+        });
91
+
92
+        //init button
93
+        button = (Button)findViewById(R.id.lovebutton);
94
+        button.setOnClickListener(new View.OnClickListener() {
95
+            public void onClick(View v) {
96
+                InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
97
+
98
+                if (yourname.hasFocus()) {
99
+                    imm.hideSoftInputFromWindow(yourname.getWindowToken(), 0);
100
+                } else if (othername.hasFocus()) {
101
+                    imm.hideSoftInputFromWindow(othername.getWindowToken(), 0);
102
+                }
103
+
104
+                Intent i = new Intent(v.getContext(), Result.class);
105
+                i.putExtra("yourname", yourname.getText().toString());
106
+                i.putExtra("othername", othername.getText().toString());
107
+                Lovetester.this.startActivity(i);
108
+            }
109
+        });
110
+
111
+        //init yourgender
112
+        yourgender = (ImageButton)findViewById(R.id.yourgender);
113
+        yourgender.setTag(yFemale);
114
+        yourgender.setImageResource(yFemale ? R.drawable.female : R.drawable.male);
115
+        yourgender.setOnClickListener(new View.OnClickListener() {
116
+            public void onClick(View v) {
117
+                Boolean tag = (Boolean)yourgender.getTag();
118
+
119
+                SharedPreferences.Editor editor = preferences.edit();
120
+                editor.putBoolean("yourgender", !tag);
121
+                editor.commit();
122
+
123
+                yourgender.startAnimation(animation);
124
+
125
+                yourgender.setImageResource(tag ? R.drawable.male : R.drawable.female);
126
+                yourgender.setTag(new Boolean(!tag));
127
+            }
128
+        });
129
+
130
+        //init othergender
131
+        othergender = (ImageButton)findViewById(R.id.othergender);
132
+        othergender.setTag(oFemale);
133
+        othergender.setImageResource(oFemale ? R.drawable.female : R.drawable.male);
134
+        othergender.setOnClickListener(new View.OnClickListener() {
135
+            public void onClick(View v) {
136
+                Boolean tag = (Boolean)othergender.getTag();
137
+
138
+                SharedPreferences.Editor editor = preferences.edit();
139
+                editor.putBoolean("othergender", !tag);
140
+                editor.commit();
141
+
142
+
143
+                othergender.startAnimation(animation);
144
+
145
+                othergender.setImageResource(tag ? R.drawable.male : R.drawable.female);
146
+                othername.setHint(tag ? getResources().getString(R.string.his_name) : getResources().getString(R.string.her_name));
147
+                othergender.setTag(new Boolean(!tag));
148
+            }
149
+        });
150
+
151
+        EnableButton();
152
+    }
153
+
154
+    private void EnableButton() {
155
+        String yn = yourname.getText().toString();
156
+        String on = othername.getText().toString();
157
+
158
+        if (!yn.isEmpty() && !on.isEmpty()) {
159
+            button.setBackgroundColor(Color.parseColor("#FF9A262E"));
160
+            button.setTextColor(Color.parseColor("#FFFFFFFF"));
161
+            button.setEnabled(true);
162
+        } else {
163
+            button.setBackgroundColor(Color.parseColor("#FF69191E"));
164
+            button.setTextColor(Color.parseColor("#FF9B9B9B"));
165
+            button.setEnabled(false);
166
+        }
167
+    }
168
+
169
+    private void ToggleGender(ImageButton ib) {
170
+        if ((Boolean)ib.getTag()) {
171
+            ib.setImageResource(R.drawable.male);
172
+        } else {
173
+            ib.setImageResource(R.drawable.female);
174
+        }
175
+
176
+        ib.setTag(new Boolean(!(Boolean)ib.getTag()));
177
+    }
178
+}

+ 70
- 0
android/app/src/main/java/at/davidwalter/lovetester/Result.java View File

@@ -0,0 +1,70 @@
1
+package at.davidwalter.lovetester;
2
+
3
+import android.content.Intent;
4
+import android.support.v7.app.ActionBarActivity;
5
+import android.os.Bundle;
6
+import android.view.Menu;
7
+import android.view.MenuItem;
8
+import android.view.View;
9
+import android.widget.Button;
10
+import android.widget.TextView;
11
+
12
+import com.google.android.gms.ads.AdRequest;
13
+import com.google.android.gms.ads.AdView;
14
+
15
+public class Result extends ActionBarActivity {
16
+
17
+    String text = "";
18
+    @Override
19
+    protected void onCreate(Bundle savedInstanceState) {
20
+        super.onCreate(savedInstanceState);
21
+        setContentView(R.layout.activity_result);
22
+
23
+        AdView mAdView = (AdView)findViewById(R.id.adView);
24
+        AdRequest adRequest = new AdRequest.Builder().build();
25
+        mAdView.loadAd(adRequest);
26
+
27
+        Button button = (Button)findViewById(R.id.restartbutton);
28
+        TextView result = (TextView)findViewById(R.id.result);
29
+
30
+        button.setOnClickListener(new View.OnClickListener() {
31
+            public void onClick(View v) {
32
+                finish();
33
+            }
34
+        });
35
+
36
+        Bundle extras = getIntent().getExtras();
37
+        if (extras != null) {
38
+            int love = LoveClass.TestLove(extras.getString("yourname"), extras.getString("othername"));
39
+
40
+            text = extras.getString("othername") + " & " + extras.getString("yourname")
41
+            + " " + getResources().getString(R.string.ShareText) + " "
42
+            + String.valueOf(love) + " %"
43
+            + " " + getResources().getString(R.string.Advertisment);
44
+
45
+            result.setText(String.valueOf(love) + " %");
46
+        }
47
+    }
48
+
49
+    @Override
50
+    public boolean onCreateOptionsMenu(Menu menu) {
51
+        getMenuInflater().inflate(R.menu.menu_result, menu);
52
+        return true;
53
+    }
54
+
55
+    @Override
56
+    public boolean onOptionsItemSelected(MenuItem item) {
57
+        int id = item.getItemId();
58
+        switch (id) {
59
+            case R.id.action_share:
60
+                Intent share = new Intent(Intent.ACTION_SEND);
61
+                share.setType("text/plain");
62
+                share.putExtra(Intent.EXTRA_TEXT, text);
63
+
64
+                startActivity(Intent.createChooser(share, "Share the Love"));
65
+                return true;
66
+            default:
67
+                return super.onOptionsItemSelected(item);
68
+        }
69
+    }
70
+}

BIN
android/app/src/main/male-web.png View File


+ 12
- 0
android/app/src/main/res/anim/rotate.xml View File

@@ -0,0 +1,12 @@
1
+<?xml version="1.0" encoding="utf-8"?>
2
+<set xmlns:android="http://schemas.android.com/apk/res/android">
3
+    <rotate
4
+        android:fromDegrees="0"
5
+        android:toDegrees="360"
6
+        android:pivotX="50%"
7
+        android:pivotY="50%"
8
+        android:repeatCount="0"
9
+        android:duration="350"
10
+        android:fillAfter="true"
11
+        android:fillEnabled="true"/>
12
+</set>

BIN
android/app/src/main/res/drawable-hdpi/female.png View File


BIN
android/app/src/main/res/drawable-hdpi/heart_left.png View File


BIN
android/app/src/main/res/drawable-hdpi/heart_right.png View File


BIN
android/app/src/main/res/drawable-hdpi/icon.png View File


BIN
android/app/src/main/res/drawable-hdpi/male.png View File


BIN
android/app/src/main/res/drawable-hdpi/share.png View File


BIN
android/app/src/main/res/drawable-mdpi/female.png View File


BIN
android/app/src/main/res/drawable-mdpi/heart_left.png View File


BIN
android/app/src/main/res/drawable-mdpi/heart_right.png View File


BIN
android/app/src/main/res/drawable-mdpi/icon.png View File


BIN
android/app/src/main/res/drawable-mdpi/male.png View File


BIN
android/app/src/main/res/drawable-mdpi/share.png View File


BIN
android/app/src/main/res/drawable-xhdpi/female.png View File


BIN
android/app/src/main/res/drawable-xhdpi/heart_left.png View File


BIN
android/app/src/main/res/drawable-xhdpi/heart_right.png View File


BIN
android/app/src/main/res/drawable-xhdpi/icon.png View File


BIN
android/app/src/main/res/drawable-xhdpi/male.png View File


BIN
android/app/src/main/res/drawable-xhdpi/share.png View File


BIN
android/app/src/main/res/drawable-xxhdpi/drawable-hdpi/ic_action_share.png View File


BIN
android/app/src/main/res/drawable-xxhdpi/drawable-mdpi/ic_action_share.png View File


BIN
android/app/src/main/res/drawable-xxhdpi/drawable-xhdpi/ic_action_share.png View File


BIN
android/app/src/main/res/drawable-xxhdpi/drawable-xxhdpi/ic_action_share.png View File


BIN
android/app/src/main/res/drawable-xxhdpi/female.png View File


BIN
android/app/src/main/res/drawable-xxhdpi/heart_left.png View File


BIN
android/app/src/main/res/drawable-xxhdpi/heart_right.png View File


BIN
android/app/src/main/res/drawable-xxhdpi/icon.png View File


BIN
android/app/src/main/res/drawable-xxhdpi/male.png View File


BIN
android/app/src/main/res/drawable-xxhdpi/share.png View File


+ 140
- 0
android/app/src/main/res/layout/activity_lovetester.xml View File

@@ -0,0 +1,140 @@
1
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
2
+    xmlns:tools="http://schemas.android.com/tools"
3
+    xmlns:ads="http://schemas.android.com/apk/res-auto"
4
+    android:layout_width="match_parent"
5
+    android:layout_height="match_parent"
6
+    android:paddingLeft="0dp"
7
+    android:paddingRight="0dp"
8
+    android:paddingTop="@dimen/activity_vertical_margin"
9
+    android:paddingBottom="0dp"
10
+    tools:context=".Lovetester">
11
+
12
+    <TextView
13
+        android:layout_width="wrap_content"
14
+        android:layout_height="wrap_content"
15
+        android:id="@+id/textView"
16
+        android:layout_alignParentTop="true"
17
+        android:layout_alignParentLeft="true"
18
+        android:layout_alignParentStart="true"
19
+        android:layout_above="@+id/othergender"
20
+        android:layout_alignParentRight="true"
21
+        android:layout_alignParentEnd="true"
22
+        android:background="#ffffffff" />
23
+
24
+    <TextView
25
+        android:layout_width="wrap_content"
26
+        android:layout_height="wrap_content"
27
+        android:id="@+id/textView2"
28
+        android:layout_alignParentLeft="true"
29
+        android:layout_alignParentStart="true"
30
+        android:layout_alignParentRight="true"
31
+        android:layout_alignParentEnd="true"
32
+        android:background="#ffffffff"
33
+        android:layout_alignBottom="@+id/othergender"
34
+        android:layout_alignTop="@+id/othergender" />
35
+
36
+    <ImageButton
37
+        android:layout_width="50dp"
38
+        android:layout_height="50dp"
39
+        android:id="@+id/yourgender"
40
+        android:layout_alignParentTop="true"
41
+        android:scaleType="fitCenter"
42
+        android:src="@drawable/female"
43
+        android:layout_alignParentLeft="true"
44
+        android:layout_alignParentStart="true"
45
+        android:background="#00ffffff" />
46
+
47
+    <EditText
48
+        android:layout_width="wrap_content"
49
+        android:layout_height="wrap_content"
50
+        android:inputType="textPersonName"
51
+        android:ems="10"
52
+        android:id="@+id/yourname"
53
+        android:layout_alignBottom="@+id/yourgender"
54
+        android:layout_toRightOf="@+id/yourgender"
55
+        android:layout_alignTop="@+id/yourgender"
56
+        android:hint="@string/your_name"
57
+        android:gravity="center"
58
+        android:background="#ffffffff"
59
+        android:layout_alignParentRight="true"
60
+        android:layout_alignParentEnd="true" />
61
+
62
+    <ImageButton
63
+        android:layout_width="50dp"
64
+        android:layout_height="50dp"
65
+        android:id="@+id/othergender"
66
+        android:layout_below="@+id/yourgender"
67
+        android:src="@drawable/male"
68
+        android:scaleType="fitCenter"
69
+        android:layout_alignParentLeft="true"
70
+        android:layout_alignParentStart="true"
71
+        android:background="#00ffffff"
72
+        android:layout_marginTop="5dp" />
73
+
74
+    <EditText
75
+        android:layout_width="wrap_content"
76
+        android:layout_height="wrap_content"
77
+        android:inputType="textPersonName"
78
+        android:ems="10"
79
+        android:id="@+id/othername"
80
+        android:layout_alignBottom="@+id/othergender"
81
+        android:layout_alignLeft="@+id/yourname"
82
+        android:layout_alignStart="@+id/yourname"
83
+        android:layout_below="@+id/yourname"
84
+        android:hint="@string/his_name"
85
+        android:gravity="center"
86
+        android:background="#ffffffff"
87
+        android:layout_alignParentRight="true"
88
+        android:layout_alignParentEnd="true"
89
+        android:layout_marginTop="5dp"
90
+        android:imeOptions="actionDone" />
91
+
92
+    <Button
93
+        android:layout_width="wrap_content"
94
+        android:layout_height="wrap_content"
95
+        android:text="@string/lovebutton"
96
+        android:id="@+id/lovebutton"
97
+        android:layout_below="@+id/othergender"
98
+        android:layout_alignParentLeft="true"
99
+        android:layout_alignParentStart="true"
100
+        android:background="#ff9a262e"
101
+        android:textColor="#ffffffff"
102
+        android:layout_marginTop="15dp"
103
+        android:layout_alignParentRight="true"
104
+        android:layout_alignParentEnd="true"
105
+        android:hint="@string/his_name" />
106
+
107
+    <ImageView
108
+        android:layout_width="200dp"
109
+        android:layout_height="200dp"
110
+        android:id="@+id/imageView"
111
+        android:src="@drawable/heart_left"
112
+        android:layout_alignParentBottom="true"
113
+        android:layout_alignParentLeft="true"
114
+        android:layout_alignParentStart="true"
115
+        android:layout_marginLeft="-55dp" />
116
+
117
+    <ImageView
118
+        android:layout_width="200dp"
119
+        android:layout_height="200dp"
120
+        android:id="@+id/imageView2"
121
+        android:src="@drawable/heart_right"
122
+        android:layout_alignParentBottom="true"
123
+        android:layout_alignParentRight="true"
124
+        android:layout_alignParentEnd="true"
125
+        android:layout_marginRight="-55dp" />
126
+
127
+    <com.google.android.gms.ads.AdView
128
+        android:id="@+id/adView"
129
+        android:layout_width="match_parent"
130
+        android:layout_height="wrap_content"
131
+        ads:adSize="SMART_BANNER"
132
+        ads:adUnitId="@string/banner_ad_unit_id"
133
+        android:layout_alignParentBottom="true"
134
+        android:layout_alignParentLeft="true"
135
+        android:layout_alignParentStart="false"
136
+        android:layout_alignParentRight="true"
137
+        android:layout_alignParentTop="false">
138
+    </com.google.android.gms.ads.AdView>
139
+
140
+</RelativeLayout>

+ 73
- 0
android/app/src/main/res/layout/activity_result.xml View File

@@ -0,0 +1,73 @@
1
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
2
+    xmlns:tools="http://schemas.android.com/tools"
3
+    xmlns:ads="http://schemas.android.com/apk/res-auto"
4
+    android:layout_width="match_parent"
5
+    android:layout_height="match_parent"
6
+    android:paddingLeft="0dp"
7
+    android:paddingRight="0dp"
8
+    android:paddingTop="@dimen/activity_vertical_margin"
9
+    android:paddingBottom="0dp"
10
+    tools:context="at.davidwalter.lovetester.Result">
11
+
12
+    <ImageView
13
+        android:layout_width="200dp"
14
+        android:layout_height="200dp"
15
+        android:id="@+id/imageView"
16
+        android:src="@drawable/heart_left"
17
+        android:layout_alignParentBottom="true"
18
+        android:layout_alignParentLeft="true"
19
+        android:layout_alignParentStart="true"
20
+        android:layout_marginLeft="-55dp" />
21
+
22
+    <ImageView
23
+        android:layout_width="200dp"
24
+        android:layout_height="200dp"
25
+        android:id="@+id/imageView2"
26
+        android:src="@drawable/heart_right"
27
+        android:layout_alignParentBottom="true"
28
+        android:layout_alignParentRight="true"
29
+        android:layout_alignParentEnd="true"
30
+        android:layout_marginRight="-55dp" />
31
+
32
+    <TextView
33
+        android:layout_width="wrap_content"
34
+        android:layout_height="wrap_content"
35
+        android:textAppearance="?android:attr/textAppearanceLarge"
36
+        android:text="100 %"
37
+        android:id="@+id/result"
38
+        android:layout_alignParentTop="true"
39
+        android:layout_alignParentLeft="true"
40
+        android:layout_alignParentStart="true"
41
+        android:layout_alignParentRight="true"
42
+        android:layout_alignParentEnd="true"
43
+        android:textSize="100dp"
44
+        android:gravity="center"
45
+        android:background="#ffffffff"
46
+        android:layout_above="@+id/restartbutton"
47
+        android:layout_marginBottom="15dp" />
48
+
49
+    <Button
50
+        android:layout_width="wrap_content"
51
+        android:layout_height="wrap_content"
52
+        android:text="@string/restart"
53
+        android:id="@+id/restartbutton"
54
+        android:background="#ff9a262e"
55
+        android:textColor="#ffffffff"
56
+        android:layout_centerVertical="true"
57
+        android:layout_alignRight="@+id/result"
58
+        android:layout_alignEnd="@+id/result"
59
+        android:layout_alignLeft="@+id/result"
60
+        android:layout_alignStart="@+id/result" />
61
+
62
+    <com.google.android.gms.ads.AdView
63
+        android:id="@+id/adView"
64
+        android:layout_width="match_parent"
65
+        android:layout_height="wrap_content"
66
+        ads:adSize="SMART_BANNER"
67
+        ads:adUnitId="@string/banner_ad_unit_id"
68
+        android:layout_alignParentBottom="true"
69
+        android:layout_alignParentLeft="true"
70
+        android:layout_alignParentStart="true">
71
+    </com.google.android.gms.ads.AdView>
72
+
73
+</RelativeLayout>

+ 4
- 0
android/app/src/main/res/menu/menu_lovetester.xml View File

@@ -0,0 +1,4 @@
1
+<menu xmlns:android="http://schemas.android.com/apk/res/android"
2
+    xmlns:app="http://schemas.android.com/apk/res-auto"
3
+    xmlns:tools="http://schemas.android.com/tools" tools:context=".Lovetester">
4
+</menu>

+ 9
- 0
android/app/src/main/res/menu/menu_result.xml View File

@@ -0,0 +1,9 @@
1
+<menu xmlns:android="http://schemas.android.com/apk/res/android"
2
+    xmlns:app="http://schemas.android.com/apk/res-auto"
3
+    xmlns:tools="http://schemas.android.com/tools" tools:context="at.davidwalter.lovetester.Result">
4
+    <item android:id="@+id/action_share"
5
+        app:showAsAction="ifRoom"
6
+        android:title="Share"
7
+        android:icon="@drawable/share"
8
+        android:actionProviderClass="android.widget.ShareActionProvider" />
9
+</menu>

+ 16
- 0
android/app/src/main/res/values-de/strings.xml View File

@@ -0,0 +1,16 @@
1
+<?xml version="1.0" encoding="utf-8"?>
2
+<resources>
3
+
4
+    <string name="banner_ad_unit_id">ca-app-pub-9595870091421621/4721997590</string>
5
+
6
+    <string name="your_name">Dein Name</string>
7
+    <string name="her_name">Ihr Name</string>
8
+    <string name="his_name">Sein Name</string>
9
+    <string name="lovebutton">Teste die Liebe!</string>
10
+    <string name="title_activity_result">Ergebnis</string>
11
+    <string name="restart">Neustart</string>
12
+
13
+    <string name="ShareText">passen zu</string>
14
+    <string name="Advertisment">zueinander. Getestet mit \'Lovetester\' http://onelink.to/yyh57u</string>
15
+
16
+</resources>

+ 6
- 0
android/app/src/main/res/values-w820dp/dimens.xml View File

@@ -0,0 +1,6 @@
1
+<resources>
2
+    <!-- Example customization of dimensions originally defined in res/values/dimens.xml
3
+         (such as screen margins) for screens with more than 820dp of available width. This
4
+         would include 7" and 10" devices in landscape (~960dp and ~1280dp respectively). -->
5
+    <dimen name="activity_horizontal_margin">64dp</dimen>
6
+</resources>

+ 5
- 0
android/app/src/main/res/values/dimens.xml View File

@@ -0,0 +1,5 @@
1
+<resources>
2
+    <!-- Default screen margins, per the Android Design guidelines. -->
3
+    <dimen name="activity_horizontal_margin">16dp</dimen>
4
+    <dimen name="activity_vertical_margin">16dp</dimen>
5
+</resources>

+ 17
- 0
android/app/src/main/res/values/strings.xml View File

@@ -0,0 +1,17 @@
1
+<?xml version="1.0" encoding="utf-8"?>
2
+<resources>
3
+
4
+    <string name="banner_ad_unit_id">ca-app-pub-9595870091421621/4721997590</string>
5
+
6
+    <string name="app_name" translatable="false">Lovetester</string>
7
+    <string name="your_name">Your name</string>
8
+    <string name="her_name">Her name</string>
9
+    <string name="his_name">His name</string>
10
+    <string name="lovebutton">Test the Love!</string>
11
+    <string name="title_activity_result">Result</string>
12
+    <string name="restart">Restart</string>
13
+
14
+    <string name="ShareText">fit to</string>
15
+    <string name="Advertisment">together. Tested with \'Lovetester\' http://onelink.to/yyh57u</string>
16
+
17
+</resources>

+ 10
- 0
android/app/src/main/res/values/styles.xml View File

@@ -0,0 +1,10 @@
1
+<resources>
2
+
3
+    <!-- Base application theme. -->
4
+    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
5
+        <!-- Customize your theme here. -->
6
+        <item name="colorPrimary">#FF9A262E</item>
7
+        <item name="colorPrimaryDark">#FF69191E</item>
8
+    </style>
9
+
10
+</resources>

BIN
android/app/src/main/share-web.png View File


+ 19
- 0
android/build.gradle View File

@@ -0,0 +1,19 @@
1
+// Top-level build file where you can add configuration options common to all sub-projects/modules.
2
+
3
+buildscript {
4
+    repositories {
5
+        jcenter()
6
+    }
7
+    dependencies {
8
+        classpath 'com.android.tools.build:gradle:1.0.0'
9
+
10
+        // NOTE: Do not place your application dependencies here; they belong
11
+        // in the individual module build.gradle files
12
+    }
13
+}
14
+
15
+allprojects {
16
+    repositories {
17
+        jcenter()
18
+    }
19
+}

+ 40
- 0
android/build/intermediates/dex-cache/cache.xml View File

@@ -0,0 +1,40 @@
1
+<?xml version="1.0" encoding="utf-8"?>
2
+<items version="2" >
3
+
4
+    <item
5
+        jar="/Users/david/Library/Mobile Documents/com~apple~CloudDocs/Developer/Android/Lovetester/app/build/intermediates/exploded-aar/com.android.support/support-v4/21.0.3/libs/internal_impl-21.0.3.jar"
6
+        jumboMode="false"
7
+        revision="21.1.2"
8
+        sha1="01ec05bfbafcc07646ba813000bf2ef11742dd03">
9
+        <dex dex="/Users/david/Library/Mobile Documents/com~apple~CloudDocs/Developer/Android/Lovetester/app/build/intermediates/pre-dexed/debug/internal_impl-21.0.3-c7cb05f7034b017c42c7bfe841f4bdf2f04e27ee.jar" />
10
+    </item>
11
+    <item
12
+        jar="/Users/david/Library/Mobile Documents/com~apple~CloudDocs/Developer/Android/Lovetester/app/build/intermediates/exploded-aar/com.android.support/appcompat-v7/21.0.3/classes.jar"
13
+        jumboMode="false"
14
+        revision="21.1.2"
15
+        sha1="81d42bf983a8741f4888a6e333e454e4a5e0eeb7">
16
+        <dex dex="/Users/david/Library/Mobile Documents/com~apple~CloudDocs/Developer/Android/Lovetester/app/build/intermediates/pre-dexed/debug/classes-0fbb21ec38afec1b7a1fc855f79021727d1e29eb.jar" />
17
+    </item>
18
+    <item
19
+        jar="/Users/david/Library/Mobile Documents/com~apple~CloudDocs/Developer/Android/Lovetester/app/build/intermediates/exploded-aar/com.google.android.gms/play-services/6.5.87/classes.jar"
20
+        jumboMode="false"
21
+        revision="21.1.2"
22
+        sha1="dd9247ea0fabe8ee479638c4b4a23e93752be256">
23
+        <dex dex="/Users/david/Library/Mobile Documents/com~apple~CloudDocs/Developer/Android/Lovetester/app/build/intermediates/pre-dexed/debug/classes-48bc618a5fab228adf8f425c3e836cdd778bf9d9.jar" />
24
+    </item>
25
+    <item
26
+        jar="/Users/david/Library/Android/sdk/extras/android/m2repository/com/android/support/support-annotations/21.0.3/support-annotations-21.0.3.jar"
27
+        jumboMode="false"
28
+        revision="21.1.2"
29
+        sha1="4b74cefe1f0c1b819e7260c8627a14674e37fd35">
30
+        <dex dex="/Users/david/Library/Mobile Documents/com~apple~CloudDocs/Developer/Android/Lovetester/app/build/intermediates/pre-dexed/debug/support-annotations-21.0.3-b1ccd83968dec1e1efcee1d3096364da71c63fd6.jar" />
31
+    </item>
32
+    <item
33
+        jar="/Users/david/Library/Mobile Documents/com~apple~CloudDocs/Developer/Android/Lovetester/app/build/intermediates/exploded-aar/com.android.support/support-v4/21.0.3/classes.jar"
34
+        jumboMode="false"
35
+        revision="21.1.2"
36
+        sha1="2c91c949a45a21cdecf26e03951e46c7beec9ad8">
37
+        <dex dex="/Users/david/Library/Mobile Documents/com~apple~CloudDocs/Developer/Android/Lovetester/app/build/intermediates/pre-dexed/debug/classes-72558cfc6b8cd7428104a55848279750077e8650.jar" />
38
+    </item>
39
+
40
+</items>

BIN
android/build/intermediates/model_data.bin View File


+ 18
- 0
android/gradle.properties View File

@@ -0,0 +1,18 @@
1
+# Project-wide Gradle settings.
2
+
3
+# IDE (e.g. Android Studio) users:
4
+# Gradle settings configured through the IDE *will override*
5
+# any settings specified in this file.
6
+
7
+# For more details on how to configure your build environment visit
8
+# http://www.gradle.org/docs/current/userguide/build_environment.html
9
+
10
+# Specifies the JVM arguments used for the daemon process.
11
+# The setting is particularly useful for tweaking memory settings.
12
+# Default value: -Xmx10248m -XX:MaxPermSize=256m
13
+# org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
14
+
15
+# When configured, Gradle will run in incubating parallel mode.
16
+# This option should only be used with decoupled projects. More details, visit
17
+# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
18
+# org.gradle.parallel=true

BIN
android/gradle/wrapper/gradle-wrapper.jar View File


+ 6
- 0
android/gradle/wrapper/gradle-wrapper.properties View File

@@ -0,0 +1,6 @@
1
+#Wed Apr 10 15:27:10 PDT 2013
2
+distributionBase=GRADLE_USER_HOME
3
+distributionPath=wrapper/dists
4
+zipStoreBase=GRADLE_USER_HOME
5
+zipStorePath=wrapper/dists
6
+distributionUrl=https\://services.gradle.org/distributions/gradle-2.2.1-all.zip

+ 164
- 0
android/gradlew View File

@@ -0,0 +1,164 @@
1
+#!/usr/bin/env bash
2
+
3
+##############################################################################
4
+##
5
+##  Gradle start up script for UN*X
6
+##
7
+##############################################################################
8
+
9
+# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
10
+DEFAULT_JVM_OPTS=""
11
+
12
+APP_NAME="Gradle"
13
+APP_BASE_NAME=`basename "$0"`
14
+
15
+# Use the maximum available, or set MAX_FD != -1 to use that value.
16
+MAX_FD="maximum"
17
+
18
+warn ( ) {
19
+    echo "$*"
20
+}
21
+
22
+die ( ) {
23
+    echo
24
+    echo "$*"
25
+    echo
26
+    exit 1
27
+}
28
+
29
+# OS specific support (must be 'true' or 'false').
30
+cygwin=false
31
+msys=false
32
+darwin=false
33
+case "`uname`" in
34
+  CYGWIN* )
35
+    cygwin=true
36
+    ;;
37
+  Darwin* )
38
+    darwin=true
39
+    ;;
40
+  MINGW* )
41
+    msys=true
42
+    ;;
43
+esac
44
+
45
+# For Cygwin, ensure paths are in UNIX format before anything is touched.
46
+if $cygwin ; then
47
+    [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
48
+fi
49
+
50
+# Attempt to set APP_HOME
51
+# Resolve links: $0 may be a link
52
+PRG="$0"
53
+# Need this for relative symlinks.
54
+while [ -h "$PRG" ] ; do
55
+    ls=`ls -ld "$PRG"`
56
+    link=`expr "$ls" : '.*-> \(.*\)$'`
57
+    if expr "$link" : '/.*' > /dev/null; then
58
+        PRG="$link"
59
+    else
60
+        PRG=`dirname "$PRG"`"/$link"
61
+    fi
62
+done
63
+SAVED="`pwd`"
64
+cd "`dirname \"$PRG\"`/" >&-
65
+APP_HOME="`pwd -P`"
66
+cd "$SAVED" >&-
67
+
68
+CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
69
+
70
+# Determine the Java command to use to start the JVM.
71
+if [ -n "$JAVA_HOME" ] ; then
72
+    if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
73
+        # IBM's JDK on AIX uses strange locations for the executables
74
+        JAVACMD="$JAVA_HOME/jre/sh/java"
75
+    else
76
+        JAVACMD="$JAVA_HOME/bin/java"
77
+    fi
78
+    if [ ! -x "$JAVACMD" ] ; then
79
+        die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
80
+
81
+Please set the JAVA_HOME variable in your environment to match the
82
+location of your Java installation."
83
+    fi
84
+else
85
+    JAVACMD="java"
86
+    which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
87
+
88
+Please set the JAVA_HOME variable in your environment to match the
89
+location of your Java installation."
90
+fi
91
+
92
+# Increase the maximum file descriptors if we can.
93
+if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then
94
+    MAX_FD_LIMIT=`ulimit -H -n`
95
+    if [ $? -eq 0 ] ; then
96
+        if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
97
+            MAX_FD="$MAX_FD_LIMIT"
98
+        fi
99
+        ulimit -n $MAX_FD
100
+        if [ $? -ne 0 ] ; then
101
+            warn "Could not set maximum file descriptor limit: $MAX_FD"
102
+        fi
103
+    else
104
+        warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
105
+    fi
106
+fi
107
+
108
+# For Darwin, add options to specify how the application appears in the dock
109
+if $darwin; then
110
+    GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
111
+fi
112
+
113
+# For Cygwin, switch paths to Windows format before running java
114
+if $cygwin ; then
115
+    APP_HOME=`cygpath --path --mixed "$APP_HOME"`
116
+    CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
117
+
118
+    # We build the pattern for arguments to be converted via cygpath
119
+    ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
120
+    SEP=""
121
+    for dir in $ROOTDIRSRAW ; do
122
+        ROOTDIRS="$ROOTDIRS$SEP$dir"
123
+        SEP="|"
124
+    done
125
+    OURCYGPATTERN="(^($ROOTDIRS))"
126
+    # Add a user-defined pattern to the cygpath arguments
127
+    if [ "$GRADLE_CYGPATTERN" != "" ] ; then
128
+        OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
129
+    fi
130
+    # Now convert the arguments - kludge to limit ourselves to /bin/sh
131
+    i=0
132
+    for arg in "$@" ; do
133
+        CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
134
+        CHECK2=`echo "$arg"|egrep -c "^-"`                                 ### Determine if an option
135
+
136
+        if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then                    ### Added a condition
137
+            eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
138
+        else
139
+            eval `echo args$i`="\"$arg\""
140
+        fi
141
+        i=$((i+1))
142
+    done
143
+    case $i in
144
+        (0) set -- ;;
145
+        (1) set -- "$args0" ;;
146
+        (2) set -- "$args0" "$args1" ;;
147
+        (3) set -- "$args0" "$args1" "$args2" ;;
148
+        (4) set -- "$args0" "$args1" "$args2" "$args3" ;;
149
+        (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
150
+        (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
151
+        (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
152
+        (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
153
+        (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
154
+    esac
155
+fi
156
+
157
+# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules
158
+function splitJvmOpts() {
159
+    JVM_OPTS=("$@")
160
+}
161
+eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS
162
+JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME"
163
+
164
+exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@"

+ 90
- 0
android/gradlew.bat View File

@@ -0,0 +1,90 @@
1
+@if "%DEBUG%" == "" @echo off
2
+@rem ##########################################################################
3
+@rem
4
+@rem  Gradle startup script for Windows
5
+@rem
6
+@rem ##########################################################################
7
+
8
+@rem Set local scope for the variables with windows NT shell
9
+if "%OS%"=="Windows_NT" setlocal
10
+
11
+@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
12
+set DEFAULT_JVM_OPTS=
13
+
14
+set DIRNAME=%~dp0
15
+if "%DIRNAME%" == "" set DIRNAME=.
16
+set APP_BASE_NAME=%~n0
17
+set APP_HOME=%DIRNAME%
18
+
19
+@rem Find java.exe
20
+if defined JAVA_HOME goto findJavaFromJavaHome
21
+
22
+set JAVA_EXE=java.exe
23
+%JAVA_EXE% -version >NUL 2>&1
24
+if "%ERRORLEVEL%" == "0" goto init
25
+
26
+echo.
27
+echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
28
+echo.
29
+echo Please set the JAVA_HOME variable in your environment to match the
30
+echo location of your Java installation.
31
+
32
+goto fail
33
+
34
+:findJavaFromJavaHome
35
+set JAVA_HOME=%JAVA_HOME:"=%
36
+set JAVA_EXE=%JAVA_HOME%/bin/java.exe
37
+
38
+if exist "%JAVA_EXE%" goto init
39
+
40
+echo.
41
+echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
42
+echo.
43
+echo Please set the JAVA_HOME variable in your environment to match the
44
+echo location of your Java installation.
45
+
46
+goto fail
47
+
48
+:init
49
+@rem Get command-line arguments, handling Windowz variants
50
+
51
+if not "%OS%" == "Windows_NT" goto win9xME_args
52
+if "%@eval[2+2]" == "4" goto 4NT_args
53
+
54
+:win9xME_args
55
+@rem Slurp the command line arguments.
56
+set CMD_LINE_ARGS=
57
+set _SKIP=2
58
+
59
+:win9xME_args_slurp
60
+if "x%~1" == "x" goto execute
61
+
62
+set CMD_LINE_ARGS=%*
63
+goto execute
64
+
65
+:4NT_args
66
+@rem Get arguments from the 4NT Shell from JP Software
67
+set CMD_LINE_ARGS=%$
68
+
69
+:execute
70
+@rem Setup the command line
71
+
72
+set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
73
+
74
+@rem Execute Gradle
75
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
76
+
77
+:end
78
+@rem End local scope for the variables with windows NT shell
79
+if "%ERRORLEVEL%"=="0" goto mainEnd
80
+
81
+:fail
82
+rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
83
+rem the _cmd.exe /c_ return code!
84
+if  not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
85
+exit /b 1
86
+
87
+:mainEnd
88
+if "%OS%"=="Windows_NT" endlocal
89
+
90
+:omega

+ 10
- 0
android/local.properties View File

@@ -0,0 +1,10 @@
1
+## This file is automatically generated by Android Studio.
2
+# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
3
+#
4
+# This file should *NOT* be checked into Version Control Systems,
5
+# as it contains information specific to your local configuration.
6
+#
7
+# Location of the SDK. This is only used by Gradle.
8
+# For customization when using a Version Control System, please read the
9
+# header note.
10
+sdk.dir=/Users/david/Library/Android/sdk

+ 1
- 0
android/settings.gradle View File

@@ -0,0 +1 @@
1
+include ':app'

+ 481
- 0
iOS/LovetesterNew.xcodeproj/project.pbxproj View File

@@ -0,0 +1,481 @@
1
+// !$*UTF8*$!
2
+{
3
+	archiveVersion = 1;
4
+	classes = {
5
+	};
6
+	objectVersion = 46;
7
+	objects = {
8
+
9
+/* Begin PBXBuildFile section */
10
+		6377D77919FBE5050016D546 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 6377D77819FBE5050016D546 /* main.m */; };
11
+		6377D77C19FBE5050016D546 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 6377D77B19FBE5050016D546 /* AppDelegate.m */; };
12
+		6377D77F19FBE5050016D546 /* ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 6377D77E19FBE5050016D546 /* ViewController.m */; };
13
+		6377D78419FBE5050016D546 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 6377D78319FBE5050016D546 /* Images.xcassets */; };
14
+		6377D7A419FBE5820016D546 /* LoveClass.m in Sources */ = {isa = PBXBuildFile; fileRef = 6377D7A319FBE5820016D546 /* LoveClass.m */; };
15
+		6377D7A719FBE5B50016D546 /* LovetesterProperties.m in Sources */ = {isa = PBXBuildFile; fileRef = 6377D7A619FBE5B50016D546 /* LovetesterProperties.m */; };
16
+		6377D7AA19FBEC430016D546 /* ResultViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 6377D7A919FBEC430016D546 /* ResultViewController.m */; };
17
+		6377D7AC19FBEE9D0016D546 /* iAd.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6377D7AB19FBEE9D0016D546 /* iAd.framework */; };
18
+		63E9883719FBFE8600E857C5 /* LovetesterPlusViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 63E9883619FBFE8600E857C5 /* LovetesterPlusViewController.m */; };
19
+		63E9883C19FC38FF00E857C5 /* StoreKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 63E9883B19FC38FF00E857C5 /* StoreKit.framework */; };
20
+/* End PBXBuildFile section */
21
+
22
+/* Begin PBXContainerItemProxy section */
23
+		6377D78D19FBE5050016D546 /* PBXContainerItemProxy */ = {
24
+			isa = PBXContainerItemProxy;
25
+			containerPortal = 6377D76B19FBE5050016D546 /* Project object */;
26
+			proxyType = 1;
27
+			remoteGlobalIDString = 6377D77219FBE5050016D546;
28
+			remoteInfo = LovetesterNew;
29
+		};
30
+/* End PBXContainerItemProxy section */
31
+
32
+/* Begin PBXFileReference section */
33
+		6377D77319FBE5050016D546 /* Lovetester.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Lovetester.app; sourceTree = BUILT_PRODUCTS_DIR; };
34
+		6377D77719FBE5050016D546 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
35
+		6377D77819FBE5050016D546 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
36
+		6377D77A19FBE5050016D546 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = "<group>"; };
37
+		6377D77B19FBE5050016D546 /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = "<group>"; };
38
+		6377D77D19FBE5050016D546 /* ViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ViewController.h; sourceTree = "<group>"; };
39
+		6377D77E19FBE5050016D546 /* ViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ViewController.m; sourceTree = "<group>"; };
40
+		6377D78119FBE5050016D546 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = "<group>"; };
41
+		6377D78319FBE5050016D546 /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = "<group>"; };
42
+		6377D78619FBE5050016D546 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/LaunchScreen.xib; sourceTree = "<group>"; };
43
+		6377D78C19FBE5050016D546 /* LovetesterNewTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = LovetesterNewTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
44
+		6377D79119FBE5050016D546 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
45
+		6377D79219FBE5050016D546 /* LovetesterNewTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = LovetesterNewTests.m; sourceTree = "<group>"; };
46
+		6377D79F19FBE52A0016D546 /* Base */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = Base; path = Base.lproj/Localizable.strings; sourceTree = "<group>"; };
47
+		6377D7A119FBE5360016D546 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/Localizable.strings; sourceTree = "<group>"; };
48
+		6377D7A219FBE5820016D546 /* LoveClass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LoveClass.h; sourceTree = "<group>"; };
49
+		6377D7A319FBE5820016D546 /* LoveClass.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LoveClass.m; sourceTree = "<group>"; };
50
+		6377D7A519FBE5B50016D546 /* LovetesterProperties.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LovetesterProperties.h; sourceTree = "<group>"; };
51
+		6377D7A619FBE5B50016D546 /* LovetesterProperties.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LovetesterProperties.m; sourceTree = "<group>"; };
52
+		6377D7A819FBEC430016D546 /* ResultViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ResultViewController.h; sourceTree = "<group>"; };
53
+		6377D7A919FBEC430016D546 /* ResultViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ResultViewController.m; sourceTree = "<group>"; };
54
+		6377D7AB19FBEE9D0016D546 /* iAd.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = iAd.framework; path = System/Library/Frameworks/iAd.framework; sourceTree = SDKROOT; };
55
+		63E9883519FBFE8600E857C5 /* LovetesterPlusViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LovetesterPlusViewController.h; sourceTree = "<group>"; };
56
+		63E9883619FBFE8600E857C5 /* LovetesterPlusViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LovetesterPlusViewController.m; sourceTree = "<group>"; };
57
+		63E9883B19FC38FF00E857C5 /* StoreKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = StoreKit.framework; path = System/Library/Frameworks/StoreKit.framework; sourceTree = SDKROOT; };
58
+/* End PBXFileReference section */
59
+
60
+/* Begin PBXFrameworksBuildPhase section */
61
+		6377D77019FBE5050016D546 /* Frameworks */ = {
62
+			isa = PBXFrameworksBuildPhase;
63
+			buildActionMask = 2147483647;
64
+			files = (
65
+				63E9883C19FC38FF00E857C5 /* StoreKit.framework in Frameworks */,
66
+				6377D7AC19FBEE9D0016D546 /* iAd.framework in Frameworks */,
67
+			);
68
+			runOnlyForDeploymentPostprocessing = 0;
69
+		};
70
+		6377D78919FBE5050016D546 /* Frameworks */ = {
71
+			isa = PBXFrameworksBuildPhase;
72
+			buildActionMask = 2147483647;
73
+			files = (
74
+			);
75
+			runOnlyForDeploymentPostprocessing = 0;
76
+		};
77
+/* End PBXFrameworksBuildPhase section */
78
+
79
+/* Begin PBXGroup section */
80
+		6377D76A19FBE5050016D546 = {
81
+			isa = PBXGroup;
82
+			children = (
83
+				63E9883B19FC38FF00E857C5 /* StoreKit.framework */,
84
+				6377D7AB19FBEE9D0016D546 /* iAd.framework */,
85
+				6377D77519FBE5050016D546 /* LovetesterNew */,
86
+				6377D78F19FBE5050016D546 /* LovetesterNewTests */,
87
+				6377D77419FBE5050016D546 /* Products */,
88
+			);
89
+			sourceTree = "<group>";
90
+		};
91
+		6377D77419FBE5050016D546 /* Products */ = {
92
+			isa = PBXGroup;
93
+			children = (
94
+				6377D77319FBE5050016D546 /* Lovetester.app */,
95
+				6377D78C19FBE5050016D546 /* LovetesterNewTests.xctest */,
96
+			);
97
+			name = Products;
98
+			sourceTree = "<group>";
99
+		};
100
+		6377D77519FBE5050016D546 /* LovetesterNew */ = {
101
+			isa = PBXGroup;
102
+			children = (
103
+				6377D7A519FBE5B50016D546 /* LovetesterProperties.h */,
104
+				6377D7A619FBE5B50016D546 /* LovetesterProperties.m */,
105
+				6377D7A219FBE5820016D546 /* LoveClass.h */,
106
+				6377D7A319FBE5820016D546 /* LoveClass.m */,
107
+				6377D77A19FBE5050016D546 /* AppDelegate.h */,
108
+				6377D77B19FBE5050016D546 /* AppDelegate.m */,
109
+				6377D77D19FBE5050016D546 /* ViewController.h */,
110
+				6377D77E19FBE5050016D546 /* ViewController.m */,
111
+				6377D7A819FBEC430016D546 /* ResultViewController.h */,
112
+				6377D7A919FBEC430016D546 /* ResultViewController.m */,
113
+				63E9883519FBFE8600E857C5 /* LovetesterPlusViewController.h */,
114
+				63E9883619FBFE8600E857C5 /* LovetesterPlusViewController.m */,
115
+				6377D78019FBE5050016D546 /* Main.storyboard */,
116
+				6377D78319FBE5050016D546 /* Images.xcassets */,
117
+				6377D78519FBE5050016D546 /* LaunchScreen.xib */,
118
+				6377D77619FBE5050016D546 /* Supporting Files */,
119
+			);
120
+			path = LovetesterNew;
121
+			sourceTree = "<group>";
122
+		};
123
+		6377D77619FBE5050016D546 /* Supporting Files */ = {
124
+			isa = PBXGroup;
125
+			children = (
126
+				6377D77719FBE5050016D546 /* Info.plist */,
127
+				6377D77819FBE5050016D546 /* main.m */,
128
+				6377D7A019FBE52A0016D546 /* Localizable.strings */,
129
+			);
130
+			name = "Supporting Files";
131
+			sourceTree = "<group>";
132
+		};
133
+		6377D78F19FBE5050016D546 /* LovetesterNewTests */ = {
134
+			isa = PBXGroup;
135
+			children = (
136
+				6377D79219FBE5050016D546 /* LovetesterNewTests.m */,
137
+				6377D79019FBE5050016D546 /* Supporting Files */,
138
+			);
139
+			path = LovetesterNewTests;
140
+			sourceTree = "<group>";
141
+		};
142
+		6377D79019FBE5050016D546 /* Supporting Files */ = {
143
+			isa = PBXGroup;
144
+			children = (
145
+				6377D79119FBE5050016D546 /* Info.plist */,
146
+			);
147
+			name = "Supporting Files";
148
+			sourceTree = "<group>";
149
+		};
150
+/* End PBXGroup section */
151
+
152
+/* Begin PBXNativeTarget section */
153
+		6377D77219FBE5050016D546 /* LovetesterNew */ = {
154
+			isa = PBXNativeTarget;
155
+			buildConfigurationList = 6377D79619FBE5050016D546 /* Build configuration list for PBXNativeTarget "LovetesterNew" */;
156
+			buildPhases = (
157
+				6377D76F19FBE5050016D546 /* Sources */,
158
+				6377D77019FBE5050016D546 /* Frameworks */,
159
+				6377D77119FBE5050016D546 /* Resources */,
160
+			);
161
+			buildRules = (
162
+			);
163
+			dependencies = (
164
+			);
165
+			name = LovetesterNew;
166
+			productName = LovetesterNew;
167
+			productReference = 6377D77319FBE5050016D546 /* Lovetester.app */;
168
+			productType = "com.apple.product-type.application";
169
+		};
170
+		6377D78B19FBE5050016D546 /* LovetesterNewTests */ = {
171
+			isa = PBXNativeTarget;
172
+			buildConfigurationList = 6377D79919FBE5050016D546 /* Build configuration list for PBXNativeTarget "LovetesterNewTests" */;
173
+			buildPhases = (
174
+				6377D78819FBE5050016D546 /* Sources */,
175
+				6377D78919FBE5050016D546 /* Frameworks */,
176
+				6377D78A19FBE5050016D546 /* Resources */,
177
+			);
178
+			buildRules = (
179
+			);
180
+			dependencies = (
181
+				6377D78E19FBE5050016D546 /* PBXTargetDependency */,
182
+			);
183
+			name = LovetesterNewTests;
184
+			productName = LovetesterNewTests;
185
+			productReference = 6377D78C19FBE5050016D546 /* LovetesterNewTests.xctest */;
186
+			productType = "com.apple.product-type.bundle.unit-test";
187
+		};
188
+/* End PBXNativeTarget section */
189
+
190
+/* Begin PBXProject section */
191
+		6377D76B19FBE5050016D546 /* Project object */ = {
192
+			isa = PBXProject;
193
+			attributes = {
194
+				LastUpgradeCheck = 0610;
195
+				ORGANIZATIONNAME = "David Walter";
196
+				TargetAttributes = {
197
+					6377D77219FBE5050016D546 = {
198
+						CreatedOnToolsVersion = 6.1;
199
+						DevelopmentTeam = 7MLF4U25UX;
200
+					};
201
+					6377D78B19FBE5050016D546 = {
202
+						CreatedOnToolsVersion = 6.1;
203
+						TestTargetID = 6377D77219FBE5050016D546;
204
+					};
205
+				};
206
+			};
207
+			buildConfigurationList = 6377D76E19FBE5050016D546 /* Build configuration list for PBXProject "LovetesterNew" */;
208
+			compatibilityVersion = "Xcode 3.2";
209
+			developmentRegion = English;
210
+			hasScannedForEncodings = 0;
211
+			knownRegions = (
212
+				en,
213
+				Base,
214
+				de,
215
+			);
216
+			mainGroup = 6377D76A19FBE5050016D546;
217
+			productRefGroup = 6377D77419FBE5050016D546 /* Products */;
218
+			projectDirPath = "";
219
+			projectRoot = "";
220
+			targets = (
221
+				6377D77219FBE5050016D546 /* LovetesterNew */,
222
+				6377D78B19FBE5050016D546 /* LovetesterNewTests */,
223
+			);
224
+		};
225
+/* End PBXProject section */
226
+
227
+/* Begin PBXResourcesBuildPhase section */
228
+		6377D77119FBE5050016D546 /* Resources */ = {
229
+			isa = PBXResourcesBuildPhase;
230
+			buildActionMask = 2147483647;
231
+			files = (
232
+				6377D78419FBE5050016D546 /* Images.xcassets in Resources */,
233
+			);
234
+			runOnlyForDeploymentPostprocessing = 0;
235
+		};
236
+		6377D78A19FBE5050016D546 /* Resources */ = {
237
+			isa = PBXResourcesBuildPhase;
238
+			buildActionMask = 2147483647;
239
+			files = (
240
+			);
241
+			runOnlyForDeploymentPostprocessing = 0;
242
+		};
243
+/* End PBXResourcesBuildPhase section */
244
+
245
+/* Begin PBXSourcesBuildPhase section */
246
+		6377D76F19FBE5050016D546 /* Sources */ = {
247
+			isa = PBXSourcesBuildPhase;
248
+			buildActionMask = 2147483647;
249
+			files = (
250
+				6377D7A719FBE5B50016D546 /* LovetesterProperties.m in Sources */,
251
+				6377D77F19FBE5050016D546 /* ViewController.m in Sources */,
252
+				6377D77C19FBE5050016D546 /* AppDelegate.m in Sources */,
253
+				6377D7A419FBE5820016D546 /* LoveClass.m in Sources */,
254
+				63E9883719FBFE8600E857C5 /* LovetesterPlusViewController.m in Sources */,
255
+				6377D77919FBE5050016D546 /* main.m in Sources */,
256
+				6377D7AA19FBEC430016D546 /* ResultViewController.m in Sources */,
257
+			);
258
+			runOnlyForDeploymentPostprocessing = 0;
259
+		};
260
+		6377D78819FBE5050016D546 /* Sources */ = {
261
+			isa = PBXSourcesBuildPhase;
262
+			buildActionMask = 2147483647;
263
+			files = (
264
+			);
265
+			runOnlyForDeploymentPostprocessing = 0;
266
+		};
267
+/* End PBXSourcesBuildPhase section */
268
+
269
+/* Begin PBXTargetDependency section */
270
+		6377D78E19FBE5050016D546 /* PBXTargetDependency */ = {
271
+			isa = PBXTargetDependency;
272
+			target = 6377D77219FBE5050016D546 /* LovetesterNew */;
273
+			targetProxy = 6377D78D19FBE5050016D546 /* PBXContainerItemProxy */;
274
+		};
275
+/* End PBXTargetDependency section */
276
+
277
+/* Begin PBXVariantGroup section */
278
+		6377D78019FBE5050016D546 /* Main.storyboard */ = {
279
+			isa = PBXVariantGroup;
280
+			children = (
281
+				6377D78119FBE5050016D546 /* Base */,
282
+			);
283
+			name = Main.storyboard;
284
+			sourceTree = "<group>";
285
+		};
286
+		6377D78519FBE5050016D546 /* LaunchScreen.xib */ = {
287
+			isa = PBXVariantGroup;
288
+			children = (
289
+				6377D78619FBE5050016D546 /* Base */,
290
+			);
291
+			name = LaunchScreen.xib;
292
+			sourceTree = "<group>";
293
+		};
294
+		6377D7A019FBE52A0016D546 /* Localizable.strings */ = {
295
+			isa = PBXVariantGroup;
296
+			children = (
297
+				6377D79F19FBE52A0016D546 /* Base */,
298
+				6377D7A119FBE5360016D546 /* de */,
299
+			);
300
+			name = Localizable.strings;
301
+			sourceTree = "<group>";
302
+		};
303
+/* End PBXVariantGroup section */
304
+
305
+/* Begin XCBuildConfiguration section */
306
+		6377D79419FBE5050016D546 /* Debug */ = {
307
+			isa = XCBuildConfiguration;
308
+			buildSettings = {
309
+				ALWAYS_SEARCH_USER_PATHS = NO;
310
+				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
311
+				CLANG_CXX_LIBRARY = "libc++";
312
+				CLANG_ENABLE_MODULES = YES;
313
+				CLANG_ENABLE_OBJC_ARC = YES;
314
+				CLANG_WARN_BOOL_CONVERSION = YES;
315
+				CLANG_WARN_CONSTANT_CONVERSION = YES;
316
+				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
317
+				CLANG_WARN_EMPTY_BODY = YES;
318
+				CLANG_WARN_ENUM_CONVERSION = YES;
319
+				CLANG_WARN_INT_CONVERSION = YES;
320
+				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
321
+				CLANG_WARN_UNREACHABLE_CODE = YES;
322
+				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
323
+				CODE_SIGN_IDENTITY = "iPhone Developer";
324
+				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
325
+				COPY_PHASE_STRIP = NO;
326
+				ENABLE_STRICT_OBJC_MSGSEND = YES;
327
+				GCC_C_LANGUAGE_STANDARD = gnu99;
328
+				GCC_DYNAMIC_NO_PIC = NO;
329
+				GCC_OPTIMIZATION_LEVEL = 0;
330
+				GCC_PREPROCESSOR_DEFINITIONS = (
331
+					"DEBUG=1",
332
+					"$(inherited)",
333
+				);
334
+				GCC_SYMBOLS_PRIVATE_EXTERN = NO;
335
+				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
336
+				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
337
+				GCC_WARN_UNDECLARED_SELECTOR = YES;
338
+				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
339
+				GCC_WARN_UNUSED_FUNCTION = YES;
340
+				GCC_WARN_UNUSED_VARIABLE = YES;
341
+				IPHONEOS_DEPLOYMENT_TARGET = 8.1;
342
+				MTL_ENABLE_DEBUG_INFO = YES;
343
+				ONLY_ACTIVE_ARCH = YES;
344
+				SDKROOT = iphoneos;
345
+			};
346
+			name = Debug;
347
+		};
348
+		6377D79519FBE5050016D546 /* Release */ = {
349
+			isa = XCBuildConfiguration;
350
+			buildSettings = {
351
+				ALWAYS_SEARCH_USER_PATHS = NO;
352
+				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
353
+				CLANG_CXX_LIBRARY = "libc++";
354
+				CLANG_ENABLE_MODULES = YES;
355
+				CLANG_ENABLE_OBJC_ARC = YES;
356
+				CLANG_WARN_BOOL_CONVERSION = YES;
357
+				CLANG_WARN_CONSTANT_CONVERSION = YES;
358
+				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
359
+				CLANG_WARN_EMPTY_BODY = YES;
360
+				CLANG_WARN_ENUM_CONVERSION = YES;
361
+				CLANG_WARN_INT_CONVERSION = YES;
362
+				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
363
+				CLANG_WARN_UNREACHABLE_CODE = YES;
364
+				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
365
+				CODE_SIGN_IDENTITY = "iPhone Developer";
366
+				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
367
+				COPY_PHASE_STRIP = YES;
368
+				ENABLE_NS_ASSERTIONS = NO;
369
+				ENABLE_STRICT_OBJC_MSGSEND = YES;
370
+				GCC_C_LANGUAGE_STANDARD = gnu99;
371
+				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
372
+				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
373
+				GCC_WARN_UNDECLARED_SELECTOR = YES;
374
+				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
375
+				GCC_WARN_UNUSED_FUNCTION = YES;
376
+				GCC_WARN_UNUSED_VARIABLE = YES;
377
+				IPHONEOS_DEPLOYMENT_TARGET = 8.1;
378
+				MTL_ENABLE_DEBUG_INFO = NO;
379
+				SDKROOT = iphoneos;
380
+				VALIDATE_PRODUCT = YES;
381
+			};
382
+			name = Release;
383
+		};
384
+		6377D79719FBE5050016D546 /* Debug */ = {
385
+			isa = XCBuildConfiguration;
386
+			buildSettings = {
387
+				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
388
+				ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
389
+				CODE_SIGN_IDENTITY = "iPhone Developer";
390
+				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
391
+				INFOPLIST_FILE = LovetesterNew/Info.plist;
392
+				IPHONEOS_DEPLOYMENT_TARGET = 8.0;
393
+				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
394
+				PRODUCT_NAME = Lovetester;
395
+				PROVISIONING_PROFILE = "";
396
+			};
397
+			name = Debug;
398
+		};
399
+		6377D79819FBE5050016D546 /* Release */ = {
400
+			isa = XCBuildConfiguration;
401
+			buildSettings = {
402
+				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
403
+				ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
404
+				CODE_SIGN_IDENTITY = "iPhone Developer";
405
+				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
406
+				INFOPLIST_FILE = LovetesterNew/Info.plist;
407
+				IPHONEOS_DEPLOYMENT_TARGET = 8.0;
408
+				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
409
+				PRODUCT_NAME = Lovetester;
410
+				PROVISIONING_PROFILE = "";
411
+			};
412
+			name = Release;
413
+		};
414
+		6377D79A19FBE5050016D546 /* Debug */ = {
415
+			isa = XCBuildConfiguration;
416
+			buildSettings = {
417
+				BUNDLE_LOADER = "$(TEST_HOST)";
418
+				FRAMEWORK_SEARCH_PATHS = (
419
+					"$(SDKROOT)/Developer/Library/Frameworks",
420
+					"$(inherited)",
421
+				);
422
+				GCC_PREPROCESSOR_DEFINITIONS = (
423
+					"DEBUG=1",
424
+					"$(inherited)",
425
+				);
426
+				INFOPLIST_FILE = LovetesterNewTests/Info.plist;
427
+				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
428
+				PRODUCT_NAME = LovetesterNewTests;
429
+				TEST_HOST = "$(BUILT_PRODUCTS_DIR)/LovetesterNew.app/LovetesterNew";
430
+			};
431
+			name = Debug;
432
+		};
433
+		6377D79B19FBE5050016D546 /* Release */ = {
434
+			isa = XCBuildConfiguration;
435
+			buildSettings = {
436
+				BUNDLE_LOADER = "$(TEST_HOST)";
437
+				FRAMEWORK_SEARCH_PATHS = (
438
+					"$(SDKROOT)/Developer/Library/Frameworks",
439
+					"$(inherited)",
440
+				);
441
+				INFOPLIST_FILE = LovetesterNewTests/Info.plist;
442
+				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
443
+				PRODUCT_NAME = LovetesterNewTests;
444
+				TEST_HOST = "$(BUILT_PRODUCTS_DIR)/LovetesterNew.app/LovetesterNew";
445
+			};
446
+			name = Release;
447
+		};
448
+/* End XCBuildConfiguration section */
449
+
450
+/* Begin XCConfigurationList section */
451
+		6377D76E19FBE5050016D546 /* Build configuration list for PBXProject "LovetesterNew" */ = {
452
+			isa = XCConfigurationList;
453
+			buildConfigurations = (
454
+				6377D79419FBE5050016D546 /* Debug */,
455
+				6377D79519FBE5050016D546 /* Release */,
456
+			);
457
+			defaultConfigurationIsVisible = 0;
458
+			defaultConfigurationName = Release;
459
+		};
460
+		6377D79619FBE5050016D546 /* Build configuration list for PBXNativeTarget "LovetesterNew" */ = {
461
+			isa = XCConfigurationList;
462
+			buildConfigurations = (
463
+				6377D79719FBE5050016D546 /* Debug */,
464
+				6377D79819FBE5050016D546 /* Release */,
465
+			);
466
+			defaultConfigurationIsVisible = 0;
467
+			defaultConfigurationName = Release;
468
+		};
469
+		6377D79919FBE5050016D546 /* Build configuration list for PBXNativeTarget "LovetesterNewTests" */ = {
470
+			isa = XCConfigurationList;
471
+			buildConfigurations = (
472
+				6377D79A19FBE5050016D546 /* Debug */,
473
+				6377D79B19FBE5050016D546 /* Release */,
474
+			);
475
+			defaultConfigurationIsVisible = 0;
476
+			defaultConfigurationName = Release;
477
+		};
478
+/* End XCConfigurationList section */
479
+	};
480
+	rootObject = 6377D76B19FBE5050016D546 /* Project object */;
481
+}

+ 7
- 0
iOS/LovetesterNew.xcodeproj/project.xcworkspace/contents.xcworkspacedata View File

@@ -0,0 +1,7 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<Workspace
3
+   version = "1.0">
4
+   <FileRef
5
+      location = "self:LovetesterNew.xcodeproj">
6
+   </FileRef>
7
+</Workspace>

BIN
iOS/LovetesterNew.xcodeproj/project.xcworkspace/xcuserdata/david.xcuserdatad/UserInterfaceState.xcuserstate View File


+ 10
- 0
iOS/LovetesterNew.xcodeproj/project.xcworkspace/xcuserdata/david.xcuserdatad/WorkspaceSettings.xcsettings View File

@@ -0,0 +1,10 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
+<plist version="1.0">
4
+<dict>
5
+	<key>HasAskedToTakeAutomaticSnapshotBeforeSignificantChanges</key>
6
+	<true/>
7
+	<key>SnapshotAutomaticallyBeforeSignificantChanges</key>
8
+	<false/>
9
+</dict>
10
+</plist>

+ 39
- 0
iOS/LovetesterNew.xcodeproj/xcuserdata/david.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist View File

@@ -0,0 +1,39 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<Bucket
3
+   type = "1"
4
+   version = "2.0">
5
+   <Breakpoints>
6
+      <BreakpointProxy
7
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
8
+         <BreakpointContent
9
+            shouldBeEnabled = "No"
10
+            ignoreCount = "0"
11
+            continueAfterRunningActions = "No"
12
+            filePath = "LovetesterNew/LoveClass.m"
13
+            timestampString = "442695303.381089"
14
+            startingColumnNumber = "9223372036854775807"
15
+            endingColumnNumber = "9223372036854775807"
16
+            startingLineNumber = "15"
17
+            endingLineNumber = "15"
18
+            landmarkName = "-LoveYourname:Othername:"
19
+            landmarkType = "5">
20
+         </BreakpointContent>
21
+      </BreakpointProxy>
22
+      <BreakpointProxy
23
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
24
+         <BreakpointContent
25
+            shouldBeEnabled = "No"
26
+            ignoreCount = "0"
27
+            continueAfterRunningActions = "No"
28
+            filePath = "LovetesterNew/LoveClass.m"
29
+            timestampString = "443795993.660782"
30
+            startingColumnNumber = "9223372036854775807"
31
+            endingColumnNumber = "9223372036854775807"
32
+            startingLineNumber = "26"
33
+            endingLineNumber = "26"
34
+            landmarkName = "-LoveYourname:Othername:"
35
+            landmarkType = "5">
36
+         </BreakpointContent>
37
+      </BreakpointProxy>
38
+   </Breakpoints>
39
+</Bucket>

+ 110
- 0
iOS/LovetesterNew.xcodeproj/xcuserdata/david.xcuserdatad/xcschemes/LovetesterNew.xcscheme View File

@@ -0,0 +1,110 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<Scheme
3
+   LastUpgradeVersion = "0610"
4
+   version = "1.3">
5
+   <BuildAction
6
+      parallelizeBuildables = "YES"
7
+      buildImplicitDependencies = "YES">
8
+      <BuildActionEntries>
9
+         <BuildActionEntry
10
+            buildForTesting = "YES"
11
+            buildForRunning = "YES"
12
+            buildForProfiling = "YES"
13
+            buildForArchiving = "YES"
14
+            buildForAnalyzing = "YES">
15
+            <BuildableReference
16
+               BuildableIdentifier = "primary"
17
+               BlueprintIdentifier = "6377D77219FBE5050016D546"
18
+               BuildableName = "Lovetester.app"
19
+               BlueprintName = "LovetesterNew"
20
+               ReferencedContainer = "container:LovetesterNew.xcodeproj">
21
+            </BuildableReference>
22
+         </BuildActionEntry>
23
+         <BuildActionEntry
24
+            buildForTesting = "YES"
25
+            buildForRunning = "YES"
26
+            buildForProfiling = "NO"
27
+            buildForArchiving = "NO"
28
+            buildForAnalyzing = "YES">
29
+            <BuildableReference
30
+               BuildableIdentifier = "primary"
31
+               BlueprintIdentifier = "6377D78B19FBE5050016D546"
32
+               BuildableName = "LovetesterNewTests.xctest"
33
+               BlueprintName = "LovetesterNewTests"
34
+               ReferencedContainer = "container:LovetesterNew.xcodeproj">
35
+            </BuildableReference>
36
+         </BuildActionEntry>
37
+      </BuildActionEntries>
38
+   </BuildAction>
39
+   <TestAction
40
+      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
41
+      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
42
+      shouldUseLaunchSchemeArgsEnv = "YES"
43
+      buildConfiguration = "Debug">
44
+      <Testables>
45
+         <TestableReference
46
+            skipped = "NO">
47
+            <BuildableReference
48
+               BuildableIdentifier = "primary"
49
+               BlueprintIdentifier = "6377D78B19FBE5050016D546"
50
+               BuildableName = "LovetesterNewTests.xctest"
51
+               BlueprintName = "LovetesterNewTests"
52
+               ReferencedContainer = "container:LovetesterNew.xcodeproj">
53
+            </BuildableReference>
54
+         </TestableReference>
55
+      </Testables>
56
+      <MacroExpansion>
57
+         <BuildableReference
58
+            BuildableIdentifier = "primary"
59
+            BlueprintIdentifier = "6377D77219FBE5050016D546"
60
+            BuildableName = "Lovetester.app"
61
+            BlueprintName = "LovetesterNew"
62
+            ReferencedContainer = "container:LovetesterNew.xcodeproj">
63
+         </BuildableReference>
64
+      </MacroExpansion>
65
+   </TestAction>
66
+   <LaunchAction
67
+      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
68
+      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
69
+      launchStyle = "0"
70
+      useCustomWorkingDirectory = "NO"
71
+      buildConfiguration = "Debug"
72
+      ignoresPersistentStateOnLaunch = "NO"
73
+      debugDocumentVersioning = "YES"
74
+      allowLocationSimulation = "YES">
75
+      <BuildableProductRunnable>
76
+         <BuildableReference
77
+            BuildableIdentifier = "primary"
78
+            BlueprintIdentifier = "6377D77219FBE5050016D546"
79
+            BuildableName = "Lovetester.app"
80
+            BlueprintName = "LovetesterNew"
81
+            ReferencedContainer = "container:LovetesterNew.xcodeproj">
82
+         </BuildableReference>
83
+      </BuildableProductRunnable>
84
+      <AdditionalOptions>
85
+      </AdditionalOptions>
86
+   </LaunchAction>
87
+   <ProfileAction
88
+      shouldUseLaunchSchemeArgsEnv = "YES"
89
+      savedToolIdentifier = ""
90
+      useCustomWorkingDirectory = "NO"
91
+      buildConfiguration = "Release"
92
+      debugDocumentVersioning = "YES">
93
+      <BuildableProductRunnable>
94
+         <BuildableReference
95
+            BuildableIdentifier = "primary"
96
+            BlueprintIdentifier = "6377D77219FBE5050016D546"
97
+            BuildableName = "Lovetester.app"
98
+            BlueprintName = "LovetesterNew"
99
+            ReferencedContainer = "container:LovetesterNew.xcodeproj">
100
+         </BuildableReference>
101
+      </BuildableProductRunnable>
102
+   </ProfileAction>
103
+   <AnalyzeAction
104
+      buildConfiguration = "Debug">
105
+   </AnalyzeAction>
106
+   <ArchiveAction
107
+      buildConfiguration = "Release"
108
+      revealArchiveInOrganizer = "YES">
109
+   </ArchiveAction>
110
+</Scheme>

+ 27
- 0
iOS/LovetesterNew.xcodeproj/xcuserdata/david.xcuserdatad/xcschemes/xcschememanagement.plist View File

@@ -0,0 +1,27 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
+<plist version="1.0">
4
+<dict>
5
+	<key>SchemeUserState</key>
6
+	<dict>
7
+		<key>LovetesterNew.xcscheme</key>
8
+		<dict>
9
+			<key>orderHint</key>
10
+			<integer>0</integer>
11
+		</dict>
12
+	</dict>
13
+	<key>SuppressBuildableAutocreation</key>
14
+	<dict>
15
+		<key>6377D77219FBE5050016D546</key>
16
+		<dict>
17
+			<key>primary</key>
18
+			<true/>
19
+		</dict>
20
+		<key>6377D78B19FBE5050016D546</key>
21
+		<dict>
22
+			<key>primary</key>
23
+			<true/>
24
+		</dict>
25
+	</dict>
26
+</dict>
27
+</plist>

+ 17
- 0
iOS/LovetesterNew/AppDelegate.h View File

@@ -0,0 +1,17 @@
1
+//
2
+//  AppDelegate.h
3
+//  LovetesterNew
4
+//
5
+//  Created by David Walter on 25.10.14.
6
+//  Copyright (c) 2014 David Walter. All rights reserved.
7
+//
8
+
9
+#import <UIKit/UIKit.h>
10
+
11
+@interface AppDelegate : UIResponder <UIApplicationDelegate>
12
+
13
+@property (strong, nonatomic) UIWindow *window;
14
+
15
+
16
+@end
17
+

+ 46
- 0
iOS/LovetesterNew/AppDelegate.m View File

@@ -0,0 +1,46 @@
1
+//
2
+//  AppDelegate.m
3
+//  LovetesterNew
4
+//
5
+//  Created by David Walter on 25.10.14.
6
+//  Copyright (c) 2014 David Walter. All rights reserved.
7
+//
8
+
9
+#import "AppDelegate.h"
10
+
11
+@interface AppDelegate ()
12
+
13
+@end
14
+
15
+@implementation AppDelegate
16
+
17
+
18
+- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
19
+    // Override point for customization after application launch.
20
+    [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent animated:NO];
21
+    return YES;
22
+}
23
+
24
+- (void)applicationWillResignActive:(UIApplication *)application {
25
+    // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state.
26
+    // Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game.
27
+}
28
+
29
+- (void)applicationDidEnterBackground:(UIApplication *)application {
30
+    // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later.
31
+    // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.
32
+}
33
+
34
+- (void)applicationWillEnterForeground:(UIApplication *)application {
35
+    // Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background.
36
+}
37
+
38
+- (void)applicationDidBecomeActive:(UIApplication *)application {
39
+    // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.
40
+}
41
+
42
+- (void)applicationWillTerminate:(UIApplication *)application {
43
+    // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.
44
+}
45
+
46
+@end

+ 76
- 0
iOS/LovetesterNew/Base.lproj/LaunchScreen.xib View File

@@ -0,0 +1,76 @@
1
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="6250" systemVersion="14A389" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" useTraitCollections="YES">
3
+    <dependencies>
4
+        <deployment identifier="iOS"/>
5
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="6244"/>
6
+    </dependencies>
7
+    <objects>
8
+        <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
9
+        <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
10
+        <view contentMode="scaleToFill" id="iN0-l3-epB">
11
+            <rect key="frame" x="0.0" y="0.0" width="480" height="480"/>
12
+            <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
13
+            <subviews>
14
+                <imageView opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="right" image="HeartLeft" translatesAutoresizingMaskIntoConstraints="NO" id="xE3-nV-USH">
15
+                    <rect key="frame" x="0.0" y="310" width="136" height="170"/>
16
+                    <constraints>
17
+                        <constraint firstAttribute="width" constant="136" id="3Uu-GW-M8v"/>
18
+                        <constraint firstAttribute="height" constant="170" id="L5d-M0-wfs"/>
19
+                    </constraints>
20
+                </imageView>
21
+                <imageView opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="left" image="HeartRight" translatesAutoresizingMaskIntoConstraints="NO" id="HoD-bL-oI2">
22
+                    <rect key="frame" x="344" y="310" width="136" height="170"/>
23
+                    <constraints>
24
+                        <constraint firstAttribute="width" constant="136" id="clX-aF-8Rf"/>
25
+                        <constraint firstAttribute="height" constant="170" id="vW8-Jt-cGz"/>
26
+                    </constraints>
27
+                </imageView>
28
+                <navigationBar contentMode="scaleToFill" translucent="NO" translatesAutoresizingMaskIntoConstraints="NO" id="l9o-zt-IhA">
29
+                    <rect key="frame" x="0.0" y="20" width="480" height="44"/>
30
+                    <color key="backgroundColor" red="0.68235296010000002" green="0.2117647231" blue="0.2196078598" alpha="1" colorSpace="deviceRGB"/>
31
+                    <constraints>
32
+                        <constraint firstAttribute="height" constant="44" id="jAs-bO-hn4"/>
33
+                    </constraints>
34
+                    <color key="tintColor" red="0.68235296010000002" green="0.2117647231" blue="0.2196078598" alpha="1" colorSpace="deviceRGB"/>
35
+                    <color key="barTintColor" red="0.68235296010000002" green="0.2117647231" blue="0.2196078598" alpha="1" colorSpace="deviceRGB"/>
36
+                    <textAttributes key="titleTextAttributes">
37
+                        <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
38
+                    </textAttributes>
39
+                    <items>
40
+                        <navigationItem title="Lovetester" id="ypF-d5-NrW"/>
41
+                    </items>
42
+                </navigationBar>
43
+                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="R5g-XX-AcS">
44
+                    <rect key="frame" x="0.0" y="0.0" width="480" height="21"/>
45
+                    <color key="backgroundColor" red="0.68235296010000002" green="0.2117647231" blue="0.2196078598" alpha="1" colorSpace="deviceRGB"/>
46
+                    <constraints>
47
+                        <constraint firstAttribute="height" constant="21" id="WZ7-po-MV0"/>
48
+                    </constraints>
49
+                    <fontDescription key="fontDescription" type="system" pointSize="17"/>
50
+                    <color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
51
+                    <nil key="highlightedColor"/>
52
+                </label>
53
+            </subviews>
54
+            <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
55
+            <constraints>
56
+                <constraint firstItem="R5g-XX-AcS" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" id="7sB-hZ-fsv"/>
57
+                <constraint firstItem="l9o-zt-IhA" firstAttribute="top" secondItem="iN0-l3-epB" secondAttribute="top" constant="20" id="Ars-hn-7gf"/>
58
+                <constraint firstItem="l9o-zt-IhA" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" id="B9P-j5-Ign"/>
59
+                <constraint firstAttribute="trailing" secondItem="l9o-zt-IhA" secondAttribute="trailing" id="DC9-hR-qjg"/>
60
+                <constraint firstAttribute="trailing" secondItem="R5g-XX-AcS" secondAttribute="trailing" id="QeU-sD-4Wy"/>
61
+                <constraint firstItem="xE3-nV-USH" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" id="dhz-Kb-vgv"/>
62
+                <constraint firstAttribute="bottom" secondItem="HoD-bL-oI2" secondAttribute="bottom" id="mHX-cX-8qX"/>
63
+                <constraint firstAttribute="trailing" secondItem="HoD-bL-oI2" secondAttribute="trailing" id="p8l-aY-Xfg"/>
64
+                <constraint firstAttribute="bottom" secondItem="xE3-nV-USH" secondAttribute="bottom" id="ptn-Qp-3Zd"/>
65
+                <constraint firstItem="R5g-XX-AcS" firstAttribute="top" secondItem="iN0-l3-epB" secondAttribute="top" id="xP8-X9-fee"/>
66
+            </constraints>
67
+            <nil key="simulatedTopBarMetrics"/>
68
+            <freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
69
+            <point key="canvasLocation" x="548" y="455"/>
70
+        </view>
71
+    </objects>
72
+    <resources>
73
+        <image name="HeartLeft" width="170" height="170"/>
74
+        <image name="HeartRight" width="170" height="170"/>
75
+    </resources>
76
+</document>

+ 48
- 0
iOS/LovetesterNew/Base.lproj/Localizable.strings View File

@@ -0,0 +1,48 @@
1
+/* 
2
+  Localizable.strings
3
+  LovetesterNew
4
+
5
+  Created by David Walter on 25.10.14.
6
+  Copyright (c) 2014 David Walter. All rights reserved.
7
+*/
8
+
9
+"Test" = "Base";
10
+"Your name" = "Your name";
11
+"Her name" = "Her name";
12
+"His name" = "His name";
13
+"Test the Love" = "Test the Love";
14
+
15
+"Tutorial" = "Tutorial";
16
+"Upgrade to Lovetester Plus" = "Upgrade to Lovetester Plus";
17
+"Tap to change gender" = "Tap to change gender";
18
+"Enable" = "Enable";
19
+"Disable" = "Disable";
20
+"Enabled" = "Enabled";
21
+"Disabled" = "Disabled";
22
+"EasterEggDescLabel1" = "Enable to increase the";
23
+"EasterEggDescLabel2" = "result to at least 85 %";
24
+"lovetesterLine1" = "Buy Lovetester Plus";
25
+"lovetesterLine2" = "to enable this feature";
26
+
27
+"Result" = "Result";
28
+"Restart" = "Restart";
29
+
30
+"Upgrade" = "Upgrade";
31
+"Restore" = "Restore";
32
+"PlusHeader" = "What do you get?";
33
+"Plus1" = "Advertisment free experience";
34
+"Plus21" = "Enables a locked feature";
35
+"Plus22" = "which is explained in the tutorial";
36
+"Plus3" = "My love and support";
37
+
38
+"Processing" = "Processing...";
39
+"Restoring" = "Restore transaction...";
40
+"Complete" = "Complete transaction...";
41
+"Completed" = "Thank you very much";
42
+"Failed" = "Failed transaction";
43
+
44
+"Prohibited" = "Prohibited";
45
+"ParentalControl" = "Parental Control is enabled, cannot make a purchase!";
46
+
47
+"ShareText" = "fit to";
48
+"Advertisment" = "together. Tested with 'Lovetester' http://onelink.to/yyh57u";

+ 380
- 0
iOS/LovetesterNew/Base.lproj/Main.storyboard View File

@@ -0,0 +1,380 @@
1
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="6254" systemVersion="14D72i" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" initialViewController="HAa-sn-1eD">
3
+    <dependencies>
4
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="6247"/>
5
+        <capability name="Constraints to layout margins" minToolsVersion="6.0"/>
6
+    </dependencies>
7
+    <scenes>
8
+        <!--Navigation Controller-->
9
+        <scene sceneID="71S-NL-bkU">
10
+            <objects>
11
+                <navigationController id="HAa-sn-1eD" sceneMemberID="viewController">
12
+                    <navigationBar key="navigationBar" contentMode="scaleToFill" translucent="NO" id="9wc-Ii-gUJ">
13
+                        <rect key="frame" x="0.0" y="0.0" width="320" height="44"/>
14
+                        <autoresizingMask key="autoresizingMask"/>
15
+                        <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
16
+                        <color key="tintColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
17
+                        <color key="barTintColor" red="0.68235296010000002" green="0.2117647231" blue="0.2196078598" alpha="1" colorSpace="deviceRGB"/>
18
+                        <textAttributes key="titleTextAttributes">
19
+                            <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
20
+                        </textAttributes>
21
+                    </navigationBar>
22
+                    <connections>
23
+                        <segue destination="Q0z-Ae-aMO" kind="relationship" relationship="rootViewController" id="ZXo-XA-7CX"/>
24
+                    </connections>
25
+                </navigationController>
26
+                <placeholder placeholderIdentifier="IBFirstResponder" id="UIN-Y7-avD" userLabel="First Responder" sceneMemberID="firstResponder"/>
27
+            </objects>
28
+            <point key="canvasLocation" x="-592" y="76"/>
29
+        </scene>
30
+        <!--Lovetester-->
31
+        <scene sceneID="G9u-b7-Izm">
32
+            <objects>
33
+                <viewController id="Q0z-Ae-aMO" customClass="ViewController" sceneMemberID="viewController">
34
+                    <layoutGuides>
35
+                        <viewControllerLayoutGuide type="top" id="xK6-Kv-oMn"/>
36
+                        <viewControllerLayoutGuide type="bottom" id="8CS-ha-TYR"/>
37
+                    </layoutGuides>
38
+                    <view key="view" contentMode="scaleToFill" id="A3a-Ft-GP3">
39
+                        <rect key="frame" x="0.0" y="64" width="600" height="536"/>
40
+                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
41
+                        <subviews>
42
+                            <imageView opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="redraw" image="Background" translatesAutoresizingMaskIntoConstraints="NO" id="O23-UU-1G8">
43
+                                <rect key="frame" x="0.0" y="0.0" width="600" height="536"/>
44
+                            </imageView>
45
+                            <imageView opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="left" image="HeartRight" translatesAutoresizingMaskIntoConstraints="NO" id="h26-U9-Fp0">
46
+                                <rect key="frame" x="464" y="366" width="136" height="170"/>
47
+                                <constraints>
48
+                                    <constraint firstAttribute="height" constant="170" id="esY-O7-hml"/>
49
+                                    <constraint firstAttribute="width" constant="136" id="hwv-3R-RwV"/>
50
+                                </constraints>
51
+                            </imageView>
52
+                            <imageView opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="right" image="HeartLeft" translatesAutoresizingMaskIntoConstraints="NO" id="DT7-6I-NMP">
53
+                                <rect key="frame" x="0.0" y="366" width="136" height="170"/>
54
+                                <constraints>
55
+                                    <constraint firstAttribute="height" constant="170" id="G6N-Nm-d1v"/>
56
+                                    <constraint firstAttribute="width" constant="136" id="TvN-fj-FuA"/>
57
+                                </constraints>
58
+                            </imageView>
59
+                        </subviews>
60
+                        <color key="backgroundColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/>
61
+                        <constraints>
62
+                            <constraint firstItem="O23-UU-1G8" firstAttribute="top" secondItem="xK6-Kv-oMn" secondAttribute="bottom" id="0ES-F3-GJH"/>
63
+                            <constraint firstItem="8CS-ha-TYR" firstAttribute="top" secondItem="O23-UU-1G8" secondAttribute="bottom" id="0iJ-u1-REY"/>
64
+                            <constraint firstItem="8CS-ha-TYR" firstAttribute="top" secondItem="h26-U9-Fp0" secondAttribute="bottom" id="I2g-bG-8d3"/>
65
+                            <constraint firstItem="O23-UU-1G8" firstAttribute="leading" secondItem="A3a-Ft-GP3" secondAttribute="leadingMargin" constant="-16" id="QdV-Y6-uep"/>
66
+                            <constraint firstAttribute="trailingMargin" secondItem="h26-U9-Fp0" secondAttribute="trailing" constant="-16" id="Sei-rs-cE8"/>
67
+                            <constraint firstAttribute="trailingMargin" secondItem="O23-UU-1G8" secondAttribute="trailing" constant="-16" id="dW0-al-lpN"/>
68
+                            <constraint firstItem="DT7-6I-NMP" firstAttribute="leading" secondItem="A3a-Ft-GP3" secondAttribute="leadingMargin" constant="-16" id="s1m-IF-cva"/>
69
+                            <constraint firstItem="8CS-ha-TYR" firstAttribute="top" secondItem="DT7-6I-NMP" secondAttribute="bottom" id="yhI-XB-OTE"/>
70
+                        </constraints>
71
+                    </view>
72
+                    <navigationItem key="navigationItem" title="Lovetester" id="cCH-zb-c7G">
73
+                        <barButtonItem key="backBarButtonItem" title=" " id="tln-Jl-cGQ"/>
74
+                        <barButtonItem key="rightBarButtonItem" style="done" systemItem="done" id="Yij-cn-9C3"/>
75
+                    </navigationItem>
76
+                    <simulatedStatusBarMetrics key="simulatedStatusBarMetrics" statusBarStyle="lightContent"/>
77
+                </viewController>
78
+                <placeholder placeholderIdentifier="IBFirstResponder" id="LtQ-f6-vCV" userLabel="First Responder" sceneMemberID="firstResponder"/>
79
+            </objects>
80
+            <point key="canvasLocation" x="114" y="76"/>
81
+        </scene>
82
+        <!--Result-->
83
+        <scene sceneID="Nr1-tg-9RD">
84
+            <objects>
85
+                <viewController id="Eha-EB-Z0U" customClass="ResultViewController" sceneMemberID="viewController">
86
+                    <layoutGuides>
87
+                        <viewControllerLayoutGuide type="top" id="rXm-Vp-koV"/>
88
+                        <viewControllerLayoutGuide type="bottom" id="25T-BT-8Mi"/>
89
+                    </layoutGuides>
90
+                    <view key="view" contentMode="scaleToFill" id="qmz-pZ-cPA">
91
+                        <rect key="frame" x="0.0" y="64" width="600" height="600"/>
92
+                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
93
+                        <subviews>
94
+                            <imageView opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="redraw" misplaced="YES" image="Background" translatesAutoresizingMaskIntoConstraints="NO" id="pFd-Ee-Zft">
95
+                                <rect key="frame" x="0.0" y="0.0" width="600" height="536"/>
96
+                            </imageView>
97
+                            <imageView opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="right" image="HeartLeft" translatesAutoresizingMaskIntoConstraints="NO" id="CF4-EL-Qdv">
98
+                                <rect key="frame" x="0.0" y="430" width="136" height="170"/>
99
+                                <constraints>
100
+                                    <constraint firstAttribute="height" constant="170" id="9fm-8N-o76"/>
101
+                                    <constraint firstAttribute="width" constant="136" id="isS-8x-j5A"/>
102
+                                </constraints>
103
+                            </imageView>
104
+                            <imageView opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="left" image="HeartRight" translatesAutoresizingMaskIntoConstraints="NO" id="aiq-7X-j6S">
105
+                                <rect key="frame" x="464" y="430" width="136" height="170"/>
106
+                                <constraints>
107
+                                    <constraint firstAttribute="width" constant="136" id="4tz-TQ-vLz"/>
108
+                                    <constraint firstAttribute="height" constant="170" id="Xde-lv-lRc"/>
109
+                                </constraints>
110
+                            </imageView>
111
+                            <view alpha="0.90000000000000002" contentMode="scaleToFill" misplaced="YES" translatesAutoresizingMaskIntoConstraints="NO" id="zJg-dj-bao">
112
+                                <rect key="frame" x="0.0" y="20" width="600" height="220"/>
113
+                                <subviews>
114
+                                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="100 %" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="2Ra-JW-fLz">
115
+                                        <rect key="frame" x="8" y="8" width="584" height="204"/>
116
+                                        <fontDescription key="fontDescription" name="GillSans-Light" family="Gill Sans" pointSize="108"/>
117
+                                        <color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
118
+                                        <nil key="highlightedColor"/>
119
+                                    </label>
120
+                                </subviews>
121
+                                <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
122
+                                <constraints>
123
+                                    <constraint firstAttribute="trailing" secondItem="2Ra-JW-fLz" secondAttribute="trailing" constant="8" id="L6D-3l-IGX"/>
124
+                                    <constraint firstAttribute="bottom" secondItem="2Ra-JW-fLz" secondAttribute="bottom" constant="8" id="MQO-Uh-2cz"/>
125
+                                    <constraint firstItem="2Ra-JW-fLz" firstAttribute="top" secondItem="zJg-dj-bao" secondAttribute="top" constant="8" id="SQi-Xn-O52"/>
126
+                                    <constraint firstAttribute="height" constant="220" id="alM-Ff-HEr"/>
127
+                                    <constraint firstItem="2Ra-JW-fLz" firstAttribute="leading" secondItem="zJg-dj-bao" secondAttribute="leading" constant="8" id="fTu-33-pyc"/>
128
+                                </constraints>
129
+                            </view>
130
+                            <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="5xk-ng-fgA">
131
+                                <rect key="frame" x="0.0" y="255" width="600" height="45"/>
132
+                                <color key="backgroundColor" red="0.68235296010000002" green="0.2117647231" blue="0.2196078598" alpha="1" colorSpace="deviceRGB"/>
133
+                                <constraints>
134
+                                    <constraint firstAttribute="height" constant="45" id="Ut7-8z-jcJ"/>
135
+                                    <constraint firstAttribute="height" relation="greaterThanOrEqual" constant="45" id="dl1-rn-qNn"/>
136
+                                </constraints>
137
+                                <color key="tintColor" red="0.68235296010000002" green="0.2117647231" blue="0.2196078598" alpha="1" colorSpace="deviceRGB"/>
138
+                                <state key="normal" title="RestartButton">
139
+                                    <color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
140
+                                    <color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
141
+                                </state>
142
+                                <connections>
143
+                                    <action selector="Restart:" destination="Eha-EB-Z0U" eventType="touchUpInside" id="LLI-CH-0F5"/>
144
+                                </connections>
145
+                            </button>
146
+                            <adBannerView hidden="YES" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" translatesAutoresizingMaskIntoConstraints="NO" id="xJn-rL-A1n">
147
+                                <rect key="frame" x="0.0" y="550" width="320" height="50"/>
148
+                                <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
149
+                                <constraints>
150
+                                    <constraint firstAttribute="height" constant="50" id="LqS-Yx-r5K"/>
151
+                                    <constraint firstAttribute="width" constant="320" id="yg1-vX-cUI"/>
152
+                                </constraints>
153
+                                <connections>
154
+                                    <outlet property="delegate" destination="Eha-EB-Z0U" id="jGy-uE-Q90"/>
155
+                                </connections>
156
+                            </adBannerView>
157
+                        </subviews>
158
+                        <color key="backgroundColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/>
159
+                        <constraints>
160
+                            <constraint firstItem="xJn-rL-A1n" firstAttribute="centerX" secondItem="zJg-dj-bao" secondAttribute="centerX" id="23u-lb-cLD"/>
161
+                            <constraint firstAttribute="trailingMargin" relation="lessThanOrEqual" secondItem="xJn-rL-A1n" secondAttribute="trailing" constant="124" id="6GD-oS-ZsW"/>
162
+                            <constraint firstItem="25T-BT-8Mi" firstAttribute="top" secondItem="aiq-7X-j6S" secondAttribute="bottom" id="Elm-LV-SDi"/>
163
+                            <constraint firstItem="xJn-rL-A1n" firstAttribute="leading" relation="lessThanOrEqual" secondItem="qmz-pZ-cPA" secondAttribute="leadingMargin" constant="124" id="F5A-VH-rt6"/>
164
+                            <constraint firstItem="zJg-dj-bao" firstAttribute="leading" secondItem="qmz-pZ-cPA" secondAttribute="leadingMargin" constant="-16" id="FRw-j0-Rqc"/>
165
+                            <constraint firstItem="25T-BT-8Mi" firstAttribute="top" secondItem="CF4-EL-Qdv" secondAttribute="bottom" id="GMZ-fe-LLJ"/>
166
+                            <constraint firstAttribute="trailingMargin" secondItem="pFd-Ee-Zft" secondAttribute="trailing" constant="-16" id="Gm6-yo-vXy"/>
167
+                            <constraint firstItem="25T-BT-8Mi" firstAttribute="top" secondItem="xJn-rL-A1n" secondAttribute="bottom" id="KPO-zT-hmt"/>
168
+                            <constraint firstAttribute="trailingMargin" secondItem="zJg-dj-bao" secondAttribute="trailing" constant="-16" id="MRb-lM-ODv"/>
169
+                            <constraint firstItem="pFd-Ee-Zft" firstAttribute="leading" secondItem="qmz-pZ-cPA" secondAttribute="leadingMargin" constant="-16" id="O2G-pY-5jP"/>
170
+                            <constraint firstItem="5xk-ng-fgA" firstAttribute="top" secondItem="qmz-pZ-cPA" secondAttribute="topMargin" constant="255" id="QAz-pY-Skp"/>
171
+                            <constraint firstAttribute="trailingMargin" secondItem="5xk-ng-fgA" secondAttribute="trailing" constant="-16" id="Qiw-Nt-0QX"/>
172
+                            <constraint firstItem="pFd-Ee-Zft" firstAttribute="top" secondItem="rXm-Vp-koV" secondAttribute="bottom" id="TPE-nR-sft"/>
173
+                            <constraint firstItem="25T-BT-8Mi" firstAttribute="top" secondItem="pFd-Ee-Zft" secondAttribute="bottom" id="bs9-UT-RJA"/>
174
+                            <constraint firstItem="CF4-EL-Qdv" firstAttribute="leading" secondItem="qmz-pZ-cPA" secondAttribute="leadingMargin" constant="-16" id="ejc-5f-S8U"/>
175
+                            <constraint firstItem="xJn-rL-A1n" firstAttribute="leading" secondItem="qmz-pZ-cPA" secondAttribute="leadingMargin" constant="-16" id="jZD-d6-XkA"/>
176
+                            <constraint firstAttribute="trailingMargin" secondItem="aiq-7X-j6S" secondAttribute="trailing" constant="-16" id="kcp-1L-ryP"/>
177
+                            <constraint firstItem="zJg-dj-bao" fi