Browse Source

Add android

android
Jonas Franz 4 years ago
parent
commit
61a1e1caeb
Signed by: JonasFranzDEV
GPG Key ID: 506AEEBE80BEDECD
  1. 1
      android/.gitignore
  2. 38
      android/build.gradle
  3. 21
      android/proguard-rules.pro
  4. 21
      android/src/main/AndroidManifest.xml
  5. 14
      android/src/main/java/software/jonasfranz/android/MainActivity.kt
  6. 5
      android/src/main/java/software/jonasfranz/common/ExceptPlatform.kt
  7. 34
      android/src/main/res/drawable-v24/ic_launcher_foreground.xml
  8. 170
      android/src/main/res/drawable/ic_launcher_background.xml
  9. 18
      android/src/main/res/layout/activity_main.xml
  10. 5
      android/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
  11. 5
      android/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
  12. BIN
      android/src/main/res/mipmap-hdpi/ic_launcher.png
  13. BIN
      android/src/main/res/mipmap-hdpi/ic_launcher_round.png
  14. BIN
      android/src/main/res/mipmap-mdpi/ic_launcher.png
  15. BIN
      android/src/main/res/mipmap-mdpi/ic_launcher_round.png
  16. BIN
      android/src/main/res/mipmap-xhdpi/ic_launcher.png
  17. BIN
      android/src/main/res/mipmap-xhdpi/ic_launcher_round.png
  18. BIN
      android/src/main/res/mipmap-xxhdpi/ic_launcher.png
  19. BIN
      android/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
  20. BIN
      android/src/main/res/mipmap-xxxhdpi/ic_launcher.png
  21. BIN
      android/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
  22. 6
      android/src/main/res/values/colors.xml
  23. 3
      android/src/main/res/values/strings.xml
  24. 11
      android/src/main/res/values/styles.xml
  25. 17
      android/src/test/java/software/jonasfranz/android/ExampleUnitTest.kt
  26. 3
      build.gradle
  27. 6
      common/src/main/kotlin/Common.kt
  28. 2
      common/src/main/kotlin/software/jonasfranz/common/ExpectPlatform.kt
  29. 2
      common/src/test/kotlin/CommonTest.kt
  30. 2
      gradle.properties
  31. 4
      gradle/wrapper/gradle-wrapper.properties
  32. 2
      js/src/main/kotlin/software/jonasfranz/common/ActualPlatform.kt
  33. 2
      js/src/test/kotlin/ActualPlatformTest.kt
  34. 4
      jvm/src/main/kotlin/software/jonasfranz/common/ActualPlatform.kt
  35. 1
      jvm/src/test/kotlin/ActualPlatformTest.kt
  36. 1
      native/src/main/kotlin/software/jonasfranz/common/ActualPlatform.kt
  37. 2
      settings.gradle

1
android/.gitignore vendored

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

38
android/build.gradle

@ -0,0 +1,38 @@ @@ -0,0 +1,38 @@
apply plugin: 'com.android.application'
apply plugin: 'kotlin-platform-android'
android {
compileSdkVersion 26
defaultConfig {
applicationId "software.jonasfranz.android"
minSdkVersion 15
targetSdkVersion 26
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
repositories {
google()
}
dependencies {
expectedBy project(":common")
implementation "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version"
implementation 'com.android.support:appcompat-v7:26.1.0'
implementation 'com.android.support.constraint:constraint-layout:1.0.2'
}

21
android/proguard-rules.pro vendored

@ -0,0 +1,21 @@ @@ -0,0 +1,21 @@
# Add project specific ProGuard rules here.
# You can control the set of applied configuration files using the
# proguardFiles setting in build.gradle.
#
# For more details, see
# http://developer.android.com/guide/developing/tools/proguard.html
# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
# public *;
#}
# Uncomment this to preserve the line number information for
# debugging stack traces.
#-keepattributes SourceFile,LineNumberTable
# If you keep the line number information, uncomment this to
# hide the original source file name.
#-renamesourcefileattribute SourceFile

21
android/src/main/AndroidManifest.xml

@ -0,0 +1,21 @@ @@ -0,0 +1,21 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="software.jonasfranz.android">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>

14
android/src/main/java/software/jonasfranz/android/MainActivity.kt

@ -0,0 +1,14 @@ @@ -0,0 +1,14 @@
package software.jonasfranz.android
import android.support.v7.app.AppCompatActivity
import android.os.Bundle
import software.jonasfranz.common.Common
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
println(Common().platform())
}
}

5
android/src/main/java/software/jonasfranz/common/ExceptPlatform.kt

