kmm integration

WIP refactoring synthetic to viewBinding
kmm
Razmig Sarkissian 5 years ago
parent 89526e63ba
commit 1052f27d19
  1. 4
      app/build.gradle
  2. 48
      app/src/main/java/net/pokeranalytics/android/ui/activity/ColorPickerActivity.kt
  3. 22
      app/src/main/java/net/pokeranalytics/android/ui/fragment/ComparisonChartFragment.kt
  4. 2
      gradle.properties
  5. 4
      gradle/wrapper/gradle-wrapper.properties
  6. 1
      settings.gradle
  7. 42
      shared/build.gradle.kts
  8. 2
      shared/src/androidMain/AndroidManifest.xml
  9. 5
      shared/src/androidMain/kotlin/net/pokeranalytics/shared/Platform.kt
  10. 12
      shared/src/androidTest/kotlin/net/pokeranalytics/shared/androidTest.kt
  11. 7
      shared/src/commonMain/kotlin/net/pokeranalytics/shared/Greeting.kt
  12. 5
      shared/src/commonMain/kotlin/net/pokeranalytics/shared/Platform.kt
  13. 8
      shared/src/iosMain/kotlin/net/pokeranalytics/shared/Platform.kt
  14. 12
      shared/src/iosTest/kotlin/net/pokeranalytics/shared/iosTest.kt

