ダークテーマの一部の配色を微妙に変更。リファクタ
This commit is contained in:
parent
07cb256979
commit
0939f524bc
|
@ -39,6 +39,8 @@ import okhttp3.MediaType
|
|||
import okhttp3.MultipartBody
|
||||
import okhttp3.RequestBody
|
||||
import okio.BufferedSink
|
||||
import org.jetbrains.anko.backgroundColor
|
||||
import org.jetbrains.anko.textColor
|
||||
import org.json.JSONObject
|
||||
import java.io.*
|
||||
|
||||
|
@ -208,10 +210,7 @@ class ActAccountSetting
|
|||
addAttachment(
|
||||
requestCode,
|
||||
it.uri,
|
||||
if(it.mimeType?.isNotEmpty() == true)
|
||||
it.mimeType
|
||||
else
|
||||
contentResolver.getType(it.uri)
|
||||
it.mimeType?.notEmpty() ?: contentResolver.getType(it.uri)
|
||||
)
|
||||
}
|
||||
}
|
||||
|
@ -451,15 +450,10 @@ class ActAccountSetting
|
|||
|
||||
private fun showAcctColor() {
|
||||
val ac = AcctColor.load(full_acct)
|
||||
val nickname = ac.nickname
|
||||
tvUserCustom.text = if(nickname?.isNotEmpty() == true) nickname else full_acct
|
||||
tvUserCustom.setTextColor(
|
||||
if(ac.color_fg != 0) ac.color_fg else getAttributeColor(
|
||||
this,
|
||||
R.attr.colorTimeSmall
|
||||
)
|
||||
)
|
||||
tvUserCustom.setBackgroundColor(ac.color_bg)
|
||||
tvUserCustom.backgroundColor = ac.color_bg
|
||||
tvUserCustom.text = ac.nickname?.notEmpty() ?: full_acct
|
||||
tvUserCustom.textColor = ac.color_fg.notZero()
|
||||
?: getAttributeColor(this, R.attr.colorTimeSmall)
|
||||
}
|
||||
|
||||
private fun saveUIToData() {
|
||||
|
@ -1179,8 +1173,6 @@ class ActAccountSetting
|
|||
updateCredential("note", EmojiDecoder.decodeShortCode(sv))
|
||||
}
|
||||
|
||||
|
||||
|
||||
private fun sendLocked(willLocked : Boolean) {
|
||||
updateCredential("locked", willLocked)
|
||||
}
|
||||
|
|
|
@ -23,6 +23,7 @@ import jp.juggler.subwaytooter.table.AcctColor
|
|||
import jp.juggler.subwaytooter.table.SavedAccount
|
||||
import jp.juggler.util.*
|
||||
import org.apache.commons.io.IOUtils
|
||||
import org.jetbrains.anko.backgroundColor
|
||||
import org.jetbrains.anko.backgroundDrawable
|
||||
import org.jetbrains.anko.textColor
|
||||
import java.io.File
|
||||
|
@ -685,23 +686,13 @@ class ActAppSettingChild : AppCompatActivity()
|
|||
private fun showColumnSample() {
|
||||
flColumnBackground ?: return
|
||||
|
||||
var c = when {
|
||||
color_column_bg != 0 -> color_column_bg
|
||||
else -> 0
|
||||
}
|
||||
flColumnBackground !!.setBackgroundColor(c)
|
||||
flColumnBackground?.backgroundColor = color_column_bg // may 0
|
||||
|
||||
c = when {
|
||||
color_column_acct != 0 -> color_column_acct
|
||||
else -> getAttributeColor(this, R.attr.colorTimeSmall)
|
||||
}
|
||||
tvSampleAcct !!.setTextColor(c)
|
||||
tvSampleAcct?.textColor = color_column_acct.notZero()
|
||||
?: getAttributeColor(this, R.attr.colorTimeSmall)
|
||||
|
||||
c = when {
|
||||
color_column_text != 0 -> color_column_text
|
||||
else -> getAttributeColor(this, R.attr.colorContentText)
|
||||
}
|
||||
tvSampleContent !!.setTextColor(c)
|
||||
tvSampleContent?.textColor = color_column_text.notZero()
|
||||
?: getAttributeColor(this, R.attr.colorContentText)
|
||||
|
||||
}
|
||||
|
||||
|
@ -972,11 +963,11 @@ class ActAppSettingChild : AppCompatActivity()
|
|||
}
|
||||
|
||||
override fun onColorSelected(dialogId : Int, @ColorInt colorSelected : Int) {
|
||||
|
||||
|
||||
val colorOpaque = colorSelected or Color.BLACK
|
||||
|
||||
|
||||
val colorAlpha = colorSelected.notZero() ?: 0x01000000
|
||||
|
||||
|
||||
when(dialogId) {
|
||||
|
||||
COLOR_DIALOG_ID_FOOTER_BUTTON_BG -> {
|
||||
|
@ -1076,8 +1067,12 @@ class ActAppSettingChild : AppCompatActivity()
|
|||
private fun showFooterColor() {
|
||||
ivFooterToot ?: return
|
||||
|
||||
val colorBg = footer_button_bg_color.notZero() ?: getAttributeColor(this, R.attr.colorStatusButtonsPopupBg)
|
||||
val colorRipple = footer_button_fg_color.notZero() ?: getAttributeColor(this, R.attr.colorRippleEffect)
|
||||
val colorBg = footer_button_bg_color.notZero() ?: getAttributeColor(
|
||||
this,
|
||||
R.attr.colorStatusButtonsPopupBg
|
||||
)
|
||||
val colorRipple =
|
||||
footer_button_fg_color.notZero() ?: getAttributeColor(this, R.attr.colorRippleEffect)
|
||||
ivFooterToot?.backgroundDrawable = getAdaptiveRippleDrawable(colorBg, colorRipple)
|
||||
ivFooterMenu?.backgroundDrawable = getAdaptiveRippleDrawable(colorBg, colorRipple)
|
||||
|
||||
|
@ -1093,7 +1088,8 @@ class ActAppSettingChild : AppCompatActivity()
|
|||
?: getAttributeColor(this, R.attr.colorColumnStripBackground)
|
||||
)
|
||||
|
||||
val c = footer_tab_divider_color.notZero() ?: getAttributeColor(this, R.attr.colorImageButton)
|
||||
val c =
|
||||
footer_tab_divider_color.notZero() ?: getAttributeColor(this, R.attr.colorImageButton)
|
||||
vFooterDivider1?.setBackgroundColor(c)
|
||||
vFooterDivider2?.setBackgroundColor(c)
|
||||
|
||||
|
|
|
@ -100,11 +100,10 @@ class ActKeywordFilter
|
|||
if(filter_id != null ) {
|
||||
startLoading()
|
||||
} else {
|
||||
val sv = intent.getStringExtra(EXTRA_INITIAL_PHRASE)
|
||||
if(sv?.isNotEmpty() == true) {
|
||||
etPhrase.setText(sv)
|
||||
}
|
||||
tvExpire.setText(R.string.filter_expire_unlimited)
|
||||
etPhrase.setText(
|
||||
intent.getStringExtra(EXTRA_INITIAL_PHRASE).notEmpty()
|
||||
?: getString(R.string.filter_expire_unlimited)
|
||||
)
|
||||
}
|
||||
} else {
|
||||
val iv = savedInstanceState.getInt(STATE_EXPIRE_SPINNER, - 1)
|
||||
|
|
|
@ -1205,7 +1205,8 @@ class ActMain : AppCompatActivity()
|
|||
internal fun initUI() {
|
||||
setContentView(R.layout.act_main)
|
||||
|
||||
MyClickableSpan.defaultLinkColor = Pref.ipLinkColor(pref)
|
||||
MyClickableSpan.defaultLinkColor = Pref.ipLinkColor(pref).notZero()
|
||||
?: getAttributeColor(this, R.attr.colorLink)
|
||||
|
||||
Column.reloadDefaultColor(this, pref)
|
||||
|
||||
|
|
|
@ -17,10 +17,9 @@ import android.widget.TextView
|
|||
import com.jrummyapps.android.colorpicker.ColorPickerDialog
|
||||
import com.jrummyapps.android.colorpicker.ColorPickerDialogListener
|
||||
import jp.juggler.subwaytooter.table.AcctColor
|
||||
import jp.juggler.util.getAttributeColor
|
||||
import jp.juggler.util.hideKeyboard
|
||||
import jp.juggler.util.mayUri
|
||||
import jp.juggler.util.notZero
|
||||
import jp.juggler.util.*
|
||||
import org.jetbrains.anko.backgroundColor
|
||||
import org.jetbrains.anko.textColor
|
||||
|
||||
class ActNickname : AppCompatActivity(), View.OnClickListener, ColorPickerDialogListener {
|
||||
|
||||
|
@ -173,9 +172,9 @@ class ActNickname : AppCompatActivity(), View.OnClickListener, ColorPickerDialog
|
|||
|
||||
private fun show() {
|
||||
val s = etNickname.text.toString().trim { it <= ' ' }
|
||||
tvPreview.text = if(s.isNotEmpty()) s else acct
|
||||
tvPreview.setTextColor(color_fg.notZero() ?: getAttributeColor(this, R.attr.colorTimeSmall))
|
||||
tvPreview.setBackgroundColor(color_bg)
|
||||
tvPreview.text = s.notEmpty() ?: acct
|
||||
tvPreview.textColor = color_fg.notZero() ?: getAttributeColor(this, R.attr.colorTimeSmall)
|
||||
tvPreview.backgroundColor = color_bg
|
||||
}
|
||||
|
||||
override fun onClick(v : View) {
|
||||
|
|
|
@ -1450,17 +1450,11 @@ internal class ItemViewHolder(
|
|||
if(status.conversationSummary?.unread == true) {
|
||||
if(sb.isNotEmpty()) sb.append('\u200B')
|
||||
|
||||
val color = if(MyClickableSpan.defaultLinkColor != 0) {
|
||||
MyClickableSpan.defaultLinkColor
|
||||
} else {
|
||||
getAttributeColor(activity, R.attr.colorLink)
|
||||
}
|
||||
|
||||
sb.appendColorShadeIcon(
|
||||
activity,
|
||||
R.drawable.ic_unread,
|
||||
"unread",
|
||||
color = color
|
||||
color = MyClickableSpan.defaultLinkColor
|
||||
)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -666,7 +666,7 @@ class TootApiClient(
|
|||
val instance = result.caption // same to instance
|
||||
|
||||
// クライアントIDがアプリ上に保存されているか?
|
||||
val client_name = if(clientNameArg.isNotEmpty()) clientNameArg else DEFAULT_CLIENT_NAME
|
||||
val client_name = clientNameArg.notEmpty() ?: DEFAULT_CLIENT_NAME
|
||||
val client_info = ClientInfo.load(instance, client_name)
|
||||
|
||||
// スコープ一覧を取得する
|
||||
|
@ -743,7 +743,7 @@ class TootApiClient(
|
|||
val result = TootApiResult.makeWithCaption(instance)
|
||||
if(result.error != null) return result
|
||||
val instance = result.caption // same to instance
|
||||
val client_name = if(clientNameArg.isNotEmpty()) clientNameArg else DEFAULT_CLIENT_NAME
|
||||
val client_name = clientNameArg.notEmpty() ?: DEFAULT_CLIENT_NAME
|
||||
|
||||
@Suppress("UNUSED_VARIABLE")
|
||||
val client_info = ClientInfo.load(instance, client_name)
|
||||
|
@ -938,7 +938,7 @@ class TootApiClient(
|
|||
val instance = result.caption // same to instance
|
||||
|
||||
// クライアントIDがアプリ上に保存されているか?
|
||||
val client_name = if(clientNameArg.isNotEmpty()) clientNameArg else DEFAULT_CLIENT_NAME
|
||||
val client_name = clientNameArg.notEmpty() ?: DEFAULT_CLIENT_NAME
|
||||
var client_info = ClientInfo.load(instance, client_name)
|
||||
|
||||
// スコープ一覧を取得する
|
||||
|
|
|
@ -7,6 +7,7 @@ import android.view.View
|
|||
import java.lang.ref.WeakReference
|
||||
|
||||
import jp.juggler.subwaytooter.table.AcctColor
|
||||
import jp.juggler.util.notZero
|
||||
|
||||
typealias MyClickableSpanClickCallback = (widget : View, span : MyClickableSpan)->Unit
|
||||
|
||||
|
@ -43,12 +44,8 @@ class MyClickableSpan(
|
|||
override fun updateDrawState(ds : TextPaint) {
|
||||
super.updateDrawState(ds)
|
||||
if(color_bg != 0) ds.bgColor = color_bg
|
||||
|
||||
if(color_fg != 0){
|
||||
ds.color = color_fg
|
||||
}else if( defaultLinkColor != 0){
|
||||
ds.color = defaultLinkColor
|
||||
}
|
||||
|
||||
ds.color = color_fg.notZero() ?: defaultLinkColor
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -7,9 +7,14 @@ fun <T : Comparable<T>> clipRange(min : T, max : T, src : T) =
|
|||
if(src < min) min else if(src > max) max else src
|
||||
|
||||
////////////////////////////////////////////////////////////////////
|
||||
// zero to null
|
||||
|
||||
fun Int.notZero() :Int? = if(this!=0) this else null
|
||||
// usage: number.notZero() ?: fallback
|
||||
// equivalent: if(this != 0 ) this else null
|
||||
fun Int.notZero() : Int? = if(this != 0) this else null
|
||||
fun Long.notZero() : Long? = if(this != 0L) this else null
|
||||
fun Float.notZero() : Float? = if(this != 0f) this else null
|
||||
fun Double.notZero() : Double? = if(this != .0) this else null
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////
|
||||
// long
|
||||
|
|
|
@ -136,6 +136,10 @@ inline fun <S : CharSequence, Z : Any?> S?.letNotEmpty(block : (S) -> Z?) : Z? =
|
|||
null
|
||||
}
|
||||
|
||||
// usage: str.notEmpty() ?: fallback
|
||||
// equivalent: if(this.isNotEmpty() ) this else null
|
||||
fun <S : CharSequence> S.notEmpty() :S? = if( this.isNotEmpty() ) this else null
|
||||
|
||||
////////////////////////////////////////////////////////////////////
|
||||
// string
|
||||
|
||||
|
|
|
@ -43,7 +43,7 @@
|
|||
<!-- 日時の表記 #888888 -->
|
||||
<attr name="colorTimeSmall" format="color"/>
|
||||
|
||||
<!-- 日時の表記 #888888 -->
|
||||
<!-- 本文テキスト -->
|
||||
<attr name="colorContentText" format="color"/>
|
||||
|
||||
<attr name="colorRefreshErrorBg" format="color"/>
|
||||
|
|
|
@ -60,12 +60,12 @@
|
|||
|
||||
<color name="Dark_colorThumbnailBackground">#20ffffff</color>
|
||||
<color name="Dark_colorColumnListItemText">#66FFFFFF</color>
|
||||
<color name="Dark_colorTimeSmall">#ff888888</color>
|
||||
<color name="Dark_colorContentText">#ffdddddd</color>
|
||||
<color name="Dark_colorTimeSmall">#BBBBBB</color>
|
||||
<color name="Dark_colorContentText">#dddddd</color>
|
||||
<color name="Dark_colorRefreshErrorBg">#8333</color>
|
||||
|
||||
<color name="Dark_colorColumnHeaderAcct">#66FFFFFF</color>
|
||||
<color name="Dark_colorColumnHeaderPageNumber">#66FFFFFF</color>
|
||||
<color name="Dark_colorColumnHeaderAcct">#e4e4e4</color>
|
||||
<color name="Dark_colorColumnHeaderPageNumber">#e4e4e4</color>
|
||||
<color name="Dark_colorSettingDivider">#66FFFFFF</color><!-- ダイアログ背景が#424242なので、それより明るくないといけない -->
|
||||
<color name="Dark_colorColumnHeaderName">#e4e4e4</color>
|
||||
<color name="Dark_colorVectorDrawable">#e4e4e4</color>
|
||||
|
@ -74,8 +74,7 @@
|
|||
|
||||
<color name="Dark_colorAccent">#ccFFFFFF</color>
|
||||
|
||||
<color name="Dark_colorRippleEffect">#999</color>
|
||||
|
||||
<color name="Dark_colorRippleEffect">#777</color>
|
||||
|
||||
<color name="Dark_colorColumnListDragHandleBackground">#80444444</color>
|
||||
<color name="Dark_list_item_bg_pressed_dragged">#AA444444</color>
|
||||
|
@ -86,8 +85,8 @@
|
|||
<color name="Dark_colorPrimary">#333</color>
|
||||
<color name="Dark_color_column_header">#333</color>
|
||||
|
||||
<color name="Dark_colorStatusButtonsPopupBg">#333</color>
|
||||
<color name="Dark_colorButtonBgCw">#666</color>
|
||||
<color name="Dark_colorStatusButtonsPopupBg">#424242</color>
|
||||
<color name="Dark_colorButtonBgCw">#5b5b5b</color>
|
||||
|
||||
<color name="Dark_colorReplyBackground">#333</color>
|
||||
|
||||
|
@ -105,7 +104,7 @@
|
|||
<!-- 以下は白テーマでも黒テーマでもだいたい同じ -->
|
||||
<color name="Dark_colorButtonSelected">#ff000080</color>
|
||||
<color name="Dark_colorLink">#00a2ff</color>
|
||||
<color name="Dark_colorImageButtonAccent">#ff0088ff</color>
|
||||
<color name="Dark_colorImageButtonAccent">#00a2ff</color>
|
||||
<color name="Dark_colorShowMediaBackground">#222</color>
|
||||
<color name="Dark_colorShowMediaText">#ccFFFFFF</color>
|
||||
<color name="Dark_colorColumnListDeleteBackground">#FF0000</color>
|
||||
|
|
|
@ -74,8 +74,7 @@
|
|||
<item name="colorRippleEffect">@color/Dark_colorRippleEffect</item>
|
||||
<item name="colorButtonSelected">@color/Dark_colorButtonSelected</item>
|
||||
<item name="colorReplyBackground">@color/Dark_colorReplyBackground</item>
|
||||
<item name="colorColumnListDeleteBackground">@color/Dark_colorColumnListDeleteBackground
|
||||
</item>
|
||||
<item name="colorColumnListDeleteBackground">@color/Dark_colorColumnListDeleteBackground</item>
|
||||
<item name="colorColumnListDeleteText">@color/Dark_colorColumnListDeleteText</item>
|
||||
<item name="colorColumnListDragHandleBackground">
|
||||
@color/Dark_colorColumnListDragHandleBackground
|
||||
|
|
Loading…
Reference in New Issue