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