new color theme: Mastodon Dark

This commit is contained in:
tateisu 2023-01-13 15:33:28 +09:00
parent c0966845b0
commit c56005259a
30 changed files with 288 additions and 160 deletions

View File

@ -127,6 +127,7 @@ class ActMain : AppCompatActivity(),
var quickPostVisibility: TootVisibility = TootVisibility.AccountSetting
lateinit var llFormRoot: LinearLayout
lateinit var vBottomPadding: View
lateinit var llQuickPostBar: LinearLayout
lateinit var etQuickPost: MyEditText
lateinit var btnQuickToot: ImageButton
@ -667,6 +668,7 @@ class ActMain : AppCompatActivity(),
// ビューのlateinit変数を初期化する
private fun findViews() {
llFormRoot = findViewById(R.id.llFormRoot)
vBottomPadding = findViewById(R.id.vBottomPadding)
llEmpty = findViewById(R.id.llEmpty)
drawer = findViewById(R.id.drawer_layout)
btnMenu = findViewById(R.id.btnMenu)
@ -710,7 +712,7 @@ class ActMain : AppCompatActivity(),
sideMenuAdapter = SideMenuAdapter(this, handler, findViewById(R.id.nav_view), drawer)
llFormRoot.setPadding(0, 0, 0, screenBottomPadding)
vBottomPadding.layoutParams?.height = screenBottomPadding
justifyWindowContentPortrait()

View File

@ -418,12 +418,13 @@ class App1 : Application() {
prepare(activity.applicationContext, "setActivityTheme")
val theme_idx = PrefI.ipUiTheme(appPref)
var nTheme = PrefI.ipUiTheme(appPref)
if (forceDark && nTheme == 0) nTheme = 1
activity.setTheme(
if (forceDark || theme_idx == 1) {
if (noActionBar) R.style.AppTheme_Dark_NoActionBar else R.style.AppTheme_Dark
} else {
if (noActionBar) R.style.AppTheme_Light_NoActionBar else R.style.AppTheme_Light
when (nTheme) {
2 -> if (noActionBar) R.style.AppTheme_Mastodon_NoActionBar else R.style.AppTheme_Dark
1 -> if (noActionBar) R.style.AppTheme_Dark_NoActionBar else R.style.AppTheme_Mastodon
else -> if (noActionBar) R.style.AppTheme_Light_NoActionBar else R.style.AppTheme_Light
}
)

View File

@ -178,11 +178,11 @@ object Styler {
) {
fun colorAccent() =
PrefI.ipButtonFollowingColor(context.pref()).notZero()
?: context.attrColor(R.attr.colorImageButtonAccent)
?: context.attrColor(R.attr.colorButtonAccentFollow)
fun colorError() =
PrefI.ipButtonFollowRequestColor(context.pref()).notZero()
?: context.attrColor(R.attr.colorRegexFilterError)
?: context.attrColor(R.attr.colorButtonAccentFollowRequest)
// 被フォロー状態
when {

View File

@ -101,13 +101,8 @@ fun ActMain.reloadBoostAlpha() {
.toIntOrNull()
?.toFloat()
?.let { (it + 0.5f) / 100f }
?.let {
when {
it >= 1f -> 1f
it < 0f -> 0.66f
else -> it
}
} ?: 0.8f
?.takeIf { it > 0f && it < 1f }
?: 1f
}
fun ActMain.reloadMediaHeight() {
@ -224,6 +219,8 @@ fun ActMain.showFooterColor() {
svColumnStrip.setBackgroundColor(colorColumnStripBackground)
llQuickPostBar.setBackgroundColor(colorColumnStripBackground)
vBottomPadding.setBackgroundColor(colorColumnStripBackground)
val colorButtonBg = footerButtonBgColor.notZero()
?: colorColumnStripBackground

View File

@ -232,7 +232,7 @@ class TootInstance(parser: TootParser, src: JsonObject) {
val misskeyVersion: Int
get() = when {
instanceType != InstanceType.Misskey -> 0
else-> decoded_version.majorVersion ?: 10
else -> decoded_version.majorVersion ?: 10
}
val canUseReference: Boolean?

View File

@ -774,7 +774,8 @@ val appSettingRoot = AppSettingItem(null, SettingType.Section, R.string.app_sett
PrefI.ipUiTheme,
R.string.ui_theme,
R.string.theme_light,
R.string.theme_dark
R.string.theme_dark,
R.string.theme_mastodon_dark,
)
colorAlpha(PrefI.ipListDividerColor, R.string.list_divider_color)

View File

@ -16,7 +16,6 @@ import jp.juggler.subwaytooter.search.TootsearchHelper.loadingTootsearch
import jp.juggler.subwaytooter.search.TootsearchHelper.refreshTootsearch
import jp.juggler.subwaytooter.streaming.StreamSpec
import jp.juggler.subwaytooter.table.AcctColor
import jp.juggler.subwaytooter.table.SavedAccount
import jp.juggler.util.*
import java.util.*
import kotlin.math.max

View File

@ -23,7 +23,6 @@ import com.google.android.flexbox.FlexboxLayout
import jp.juggler.subwaytooter.App1
import jp.juggler.subwaytooter.R
import jp.juggler.subwaytooter.databinding.EmojiPickerDialogBinding
import jp.juggler.subwaytooter.drawable.MediaBackgroundDrawable
import jp.juggler.subwaytooter.emoji.*
import jp.juggler.subwaytooter.global.appPref
import jp.juggler.subwaytooter.pref.PrefB
@ -575,7 +574,7 @@ private class EmojiPicker(
category.createFiltered(keywordLower)
.takeIf { it.items.isNotEmpty() }
}.forEach {
if( it.category == EmojiCategory.Custom || selectedCategory == null) add(it)
if (it.category == EmojiCategory.Custom || selectedCategory == null) add(it)
addAll(it.items)
val mod = it.items.size % gridCols
if (mod > 0) {
@ -744,8 +743,6 @@ private class EmojiPicker(
views.etFilter.addTextChangedListener(textWatcher)
showFiltered(null, null)
val density = activity.resources.displayMetrics.density

View File

@ -186,7 +186,6 @@ internal class DlgContextMenu(
views.btnStatusEdit2.vg(canEdit)
views.btnStatusEdit.vg(canEdit)
views.btnStatusDelete2.vg(statusByMe)
views.btnGroupStatusByMe.vg(statusByMe)
@ -228,11 +227,11 @@ internal class DlgContextMenu(
val colorButtonAccent =
PrefI.ipButtonFollowingColor(activity.pref).notZero()
?: activity.attrColor(R.attr.colorImageButtonAccent)
?: activity.attrColor(R.attr.colorButtonAccentFollow)
val colorButtonError =
PrefI.ipButtonFollowRequestColor(activity.pref).notZero()
?: activity.attrColor(R.attr.colorRegexFilterError)
?: activity.attrColor(R.attr.colorButtonAccentFollowRequest)
val colorButtonNormal =
activity.attrColor(R.attr.colorImageButton)
@ -257,7 +256,7 @@ internal class DlgContextMenu(
views.btnStatusEdit2,
views.btnStatusHistory2,
views.btnStatusTranslate2,
views.btnStatusTranslate2,
views.btnStatusDelete2,
).forEach {
it.imageTintList = ColorStateList.valueOf(colorButtonNormal)
}

View File

@ -517,6 +517,7 @@ class ItemViewHolder(
llMedia = linearLayout {
lparams(matchParent, matchParent)
ivMediaThumbnails.clear()
repeat(MEDIA_VIEW_COUNT) { idx ->
myNetworkImageView {
background = ContextCompat.getDrawable(context, R.drawable.bg_thumbnail)
@ -526,8 +527,8 @@ class ItemViewHolder(
weight = 1f
if (idx > 0) startMargin = dip(8)
}.let { ivMediaThumbnails.add(it) }
}
btnHideMedia = imageButton {
background =
ContextCompat.getDrawable(context, R.drawable.btn_bg_transparent_round6dp)

View File

@ -95,8 +95,8 @@ fun ItemViewHolder.makeReactionsView(status: TootStatus) {
// 自分がリアクションしたやつは背景を変える
getAdaptiveRippleDrawableRound(
act,
PrefI.ipButtonReactionedColor(act.pref).notZero()
?: act.attrColor(R.attr.colorImageButtonAccent),
PrefI.ipButtonReactionedColor.invoke(act.pref).notZero()
?: act.attrColor(R.attr.colorButtonAccentReaction),
act.attrColor(R.attr.colorRippleEffect),
roundNormal = true
)

View File

@ -71,8 +71,7 @@ fun ItemViewHolder.showStatus(
if (status.conversation_main) {
PrefI.ipConversationMainTootBgColor(activity.pref).notZero()
?: activity.attrColor(R.attr.colorImageButtonAccent)
.and(0xffffff).or(0x20000000)
?: activity.attrColor(R.attr.colorConversationMainTootBg)
} else {
colorBg.notZero() ?: when (status.bookmarked) {
true -> PrefI.ipEventBgColorBookmark()

View File

@ -85,9 +85,6 @@ class StatusButtons(
private val colorNormal = column.getContentColor()
private val colorAccent: Int
get() = activity.attrColor(R.attr.colorImageButtonAccent)
private var optionalButtonFirst: View? = null
private var optionalButtonCount = 0
var ti: TootInstance? = null
@ -191,7 +188,8 @@ class StatusButtons(
setButton(
btnBoost,
false,
colorAccent,
PrefI.ipButtonBoostedColor(activity.pref).notZero()
?: activity.attrColor(R.attr.colorButtonAccentBoost),
R.drawable.ic_mail,
"",
activity.getString(R.string.boost)
@ -212,7 +210,8 @@ class StatusButtons(
true,
when {
status.reblogged ->
PrefI.ipButtonBoostedColor(activity.pref).notZero() ?: colorAccent
PrefI.ipButtonBoostedColor(activity.pref).notZero()
?: activity.attrColor(R.attr.colorButtonAccentBoost)
else ->
colorNormal
},
@ -281,7 +280,8 @@ class StatusButtons(
true,
when {
status.favourited ->
PrefI.ipButtonFavoritedColor(activity.pref).notZero() ?: colorAccent
PrefI.ipButtonFavoritedColor(activity.pref).notZero()
?: activity.attrColor(R.attr.colorButtonAccentFavourite)
else -> colorNormal
},
when {
@ -325,7 +325,7 @@ class StatusButtons(
when {
status.bookmarked ->
PrefI.ipButtonBookmarkedColor(activity.pref).notZero()
?: colorAccent
?: activity.attrColor(R.attr.colorButtonAccentBookmark)
else ->
colorNormal
},

View File

@ -15,7 +15,7 @@ object PrefI {
const val BACK_OPEN_COLUMN_LIST = 2
const val BACK_EXIT_APP = 3
val ipUiTheme = IntPref("ui_theme", 0)
val ipUiTheme = IntPref("ui_theme", 2)
// val ipResizeImage = IntPref("resize_image", 4)

View File

@ -1,6 +1,5 @@
package jp.juggler.subwaytooter.util
import android.Manifest
import android.content.ContentValues
import android.content.Intent
import android.net.Uri
@ -86,14 +85,13 @@ class AttachmentPicker(
}
}
private val prPickAttachment = permissionSpecImagePicker.requester{ openPicker() }
private val prPickAttachment = permissionSpecImagePicker.requester { openPicker() }
private val prPickCustomThumbnail = permissionSpecImagePicker.requester{
private val prPickCustomThumbnail = permissionSpecImagePicker.requester {
callback.resumeCustomThumbnailTarget(states.customThumbnailTargetId)
?.let { openCustomThumbnail(it) }
}
init {
// must register all ARHs before onStart
prPickAttachment.register(activity)

View File

@ -170,7 +170,7 @@ object CustomShare {
fun hasTranslateApp(
target: CustomShareTarget,
context: Context,
)= try {
) = try {
getCustomShareComponentName(target)?.let { cn ->
val cnStr = "${cn.packageName}/${cn.className}"
if (cnStr == CN_CLIPBOARD) {
@ -185,9 +185,9 @@ object CustomShare {
ri != null
}
}
}catch(ignores:Throwable) {
} catch (ignores: Throwable) {
null
}?: false
} ?: false
private val cache = HashMap<CustomShareTarget, Pair<CharSequence?, Drawable?>>()

View File

@ -410,9 +410,9 @@ object EmojiDecoder {
}
userHost != null && userHost != "." && userHost != apiHostAscii -> {
// 投稿者のホスト名を使う
return "https://${apiHostAscii}/emoji/${
return "https://$apiHostAscii/emoji/${
cols.elementAtOrNull(0)
}@${userHost}.webp"
}@$userHost.webp"
}
else -> {
// 閲覧先サーバの絵文字を探す

View File

@ -170,9 +170,9 @@ class VersionString(src: String?) : Comparable<VersionString> {
}
val majorVersion: Int?
get(){
get() {
nodeList.forEach {
if(it is BigInteger){
if (it is BigInteger) {
return it.toString().toIntOrNull()
}
}

View File

@ -40,10 +40,8 @@ object MySslSocketFactory : SSLSocketFactory() {
originalFactory.supportedCipherSuites
@Throws(IOException::class)
override fun createSocket(
): Socket? = check(
originalFactory.createSocket()
)
override fun createSocket(): Socket? =
check(originalFactory.createSocket())
@Throws(IOException::class)
override fun createSocket(

View File

@ -291,11 +291,10 @@ fun CharSequence.copyToClipboard(context: Context) {
clipboard.setPrimaryClip(clip)
if(Build.VERSION.SDK_INT < 33){
if (Build.VERSION.SDK_INT < 33) {
context.showToast(false, R.string.copy_complete)
// API 33以上はOSがクリップボード使用メッセージをだすので、アプリはトーストを出さない
}
} catch (ex: Throwable) {
log.e(ex, "copy failed.")
context.showToast(ex, "copy failed.")

View File

@ -51,7 +51,7 @@ fun View.hideKeyboard() {
else -> log.e("hideKeyboard: can't get InputMethodManager")
}
} catch (ex: Throwable) {
log.e(ex,"hideKeyboard failed.")
log.e(ex, "hideKeyboard failed.")
}
}
@ -65,7 +65,7 @@ fun View.showKeyboard() {
else -> log.e("showKeyboard: can't get InputMethodManager")
}
} catch (ex: Throwable) {
log.e(ex,"showKeyboard failed.")
log.e(ex, "showKeyboard failed.")
}
}
@ -119,9 +119,8 @@ private fun mixColor(col1: Int, col2: Int): Int = Color.rgb(
fun Context.setSwitchColor(root: View?) {
val colorBg = attrColor(R.attr.colorWindowBackground)
val colorOff = attrColor(R.attr.colorSwitchOff)
val colorOn = PrefI.ipSwitchOnColor()
val colorOff = /* PrefI.ipSwitchOffColor().notZero() ?: */
attrColor(android.R.attr.colorPrimary)
val colorDisabled = mixColor(colorBg, colorOff)

View File

@ -134,6 +134,11 @@
android:scaleType="fitCenter"
android:src="@drawable/ic_send" />
</LinearLayout>
<View android:id="@+id/vBottomPadding"
android:layout_width="match_parent"
android:layout_height="8dp"
/>
</LinearLayout>
<com.google.android.material.navigation.NavigationView

View File

@ -348,7 +348,7 @@
android:layout_height="match_parent"
android:scaleType="center"
android:src="@drawable/ic_follow_dot"
app:tint="?attr/colorImageButtonAccent"
app:tint="?attr/colorButtonAccentFollow"
tools:ignore="ContentDescription" />
</FrameLayout>

View File

@ -704,6 +704,7 @@
<string name="thanks_for">Thanks for %1$s</string>
<string name="theme_dark">暗い</string>
<string name="theme_light">明るい</string>
<string name="theme_mastodon_dark">Mastodon Dark</string>
<string name="thumbnail">サムネイル</string>
<string name="thumbnails_arrange_vertically">サムネイルを縦に並べる (アプリ再起動が必要)</string>
<string name="time_within_second">たった今</string>

View File

@ -13,4 +13,11 @@
<item name="android:windowSplashScreenAnimatedIcon">@mipmap/ic_launcher_foreground</item>
<item name="android:windowSplashScreenAnimationDuration">1000</item>
</style>
</resources>
<!-- Mastidon theme -->
<style name="AppTheme.Mastodon" parent="AppTheme.Mastodon.Base">
<item name="android:windowSplashScreenBackground">@color/Other_splashBackground</item>
<item name="android:windowSplashScreenAnimatedIcon">@mipmap/ic_launcher_foreground</item>
<item name="android:windowSplashScreenAnimationDuration">1000</item>
</style>
</resources>

View File

@ -17,7 +17,7 @@
<attr name="colorImageButton" format="color"/>
<!-- イメージボタンの図柄の色 ファボ済みなど 0xff0088ff-->
<attr name="colorImageButtonAccent" format="color"/>
<attr name="colorConversationMainTootBg" format="color"/>
<!-- リップルエフェクトの色 FF808080-->
<attr name="colorRippleEffect" format="color"/>
@ -94,4 +94,15 @@
<!-- @drawable/window_background_light と @drawable/window_background に指定した色をgetAttributeColorで取得したい -->
<attr name="colorWindowBackground" format="color"/>
<!-- アプリ設定などのスイッチのオフの色 -->
<attr name="colorSwitchOff" format="color"/>
<!-- ボタンアクセント色 -->
<attr name="colorButtonAccentBoost" format="color"/>
<attr name="colorButtonAccentFavourite" format="color"/>
<attr name="colorButtonAccentBookmark" format="color"/>
<attr name="colorButtonAccentFollow" format="color"/>
<attr name="colorButtonAccentFollowRequest" format="color"/>
<attr name="colorButtonAccentReaction" format="color"/>
</resources>

View File

@ -1,118 +1,145 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="Light_colorThumbnailBackground">#20000000</color>
<color name="Light_colorColumnListItemText">#80000000</color>
<color name="Light_colorTimeSmall">#ff666666</color>
<color name="Light_colorContentText">#ff333333</color>
<color name="Light_colorColumnHeaderName">#616161</color>
<color name="Light_colorVectorDrawable">#616161</color>
<color name="Light_colorImageButton">#99343434</color>
<color name="Light_colorColumnHeaderAcct">#80000000</color>
<color name="Light_colorColumnHeaderPageNumber">#80000000</color>
<color name="Light_colorSettingDivider">#80000000</color>
<!-- =================================================== -->
<!-- Light theme -->
<color name="Light_colorAccent">#5a5a5a</color>
<color name="Light_colorRippleEffect">#FF808080</color>
<color name="Light_colorColumnListDragHandleBackground">#80cccccc</color>
<color name="Light_list_item_bg_pressed_dragged">#AACCCCCC</color>
<color name="Light_colorColumnSettingBackground">#bbb</color>
<color name="Light_colorSearchFormBackground">#bee6ff</color>
<color name="Light_colorPrimary">#cccccc</color>
<color name="Light_color_column_header">#fff</color>
<color name="Light_colorStatusButtonsPopupBg">#cccccc</color>
<color name="Light_colorButtonBgCw">#cccccc</color>
<color name="Light_colorReplyBackground">#cccccc</color>
<color name="Light_colorRefreshErrorBg">#D222</color>
<color name="Light_colorPostFormBackground">#eee</color>
<color name="Light_colorProfileBackgroundMask">#C0FFFFFF</color>
<color name="Light_colorBackground">#fff</color>
<color name="Light_colorColumnStripBackground">#fff</color>
<color name="Light_colorPrimaryDark">#303030</color> <!-- ステータスバー背景 -->
<!-- 以下は白テーマでも黒テーマでもだいたい同じ -->
<color name="Light_colorButtonAccentBookmark">#ff0088ff</color>
<color name="Light_colorButtonAccentBoost">#ff0088ff</color>
<color name="Light_colorButtonAccentFavourite">#ff0088ff</color>
<color name="Light_colorButtonAccentFollow">#ff0088ff</color>
<color name="Light_colorButtonAccentFollowRequest">#f00</color>
<color name="Light_colorButtonAccentReaction">#ff0088ff</color>
<color name="Light_colorButtonBgCw">#cccccc</color>
<color name="Light_colorButtonSelected">#ff000080</color>
<color name="Light_colorLink">#00a2ff</color>
<color name="Light_colorImageButtonAccent">#ff0088ff</color>
<color name="Light_colorShowMediaBackground">#000</color>
<color name="Light_colorShowMediaText">#fff</color>
<color name="Light_colorColumnHeaderAcct">#80000000</color>
<color name="Light_colorColumnHeaderName">#616161</color>
<color name="Light_colorColumnHeaderPageNumber">#80000000</color>
<color name="Light_colorColumnListDeleteBackground">#FF0000</color>
<color name="Light_colorColumnListDeleteText">#fff</color>
<color name="Light_colorColumnListDragHandleBackground">#80cccccc</color>
<color name="Light_colorColumnListItemText">#80000000</color>
<color name="Light_colorColumnSettingBackground">#bbb</color>
<color name="Light_colorColumnStripBackground">#fff</color>
<color name="Light_colorContentText">#ff333333</color>
<color name="Light_colorImageButton">#99343434</color>
<color name="Light_colorConversationMainTootBg">#200088ff</color>
<color name="Light_colorLink">#00a2ff</color>
<color name="Light_colorPostFormBackground">#eee</color>
<color name="Light_colorPrimary">#cccccc</color>
<color name="Light_colorPrimaryDark">#303030</color> <!-- ステータスバー背景 -->
<color name="Light_colorProfileBackgroundMask">#C0FFFFFF</color>
<color name="Light_colorRefreshErrorBg">#D222</color>
<color name="Light_colorRegexFilterError">#f00</color>
<color name="Light_colorReplyBackground">#cccccc</color>
<color name="Light_colorRippleEffect">#FF808080</color>
<color name="Light_colorSearchFormBackground">#bee6ff</color>
<color name="Light_colorSettingDivider">#80000000</color>
<color name="Light_colorShowMediaBackground">#000</color>
<color name="Light_colorShowMediaText">#fff</color>
<color name="Light_colorStatusButtonsPopupBg">#cccccc</color>
<color name="Light_colorThumbnailBackground">#20000000</color>
<color name="Light_colorTimeSmall">#ff666666</color>
<color name="Light_colorVectorDrawable">#616161</color>
<color name="Light_color_column_header">#fff</color>
<color name="Light_list_item_bg_pressed_dragged">#AACCCCCC</color>
<color name="Light_colorSwitchOff">#cccccc</color>
<!-- =================================================== -->
<!-- Dark theme -->
<color name="Dark_colorThumbnailBackground">#20ffffff</color>
<color name="Dark_colorColumnListItemText">#66FFFFFF</color>
<color name="Dark_colorTimeSmall">#BBBBBB</color>
<color name="Dark_colorContentText">#dddddd</color>
<color name="Dark_colorRefreshErrorBg">#D222</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>
<color name="Dark_colorImageButton">#ccFFFFFF</color>
<color name="Dark_colorAccent">#ccFFFFFF</color>
<color name="Dark_colorRippleEffect">#777</color>
<color name="Dark_colorColumnListDragHandleBackground">#80444444</color>
<color name="Dark_list_item_bg_pressed_dragged">#AA444444</color>
<color name="Dark_colorColumnSettingBackground">#383838</color>
<color name="Dark_colorSearchFormBackground">#333370</color>
<color name="Dark_colorPrimary">#333</color>
<color name="Dark_color_column_header">#333</color>
<color name="Dark_colorStatusButtonsPopupBg">#424242</color>
<color name="Dark_colorButtonBgCw">#5b5b5b</color>
<color name="Dark_colorReplyBackground">#333</color>
<color name="Dark_colorPostFormBackground">#222</color>
<color name="Dark_colorProfileBackgroundMask">#C0000000</color>
<color name="Dark_colorBackground">#000</color>
<color name="Dark_colorColumnStripBackground">#000</color>
<color name="Dark_colorPrimaryDark">#222</color> <!-- ステータスバー背景 -->
<!-- 以下は白テーマでも黒テーマでもだいたい同じ -->
<color name="Dark_colorButtonAccentBookmark">#00a2ff</color>
<color name="Dark_colorButtonAccentBoost">#00a2ff</color>
<color name="Dark_colorButtonAccentFavourite">#00a2ff</color>
<color name="Dark_colorButtonAccentFollow">#00a2ff</color>
<color name="Dark_colorButtonAccentFollowRequest">#f00</color>
<color name="Dark_colorButtonAccentReaction">#00a2ff</color>
<color name="Dark_colorButtonBgCw">#5b5b5b</color>
<color name="Dark_colorButtonSelected">#ff000080</color>
<color name="Dark_colorLink">#00a2ff</color>
<color name="Dark_colorImageButtonAccent">#00a2ff</color>
<color name="Dark_colorShowMediaBackground">#222</color>
<color name="Dark_colorShowMediaText">#ccFFFFFF</color>
<color name="Dark_colorColumnHeaderAcct">#e4e4e4</color>
<color name="Dark_colorColumnHeaderName">#e4e4e4</color>
<color name="Dark_colorColumnHeaderPageNumber">#e4e4e4</color>
<color name="Dark_colorColumnListDeleteBackground">#FF0000</color>
<color name="Dark_colorColumnListDeleteText">#fff</color>
<color name="Dark_colorColumnListDragHandleBackground">#80444444</color>
<color name="Dark_colorColumnListItemText">#66FFFFFF</color>
<color name="Dark_colorColumnSettingBackground">#383838</color>
<color name="Dark_colorColumnStripBackground">#000</color>
<color name="Dark_colorContentText">#dddddd</color>
<color name="Dark_colorImageButton">#ccFFFFFF</color>
<color name="Dark_colorConversationMainTootBg">#2000a2ff</color>
<color name="Dark_colorLink">#00a2ff</color>
<color name="Dark_colorPostFormBackground">#222</color>
<color name="Dark_colorPrimary">#333</color>
<color name="Dark_colorPrimaryDark">#222</color> <!-- ステータスバー背景 -->
<color name="Dark_colorProfileBackgroundMask">#C0000000</color>
<color name="Dark_colorRefreshErrorBg">#D222</color>
<color name="Dark_colorRegexFilterError">#f00</color>
<color name="Dark_colorReplyBackground">#333</color>
<color name="Dark_colorRippleEffect">#777</color>
<color name="Dark_colorSearchFormBackground">#333370</color>
<color name="Dark_colorSettingDivider">#66FFFFFF</color><!-- ダイアログ背景が#424242なので、それより明るくないといけない -->
<color name="Dark_colorShowMediaBackground">#222</color>
<color name="Dark_colorShowMediaText">#ccFFFFFF</color>
<color name="Dark_colorStatusButtonsPopupBg">#424242</color>
<color name="Dark_colorThumbnailBackground">#20ffffff</color>
<color name="Dark_colorTimeSmall">#BBBBBB</color>
<color name="Dark_colorVectorDrawable">#e4e4e4</color>
<color name="Dark_color_column_header">#333</color>
<color name="Dark_list_item_bg_pressed_dragged">#AA444444</color>
<color name="Dark_colorSwitchOff">#333</color>
<!-- =================================================== -->
<!-- Mastodon theme -->
<color name="Mastodon_colorAccent">#ccFFFFFF</color>
<color name="Mastodon_colorBackground">#282C37</color>
<color name="Mastodon_colorButtonBgCw">#5b5b5b</color>
<color name="Mastodon_colorButtonSelected">#ff000080</color>
<color name="Mastodon_colorButtonAccentBoost">#158297</color>
<color name="Mastodon_colorButtonAccentFavourite">#a8ab16</color>
<color name="Mastodon_colorButtonAccentBookmark">#9a151a</color>
<color name="Mastodon_colorButtonAccentFollow">#FF06D3C4</color>
<color name="Mastodon_colorButtonAccentFollowRequest">#f00</color>
<color name="Mastodon_colorButtonAccentReaction">#FF99AEC7</color>
<color name="Mastodon_colorColumnHeaderAcct">#e4e4e4</color>
<color name="Mastodon_colorColumnHeaderName">#e4e4e4</color>
<color name="Mastodon_colorColumnHeaderPageNumber">#e4e4e4</color>
<color name="Mastodon_colorColumnListDeleteBackground">#FF0000</color>
<color name="Mastodon_colorColumnListDeleteText">#fff</color>
<color name="Mastodon_colorColumnListDragHandleBackground">#80444444</color>
<color name="Mastodon_colorColumnListItemText">#66FFFFFF</color>
<color name="Mastodon_colorColumnSettingBackground">#383838</color>
<color name="Mastodon_colorColumnStripBackground">#444B5D</color>
<color name="Mastodon_colorContentText">#dddddd</color>
<color name="Mastodon_colorImageButton">#ccFFFFFF</color>
<color name="Mastodon_colorConversationMainTootBg">#2000a2ff</color>
<color name="Mastodon_colorLink">#FE4E92D6</color>
<color name="Mastodon_colorPostFormBackground">#222</color>
<color name="Mastodon_colorPrimary">#333</color>
<color name="Mastodon_colorPrimaryDark">#444B5D</color> <!-- ステータスバー背景 -->
<color name="Mastodon_colorProfileBackgroundMask">#C0000000</color>
<color name="Mastodon_colorRefreshErrorBg">#D222</color>
<color name="Mastodon_colorRegexFilterError">#f00</color>
<color name="Mastodon_colorReplyBackground">#333</color>
<color name="Mastodon_colorRippleEffect">#777</color>
<color name="Mastodon_colorSearchFormBackground">#333370</color>
<color name="Mastodon_colorSettingDivider">#66FFFFFF</color><!-- ダイアログ背景が#424242なので、それより明るくないといけない -->
<color name="Mastodon_colorShowMediaBackground">#222</color>
<color name="Mastodon_colorShowMediaText">#ccFFFFFF</color>
<color name="Mastodon_colorStatusButtonsPopupBg">#424242</color>
<color name="Mastodon_colorThumbnailBackground">#20ffffff</color>
<color name="Mastodon_colorTimeSmall">#BBBBBB</color>
<color name="Mastodon_colorVectorDrawable">#e4e4e4</color>
<color name="Mastodon_color_column_header">#444B5D</color>
<color name="Mastodon_list_item_bg_pressed_dragged">#AA444444</color>
<color name="Mastodon_colorSwitchOff">#777</color>
<!-- スプラッシュ画面の背景色はテーマ関係なし -->
<color name="Other_splashBackground">#0080ff</color>
windowSplashScreenAnimationDuration
</resources>

View File

@ -197,6 +197,7 @@
<string name="ui_theme">UI theme (app restart required)</string>
<string name="theme_light">Light</string>
<string name="theme_dark">Dark</string>
<string name="theme_mastodon_dark">Mastodon Dark</string>
<string name="dont_show_boost">Don\'t show boosts</string>
<string name="dont_show_reply">Don\'t show replies</string>
<string name="regex_filter">Regex filter</string>

View File

@ -14,7 +14,7 @@
<item name="list_item_bg_pressed_dragged">@color/Light_list_item_bg_pressed_dragged</item>
<item name="color_column_header">@color/Light_color_column_header</item>
<item name="colorImageButton">@color/Light_colorImageButton</item>
<item name="colorImageButtonAccent">@color/Light_colorImageButtonAccent</item>
<item name="colorConversationMainTootBg">@color/Light_colorConversationMainTootBg</item>
<item name="colorRippleEffect">@color/Light_colorRippleEffect</item>
<item name="colorButtonSelected">@color/Light_colorButtonSelected</item>
<item name="colorReplyBackground">@color/Light_colorReplyBackground</item>
@ -46,6 +46,14 @@
<item name="colorRefreshErrorBg">@color/Light_colorRefreshErrorBg</item>
<item name="colorVectorDrawable">@color/Light_colorVectorDrawable</item>
<item name="colorWindowBackground">@color/Light_colorBackground</item>
<item name="colorButtonAccentBoost">@color/Light_colorButtonAccentBoost</item>
<item name="colorButtonAccentFavourite">@color/Light_colorButtonAccentFavourite</item>
<item name="colorButtonAccentBookmark">@color/Light_colorButtonAccentBookmark</item>
<item name="colorButtonAccentFollow">@color/Light_colorButtonAccentFollow</item>
<item name="colorButtonAccentFollowRequest">@color/Light_colorButtonAccentFollowRequest</item>
<item name="colorButtonAccentReaction">@color/Light_colorButtonAccentReaction</item>
<item name="colorSwitchOff">@color/Light_colorSwitchOff</item>
</style>
@ -64,7 +72,7 @@
<item name="list_item_bg_pressed_dragged">@color/Dark_list_item_bg_pressed_dragged</item>
<item name="color_column_header">@color/Dark_color_column_header</item>
<item name="colorImageButton">@color/Dark_colorImageButton</item>
<item name="colorImageButtonAccent">@color/Dark_colorImageButtonAccent</item>
<item name="colorConversationMainTootBg">@color/Dark_colorConversationMainTootBg</item>
<item name="colorRippleEffect">@color/Dark_colorRippleEffect</item>
<item name="colorButtonSelected">@color/Dark_colorButtonSelected</item>
<item name="colorReplyBackground">@color/Dark_colorReplyBackground</item>
@ -99,6 +107,76 @@
<item name="colorVectorDrawable">@color/Dark_colorVectorDrawable</item>
<item name="colorWindowBackground">@color/Dark_colorBackground</item>
<item name="colorButtonAccentBoost">@color/Dark_colorButtonAccentBoost</item>
<item name="colorButtonAccentFavourite">@color/Dark_colorButtonAccentFavourite</item>
<item name="colorButtonAccentBookmark">@color/Dark_colorButtonAccentBookmark</item>
<item name="colorButtonAccentFollow">@color/Dark_colorButtonAccentFollow</item>
<item name="colorButtonAccentFollowRequest">@color/Dark_colorButtonAccentFollowRequest</item>
<item name="colorButtonAccentReaction">@color/Dark_colorButtonAccentReaction</item>
<item name="colorSwitchOff">@color/Dark_colorSwitchOff</item>
</style>
<style name="AppTheme.Mastodon.Base" parent="Theme.AppCompat">
<item name="android:windowBackground">@drawable/window_background</item>
<item name="android:textColor">?attr/colorContentText</item>
<item name="android:navigationBarColor">@color/Mastodon_colorColumnStripBackground</item>
<item name="colorPrimary">@color/Mastodon_colorPrimary</item>
<item name="colorPrimaryDark">@color/Mastodon_colorPrimaryDark</item>
<item name="colorAccent">@color/Mastodon_colorAccent</item>
<item name="colorLink">@color/Mastodon_colorLink</item>
<item name="list_item_bg_pressed_dragged">@color/Mastodon_list_item_bg_pressed_dragged</item>
<item name="color_column_header">@color/Mastodon_color_column_header</item>
<item name="colorImageButton">@color/Mastodon_colorImageButton</item>
<item name="colorConversationMainTootBg">@color/Mastodon_colorConversationMainTootBg</item>
<item name="colorRippleEffect">@color/Mastodon_colorRippleEffect</item>
<item name="colorButtonSelected">@color/Mastodon_colorButtonSelected</item>
<item name="colorReplyBackground">@color/Mastodon_colorReplyBackground</item>
<item name="colorColumnListDeleteBackground">@color/Mastodon_colorColumnListDeleteBackground
</item>
<item name="colorColumnListDeleteText">@color/Mastodon_colorColumnListDeleteText</item>
<item name="colorColumnListDragHandleBackground">
@color/Mastodon_colorColumnListDragHandleBackground
</item>
<item name="colorThumbnailBackground">@color/Mastodon_colorThumbnailBackground</item>
<item name="colorColumnListItemText">@color/Mastodon_colorColumnListItemText</item>
<item name="colorTimeSmall">@color/Mastodon_colorTimeSmall</item>
<item name="colorContentText">@color/Mastodon_colorContentText</item>
<item name="colorProfileBackgroundMask">@color/Mastodon_colorProfileBackgroundMask</item>
<item name="colorShowMediaBackground">@color/Mastodon_colorShowMediaBackground</item>
<item name="colorShowMediaText">@color/Mastodon_colorShowMediaText</item>
<item name="colorColumnHeaderAcct">@color/Mastodon_colorColumnHeaderAcct</item>
<item name="colorColumnHeaderPageNumber">@color/Mastodon_colorColumnHeaderPageNumber</item>
<item name="colorColumnSettingBackground">@color/Mastodon_colorColumnSettingBackground</item>
<item name="colorSearchFormBackground">@color/Mastodon_colorSearchFormBackground</item>
<item name="colorSettingDivider">@color/Mastodon_colorSettingDivider</item>
<item name="colorRegexFilterError">@color/Mastodon_colorRegexFilterError</item>
<item name="colorPostFormBackground">@color/Mastodon_colorPostFormBackground</item>
<item name="colorColumnStripBackground">@color/Mastodon_colorColumnStripBackground</item>
<item name="colorColumnHeaderName">@color/Mastodon_colorColumnHeaderName</item>
<item name="colorStatusButtonsPopupBg">@color/Mastodon_colorStatusButtonsPopupBg</item>
<item name="colorButtonBgCw">@color/Mastodon_colorButtonBgCw</item>
<item name="colorRefreshErrorBg">@color/Mastodon_colorRefreshErrorBg</item>
<item name="colorVectorDrawable">@color/Mastodon_colorVectorDrawable</item>
<item name="colorWindowBackground">@color/Mastodon_colorBackground</item>
<item name="colorButtonAccentBoost">@color/Mastodon_colorButtonAccentBoost</item>
<item name="colorButtonAccentFavourite">@color/Mastodon_colorButtonAccentFavourite</item>
<item name="colorButtonAccentBookmark">@color/Mastodon_colorButtonAccentBookmark</item>
<item name="colorButtonAccentFollow">@color/Mastodon_colorButtonAccentFollow</item>
<item name="colorButtonAccentFollowRequest">@color/Mastodon_colorButtonAccentFollowRequest</item>
<item name="colorButtonAccentReaction">@color/Mastodon_colorButtonAccentReaction</item>
<item name="colorSwitchOff">@color/Mastodon_colorSwitchOff</item>
</style>
<style name="AppTheme.Light.NoActionBar" parent="AppTheme.Light">
@ -111,6 +189,11 @@
<item name="windowNoTitle">true</item>
</style>
<style name="AppTheme.Mastodon.NoActionBar" parent="AppTheme.Mastodon">
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
</style>
<style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" />
<style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Light" />

View File

@ -7,5 +7,8 @@
<style name="AppTheme.Dark" parent="AppTheme.Dark.Base">
</style>
<!-- mastodon blue theme -->
<style name="AppTheme.Mastodon" parent="AppTheme.Mastodon.Base">
</style>
</resources>