From 30bb9444aa5ab78cf93fbf25c4f9b20c2e611da1 Mon Sep 17 00:00:00 2001 From: tateisu Date: Wed, 16 Jan 2019 22:27:26 +0900 Subject: [PATCH] =?UTF-8?q?=E3=82=B7=E3=82=B9=E3=83=86=E3=83=A0=E9=80=9A?= =?UTF-8?q?=E7=9F=A5=E3=81=ABacct=E3=82=92=E8=A1=A8=E7=A4=BA=E3=81=99?= =?UTF-8?q?=E3=82=8B=E8=A8=AD=E5=AE=9A=E3=80=82=E3=83=AA=E3=82=B9=E3=83=88?= =?UTF-8?q?=E3=83=A1=E3=83=B3=E3=83=90=E3=83=BC=E8=BF=BD=E5=8A=A0=E3=83=80?= =?UTF-8?q?=E3=82=A4=E3=82=A2=E3=83=AD=E3=82=B0=E3=81=AE=E3=83=90=E3=82=B0?= =?UTF-8?q?=E4=BF=AE=E6=AD=A3=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jp/juggler/subwaytooter/PollingWorker.kt | 49 ++++++++++++------- .../main/java/jp/juggler/subwaytooter/Pref.kt | 6 ++- .../subwaytooter/dialog/DlgListMember.kt | 11 ++--- .../layout/act_app_setting_notifications.xml | 18 +++++++ app/src/main/res/layout/lv_column_list.xml | 2 + app/src/main/res/layout/lv_highlight_word.xml | 2 + app/src/main/res/values-ja/strings.xml | 1 + app/src/main/res/values/strings.xml | 1 + 8 files changed, 63 insertions(+), 27 deletions(-) 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