new color theme: Mastodon Dark
This commit is contained in:
parent
c0966845b0
commit
c56005259a
|
@ -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()
|
||||
|
||||
|
|
|
@ -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
|
||||
}
|
||||
)
|
||||
|
||||
|
|
|
@ -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 {
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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?
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
}
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
)
|
||||
|
|
|
@ -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()
|
||||
|
|
|
@ -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
|
||||
},
|
||||
|
|
|
@ -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)
|
||||
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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?>>()
|
||||
|
||||
|
|
|
@ -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 -> {
|
||||
// 閲覧先サーバの絵文字を探す
|
||||
|
|
|
@ -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()
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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(
|
||||
|
|
|
@ -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.")
|
||||
|
|
|
@ -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)
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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>
|
||||
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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" />
|
||||
|
|
|
@ -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>
|
||||
|
|
Loading…
Reference in New Issue