Prepare to release beta
This commit is contained in:
parent
5bb270132f
commit
2b41e938c1
Binary file not shown.
|
@ -8,7 +8,7 @@ android {
|
||||||
minSdkVersion 21
|
minSdkVersion 21
|
||||||
targetSdkVersion 28
|
targetSdkVersion 28
|
||||||
versionCode 1
|
versionCode 1
|
||||||
versionName "1.0.9"
|
versionName "1.0.9-beta"
|
||||||
|
|
||||||
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
||||||
|
|
||||||
|
|
|
@ -4,9 +4,7 @@ import android.graphics.Bitmap
|
||||||
import android.graphics.Canvas
|
import android.graphics.Canvas
|
||||||
import android.graphics.Color
|
import android.graphics.Color
|
||||||
import android.graphics.Paint
|
import android.graphics.Paint
|
||||||
import androidx.annotation.ColorInt
|
|
||||||
import oupson.apng.utils.Utils
|
import oupson.apng.utils.Utils
|
||||||
import java.util.*
|
|
||||||
|
|
||||||
// TODO Work on this class
|
// TODO Work on this class
|
||||||
class BitmapDiffCalculator(firstBitmap: Bitmap, secondBitmap : Bitmap) {
|
class BitmapDiffCalculator(firstBitmap: Bitmap, secondBitmap : Bitmap) {
|
||||||
|
@ -67,52 +65,4 @@ class BitmapDiffCalculator(firstBitmap: Bitmap, secondBitmap : Bitmap) {
|
||||||
val btm = Bitmap.createBitmap(difBitmap, xOffset, yOffset, width - xOffset, height - yOffset)
|
val btm = Bitmap.createBitmap(difBitmap, xOffset, yOffset, width - xOffset, height - yOffset)
|
||||||
res = btm
|
res = btm
|
||||||
}
|
}
|
||||||
|
|
||||||
fun Bitmap.trim(@ColorInt color: Int = Color.TRANSPARENT): Bitmap {
|
|
||||||
|
|
||||||
var top = height
|
|
||||||
var bottom = 0
|
|
||||||
var right = width
|
|
||||||
var left = 0
|
|
||||||
|
|
||||||
var colored = IntArray(width, { color })
|
|
||||||
var buffer = IntArray(width)
|
|
||||||
|
|
||||||
for (y in bottom until top) {
|
|
||||||
getPixels(buffer, 0, width, 0, y, width, 1)
|
|
||||||
if (!Arrays.equals(colored, buffer)) {
|
|
||||||
bottom = y
|
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
for (y in top - 1 downTo bottom) {
|
|
||||||
getPixels(buffer, 0, width, 0, y, width, 1)
|
|
||||||
if (!Arrays.equals(colored, buffer)) {
|
|
||||||
top = y
|
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
val heightRemaining = top - bottom
|
|
||||||
colored = IntArray(heightRemaining, { color })
|
|
||||||
buffer = IntArray(heightRemaining)
|
|
||||||
|
|
||||||
for (x in left until right) {
|
|
||||||
getPixels(buffer, 0, 1, x, bottom, 1, heightRemaining)
|
|
||||||
if (!Arrays.equals(colored, buffer)) {
|
|
||||||
left = x
|
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
for (x in right - 1 downTo left) {
|
|
||||||
getPixels(buffer, 0, 1, x, bottom, 1, heightRemaining)
|
|
||||||
if (!Arrays.equals(colored, buffer)) {
|
|
||||||
right = x
|
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return Bitmap.createBitmap(this, left, bottom, right - left, top - bottom)
|
|
||||||
}
|
|
||||||
}
|
}
|
|
@ -20,7 +20,7 @@ class Utils {
|
||||||
try {
|
try {
|
||||||
val acTL = byteArrayOf(0x61, 0x63, 0x54, 0x4c)
|
val acTL = byteArrayOf(0x61, 0x63, 0x54, 0x4c)
|
||||||
@Suppress("LocalVariableName") val IDAT = byteArrayOf(0x49, 0x44, 0x41, 0x54)
|
@Suppress("LocalVariableName") val IDAT = byteArrayOf(0x49, 0x44, 0x41, 0x54)
|
||||||
for (i in 0 until byteArray.size) {
|
for (i in 8 until byteArray.size) {
|
||||||
val it = byteArray.copyOfRange(i, i + 4)
|
val it = byteArray.copyOfRange(i, i + 4)
|
||||||
// if byteArray contain acTL
|
// if byteArray contain acTL
|
||||||
if (it.contentEquals(acTL)) {
|
if (it.contentEquals(acTL)) {
|
||||||
|
|
|
@ -34,7 +34,8 @@
|
||||||
<data android:mimeType="image/png" />
|
<data android:mimeType="image/png" />
|
||||||
</intent-filter>
|
</intent-filter>
|
||||||
</activity>
|
</activity>
|
||||||
<activity android:name=".CreatorActivity"></activity>
|
<activity android:name=".CreatorActivity"
|
||||||
|
android:exported="true"/>
|
||||||
</application>
|
</application>
|
||||||
|
|
||||||
</manifest>
|
</manifest>
|
|
@ -4,7 +4,6 @@ import android.graphics.Color
|
||||||
import android.graphics.drawable.GradientDrawable
|
import android.graphics.drawable.GradientDrawable
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.text.Html
|
import android.text.Html
|
||||||
import android.util.Log
|
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import android.widget.Toolbar
|
import android.widget.Toolbar
|
||||||
import androidx.appcompat.app.AppCompatActivity
|
import androidx.appcompat.app.AppCompatActivity
|
||||||
|
@ -22,16 +21,12 @@ import org.jetbrains.anko.sdk27.coroutines.onSeekBarChangeListener
|
||||||
import oupson.apng.ApngAnimator
|
import oupson.apng.ApngAnimator
|
||||||
import oupson.apng.loadApng
|
import oupson.apng.loadApng
|
||||||
|
|
||||||
|
|
||||||
class MainActivity : AppCompatActivity() {
|
class MainActivity : AppCompatActivity() {
|
||||||
|
private lateinit var animator: ApngAnimator
|
||||||
|
private lateinit var tool : Toolbar
|
||||||
|
|
||||||
lateinit var animator: ApngAnimator
|
|
||||||
lateinit var tool : Toolbar
|
|
||||||
// val imageUrl = "http://oupson.oupsman.fr/apng/bigApng.png"
|
// val imageUrl = "http://oupson.oupsman.fr/apng/bigApng.png"
|
||||||
// val imageUrl = "https://metagif.files.wordpress.com/2015/01/bugbuckbunny.png"
|
private val imageUrl = "https://metagif.files.wordpress.com/2015/01/bugbuckbunny.png"
|
||||||
val imageUrl = "http://orig06.deviantart.net/7812/f/2012/233/7/5/twilight_rapidash_shaded_and_animated_by_tamalesyatole-d5bz7hd.png"
|
// val imageUrl = "http://orig06.deviantart.net/7812/f/2012/233/7/5/twilight_rapidash_shaded_and_animated_by_tamalesyatole-d5bz7hd.png"
|
||||||
// val imageUrl = "https://raw.githubusercontent.com/tinify/iMessage-Panda-sticker/master/StickerPackExtension/Stickers.xcstickers/Sticker%20Pack.stickerpack/panda.sticker/panda.png"
|
// val imageUrl = "https://raw.githubusercontent.com/tinify/iMessage-Panda-sticker/master/StickerPackExtension/Stickers.xcstickers/Sticker%20Pack.stickerpack/panda.sticker/panda.png"
|
||||||
override fun onCreate(savedInstanceState: Bundle?) {
|
override fun onCreate(savedInstanceState: Bundle?) {
|
||||||
super.onCreate(savedInstanceState)
|
super.onCreate(savedInstanceState)
|
||||||
|
@ -48,18 +43,14 @@ class MainActivity : AppCompatActivity() {
|
||||||
backgroundColor = Color.BLACK
|
backgroundColor = Color.BLACK
|
||||||
tool = toolbar {
|
tool = toolbar {
|
||||||
id = View.generateViewId()
|
id = View.generateViewId()
|
||||||
title = Html.fromHtml("<font color='#ffffff'>MainActivity</font>")
|
title = Html.fromHtml("<font color='#ffffff'>MainActivity</font>", Html.FROM_HTML_MODE_LEGACY)
|
||||||
inflateMenu(R.menu.main_menu)
|
inflateMenu(R.menu.main_menu)
|
||||||
onMenuItemClick { item ->
|
onMenuItemClick { item ->
|
||||||
Log.e("lll", "Click")
|
|
||||||
when (item!!.itemId) {
|
when (item!!.itemId) {
|
||||||
R.id.action_open_create_activity -> {
|
R.id.action_open_create_activity -> {
|
||||||
Log.e("lll", "Click")
|
|
||||||
startActivity<CreatorActivity>()
|
startActivity<CreatorActivity>()
|
||||||
finish()
|
finish()
|
||||||
true
|
|
||||||
}
|
}
|
||||||
else -> false
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}.lparams {
|
}.lparams {
|
||||||
|
@ -76,7 +67,6 @@ class MainActivity : AppCompatActivity() {
|
||||||
height = wrapContent
|
height = wrapContent
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
constraintLayout {
|
constraintLayout {
|
||||||
val pauseButton = button("pause") {
|
val pauseButton = button("pause") {
|
||||||
id = View.generateViewId()
|
id = View.generateViewId()
|
||||||
|
@ -103,11 +93,10 @@ class MainActivity : AppCompatActivity() {
|
||||||
max = 200
|
max = 200
|
||||||
progress = 10
|
progress = 10
|
||||||
onSeekBarChangeListener {
|
onSeekBarChangeListener {
|
||||||
onProgressChanged { seekBar, progressValue, fromUser -> }
|
onProgressChanged { _, _, _ -> }
|
||||||
onStartTrackingTouch { seekBar -> }
|
onStartTrackingTouch { }
|
||||||
onStopTrackingTouch { seekBar ->
|
onStopTrackingTouch { seekBar ->
|
||||||
Log.e("TAG", (seekBar!!.progress.toFloat() / 100f).toString())
|
animator.speed = (seekBar?.progress?.toFloat() ?: 100f / 100f)
|
||||||
animator.speed = (seekBar!!.progress.toFloat() / 100f)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}.lparams(
|
}.lparams(
|
||||||
|
@ -123,7 +112,7 @@ class MainActivity : AppCompatActivity() {
|
||||||
)
|
)
|
||||||
val imageView = imageView {
|
val imageView = imageView {
|
||||||
id = View.generateViewId()
|
id = View.generateViewId()
|
||||||
animator = this.loadApng(R.raw.bugbuckbunny).apply {
|
animator = this.loadApng(imageUrl).apply {
|
||||||
onLoaded {
|
onLoaded {
|
||||||
setOnAnimationLoopListener {
|
setOnAnimationLoopListener {
|
||||||
// Log.e("app-test", "onLoop")
|
// Log.e("app-test", "onLoop")
|
||||||
|
|
Loading…
Reference in New Issue