From 8be6ad7dba56e1329001f85de8a9dada6fcc550c Mon Sep 17 00:00:00 2001 From: roman01la Date: Sun, 20 Jan 2019 19:11:49 +0200 Subject: [PATCH 1/2] animate history items appearing --- app/src/main/java/replete/HistoryAdapter.kt | 5 +++++ app/src/main/res/anim/entry_appears.xml | 17 +++++++++++++++++ 2 files changed, 22 insertions(+) create mode 100644 app/src/main/res/anim/entry_appears.xml diff --git a/app/src/main/java/replete/HistoryAdapter.kt b/app/src/main/java/replete/HistoryAdapter.kt index 661fcb7..4bab619 100644 --- a/app/src/main/java/replete/HistoryAdapter.kt +++ b/app/src/main/java/replete/HistoryAdapter.kt @@ -6,6 +6,7 @@ import android.text.SpannableString import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import android.view.animation.AnimationUtils import android.widget.ArrayAdapter import android.widget.ListView import android.widget.TextView @@ -28,6 +29,8 @@ fun inflateItem(viewHolder: HistoryAdapter.ViewHolder, item: Item) { class HistoryAdapter(context: Context, id: Int, val parent: ListView) : ArrayAdapter(context, id) { + val animation = AnimationUtils.loadAnimation(parent.context, R.anim.entry_appears) + fun update(item: Item) { this.add(item) parent.post { @@ -51,6 +54,8 @@ class HistoryAdapter(context: Context, id: Int, val parent: ListView) : inflateItem(viewHolder, item) } + _itemView.startAnimation(animation) + return _itemView } else { if (item != null) { diff --git a/app/src/main/res/anim/entry_appears.xml b/app/src/main/res/anim/entry_appears.xml new file mode 100644 index 0000000..ea7bec3 --- /dev/null +++ b/app/src/main/res/anim/entry_appears.xml @@ -0,0 +1,17 @@ + + + + + + + + From 1ac7550827f07244958e0bb73daa6e0ebec40552 Mon Sep 17 00:00:00 2001 From: roman01la Date: Mon, 21 Jan 2019 12:05:23 +0200 Subject: [PATCH 2/2] delay before adding output item to repl history list --- app/src/main/java/replete/Main.kt | 7 ++++++- app/src/main/res/anim/entry_appears.xml | 2 +- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/replete/Main.kt b/app/src/main/java/replete/Main.kt index c16f17a..fe82258 100644 --- a/app/src/main/java/replete/Main.kt +++ b/app/src/main/java/replete/Main.kt @@ -18,6 +18,7 @@ import android.view.animation.Animation import com.eclipsesource.v8.V8 import com.eclipsesource.v8.V8Array import java.io.* +import java.util.* fun setTextSpanColor(s: SpannableString, color: Int, start: Int, end: Int) { return s.setSpan(ForegroundColorSpan(color), start, end, Spannable.SPAN_INCLUSIVE_EXCLUSIVE) @@ -127,7 +128,11 @@ class MainActivity : AppCompatActivity() { private fun displayOutput(output: SpannableString) { if (!suppressPrinting) { - adapter!!.update(Item(output, ItemType.OUTPUT)) + Timer().schedule(object : TimerTask() { + override fun run() { + runOnUiThread { adapter!!.update(Item(output, ItemType.OUTPUT)) } + } + }, 200) } } diff --git a/app/src/main/res/anim/entry_appears.xml b/app/src/main/res/anim/entry_appears.xml index ea7bec3..66506ff 100644 --- a/app/src/main/res/anim/entry_appears.xml +++ b/app/src/main/res/anim/entry_appears.xml @@ -1,6 +1,6 @@ + android:duration="@android:integer/config_shortAnimTime">