@ -93,6 +93,10 @@ android {
}
}
buildFeatures {
viewBinding true
}
}
dependencies {

@ -8,8 +8,8 @@ import android.os.Build
import android.os.Bundle
import android.view.View
import androidx.fragment.app.Fragment
import kotlinx.android.synthetic.main.activity_color_picker.*
import net.pokeranalytics.android.R
import net.pokeranalytics.android.databinding.ActivityColorPickerBinding
import net.pokeranalytics.android.ui.activity.components.BaseActivity
class ColorPickerActivity : BaseActivity() {
@ -33,15 +33,17 @@ class ColorPickerActivity : BaseActivity() {
}
override fun onCreate(savedInstanceState: Bundle?) {
private lateinit var binding: ActivityColorPickerBinding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.O) { // used to fix Oreo crash
requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_PORTRAIT
}
setContentView(R.layout.activity_color_picker)
binding = ActivityColorPickerBinding.inflate(layoutInflater)
setContentView(binding.root)
this.title = getString(R.string.select_a_color)
initUI()
}
@ -49,29 +51,29 @@ class ColorPickerActivity : BaseActivity() {
* Init UI
*/
private fun initUI() {
color1.setOnClickListener { manageSelectedColor(it) }
color2.setOnClickListener { manageSelectedColor(it) }
color3.setOnClickListener { manageSelectedColor(it) }
color4.setOnClickListener { manageSelectedColor(it) }
color5.setOnClickListener { manageSelectedColor(it) }
color6.setOnClickListener { manageSelectedColor(it) }
color7.setOnClickListener { manageSelectedColor(it) }
color8.setOnClickListener { manageSelectedColor(it) }
color9.setOnClickListener { manageSelectedColor(it) }
binding.color1.setOnClickListener { manageSelectedColor(it) }
binding.color2.setOnClickListener { manageSelectedColor(it) }
binding.color3.setOnClickListener { manageSelectedColor(it) }
binding.color4.setOnClickListener { manageSelectedColor(it) }
binding.color5.setOnClickListener { manageSelectedColor(it) }
binding.color6.setOnClickListener { manageSelectedColor(it) }
binding.color7.setOnClickListener { manageSelectedColor(it) }
binding.color8.setOnClickListener { manageSelectedColor(it) }
binding.color9.setOnClickListener { manageSelectedColor(it) }
}
private fun manageSelectedColor(view: View) {
val color = when(view) {
color1 -> getColor(R.color.player_color_1)
color2 -> getColor(R.color.player_color_2)
color3 -> getColor(R.color.player_color_3)
color4 -> getColor(R.color.player_color_4)
color5 -> getColor(R.color.player_color_5)
color6 -> getColor(R.color.player_color_6)
color7 -> getColor(R.color.player_color_7)
color8 -> getColor(R.color.player_color_8)
color9 -> getColor(R.color.player_color_9)
binding.color1 -> getColor(R.color.player_color_1)
binding.color2 -> getColor(R.color.player_color_2)
binding.color3 -> getColor(R.color.player_color_3)
binding.color4 -> getColor(R.color.player_color_4)
binding.color5 -> getColor(R.color.player_color_5)
binding.color6 -> getColor(R.color.player_color_6)
binding.color7 -> getColor(R.color.player_color_7)
binding.color8 -> getColor(R.color.player_color_8)
binding.color9 -> getColor(R.color.player_color_9)
else -> getColor(R.color.player_color_1)
}

@ -2,8 +2,8 @@ package net.pokeranalytics.android.ui.fragment
import android.os.Bundle
import android.view.*
import kotlinx.android.synthetic.main.fragment_comparison_chart.*
import net.pokeranalytics.android.R
import net.pokeranalytics.android.databinding.FragmentComparisonChartBinding
import net.pokeranalytics.android.ui.modules.bankroll.BankrollActivity
import net.pokeranalytics.android.ui.activity.SettingsActivity
import net.pokeranalytics.android.ui.adapter.ComparisonChartPagerAdapter
@ -38,12 +38,22 @@ class ComparisonChartFragment : BaseFragment(), StaticRowRepresentableDataSource
private lateinit var viewPagerAdapter: ComparisonChartPagerAdapter
private var comparisonChartMenu: Menu? = null
private var _binding: FragmentComparisonChartBinding? = null
// This property is only valid between onCreateView and
// onDestroyView.
private val binding get() = _binding!!
override fun onDestroyView() {
super.onDestroyView()
_binding = null
}
// Life Cycle
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
return inflater.inflate(R.layout.fragment_comparison_chart, container, false)
_binding = FragmentComparisonChartBinding.inflate(inflater, container, false)
return binding.root
//return inflater.inflate(R.layout.fragment_comparison_chart, container, false)
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
@ -97,9 +107,9 @@ class ComparisonChartFragment : BaseFragment(), StaticRowRepresentableDataSource
parentActivity?.let {
viewPagerAdapter = ComparisonChartPagerAdapter(requireContext(), it.supportFragmentManager)
viewPager.adapter = viewPagerAdapter
viewPager.offscreenPageLimit = 2
tabs.setupWithViewPager(viewPager)
binding.viewPager.adapter = viewPagerAdapter
binding.viewPager.offscreenPageLimit = 2
binding.tabs.setupWithViewPager(binding.viewPager)
}
}

@ -35,4 +35,6 @@ android.enableBuildCache=true
# Enable simple gradle caching
org.gradle.caching=true
kotlin.mpp.enableGranularSourceSetsMetadata=true
kotlin.native.enableDependencyPropagation=false

@ -1,6 +1,6 @@
#Tue Dec 08 11:26:22 CET 2020
#Wed Dec 09 14:45:29 CET 2020
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-6.5-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-6.5-all.zip

@ -1 +1,2 @@
include ':shared'
include ':app'

@ -0,0 +1,42 @@
plugins {
kotlin("multiplatform")
id("com.android.library")
}
kotlin {
android()
ios {
binaries {
framework {
baseName = "shared"
}
}
}
sourceSets {
val commonMain by getting
val commonTest by getting {
dependencies {
implementation(kotlin("test-common"))
implementation(kotlin("test-annotations-common"))
}
}
val androidMain by getting
val androidTest by getting {
dependencies {
implementation(kotlin("test-junit"))
implementation("junit:junit:4.13")
}
}
val iosMain by getting
val iosTest by getting
}
}
android {
compileSdkVersion(29)
defaultConfig {
minSdkVersion(24)
targetSdkVersion(29)
}
sourceSets["main"].manifest.srcFile("src/androidMain/AndroidManifest.xml")
}

@ -0,0 +1,2 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest package="net.pokeranalytics.shared" />

@ -0,0 +1,5 @@
package net.pokeranalytics.shared
actual class Platform actual constructor() {
actual val platform: String = "Android ${android.os.Build.VERSION.SDK_INT}"
}

@ -0,0 +1,12 @@
package net.pokeranalytics.shared
import org.junit.Assert.assertTrue
import org.junit.Test
class GreetingTest {
@Test
fun testExample() {
assertTrue("Check Android is mentioned", Greeting().greeting().contains("Android"))
}
}

@ -0,0 +1,7 @@
package net.pokeranalytics.shared
class Greeting {
fun greeting(): String {
return "Hello, ${Platform().platform}!"
}
}

@ -0,0 +1,5 @@
package net.pokeranalytics.shared
expect class Platform() {
val platform: String
}

@ -0,0 +1,8 @@
package net.pokeranalytics.shared
import platform.UIKit.UIDevice
actual class Platform actual constructor() {
actual val platform: String =
UIDevice.currentDevice.systemName() + " " + UIDevice.currentDevice.systemVersion
}

@ -0,0 +1,12 @@
package net.pokeranalytics.shared
import kotlin.test.Test
import kotlin.test.assertTrue
class GreetingTest {
@Test
fun testExample() {
assertTrue(Greeting().greeting().contains("iOS"), "Check iOS is mentioned")
}
}
Loading…
Cancel
Save