Skip to content
This repository has been archived by the owner on Jul 8, 2022. It is now read-only.

Commit

Permalink
Try to fix Android
Browse files Browse the repository at this point in the history
  • Loading branch information
soywiz-invideo committed Mar 3, 2022
1 parent b402305 commit b54da9c
Show file tree
Hide file tree
Showing 6 changed files with 23 additions and 79 deletions.
2 changes: 1 addition & 1 deletion gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ enableKotlinMobileWatchos=false
org.gradle.jvmargs=-Xmx2g -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
#org.gradle.jvmargs=-Xmx3g -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
org.gradle.daemon=true
org.gradle.configureondemand=true
#org.gradle.configureondemand=true

# -Dorg.gradle.debug=true --no-daemon
# export GRADLE_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005 -Dorg.gradle.daemon=false -Dkotlin.compiler.execution.strategy=in-process"
Expand Down
52 changes: 0 additions & 52 deletions kmem/src/androidMain/kotlin/com/soywiz/kmem/Fast32BufferAndroid.kt

This file was deleted.

6 changes: 0 additions & 6 deletions kmem/src/androidMain/kotlin/com/soywiz/kmem/KmemGCAndroid.kt

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,23 +1,23 @@
package com.soywiz.korge.service.vibration

import android.annotation.SuppressLint
import android.os.VibrationEffect
import android.os.Vibrator
import androidx.core.content.ContextCompat.getSystemService
import com.soywiz.klock.TimeSpan
import com.soywiz.korge.android.androidActivity
import com.soywiz.korge.internal.*
import com.soywiz.korge.view.Views
import kotlin.math.abs
import kotlin.math.min
import android.annotation.*
import android.os.*
import com.soywiz.klock.*
import com.soywiz.korge.android.*
import com.soywiz.korge.view.*
import kotlin.math.*

actual class NativeVibration actual constructor(views: Views) {

companion object {
private const val NO_REPEAT = -1
}

private val vibrator = getSystemService(views.androidActivity, Vibrator::class.java)
private val vibrator: Vibrator? = if (Build.VERSION.SDK_INT >= 23) {
views.androidActivity.getSystemService(Vibrator::class.java)
} else {
null
}

/**
* @param timings list of alternating ON-OFF durations in milliseconds. Staring with ON.
Expand All @@ -27,12 +27,14 @@ actual class NativeVibration actual constructor(views: Views) {
@SuppressLint("MissingPermission")
actual fun vibratePattern(timings: Array<TimeSpan>, amplitudes: Array<Double>) {
val onOffTimings = (listOf(TimeSpan.NIL) + timings).map { it.millisecondsLong }.toLongArray()
if (amplitudes.size != onOffTimings.size) {
vibrator?.vibrate(VibrationEffect.createWaveform(onOffTimings, NO_REPEAT))
} else {
vibrator?.vibrate(
VibrationEffect.createWaveform(onOffTimings, amplitudes.map {it.toAndroidAmplitude()}.toIntArray(), NO_REPEAT)
)
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
if (amplitudes.size != onOffTimings.size) {
vibrator?.vibrate(VibrationEffect.createWaveform(onOffTimings, NO_REPEAT))
} else {
vibrator?.vibrate(
VibrationEffect.createWaveform(onOffTimings, amplitudes.map {it.toAndroidAmplitude()}.toIntArray(), NO_REPEAT)
)
}
}
}

Expand All @@ -43,7 +45,9 @@ actual class NativeVibration actual constructor(views: Views) {
@ExperimentalUnsignedTypes
@SuppressLint("MissingPermission")
actual fun vibrate(time: TimeSpan, amplitude: Double) {
vibrator?.vibrate(VibrationEffect.createOneShot(time.millisecondsLong, amplitude.toAndroidAmplitude()))
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
vibrator?.vibrate(VibrationEffect.createOneShot(time.millisecondsLong, amplitude.toAndroidAmplitude()))
}
}

/**
Expand All @@ -53,5 +57,4 @@ actual class NativeVibration actual constructor(views: Views) {
val amplitude = 255 * abs(this)
return min(amplitude, 255.0).toInt()
}

}
1 change: 0 additions & 1 deletion korgw/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@ dependencies {
add("commonMainApi", project(":korim"))
add("jvmMainApi", "net.java.dev.jna:jna:$jnaVersion")
add("jvmMainApi", "net.java.dev.jna:jna-platform:$jnaVersion")
//if (hasAndroid) add("androidMainApi", "androidx.appcompat:appcompat:1.3.0")
}

afterEvaluate {
Expand Down

0 comments on commit b54da9c

Please sign in to comment.