From 130058c4062bc0b1ece2a6d019c6cbc2f9cf47d0 Mon Sep 17 00:00:00 2001 From: tateisu Date: Tue, 28 Jan 2020 00:41:18 +0900 Subject: [PATCH] =?UTF-8?q?-=20=E5=91=8A=E7=9F=A5=E3=83=AA=E3=82=A2?= =?UTF-8?q?=E3=82=AF=E3=82=B7=E3=83=A7=E3=83=B3=E3=81=AE=E3=82=AB=E3=82=B9?= =?UTF-8?q?=E3=82=BF=E3=83=A0=E7=B5=B5=E6=96=87=E5=AD=97=E3=81=8C=E3=82=A2?= =?UTF-8?q?=E3=83=8B=E3=83=A1=E3=83=BC=E3=82=B7=E3=83=A7=E3=83=B3=E3=81=97?= =?UTF-8?q?=E3=81=AA=E3=81=84=E5=95=8F=E9=A1=8C=E3=81=AE=E4=BF=AE=E6=AD=A3?= =?UTF-8?q?=E3=80=82=20-=20=E5=91=8A=E7=9F=A5=E3=83=AA=E3=82=A2=E3=82=AF?= =?UTF-8?q?=E3=82=B7=E3=83=A7=E3=83=B3=E3=82=92=E3=83=94=E3=83=83=E3=82=AB?= =?UTF-8?q?=E3=83=BC=E3=81=A7=E9=81=B8=E3=82=93=E3=81=A0=E9=9A=9B=E3=81=AE?= =?UTF-8?q?=E3=82=AB=E3=82=B9=E3=82=BF=E3=83=A0=E7=B5=B5=E6=96=87=E5=AD=97?= =?UTF-8?q?=E3=81=AE=E5=8F=96=E3=82=8A=E6=89=B1=E3=81=84=E3=82=92=E4=BF=AE?= =?UTF-8?q?=E6=AD=A3=E3=80=82=20-=20=E5=91=8A=E7=9F=A5=E3=83=98=E3=83=83?= =?UTF-8?q?=E3=83=80=E9=83=A8=E5=88=86=E3=81=AE=E3=82=BF=E3=83=83=E3=83=97?= =?UTF-8?q?=E3=81=A7=E9=96=8B=E9=96=89=E3=81=99=E3=82=8B=E3=80=82=20-=20?= =?UTF-8?q?=E5=91=8A=E7=9F=A5=E3=81=AE=E8=A1=A8=E7=A4=BA=E3=81=AE=E3=82=AB?= =?UTF-8?q?=E3=82=B9=E3=82=BF=E3=83=9E=E3=82=A4=E3=82=BA=E5=8F=8D=E6=98=A0?= =?UTF-8?q?=E3=80=82=E8=89=B2=E3=80=81=E3=83=95=E3=82=A9=E3=83=B3=E3=83=88?= =?UTF-8?q?=E3=80=81=E6=96=87=E5=AD=97=E3=82=B5=E3=82=A4=E3=82=BA=E3=80=81?= =?UTF-8?q?=E8=A1=8C=E9=96=93=E3=80=82=20-=20=E5=91=8A=E7=9F=A5=E4=B8=AD?= =?UTF-8?q?=E3=81=AE=E3=83=8F=E3=83=83=E3=82=B7=E3=83=A5=E3=82=BF=E3=82=B0?= =?UTF-8?q?=E3=82=84=E3=83=A1=E3=83=B3=E3=82=B7=E3=83=A7=E3=83=B3=E3=82=92?= =?UTF-8?q?=E3=82=BF=E3=83=83=E3=83=97=E3=81=97=E3=81=9F=E6=99=82=E3=81=AE?= =?UTF-8?q?=E6=8C=99=E5=8B=95=E3=82=92=E3=83=88=E3=82=A5=E3=83=BC=E3=83=88?= =?UTF-8?q?=E3=81=A8=E5=90=8C=E6=A7=98=E3=81=AB=E3=81=99=E3=82=8B=E3=80=82?= =?UTF-8?q?=20-=20=E5=91=8A=E7=9F=A5=E3=82=92=E9=9A=A0=E3=81=97=E3=81=9F?= =?UTF-8?q?=E6=99=82=E9=96=93=E3=82=92=E4=BF=9D=E5=AD=98=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/jp/juggler/subwaytooter/ActMain.kt | 5 + .../java/jp/juggler/subwaytooter/Column.kt | 6 + .../juggler/subwaytooter/ColumnViewHolder.kt | 179 +++++++++++------- .../subwaytooter/dialog/EmojiPicker.kt | 24 ++- .../juggler/subwaytooter/util/PostHelper.kt | 12 +- .../drawable/btn_bg_transparent_round6dp.xml | 12 ++ 6 files changed, 163 insertions(+), 75 deletions(-) create mode 100644 app/src/main/res/drawable/btn_bg_transparent_round6dp.xml diff --git a/app/src/main/java/jp/juggler/subwaytooter/ActMain.kt b/app/src/main/java/jp/juggler/subwaytooter/ActMain.kt index 7e70793f..a8e6952c 100644 --- a/app/src/main/java/jp/juggler/subwaytooter/ActMain.kt +++ b/app/src/main/java/jp/juggler/subwaytooter/ActMain.kt @@ -242,6 +242,10 @@ class ActMain : AppCompatActivity() column = tag.ivh.column whoRef = tag.ivh.getAccount() break + } else if(tag is ColumnViewHolder) { + column = tag.column + whoRef = null + break } else if(tag is ViewHolderHeaderBase) { column = tag.column whoRef = tag.getAccount() @@ -603,6 +607,7 @@ class ActMain : AppCompatActivity() // 背景画像を表示しない設定が変更された時にカラムの背景を設定しなおす for(column in app_state.column_list) { + column.viewHolder?.lastAnnouncementShown = 0L column.fireColumnColor() } diff --git a/app/src/main/java/jp/juggler/subwaytooter/Column.kt b/app/src/main/java/jp/juggler/subwaytooter/Column.kt index 7d0e1941..3097fe33 100644 --- a/app/src/main/java/jp/juggler/subwaytooter/Column.kt +++ b/app/src/main/java/jp/juggler/subwaytooter/Column.kt @@ -189,6 +189,8 @@ class Column( internal const val KEY_COLUMN_NAME = "column_name" internal const val KEY_OLD_INDEX = "old_index" + internal const val KEY_ANNOUNCEMEMT_HIDE_TIME = "announcementHideTime" + val typeMap : SparseArray = SparseArray() internal var useInstanceTicker = false @@ -713,6 +715,8 @@ class Column( instance_local = src.optBoolean(KEY_INSTANCE_LOCAL) quick_filter = src.optInt(KEY_QUICK_FILTER, 0) + announcementHideTime = src.optLong(KEY_ANNOUNCEMEMT_HIDE_TIME,0L) + enable_speech = src.optBoolean(KEY_ENABLE_SPEECH) use_old_api = src.optBoolean(KEY_USE_OLD_API) last_viewing_item_id = EntityId.from(src, KEY_LAST_VIEWING_ITEM) @@ -798,6 +802,8 @@ class Column( dst[KEY_TYPE] = type.id dst[KEY_COLUMN_ID] = column_id + dst[KEY_ANNOUNCEMEMT_HIDE_TIME] = announcementHideTime + dst.putIfTrue(KEY_DONT_CLOSE, dont_close) dst.putIfTrue(KEY_WITH_ATTACHMENT, with_attachment) dst.putIfTrue(KEY_WITH_HIGHLIGHT, with_highlight) diff --git a/app/src/main/java/jp/juggler/subwaytooter/ColumnViewHolder.kt b/app/src/main/java/jp/juggler/subwaytooter/ColumnViewHolder.kt index b76d50c8..b7fbf374 100644 --- a/app/src/main/java/jp/juggler/subwaytooter/ColumnViewHolder.kt +++ b/app/src/main/java/jp/juggler/subwaytooter/ColumnViewHolder.kt @@ -153,6 +153,9 @@ class ColumnViewHolder( private lateinit var etHashtagExtraNone : EditText private lateinit var llAnnouncementsBox : View + private lateinit var llAnnouncementsHeader : View + + private lateinit var tvAnnouncementsCaption : TextView private lateinit var tvAnnouncementsIndex : TextView private lateinit var btnAnnouncementsPrev : ImageButton private lateinit var btnAnnouncementsNext : ImageButton @@ -164,7 +167,7 @@ class ColumnViewHolder( private val announcementContentInvalidator : NetworkEmojiInvalidator - private var lastAnnouncementShown = 0L + var lastAnnouncementShown = 0L private val extra_invalidator_list = ArrayList() @@ -348,6 +351,7 @@ class ColumnViewHolder( btnAnnouncementsShowHide.setOnClickListener(this) btnAnnouncementsPrev.setOnClickListener(this) btnAnnouncementsNext.setOnClickListener(this) + llAnnouncementsHeader.setOnClickListener(this) cbDontCloseColumn.setOnCheckedChangeListener(this) @@ -788,6 +792,8 @@ class ColumnViewHolder( // カラム色を変更したらクイックフィルタの色も変わる場合がある showQuickFilter() + + showAnnouncements(force = false) } private fun closeBitmaps() { @@ -1098,7 +1104,7 @@ class ColumnViewHolder( btnQuickFilterReaction -> clickQuickFilter(Column.QUICK_FILTER_REACTION) btnQuickFilterVote -> clickQuickFilter(Column.QUICK_FILTER_VOTE) - btnAnnouncementsShowHide -> { + llAnnouncementsHeader, btnAnnouncementsShowHide -> { if(llAnnouncements.visibility == View.VISIBLE) { column.announcementHideTime = System.currentTimeMillis() } else { @@ -1959,23 +1965,29 @@ class ColumnViewHolder( } background = createRoundDrawable( dip(6).toFloat(), - getAttributeColor(context, R.attr.colorThumbnailBackground) + getAttributeColor(context, R.attr.colorSearchFormBackground) ) var pad_tb = dip(2) setPadding(0, pad_tb, 0, pad_tb) - linearLayout { - lparams(matchParent, wrapContent) { - startMargin = dip(6) - endMargin = dip(6) - } + val buttonHeight = ActMain.boostButtonSize + val paddingH = (buttonHeight.toFloat() * 0.1f + 0.5f).toInt() + val paddingV = (buttonHeight.toFloat() * 0.1f + 0.5f).toInt() + + llAnnouncementsHeader = linearLayout { + lparams(matchParent, wrapContent) + val pad_lr = dip(6) + setPadding(pad_lr, 0, pad_lr, 0) - gravity = Gravity.CENTER_VERTICAL + background = ContextCompat.getDrawable( + context, + R.drawable.btn_bg_transparent_round6dp + ) + gravity = Gravity.CENTER_VERTICAL or Gravity.END - - textView { - gravity = Gravity.END + tvAnnouncementsCaption = textView { + gravity = Gravity.END or Gravity.CENTER_VERTICAL text = context.getString(R.string.announcements) }.lparams(0, wrapContent) { weight = 1f @@ -1985,12 +1997,14 @@ class ColumnViewHolder( background = ContextCompat.getDrawable( context, - R.drawable.btn_bg_transparent + R.drawable.btn_bg_transparent_round6dp ) contentDescription = context.getString(R.string.previous) imageResource = R.drawable.ic_arrow_start - }.lparams(dip(32), dip(32)) { - gravity = Gravity.END + setPadding(paddingH, paddingV, paddingH, paddingV) + scaleType = ImageView.ScaleType.FIT_CENTER + + }.lparams(buttonHeight, buttonHeight) { marginStart = dip(4) } @@ -2003,27 +2017,29 @@ class ColumnViewHolder( background = ContextCompat.getDrawable( context, - R.drawable.btn_bg_transparent + R.drawable.btn_bg_transparent_round6dp ) contentDescription = context.getString(R.string.next) imageResource = R.drawable.ic_arrow_end - }.lparams(dip(32), dip(32)) { - gravity = Gravity.END + setPadding(paddingH, paddingV, paddingH, paddingV) + scaleType = ImageView.ScaleType.FIT_CENTER + + }.lparams(buttonHeight, buttonHeight) { marginStart = dip(4) } btnAnnouncementsShowHide = imageButton { background = ContextCompat.getDrawable( context, - R.drawable.btn_bg_transparent + R.drawable.btn_bg_transparent_round6dp ) contentDescription = context.getString(R.string.hide) - imageResource = R.drawable.ic_close - }.lparams(dip(32), dip(32)) { - gravity = Gravity.END + imageResource = R.drawable.ic_arrow_drop_down + setPadding(paddingH, paddingV, paddingH, paddingV) + scaleType = ImageView.ScaleType.FIT_CENTER + }.lparams(buttonHeight, buttonHeight) { marginStart = dip(4) } - } llAnnouncements = maxHeightScrollView { @@ -2320,16 +2336,56 @@ class ColumnViewHolder( val itemIndex = listShown.indexOf(item) val enablePaging = listShown.size > 1 + + val alphaPrevNext = if(enablePaging) 1f else 0.3f + + setIconDrawableId( + activity, + btnAnnouncementsPrev, + R.drawable.ic_arrow_start, + color = content_color, + alphaMultiplier = alphaPrevNext + ) + + setIconDrawableId( + activity, + btnAnnouncementsNext, + R.drawable.ic_arrow_end, + color = content_color, + alphaMultiplier = alphaPrevNext + ) + val expand = column.announcementHideTime <= 0L btnAnnouncementsPrev.vg(expand)?.run { isEnabled = enablePaging - alpha = if(enablePaging) 1f else 0.3f } btnAnnouncementsNext.vg(expand)?.run { isEnabled = enablePaging - alpha = if(enablePaging) 1f else 0.3f } + + tvAnnouncementsCaption.textColor = content_color + tvAnnouncementsIndex.textColor = content_color + tvAnnouncementPeriod.textColor = content_color + + val f = activity.timeline_font_size_sp + if(! f.isNaN()) { + tvAnnouncementsCaption.textSize = f + tvAnnouncementsIndex.textSize = f + tvAnnouncementPeriod.textSize = f + tvAnnouncementContent.textSize = f + } + val spacing = activity.timeline_spacing + if(spacing != null) { + tvAnnouncementPeriod.setLineSpacing(0f, spacing) + tvAnnouncementContent.setLineSpacing(0f, spacing) + } + tvAnnouncementsCaption.typeface = ActMain.timeline_font_bold + val font_normal = ActMain.timeline_font + tvAnnouncementsIndex.typeface = font_normal + tvAnnouncementPeriod.typeface = font_normal + tvAnnouncementContent.typeface = font_normal + tvAnnouncementsIndex.vg(expand)?.text = activity.getString(R.string.announcements_index, itemIndex + 1, listShown.size) llAnnouncements.vg(expand) @@ -2343,7 +2399,7 @@ class ColumnViewHolder( btnAnnouncementsShowHide, R.drawable.ic_error, color = getAttributeColor(activity, R.attr.colorRegexFilterError), - alphaMultiplier = Styler.boost_alpha + alphaMultiplier = 1f ) } else { setIconDrawableId( @@ -2351,7 +2407,7 @@ class ColumnViewHolder( btnAnnouncementsShowHide, R.drawable.ic_arrow_drop_down, color = content_color, - alphaMultiplier = Styler.boost_alpha + alphaMultiplier = 1f ) } return @@ -2362,7 +2418,7 @@ class ColumnViewHolder( btnAnnouncementsShowHide, R.drawable.ic_arrow_drop_up, color = content_color, - alphaMultiplier = Styler.boost_alpha + alphaMultiplier = 1f ) var periods : StringBuilder? = null @@ -2382,7 +2438,6 @@ class ColumnViewHolder( item.all_day ) - when { // no periods. @@ -2409,7 +2464,9 @@ class ColumnViewHolder( val sb = periods tvAnnouncementPeriod.vg(sb != null)?.text = sb + tvAnnouncementContent.textColor = content_color tvAnnouncementContent.text = item.decoded_content + tvAnnouncementContent.tag = this@ColumnViewHolder announcementContentInvalidator.register(item.decoded_content) // リアクションの表示 @@ -2418,6 +2475,7 @@ class ColumnViewHolder( val buttonHeight = ActMain.boostButtonSize val marginBetween = (buttonHeight.toFloat() * 0.2f + 0.5f).toInt() + val marginBottom = (buttonHeight.toFloat() * 0.2f + 0.5f).toInt() val paddingH = (buttonHeight.toFloat() * 0.1f + 0.5f).toInt() val paddingV = (buttonHeight.toFloat() * 0.1f + 0.5f).toInt() @@ -2439,8 +2497,10 @@ class ColumnViewHolder( val blp = FlexboxLayout.LayoutParams( buttonHeight, buttonHeight - ) - blp.endMargin = marginBetween + ).apply { + bottomMargin = marginBottom + endMargin = marginBetween + } b.layoutParams = blp b.background = ContextCompat.getDrawable( activity, @@ -2459,7 +2519,7 @@ class ColumnViewHolder( b, R.drawable.ic_add, color = content_color, - alphaMultiplier = Styler.boost_alpha + alphaMultiplier = 1f ) box.addView(b) @@ -2477,29 +2537,30 @@ class ColumnViewHolder( ) val actMain = activity - val emojiAnimation = Pref.bpDisableEmojiAnimation(actMain.pref) + val disableEmojiAnimation = Pref.bpDisableEmojiAnimation(actMain.pref) for(reaction in reactions) { - val url = if(emojiAnimation) { - reaction.url.notEmpty() ?: reaction.static_url.notEmpty() - } else { + val url = if(disableEmojiAnimation) { reaction.static_url.notEmpty() ?: reaction.url.notEmpty() + } else { + reaction.url.notEmpty() ?: reaction.static_url.notEmpty() } - val b = Button(activity).apply { - layoutParams = FlexboxLayout.LayoutParams( + val b = Button(activity).also { btn -> + btn.layoutParams = FlexboxLayout.LayoutParams( FlexboxLayout.LayoutParams.WRAP_CONTENT, buttonHeight ).apply { endMargin = marginBetween + bottomMargin = marginBottom } - minWidthCompat = buttonHeight + btn.minWidthCompat = buttonHeight - allCaps = false - tag = reaction + btn.allCaps = false + btn.tag = reaction - background = ContextCompat.getDrawable( + btn.background = ContextCompat.getDrawable( actMain, if(reaction.me == true) { R.drawable.bg_button_cw @@ -2508,12 +2569,12 @@ class ColumnViewHolder( } ) - setTextColor(content_color) + btn.setTextColor(content_color) - setPadding(paddingH, paddingV, paddingH, paddingV) + btn.setPadding(paddingH, paddingV, paddingH, paddingV) - text = if(url == null) { + btn.text = if(url == null) { EmojiDecoder.decodeEmoji(options, "${reaction.name} ${reaction.count}") } else { SpannableStringBuilder("${reaction.name} ${reaction.count}").also { sb -> @@ -2524,13 +2585,13 @@ class ColumnViewHolder( Spannable.SPAN_EXCLUSIVE_EXCLUSIVE ) val invalidator = - NetworkEmojiInvalidator(actMain.handler, this) + NetworkEmojiInvalidator(actMain.handler, btn) invalidator.register(sb) extra_invalidator_list.add(invalidator) } } - setOnClickListener { + btn.setOnClickListener { if(reaction.me == true) { removeReaction(item, reaction.name) } else { @@ -2563,27 +2624,16 @@ class ColumnViewHolder( val host = column.access_info.host val isMisskey = column.isMisskey if(sample == null) { - EmojiPicker(activity, host, isMisskey) { name, _, _ ,unicode-> + EmojiPicker(activity, host, isMisskey) { name, _, _, unicode, customEmoji -> log.d("addReaction: $name") addReaction(item, TootAnnouncement.Reaction(jsonObject { - put("name", unicode ?: name ) + put("name", unicode ?: name) put("count", 1) put("me", true) - // 以下はカスタム絵文字のみ - if(unicode == null){ - val map = App1.custom_emoji_lister.getMap(host, isMisskey) - if(map == null) { - showToast(activity, false, "emoji map is null") - return@EmojiPicker - } - val ce = map[name] - if(ce == null) { - showToast(activity, false, "emoji '$name' not found.") - return@EmojiPicker - } - putNotNull("url", ce.url) - putNotNull("static_url", ce.static_url) + if(customEmoji != null) { + putNotNull("url", customEmoji.url) + putNotNull("static_url", customEmoji.static_url) } })) }.show() @@ -2603,6 +2653,7 @@ class ColumnViewHolder( if(result.jsonObject == null) { showToast(activity, true, result.error) } else { + sample.count = 0 val list = item.reactions if(list == null) { item.reactions = mutableListOf(sample) @@ -2612,7 +2663,7 @@ class ColumnViewHolder( list.add(sample) } else { reaction.me = true - ++reaction.count + ++ reaction.count } } column.announcementUpdated = SystemClock.elapsedRealtime() diff --git a/app/src/main/java/jp/juggler/subwaytooter/dialog/EmojiPicker.kt b/app/src/main/java/jp/juggler/subwaytooter/dialog/EmojiPicker.kt index 10c6e0eb..b4cad405 100644 --- a/app/src/main/java/jp/juggler/subwaytooter/dialog/EmojiPicker.kt +++ b/app/src/main/java/jp/juggler/subwaytooter/dialog/EmojiPicker.kt @@ -34,7 +34,8 @@ class EmojiPicker( name : String, instance : String?, bInstanceHasCustomEmoji : Boolean, - unicode:String? + unicode : String?, + customEmoji : CustomEmoji? ) -> Unit // onEmojiPickedのinstance引数は通常の絵文字ならnull、カスタム絵文字なら非null、 ) : View.OnClickListener, ViewPager.OnPageChangeListener { @@ -92,7 +93,7 @@ class EmojiPicker( private var custom_list = ArrayList() private var custom_categories = ArrayList() - private val emoji_url_map = HashMap() + private val emoji_url_map = HashMap() private val recent_page_idx : Int @@ -237,7 +238,7 @@ class EmojiPicker( newList[category] = subList } subList.add(EmojiItem(emoji.shortcode, instance)) - emoji_url_map[emoji.shortcode] = emoji.url + emoji_url_map[emoji.shortcode] = emoji } // compose categories data list val entries = newList.entries @@ -452,7 +453,7 @@ class EmojiPicker( layoutParams = AbsListView.LayoutParams(wh, wh) } view.setTag(R.id.btnAbout, item) - (view as? NetworkEmojiView)?.setEmoji(emoji_url_map[item.name]) + (view as? NetworkEmojiView)?.setEmoji(emoji_url_map[item.name]?.url) } else { if(viewOld == null) { view = ImageView(activity) @@ -506,7 +507,7 @@ class EmojiPicker( var name = item.name if(item.instance != null && item.instance.isNotEmpty()) { // カスタム絵文字 - selected(name, item.instance,null) + selected(name, item.instance, customEmoji = emoji_url_map[item.name]) } else { // 普通の絵文字 var ei = EmojiMap.sShortNameToEmojiInfo[name] ?: return @@ -514,20 +515,25 @@ class EmojiPicker( if(page.hasSkinTone) { val sv = applySkinTone(name) val tmp = EmojiMap.sShortNameToEmojiInfo[sv] - if( tmp!=null){ + if(tmp != null) { ei = tmp name = sv } } - selected(name, null,ei.unified) + selected(name, null, unicode= ei.unified) } } } } // name はスキントーン適用済みであること - internal fun selected(name : String, instance : String?,unicode:String?) { + internal fun selected( + name : String, + instance : String?, + unicode : String? = null, + customEmoji : CustomEmoji? = null + ) { dialog.dismissSafe() @@ -571,7 +577,7 @@ class EmojiPicker( } - onEmojiPicked(name, instance, bInstanceHasCustomEmoji,unicode) + onEmojiPicked(name, instance, bInstanceHasCustomEmoji, unicode,customEmoji) } internal inner class EmojiPickerPagerAdapter : androidx.viewpager.widget.PagerAdapter() { diff --git a/app/src/main/java/jp/juggler/subwaytooter/util/PostHelper.kt b/app/src/main/java/jp/juggler/subwaytooter/util/PostHelper.kt index cf85e322..1db25de5 100644 --- a/app/src/main/java/jp/juggler/subwaytooter/util/PostHelper.kt +++ b/app/src/main/java/jp/juggler/subwaytooter/util/PostHelper.kt @@ -1014,7 +1014,11 @@ class PostHelper( } private val open_picker_emoji : Runnable = Runnable { - EmojiPicker(activity, instance, isMisskey) { name, instance, bInstanceHasCustomEmoji,_ -> + EmojiPicker( + activity, + instance, + isMisskey + ) { name, instance, bInstanceHasCustomEmoji, _, _ -> val et = this.et ?: return@EmojiPicker val src = et.text ?: "" @@ -1042,7 +1046,11 @@ class PostHelper( } fun openEmojiPickerFromMore() { - EmojiPicker(activity, instance, isMisskey) { name, instance, bInstanceHasCustomEmoji,_ -> + EmojiPicker( + activity, + instance, + isMisskey + ) { name, instance, bInstanceHasCustomEmoji, _, _ -> val et = this.et ?: return@EmojiPicker val src = et.text ?: "" diff --git a/app/src/main/res/drawable/btn_bg_transparent_round6dp.xml b/app/src/main/res/drawable/btn_bg_transparent_round6dp.xml new file mode 100644 index 00000000..d3e51e6c --- /dev/null +++ b/app/src/main/res/drawable/btn_bg_transparent_round6dp.xml @@ -0,0 +1,12 @@ + + + + + + + + +