@ -0,0 +1,5 @@ @@ -0,0 +1,5 @@
package software.jonasfranz.common
actual class Platform actual constructor() {
actual fun platform(): String = "platform-android"
}

34
android/src/main/res/drawable-v24/ic_launcher_foreground.xml

@ -0,0 +1,34 @@ @@ -0,0 +1,34 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:aapt="http://schemas.android.com/aapt"
android:width="108dp"
android:height="108dp"
android:viewportHeight="108"
android:viewportWidth="108">
<path
android:fillType="evenOdd"
android:pathData="M32,64C32,64 38.39,52.99 44.13,50.95C51.37,48.37 70.14,49.57 70.14,49.57L108.26,87.69L108,109.01L75.97,107.97L32,64Z"
android:strokeColor="#00000000"
android:strokeWidth="1">
<aapt:attr name="android:fillColor">
<gradient
android:endX="78.5885"
android:endY="90.9159"
android:startX="48.7653"
android:startY="61.0927"
android:type="linear">
<item
android:color="#44000000"
android:offset="0.0" />
<item
android:color="#00000000"
android:offset="1.0" />
</gradient>
</aapt:attr>
</path>
<path
android:fillColor="#FFFFFF"
android:fillType="nonZero"
android:pathData="M66.94,46.02L66.94,46.02C72.44,50.07 76,56.61 76,64L32,64C32,56.61 35.56,50.11 40.98,46.06L36.18,41.19C35.45,40.45 35.45,39.3 36.18,38.56C36.91,37.81 38.05,37.81 38.78,38.56L44.25,44.05C47.18,42.57 50.48,41.71 54,41.71C57.48,41.71 60.78,42.57 63.68,44.05L69.11,38.56C69.84,37.81 70.98,37.81 71.71,38.56C72.44,39.3 72.44,40.45 71.71,41.19L66.94,46.02ZM62.94,56.92C64.08,56.92 65,56.01 65,54.88C65,53.76 64.08,52.85 62.94,52.85C61.8,52.85 60.88,53.76 60.88,54.88C60.88,56.01 61.8,56.92 62.94,56.92ZM45.06,56.92C46.2,56.92 47.13,56.01 47.13,54.88C47.13,53.76 46.2,52.85 45.06,52.85C43.92,52.85 43,53.76 43,54.88C43,56.01 43.92,56.92 45.06,56.92Z"
android:strokeColor="#00000000"
android:strokeWidth="1" />
</vector>

170
android/src/main/res/drawable/ic_launcher_background.xml

