From 2e9a5f7d97a7b4afad02f92dcad7e6f6b4b748e3 Mon Sep 17 00:00:00 2001 From: tateisu Date: Wed, 9 Jan 2019 17:08:51 +0900 Subject: [PATCH] =?UTF-8?q?=E3=82=A2=E3=83=97=E3=83=AA=E8=A8=AD=E5=AE=9A?= =?UTF-8?q?=E3=81=AB=E3=80=8C=E8=A6=8B=E3=81=9F=E7=9B=AE/=E9=80=9A?= =?UTF-8?q?=E7=9F=A5=E3=82=AB=E3=83=A9=E3=83=A0=E3=81=AE=E3=82=AF=E3=82=A4?= =?UTF-8?q?=E3=83=83=E3=82=AF=E3=83=95=E3=82=A3=E3=83=AB=E3=82=BF=E3=82=92?= =?UTF-8?q?=E3=82=AB=E3=83=A9=E3=83=A0=E8=A8=AD=E5=AE=9A=E5=86=85=E9=83=A8?= =?UTF-8?q?=E3=81=AB=E8=A1=A8=E7=A4=BA=E3=81=99=E3=82=8B=E3=80=8D=E3=82=92?= =?UTF-8?q?=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../juggler/subwaytooter/ColumnViewHolder.kt | 83 +++++++++++++++---- .../main/java/jp/juggler/subwaytooter/Pref.kt | 5 ++ .../res/layout/act_app_setting_appearance.xml | 18 ++++ app/src/main/res/layout/page_column.xml | 1 + app/src/main/res/values-ja/strings.xml | 1 + app/src/main/res/values/strings.xml | 1 + 6 files changed, 91 insertions(+), 18 deletions(-) diff --git a/app/src/main/java/jp/juggler/subwaytooter/ColumnViewHolder.kt b/app/src/main/java/jp/juggler/subwaytooter/ColumnViewHolder.kt index 38faf94b..9367d20b 100644 --- a/app/src/main/java/jp/juggler/subwaytooter/ColumnViewHolder.kt +++ b/app/src/main/java/jp/juggler/subwaytooter/ColumnViewHolder.kt @@ -5,6 +5,7 @@ import android.content.Context import android.graphics.Bitmap import android.graphics.Color import android.os.AsyncTask +import android.support.v4.content.ContextCompat import android.support.v4.view.ViewCompat import android.support.v7.widget.LinearLayoutManager import android.support.v7.widget.RecyclerView @@ -34,6 +35,7 @@ import java.util.regex.Pattern import com.omadahealth.github.swipyrefreshlayout.library.SwipyRefreshLayout import com.omadahealth.github.swipyrefreshlayout.library.SwipyRefreshLayoutDirection +@SuppressLint("ClickableViewAccessibility") class ColumnViewHolder( val activity : ActMain, val viewRoot : View @@ -341,7 +343,7 @@ class ColumnViewHolder( btnQuickFilterFollow = viewRoot.findViewById(R.id.btnQuickFilterFollow) btnQuickFilterReaction = viewRoot.findViewById(R.id.btnQuickFilterReaction) btnQuickFilterVote = viewRoot.findViewById(R.id.btnQuickFilterVote) - + val llColumnSettingInside : LinearLayout = viewRoot.findViewById(R.id.llColumnSettingInside) btnQuickFilterAll.setOnClickListener(this) btnQuickFilterMention.setOnClickListener(this) @@ -390,6 +392,22 @@ class ColumnViewHolder( cbEnableSpeech.setOnCheckedChangeListener(this) cbOldApi.setOnCheckedChangeListener(this) + if(Pref.bpMoveNotificationsQuickFilter(activity.pref)){ + (svQuickFilter.parent as? ViewGroup)?.removeView(svQuickFilter) + llColumnSettingInside.addView(svQuickFilter,0) + + svQuickFilter.setOnTouchListener { v, event -> + val action = event.action + if(action == MotionEvent.ACTION_DOWN){ + val sv = v as? HorizontalScrollView + if(sv != null && sv.getChildAt(0).width > sv.width ){ + sv.requestDisallowInterceptTouchEvent(true) + } + } + v.onTouchEvent(event) + } + } + initLoadingTextView() // 入力の追跡 @@ -1456,27 +1474,56 @@ class ColumnViewHolder( vg(btnQuickFilterFavourite, !column.isMisskey) - val colorBg = column.getHeaderBackgroundColor() - val colorFg = column.getHeaderNameColor() - val colorBgSelected = Color.rgb( - (Color.red(colorBg) *3 + Color.red(colorFg)) / 4, - (Color.green(colorBg)*3 + Color.green(colorFg)) / 4, - (Color.blue(colorBg)*3 + Color.blue(colorFg)) / 4 - ) - svQuickFilter.setBackgroundColor(colorBg) + val insideColumnSetting = Pref.bpMoveNotificationsQuickFilter(activity.pref) - fun showQuickFilterButton(btn : View, iconId : Int, selected : Boolean) { + val showQuickFilterButton:(btn : View, iconId : Int, selected : Boolean)->Unit + + if(insideColumnSetting){ + svQuickFilter.setBackgroundColor(0) + + val colorFg = getAttributeColor(activity,R.attr.colorContentText) + val colorBgSelected = colorFg.applyAlphaMultiplier(0.25f) - ViewCompat.setBackground( - btn, - getAdaptiveRippleDrawable( - if(selected) colorBgSelected else colorBg, - colorFg + showQuickFilterButton = { btn , iconId , selected -> + ViewCompat.setBackground( + btn, + if(selected) { + getAdaptiveRippleDrawable( + colorBgSelected, + colorFg + ) + }else { + ContextCompat.getDrawable(activity,R.drawable.btn_bg_transparent) + } ) + when(btn) { + is ImageButton -> setIconDrawableId(activity, btn, iconId, colorFg) + is TextView -> btn.textColor = colorFg + } + } + }else { + val colorBg = column.getHeaderBackgroundColor() + val colorFg = column.getHeaderNameColor() + val colorBgSelected = Color.rgb( + (Color.red(colorBg) * 3 + Color.red(colorFg)) / 4, + (Color.green(colorBg) * 3 + Color.green(colorFg)) / 4, + (Color.blue(colorBg) * 3 + Color.blue(colorFg)) / 4 ) - when(btn){ - is ImageButton ->setIconDrawableId(activity,btn,iconId,colorFg) - is TextView -> btn.textColor = colorFg + svQuickFilter.setBackgroundColor(colorBg) + + showQuickFilterButton = { btn , iconId , selected -> + + ViewCompat.setBackground( + btn, + getAdaptiveRippleDrawable( + if(selected) colorBgSelected else colorBg, + colorFg + ) + ) + when(btn) { + is ImageButton -> setIconDrawableId(activity, btn, iconId, colorFg) + is TextView -> btn.textColor = colorFg + } } } diff --git a/app/src/main/java/jp/juggler/subwaytooter/Pref.kt b/app/src/main/java/jp/juggler/subwaytooter/Pref.kt index 3a676c1f..ecf4b023 100644 --- a/app/src/main/java/jp/juggler/subwaytooter/Pref.kt +++ b/app/src/main/java/jp/juggler/subwaytooter/Pref.kt @@ -351,6 +351,11 @@ object Pref { false, R.id.swLinksInContextMenu ) + val bpMoveNotificationsQuickFilter = BooleanPref( + "MoveNotificationsQuickFilter", + false, + R.id.swMoveNotificationsQuickFilter + ) // int diff --git a/app/src/main/res/layout/act_app_setting_appearance.xml b/app/src/main/res/layout/act_app_setting_appearance.xml index 3f3f4bcb..87834f43 100644 --- a/app/src/main/res/layout/act_app_setting_appearance.xml +++ b/app/src/main/res/layout/act_app_setting_appearance.xml @@ -513,5 +513,23 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/page_column.xml b/app/src/main/res/layout/page_column.xml index 3c2ea571..fdd1d1ec 100644 --- a/app/src/main/res/layout/page_column.xml +++ b/app/src/main/res/layout/page_column.xml @@ -142,6 +142,7 @@ android:paddingTop="3dp" android:paddingEnd="12dp" android:paddingBottom="3dp" + android:id="@+id/llColumnSettingInside" > All 本文中のリンクをコンテキストメニューに表示する 予約投稿はマストドン2.7.0以降で使えます + 通知カラムのクイックフィルタをカラム設定内部に表示する(アプリ再起動が必要) diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 7a184486..eb74290a 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -866,5 +866,6 @@ All Show links in context menu Scheduled status requires Mastodon 2.7.0 or later. + Show notifications quick filter in column setting (app restart required) \ No newline at end of file