diff --git a/app/src/main/java/jp/juggler/subwaytooter/PollingWorker.kt b/app/src/main/java/jp/juggler/subwaytooter/PollingWorker.kt index a26c6bf2..6f1b8417 100644 --- a/app/src/main/java/jp/juggler/subwaytooter/PollingWorker.kt +++ b/app/src/main/java/jp/juggler/subwaytooter/PollingWorker.kt @@ -1262,42 +1262,56 @@ class PollingWorker private constructor(contextArg : Context) { dstListJson.add(src) } - private fun getNotificationLine(type : String, display_name : CharSequence) = - when(type) { + private fun getNotificationLine(item:Data):String{ + val name = when(Pref.bpShowAcctInSystemNotification(pref)) { + false -> item.notification.accountRef?.decoded_display_name + + true -> { + val acct = item.notification.accountRef?.get()?.acct + if(acct?.isNotEmpty() == true) { + "@$acct" + } else { + null + } + } + } ?: "?" + return when(item.notification.type) { TootNotification.TYPE_MENTION, TootNotification.TYPE_REPLY -> - "- " + context.getString(R.string.display_name_replied_by, display_name) + "- " + context.getString(R.string.display_name_replied_by, name) TootNotification.TYPE_RENOTE, TootNotification.TYPE_REBLOG -> - "- " + context.getString(R.string.display_name_boosted_by, display_name) + "- " + context.getString(R.string.display_name_boosted_by, name) TootNotification.TYPE_QUOTE -> - "- " + context.getString(R.string.display_name_quoted_by, display_name) + "- " + context.getString(R.string.display_name_quoted_by, name) TootNotification.TYPE_FOLLOW -> - "- " + context.getString(R.string.display_name_followed_by, display_name) + "- " + context.getString(R.string.display_name_followed_by, name) TootNotification.TYPE_UNFOLLOW -> - "- " + context.getString(R.string.display_name_unfollowed_by, display_name) + "- " + context.getString(R.string.display_name_unfollowed_by, name) TootNotification.TYPE_FAVOURITE -> - "- " + context.getString(R.string.display_name_favourited_by, display_name) + "- " + context.getString(R.string.display_name_favourited_by, name) TootNotification.TYPE_REACTION -> - "- " + context.getString(R.string.display_name_reaction_by, display_name) + "- " + context.getString(R.string.display_name_reaction_by, name) TootNotification.TYPE_VOTE -> - "- " + context.getString(R.string.display_name_voted_by, display_name) + "- " + context.getString(R.string.display_name_voted_by, name) TootNotification.TYPE_FOLLOW_REQUEST -> "- " + context.getString( R.string.display_name_follow_request_by, - display_name + name ) else -> "- " + "?" } + } + private fun showNotification(data_list : ArrayList) { @@ -1443,11 +1457,11 @@ class PollingWorker private constructor(contextArg : Context) { log.d("showNotification[${account.acct}] creating notification(7)") - var a = getNotificationLine( - item.notification.type, - item.notification.accountRef?.decoded_display_name ?: "?" - ) + + var a = getNotificationLine(item) + val acct = item.access_info.acct + if(data_list.size == 1) { builder.setContentTitle(a) builder.setContentText(acct) @@ -1462,10 +1476,7 @@ class PollingWorker private constructor(contextArg : Context) { for(i in 0 .. 4) { if(i >= data_list.size) break item = data_list[i] - a = getNotificationLine( - item.notification.type, - item.notification.accountRef?.decoded_display_name ?: "?" - ) + a = getNotificationLine(item) style.addLine(a) } builder.setStyle(style) diff --git a/app/src/main/java/jp/juggler/subwaytooter/Pref.kt b/app/src/main/java/jp/juggler/subwaytooter/Pref.kt index 8f75e5b1..ef64d224 100644 --- a/app/src/main/java/jp/juggler/subwaytooter/Pref.kt +++ b/app/src/main/java/jp/juggler/subwaytooter/Pref.kt @@ -356,7 +356,11 @@ object Pref { false, R.id.swMoveNotificationsQuickFilter ) - + val bpShowAcctInSystemNotification = BooleanPref( + "ShowAcctInSystemNotification", + false, + R.id.swShowAcctInSystemNotification + ) // int val ipBackButtonAction = IntPref("back_button_action", 0) diff --git a/app/src/main/java/jp/juggler/subwaytooter/dialog/DlgListMember.kt b/app/src/main/java/jp/juggler/subwaytooter/dialog/DlgListMember.kt index 2c1225ac..0aa318b5 100644 --- a/app/src/main/java/jp/juggler/subwaytooter/dialog/DlgListMember.kt +++ b/app/src/main/java/jp/juggler/subwaytooter/dialog/DlgListMember.kt @@ -15,10 +15,7 @@ import jp.juggler.subwaytooter.action.Action_List import jp.juggler.subwaytooter.action.Action_ListMember import jp.juggler.subwaytooter.action.makeAccountListNonPseudo import jp.juggler.subwaytooter.api.* -import jp.juggler.subwaytooter.api.entity.EntityId -import jp.juggler.subwaytooter.api.entity.TootAccount -import jp.juggler.subwaytooter.api.entity.TootList -import jp.juggler.subwaytooter.api.entity.parseList +import jp.juggler.subwaytooter.api.entity.* import jp.juggler.subwaytooter.table.AcctColor import jp.juggler.subwaytooter.table.SavedAccount import jp.juggler.subwaytooter.util.NetworkEmojiInvalidator @@ -179,11 +176,11 @@ class DlgListMember( // リストに追加したいアカウントの自タンスでのアカウントIDを取得する var result = client.syncAccountByAcct(list_owner,target_user_full_acct) - local_who = result?.data as? TootAccount - - val local_who = this@DlgListMember.local_who + val local_who = (result?.data as? TootAccountRef)?.get() ?: return TootApiResult(activity.getString(R.string.account_sync_failed)) + this@DlgListMember.local_who = local_who + if(list_owner.isMisskey){ // 今のmisskeyではリスト全スキャンしないとユーザの登録状況が分からない val params = list_owner.putMisskeyApiToken(JSONObject()) diff --git a/app/src/main/res/layout/act_app_setting_notifications.xml b/app/src/main/res/layout/act_app_setting_notifications.xml index aef3b97b..bed13f18 100644 --- a/app/src/main/res/layout/act_app_setting_notifications.xml +++ b/app/src/main/res/layout/act_app_setting_notifications.xml @@ -89,5 +89,23 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/lv_column_list.xml b/app/src/main/res/layout/lv_column_list.xml index f9911715..238b9759 100644 --- a/app/src/main/res/layout/lv_column_list.xml +++ b/app/src/main/res/layout/lv_column_list.xml @@ -64,6 +64,7 @@ android:contentDescription="@string/drag_handle" android:scaleType="center" android:src="@drawable/ic_order" + android:tint="?attr/colorVectorDrawable" /> diff --git a/app/src/main/res/layout/lv_highlight_word.xml b/app/src/main/res/layout/lv_highlight_word.xml index 45400975..38728c16 100644 --- a/app/src/main/res/layout/lv_highlight_word.xml +++ b/app/src/main/res/layout/lv_highlight_word.xml @@ -53,6 +53,7 @@ android:scaleType="center" android:src="@drawable/ic_order" android:visibility="gone" + android:tint="?attr/colorVectorDrawable" /> diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml index 6b98d4b5..07beb6b4 100644 --- a/app/src/main/res/values-ja/strings.xml +++ b/app/src/main/res/values-ja/strings.xml @@ -851,5 +851,6 @@ 通知カラムのクイックフィルタをカラム設定内部に表示する(アプリ再起動が必要) アカウントID %1$s をコピー 管理者WebUIで開く + システム通知に(ユーザ名ではなく)acctを使用する diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index c845f586..bbc92752 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -873,5 +873,6 @@ Show notifications quick filter in column setting (app restart required) Copy account ID %1$s Open in admin web UI + Show acct (instead of user name) in system notification \ No newline at end of file