@ -0,0 +1,170 @@ @@ -0,0 +1,170 @@
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="108dp"
android:height="108dp"
android:viewportHeight="108"
android:viewportWidth="108">
<path
android:fillColor="#26A69A"
android:pathData="M0,0h108v108h-108z" />
<path
android:fillColor="#00000000"
android:pathData="M9,0L9,108"
android:strokeColor="#33FFFFFF"
android:strokeWidth="0.8" />
<path
android:fillColor="#00000000"
android:pathData="M19,0L19,108"
android:strokeColor="#33FFFFFF"
android:strokeWidth="0.8" />
<path
android:fillColor="#00000000"
android:pathData="M29,0L29,108"
android:strokeColor="#33FFFFFF"
android:strokeWidth="0.8" />
<path
android:fillColor="#00000000"
android:pathData="M39,0L39,108"
android:strokeColor="#33FFFFFF"
android:strokeWidth="0.8" />
<path
android:fillColor="#00000000"
android:pathData="M49,0L49,108"
android:strokeColor="#33FFFFFF"
android:strokeWidth="0.8" />
<path
android:fillColor="#00000000"
android:pathData="M59,0L59,108"
android:strokeColor="#33FFFFFF"
android:strokeWidth="0.8" />
<path
android:fillColor="#00000000"
android:pathData="M69,0L69,108"
android:strokeColor="#33FFFFFF"
android:strokeWidth="0.8" />
<path
android:fillColor="#00000000"
android:pathData="M79,0L79,108"
android:strokeColor="#33FFFFFF"
android:strokeWidth="0.8" />
<path
android:fillColor="#00000000"
android:pathData="M89,0L89,108"
android:strokeColor="#33FFFFFF"
android:strokeWidth="0.8" />
<path
android:fillColor="#00000000"
android:pathData="M99,0L99,108"
android:strokeColor="#33FFFFFF"
android:strokeWidth="0.8" />
<path
android:fillColor="#00000000"
android:pathData="M0,9L108,9"
android:strokeColor="#33FFFFFF"
android:strokeWidth="0.8" />
<path
android:fillColor="#00000000"
android:pathData="M0,19L108,19"
android:strokeColor="#33FFFFFF"
android:strokeWidth="0.8" />
<path
android:fillColor="#00000000"
android:pathData="M0,29L108,29"
android:strokeColor="#33FFFFFF"
android:strokeWidth="0.8" />
<path
android:fillColor="#00000000"
android:pathData="M0,39L108,39"
android:strokeColor="#33FFFFFF"
android:strokeWidth="0.8" />
<path
android:fillColor="#00000000"
android:pathData="M0,49L108,49"
android:strokeColor="#33FFFFFF"
android:strokeWidth="0.8" />
<path
android:fillColor="#00000000"
android:pathData="M0,59L108,59"
android:strokeColor="#33FFFFFF"
android:strokeWidth="0.8" />
<path
android:fillColor="#00000000"
android:pathData="M0,69L108,69"
android:strokeColor="#33FFFFFF"
android:strokeWidth="0.8" />
<path
android:fillColor="#00000000"
android:pathData="M0,79L108,79"
android:strokeColor="#33FFFFFF"
android:strokeWidth="0.8" />
<path
android:fillColor="#00000000"
android:pathData="M0,89L108,89"
android:strokeColor="#33FFFFFF"
android:strokeWidth="0.8" />
<path
android:fillColor="#00000000"
android:pathData="M0,99L108,99"
android:strokeColor="#33FFFFFF"
android:strokeWidth="0.8" />
<path
android:fillColor="#00000000"
android:pathData="M19,29L89,29"
android:strokeColor="#33FFFFFF"
android:strokeWidth="0.8" />
<path
android:fillColor="#00000000"
android:pathData="M19,39L89,39"
android:strokeColor="#33FFFFFF"
android:strokeWidth="0.8" />
<path
android:fillColor="#00000000"
android:pathData="M19,49L89,49"
android:strokeColor="#33FFFFFF"
android:strokeWidth="0.8" />
<path
android:fillColor="#00000000"
android:pathData="M19,59L89,59"
android:strokeColor="#33FFFFFF"
android:strokeWidth="0.8" />
<path
android:fillColor="#00000000"
android:pathData="M19,69L89,69"
android:strokeColor="#33FFFFFF"
android:strokeWidth="0.8" />
<path
android:fillColor="#00000000"
android:pathData="M19,79L89,79"
android:strokeColor="#33FFFFFF"
android:strokeWidth="0.8" />
<path
android:fillColor="#00000000"
android:pathData="M29,19L29,89"
android:strokeColor="#33FFFFFF"
android:strokeWidth="0.8" />
<path
android:fillColor="#00000000"
android:pathData="M39,19L39,89"
android:strokeColor="#33FFFFFF"
android:strokeWidth="0.8" />
<path
android:fillColor="#00000000"
android:pathData="M49,19L49,89"
android:strokeColor="#33FFFFFF"
android:strokeWidth="0.8" />
<path
android:fillColor="#00000000"
android:pathData="M59,19L59,89"
android:strokeColor="#33FFFFFF"
android:strokeWidth="0.8" />
<path
android:fillColor="#00000000"
android:pathData="M69,19L69,89"
android:strokeColor="#33FFFFFF"
android:strokeWidth="0.8" />
<path
android:fillColor="#00000000"
android:pathData="M79,19L79,89"
android:strokeColor="#33FFFFFF"
android:strokeWidth="0.8" />
</vector>

18
android/src/main/res/layout/activity_main.xml

@ -0,0 +1,18 @@ @@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</android.support.constraint.ConstraintLayout>

5
android/src/main/res/mipmap-anydpi-v26/ic_launcher.xml

@ -0,0 +1,5 @@ @@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@drawable/ic_launcher_background" />
<foreground android:drawable="@drawable/ic_launcher_foreground" />
</adaptive-icon>

5
android/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml

@ -0,0 +1,5 @@ @@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@drawable/ic_launcher_background" />
<foreground android:drawable="@drawable/ic_launcher_foreground" />
</adaptive-icon>

BIN
android/src/main/res/mipmap-hdpi/ic_launcher.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

BIN
android/src/main/res/mipmap-hdpi/ic_launcher_round.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

BIN
android/src/main/res/mipmap-mdpi/ic_launcher.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

BIN
android/src/main/res/mipmap-mdpi/ic_launcher_round.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

BIN
android/src/main/res/mipmap-xhdpi/ic_launcher.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

BIN
android/src/main/res/mipmap-xhdpi/ic_launcher_round.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.9 KiB

BIN
android/src/main/res/mipmap-xxhdpi/ic_launcher.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 KiB

BIN
android/src/main/res/mipmap-xxhdpi/ic_launcher_round.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

BIN
android/src/main/res/mipmap-xxxhdpi/ic_launcher.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.0 KiB

BIN
android/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

6
android/src/main/res/values/colors.xml

@ -0,0 +1,6 @@ @@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="colorPrimary">#3F51B5</color>
<color name="colorPrimaryDark">#303F9F</color>
<color name="colorAccent">#FF4081</color>
</resources>

3
android/src/main/res/values/strings.xml

@ -0,0 +1,3 @@ @@ -0,0 +1,3 @@
<resources>
<string name="app_name">android</string>
</resources>

11
android/src/main/res/values/styles.xml

@ -0,0 +1,11 @@ @@ -0,0 +1,11 @@
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
</resources>

17
android/src/test/java/software/jonasfranz/android/ExampleUnitTest.kt

@ -0,0 +1,17 @@ @@ -0,0 +1,17 @@
package software.jonasfranz.android
import org.junit.Test
import org.junit.Assert.*
/**
* Example local unit test, which will execute on the development machine (host).
*
* See [testing documentation](http://d.android.com/tools/testing).
*/
class ExampleUnitTest {
@Test
fun addition_isCorrect() {
assertEquals(4, 2 + 2)
}
}

3
build.gradle

@ -1,6 +1,8 @@ @@ -1,6 +1,8 @@
buildscript {
repositories {
jcenter()
google()
maven { url "http://kotlin.bintray.com/kotlinx" }
maven { url "https://plugins.gradle.org/m2/" }
maven { url "https://dl.bintray.com/jetbrains/kotlin-native-dependencies" }
@ -9,6 +11,7 @@ buildscript { @@ -9,6 +11,7 @@ buildscript {
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath "com.moowork.gradle:gradle-node-plugin:$gradle_node_version"
classpath "org.jetbrains.kotlin:kotlin-native-gradle-plugin:$kotlin_native_version"
classpath 'com.android.tools.build:gradle:3.1.0'
}
}

6
common/src/main/kotlin/Common.kt

@ -1,6 +0,0 @@ @@ -1,6 +0,0 @@
// This code is common across all backends
class Common {
fun common(): String = "common"
fun platform(): String = Platform().platform() // delegates to platform-specific
}

2
common/src/main/kotlin/ExpectPlatform.kt → common/src/main/kotlin/software/jonasfranz/common/ExpectPlatform.kt

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
package software.jonasfranz.common
// This class is expected to have platform-specific impl
expect class Platform() {
fun platform(): String

2
common/src/test/kotlin/CommonTest.kt

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
import kotlin.test.*
import software.jonasfranz.common.Common
class CommonTest {
@Test

2
gradle.properties

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
kotlin_version = 1.2.20
kotlin_version = 1.2.31
gradle_node_version = 1.2.0
node_version = 8.9.3

4
gradle/wrapper/gradle-wrapper.properties vendored

@ -1,6 +1,6 @@ @@ -1,6 +1,6 @@
#Wed Jan 24 17:11:50 MSK 2018
#Mon Apr 02 22:09:09 CEST 2018
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-4.0-all.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-all.zip

2
js/src/main/kotlin/ActualPlatform.kt → js/src/main/kotlin/software/jonasfranz/common/ActualPlatform.kt

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
package software.jonasfranz.common
actual class Platform actual constructor() {
actual fun platform(): String = "platform-js"
}

2
js/src/test/kotlin/ActualPlatformTest.kt

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
import kotlin.test.*
import software.jonasfranz.common.Platform
class ActualPlatformTest {
@Test

4
jvm/src/main/kotlin/ActualPlatform.kt → jvm/src/main/kotlin/software/jonasfranz/common/ActualPlatform.kt

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
package software.jonasfranz.common
actual class Platform actual constructor() {
actual fun platform(): String = "platform-jvm"
}
}

1
jvm/src/test/kotlin/ActualPlatformTest.kt

@ -1,3 +1,4 @@ @@ -1,3 +1,4 @@
import software.jonasfranz.common.Platform
import kotlin.test.*
class ActualPlatformTest {

1
native/src/main/kotlin/ActualPlatform.kt → native/src/main/kotlin/software/jonasfranz/common/ActualPlatform.kt

@ -1,3 +1,4 @@ @@ -1,3 +1,4 @@
package software.jonasfranz.common
actual class Platform actual constructor() {
actual fun platform(): String = "platform-native"

2
settings.gradle

@ -1,6 +1,8 @@ @@ -1,6 +1,8 @@
include ':android'
rootProject.name = 'KotlinMultiplatformPlayground'
include 'common'
include 'jvm'
include 'js'
include 'native'

Loading…
Cancel
Save