diff --git a/.idea/dictionaries/tateisu.xml b/.idea/dictionaries/tateisu.xml
index 333c753c..b6dd600b 100644
--- a/.idea/dictionaries/tateisu.xml
+++ b/.idea/dictionaries/tateisu.xml
@@ -13,6 +13,7 @@
reblog
reblogged
reblogs
+ styler
subwaytooter
swipy
tateisu
diff --git a/app/build.gradle b/app/build.gradle
index fa373f72..b335c213 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -9,8 +9,8 @@ android {
applicationId "jp.juggler.subwaytooter"
minSdkVersion 21
targetSdkVersion 25
- versionCode 15
- versionName "0.1.5"
+ versionCode 16
+ versionName "0.1.6"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 8916e6a1..eebaf1ed 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -12,7 +12,7 @@
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
- android:theme="@style/AppTheme"
+ android:theme="@style/AppTheme.Light"
>
@@ -27,7 +27,7 @@
android:name=".ActMain"
android:label="@string/app_name"
android:launchMode="singleTask"
- android:theme="@style/AppTheme.NoActionBar"
+
android:windowSoftInputMode="adjustPan|stateAlwaysHidden"
>
@@ -39,44 +39,44 @@
diff --git a/app/src/main/java/jp/juggler/subwaytooter/ActAbout.java b/app/src/main/java/jp/juggler/subwaytooter/ActAbout.java
index 4dc685b2..3ed6849f 100644
--- a/app/src/main/java/jp/juggler/subwaytooter/ActAbout.java
+++ b/app/src/main/java/jp/juggler/subwaytooter/ActAbout.java
@@ -21,6 +21,7 @@ public class ActAbout extends AppCompatActivity {
@Override protected void onCreate( @Nullable Bundle savedInstanceState ){
super.onCreate( savedInstanceState );
+ App1.setActivityTheme(this,false);
setContentView( R.layout.act_about );
try{
diff --git a/app/src/main/java/jp/juggler/subwaytooter/ActAccountSetting.java b/app/src/main/java/jp/juggler/subwaytooter/ActAccountSetting.java
index 4fb13b20..5cf87712 100644
--- a/app/src/main/java/jp/juggler/subwaytooter/ActAccountSetting.java
+++ b/app/src/main/java/jp/juggler/subwaytooter/ActAccountSetting.java
@@ -41,6 +41,7 @@ public class ActAccountSetting extends AppCompatActivity implements View.OnClick
@Override
protected void onCreate( @Nullable Bundle savedInstanceState ){
super.onCreate( savedInstanceState );
+ App1.setActivityTheme(this,false);
initUI();
account = SavedAccount.loadAccount( log, getIntent().getLongExtra( KEY_ACCOUNT_DB_ID, - 1L ) );
if( account == null ) finish();
diff --git a/app/src/main/java/jp/juggler/subwaytooter/ActAppSetting.java b/app/src/main/java/jp/juggler/subwaytooter/ActAppSetting.java
index a9175db2..4507bdce 100644
--- a/app/src/main/java/jp/juggler/subwaytooter/ActAppSetting.java
+++ b/app/src/main/java/jp/juggler/subwaytooter/ActAppSetting.java
@@ -24,6 +24,7 @@ public class ActAppSetting extends AppCompatActivity implements CompoundButton.O
@Override
protected void onCreate( @Nullable Bundle savedInstanceState ){
super.onCreate( savedInstanceState );
+ App1.setActivityTheme(this,false);
initUI();
pref = Pref.pref( this );
@@ -36,6 +37,7 @@ public class ActAppSetting extends AppCompatActivity implements CompoundButton.O
Switch swDisableFastScroller;
Spinner spBackButtonAction;
+ Spinner spUITheme;
static final int BACK_ASK_ALWAYS =0;
static final int BACK_CLOSE_COLUMN =1;
@@ -56,17 +58,31 @@ public class ActAppSetting extends AppCompatActivity implements CompoundButton.O
swDisableFastScroller.setOnCheckedChangeListener( this );
- spBackButtonAction = (Spinner) findViewById( R.id.spBackButtonAction );
- spBackButtonAction.setOnItemSelectedListener( this );
- String[] caption_list = new String[4];
- caption_list[0] = getString(R.string.ask_always);
- caption_list[1] = getString(R.string.close_column);
- caption_list[2] = getString(R.string.open_column_list);
- caption_list[3] = getString(R.string.app_exit);
- ArrayAdapter adapter = new ArrayAdapter<>(this, android.R.layout.simple_spinner_item, caption_list);
- adapter.setDropDownViewResource( R.layout.lv_spinner_dropdown );
- spBackButtonAction.setAdapter( adapter );
+ {
+ String[] caption_list = new String[ 4 ];
+ caption_list[ 0 ] = getString( R.string.ask_always );
+ caption_list[ 1 ] = getString( R.string.close_column );
+ caption_list[ 2 ] = getString( R.string.open_column_list );
+ caption_list[ 3 ] = getString( R.string.app_exit );
+ ArrayAdapter< String > adapter = new ArrayAdapter<>( this, android.R.layout.simple_spinner_item, caption_list );
+ adapter.setDropDownViewResource( R.layout.lv_spinner_dropdown );
+ spBackButtonAction = (Spinner) findViewById( R.id.spBackButtonAction );
+ spBackButtonAction.setAdapter( adapter );
+ spBackButtonAction.setOnItemSelectedListener( this );
+ }
+
+
+ {
+ String[] caption_list = new String[ 2 ];
+ caption_list[ 0 ] = getString( R.string.theme_light );
+ caption_list[ 1 ] = getString( R.string.theme_dark );
+ ArrayAdapter< String > adapter = new ArrayAdapter<>( this, android.R.layout.simple_spinner_item, caption_list );
+ adapter.setDropDownViewResource( R.layout.lv_spinner_dropdown );
+ spUITheme = (Spinner) findViewById( R.id.spUITheme );
+ spUITheme.setAdapter( adapter );
+ spUITheme.setOnItemSelectedListener( this );
+ }
}
boolean load_busy;
@@ -77,7 +93,7 @@ public class ActAppSetting extends AppCompatActivity implements CompoundButton.O
swPriorLocalURL.setChecked( pref.getBoolean( Pref.KEY_PRIOR_LOCAL_URL, false ) );
swDisableFastScroller.setChecked( pref.getBoolean( Pref.KEY_DISABLE_FAST_SCROLLER, false ) );
spBackButtonAction.setSelection( pref.getInt(Pref.KEY_BACK_BUTTON_ACTION,0) );
-
+ spUITheme.setSelection( pref.getInt(Pref.KEY_UI_THEME,0) );
load_busy = false;
}
@@ -88,6 +104,7 @@ public class ActAppSetting extends AppCompatActivity implements CompoundButton.O
.putBoolean( Pref.KEY_PRIOR_LOCAL_URL, swPriorLocalURL.isChecked() )
.putBoolean( Pref.KEY_DISABLE_FAST_SCROLLER, swDisableFastScroller.isChecked() )
.putInt( Pref.KEY_BACK_BUTTON_ACTION, spBackButtonAction.getSelectedItemPosition() )
+ .putInt( Pref.KEY_UI_THEME, spUITheme.getSelectedItemPosition() )
.apply();
}
diff --git a/app/src/main/java/jp/juggler/subwaytooter/ActColumnList.java b/app/src/main/java/jp/juggler/subwaytooter/ActColumnList.java
index 0c46da51..57b07f35 100644
--- a/app/src/main/java/jp/juggler/subwaytooter/ActColumnList.java
+++ b/app/src/main/java/jp/juggler/subwaytooter/ActColumnList.java
@@ -31,6 +31,7 @@ public class ActColumnList extends AppCompatActivity {
@Override
protected void onCreate( @Nullable Bundle savedInstanceState ){
super.onCreate( savedInstanceState );
+ App1.setActivityTheme(this,false);
initUI();
if( savedInstanceState != null ){
diff --git a/app/src/main/java/jp/juggler/subwaytooter/ActMain.java b/app/src/main/java/jp/juggler/subwaytooter/ActMain.java
index f8526a6a..63269f03 100644
--- a/app/src/main/java/jp/juggler/subwaytooter/ActMain.java
+++ b/app/src/main/java/jp/juggler/subwaytooter/ActMain.java
@@ -76,7 +76,7 @@ public class ActMain extends AppCompatActivity
@Override
protected void onCreate( Bundle savedInstanceState ){
super.onCreate( savedInstanceState );
-
+ App1.setActivityTheme(this,true);
this.density = getResources().getDisplayMetrics().density;
requestWindowFeature( Window.FEATURE_NO_TITLE );
@@ -839,7 +839,7 @@ public class ActMain extends AppCompatActivity
// ビルダーを使って表示方法を指定する
CustomTabsIntent.Builder builder = new CustomTabsIntent.Builder();
- builder.setToolbarColor( ContextCompat.getColor( this, R.color.colorPrimary ) ).setShowTitle( true );
+ builder.setToolbarColor( Styler.getAttributeColor( this,R.attr.colorPrimary ) ).setShowTitle( true );
// CustomTabsでURLをひらくIntentを発行
CustomTabsIntent customTabsIntent = builder.build();
diff --git a/app/src/main/java/jp/juggler/subwaytooter/ActOSSLicense.java b/app/src/main/java/jp/juggler/subwaytooter/ActOSSLicense.java
index 041d9e8b..44b9c39a 100644
--- a/app/src/main/java/jp/juggler/subwaytooter/ActOSSLicense.java
+++ b/app/src/main/java/jp/juggler/subwaytooter/ActOSSLicense.java
@@ -15,6 +15,7 @@ import jp.juggler.subwaytooter.util.Utils;
public class ActOSSLicense extends AppCompatActivity{
@Override protected void onCreate( @Nullable Bundle savedInstanceState ){
super.onCreate( savedInstanceState );
+ App1.setActivityTheme(this,true);
setContentView( R.layout.act_oss_license);
try{
diff --git a/app/src/main/java/jp/juggler/subwaytooter/ActPost.java b/app/src/main/java/jp/juggler/subwaytooter/ActPost.java
index 6f500846..c51500bd 100644
--- a/app/src/main/java/jp/juggler/subwaytooter/ActPost.java
+++ b/app/src/main/java/jp/juggler/subwaytooter/ActPost.java
@@ -65,7 +65,6 @@ public class ActPost extends AppCompatActivity implements View.OnClickListener {
static final String KEY_IN_REPLY_TO_TEXT = "in_reply_to_text";
static final String KEY_IN_REPLY_TO_IMAGE = "in_reply_to_image";
-
public static void open( Context context, long account_db_id, TootStatus reply_status ){
Intent intent = new Intent( context, ActPost.class );
intent.putExtra( KEY_ACCOUNT_DB_ID, account_db_id );
@@ -74,7 +73,8 @@ public class ActPost extends AppCompatActivity implements View.OnClickListener {
}
context.startActivity( intent );
}
- public static void open( Context context, long account_db_id, String initial_text ){
+
+ public static void open( Context context, long account_db_id, String initial_text ){
Intent intent = new Intent( context, ActPost.class );
intent.putExtra( KEY_ACCOUNT_DB_ID, account_db_id );
if( initial_text != null ){
@@ -145,7 +145,7 @@ public class ActPost extends AppCompatActivity implements View.OnClickListener {
@Override
protected void onCreate( @Nullable Bundle savedInstanceState ){
super.onCreate( savedInstanceState );
-
+ App1.setActivityTheme( this, true );
initUI();
if( account_list.isEmpty() ){
@@ -207,15 +207,15 @@ public class ActPost extends AppCompatActivity implements View.OnClickListener {
}
String sv = intent.getStringExtra( KEY_INITIAL_TEXT );
- if( sv != null){
- etContent.setText(sv);
+ if( sv != null ){
+ etContent.setText( sv );
etContent.setSelection( sv.length() );
}
sv = intent.getStringExtra( KEY_REPLY_STATUS );
if( sv != null ){
try{
- TootStatus repley_status = TootStatus.parse( log, account,new JSONObject( sv ) );
+ TootStatus repley_status = TootStatus.parse( log, account, new JSONObject( sv ) );
// CW をリプライ元に合わせる
if( ! TextUtils.isEmpty( repley_status.spoiler_text ) ){
@@ -225,13 +225,13 @@ public class ActPost extends AppCompatActivity implements View.OnClickListener {
// mention を自動設定する
ArrayList< String > mention_list = new ArrayList<>();
- mention_list.add( "@"+account.getFullAcct( repley_status.account ) );
+ mention_list.add( "@" + account.getFullAcct( repley_status.account ) );
if( repley_status.mentions != null ){
for( TootMention mention : repley_status.mentions ){
-
- if( account.isMe(mention.acct)) continue;
-
- sv = "@"+account.getFullAcct(mention.acct );
+
+ if( account.isMe( mention.acct ) ) continue;
+
+ sv = "@" + account.getFullAcct( mention.acct );
if( ! mention_list.contains( sv ) ){
mention_list.add( sv );
}
@@ -364,7 +364,7 @@ public class ActPost extends AppCompatActivity implements View.OnClickListener {
llReply = findViewById( R.id.llReply );
tvReplyTo = (TextView) findViewById( R.id.tvReplyTo );
btnRemoveReply = findViewById( R.id.btnRemoveReply );
- ivReply= (NetworkImageView) findViewById( R.id.ivReply );
+ ivReply = (NetworkImageView) findViewById( R.id.ivReply );
account_list = SavedAccount.loadAccountList( log );
Collections.sort( account_list, new Comparator< SavedAccount >() {
@@ -432,15 +432,15 @@ public class ActPost extends AppCompatActivity implements View.OnClickListener {
if( ! attachment_list.isEmpty() ){
// 添付ファイルがあったら確認の上添付ファイルを捨てないと切り替えられない
- Utils.showToast( this,false,R.string.cant_change_account_when_attachiment_specified );
+ Utils.showToast( this, false, R.string.cant_change_account_when_attachiment_specified );
}
final ArrayList< SavedAccount > tmp_account_list = new ArrayList<>();
- if( in_reply_to_id != -1L ){
+ if( in_reply_to_id != - 1L ){
// リプライは数値IDなのでサーバが同じじゃないと選択できない
for( SavedAccount a : account_list ){
- if( !a.host.equals( account.host ) ) continue;
- tmp_account_list.add(a);
+ if( ! a.host.equals( account.host ) ) continue;
+ tmp_account_list.add( a );
}
}else{
tmp_account_list.addAll( account_list );
@@ -498,11 +498,11 @@ public class ActPost extends AppCompatActivity implements View.OnClickListener {
iv.setVisibility( View.VISIBLE );
PostAttachment a = attachment_list.get( idx );
if( a.status == ATTACHMENT_UPLOADING ){
- iv.setImageDrawable( ContextCompat.getDrawable( this, R.drawable.ic_loading ) );
+ iv.setImageDrawable( Styler.getAttributeDrawable( this, R.attr.ic_loading ) );
}else if( a.attachment != null ){
iv.setImageUrl( a.attachment.preview_url, App1.getImageLoader() );
}else{
- iv.setImageDrawable( ContextCompat.getDrawable( this, R.drawable.ic_unknown ) );
+ iv.setImageDrawable( Styler.getAttributeDrawable( this, R.attr.ic_unknown ) );
}
}
}
@@ -705,7 +705,7 @@ public class ActPost extends AppCompatActivity implements View.OnClickListener {
String visibility;
private void updateVisibility(){
- btnVisibility.setImageResource( Styler.getVisibilityIcon( visibility ) );
+ btnVisibility.setImageResource( Styler.getVisibilityIcon( this, visibility ) );
}
private void performVisibility(){
@@ -715,11 +715,6 @@ public class ActPost extends AppCompatActivity implements View.OnClickListener {
getString( R.string.visibility_private ),
getString( R.string.visibility_direct ),
};
-
-// public static final String VISIBILITY_PUBLIC ="public";
-// public static final String VISIBILITY_UNLISTED ="unlisted";
-// public static final String VISIBILITY_PRIVATE ="private";
-// public static final String VISIBILITY_DIRECT ="direct";
new AlertDialog.Builder( this )
.setTitle( R.string.choose_visibility )
@@ -832,7 +827,7 @@ public class ActPost extends AppCompatActivity implements View.OnClickListener {
TootApiResult result = client.request( "/api/v1/statuses", request_builder );
if( result.object != null ){
- status = TootStatus.parse( log, account,result.object );
+ status = TootStatus.parse( log, account, result.object );
}
return result;
@@ -881,8 +876,8 @@ public class ActPost extends AppCompatActivity implements View.OnClickListener {
llReply.setVisibility( View.GONE );
}else{
llReply.setVisibility( View.VISIBLE );
- tvReplyTo.setText( HTMLDecoder.decodeHTML( account,in_reply_to_text ) );
- ivReply.setImageUrl( in_reply_to_image,App1.getImageLoader() );
+ tvReplyTo.setText( HTMLDecoder.decodeHTML( account, in_reply_to_text ) );
+ ivReply.setImageUrl( in_reply_to_image, App1.getImageLoader() );
}
}
diff --git a/app/src/main/java/jp/juggler/subwaytooter/AlarmService.java b/app/src/main/java/jp/juggler/subwaytooter/AlarmService.java
index 8ae3dfc8..155473a0 100644
--- a/app/src/main/java/jp/juggler/subwaytooter/AlarmService.java
+++ b/app/src/main/java/jp/juggler/subwaytooter/AlarmService.java
@@ -364,8 +364,8 @@ public class AlarmService extends IntentService {
.setContentIntent( pi_click )
.setDeleteIntent( pi_delete )
.setAutoCancel( false )
- .setSmallIcon( R.drawable.ic_notification )
- .setColor( ContextCompat.getColor( this, R.color.colorAccent ) )
+ .setSmallIcon( R.drawable.ic_notification ) // ここは常に白テーマのアイコンを使う
+ .setColor( ContextCompat.getColor(this, R.color.Light_colorAccent ) ) // ここは常に白テーマの色を使う
.setDefaults( NotificationCompat.DEFAULT_ALL )
.setWhen( item.notification.time_created_at );
diff --git a/app/src/main/java/jp/juggler/subwaytooter/App1.java b/app/src/main/java/jp/juggler/subwaytooter/App1.java
index 6670db5f..58af860a 100644
--- a/app/src/main/java/jp/juggler/subwaytooter/App1.java
+++ b/app/src/main/java/jp/juggler/subwaytooter/App1.java
@@ -1,7 +1,9 @@
package jp.juggler.subwaytooter;
+import android.app.Activity;
import android.app.Application;
import android.content.Context;
+import android.content.SharedPreferences;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.graphics.Bitmap;
@@ -39,7 +41,22 @@ public class App1 extends Application {
return db_open_helper.getWritableDatabase();
}
+ public static void setActivityTheme( Activity activity ,boolean bNoActionBar ){
+ int theme_idx = pref.getInt(Pref.KEY_UI_THEME,0);
+ switch(theme_idx){
+ default:
+ case 0:
+ activity.setTheme( bNoActionBar ? R.style.AppTheme_Light_NoActionBar : R.style.AppTheme_Light );
+ break;
+
+ case 1:
+ activity.setTheme( bNoActionBar ? R.style.AppTheme_Dark_NoActionBar : R.style.AppTheme_Dark );
+ break;
+
+ }
+ }
+
private static class DBOpenHelper extends SQLiteOpenHelper {
DBOpenHelper( Context context ){
@@ -131,15 +148,22 @@ public class App1 extends Application {
// public static final RelationshipMap relationship_map = new RelationshipMap();
+ public static SharedPreferences pref;
+
@Override
public void onCreate(){
super.onCreate();
+
CalligraphyConfig.initDefault(new CalligraphyConfig.Builder()
.setFontAttrId(R.attr.fontPath)
.build()
);
+ if( pref == null ){
+ pref = Pref.pref(getApplicationContext());
+ }
+
if( typeface_emoji == null ){
typeface_emoji = TypefaceUtils.load(getAssets(), "emojione_android.ttf");
}
diff --git a/app/src/main/java/jp/juggler/subwaytooter/ColumnViewHolder.java b/app/src/main/java/jp/juggler/subwaytooter/ColumnViewHolder.java
index 395d5d2e..ddab7dfc 100644
--- a/app/src/main/java/jp/juggler/subwaytooter/ColumnViewHolder.java
+++ b/app/src/main/java/jp/juggler/subwaytooter/ColumnViewHolder.java
@@ -3,7 +3,6 @@ package jp.juggler.subwaytooter;
import android.content.Context;
import android.graphics.PorterDuff;
import android.graphics.drawable.Drawable;
-import android.support.v4.content.ContextCompat;
import android.text.TextUtils;
import android.text.method.LinkMovementMethod;
import android.view.KeyEvent;
@@ -630,7 +629,7 @@ class ColumnViewHolder implements View.OnClickListener, Column.VisualCallback, S
showBoost(
n.account
, n.time_created_at
- , R.drawable.btn_favourite
+ , R.attr.btn_favourite
, Utils.formatSpannable1( activity, R.string.display_name_favourited_by, n.account.display_name )
);
if( n.status != null ) showStatus( activity, n.status, access_info );
@@ -638,7 +637,7 @@ class ColumnViewHolder implements View.OnClickListener, Column.VisualCallback, S
showBoost(
n.account
, n.time_created_at
- , R.drawable.btn_boost
+ , R.attr.btn_boost
, Utils.formatSpannable1( activity, R.string.display_name_boosted_by, n.account.display_name )
);
if( n.status != null ) showStatus( activity, n.status, access_info );
@@ -646,7 +645,7 @@ class ColumnViewHolder implements View.OnClickListener, Column.VisualCallback, S
showBoost(
n.account
, n.time_created_at
- , R.drawable.btn_boost
+ , R.attr.btn_boost
, Utils.formatSpannable1( activity, R.string.display_name_followed_by, n.account.display_name )
);
//
@@ -657,7 +656,7 @@ class ColumnViewHolder implements View.OnClickListener, Column.VisualCallback, S
showBoost(
n.account
, n.time_created_at
- , R.drawable.btn_reply
+ , R.attr.btn_reply
, Utils.formatSpannable1( activity, R.string.display_name_replied_by, n.account.display_name )
);
if( n.status != null ) showStatus( activity, n.status, access_info );
@@ -668,7 +667,7 @@ class ColumnViewHolder implements View.OnClickListener, Column.VisualCallback, S
showBoost(
status.account
, status.time_created_at
- , R.drawable.btn_boost
+ , R.attr.btn_boost
, Utils.formatSpannable1( activity, R.string.display_name_boosted_by, status.account.display_name )
);
showStatus( activity, status.reblog, access_info );
@@ -694,10 +693,10 @@ class ColumnViewHolder implements View.OnClickListener, Column.VisualCallback, S
btnSearchTag.setText( activity.getString( R.string.read_gap ) );
}
- void showBoost( TootAccount who, long time, int icon_id, CharSequence text ){
+ void showBoost( TootAccount who, long time, int icon_attr_id, CharSequence text ){
account_boost = who;
llBoosted.setVisibility( View.VISIBLE );
- ivBoosted.setImageResource( icon_id );
+ ivBoosted.setImageResource( Styler.getAttributeResourceId(activity,icon_attr_id) );
tvBoostedTime.setText( TootStatus.formatTime( time ) );
tvBoostedAcct.setText( access_info.getFullAcct( who ) );
tvBoosted.setText( text );
@@ -710,8 +709,7 @@ class ColumnViewHolder implements View.OnClickListener, Column.VisualCallback, S
tvFollowerName.setText( who.display_name );
tvFollowerAcct.setText( access_info.getFullAcct( who ) );
- btnFollow.setImageResource( R.drawable.btn_follow );
-
+ btnFollow.setImageResource( Styler.getAttributeResourceId( activity,R.attr.ic_account_add ));
}
private void showStatus( ActMain activity, TootStatus status, SavedAccount account ){
@@ -766,19 +764,19 @@ class ColumnViewHolder implements View.OnClickListener, Column.VisualCallback, S
}
Drawable d;
- int color;
+ int color_normal = Styler.getAttributeColor( activity,R.attr.colorImageButton );
+ int color_accent = Styler.getAttributeColor( activity,R.attr.colorImageButtonAccent );
if( activity.isBusyBoost( account, status ) ){
- color = 0xff000000;
- d = ContextCompat.getDrawable( activity, R.drawable.btn_boost ).mutate();
- d.setColorFilter( color, PorterDuff.Mode.SRC_ATOP );
+ d = Styler.getAttributeDrawable( activity,R.attr.btn_refresh ).mutate();
+ d.setColorFilter( color_normal, PorterDuff.Mode.SRC_ATOP );
btnBoost.setCompoundDrawablesRelativeWithIntrinsicBounds( d, null, null, null );
btnBoost.setText( "?" );
- btnBoost.setTextColor( color );
+ btnBoost.setTextColor( color_normal );
}else{
- color = ( status.reblogged ? 0xff0088ff : 0xff000000 );
- d = ContextCompat.getDrawable( activity, R.drawable.btn_boost ).mutate();
+ int color = ( status.reblogged ? color_accent : color_normal );
+ d = Styler.getAttributeDrawable( activity,R.attr.btn_boost ).mutate();
d.setColorFilter( color, PorterDuff.Mode.SRC_ATOP );
btnBoost.setCompoundDrawablesRelativeWithIntrinsicBounds( d, null, null, null );
btnBoost.setText( Long.toString( status.reblogs_count ) );
@@ -787,15 +785,14 @@ class ColumnViewHolder implements View.OnClickListener, Column.VisualCallback, S
}
if( activity.isBusyFav( account, status ) ){
- color = 0xff000000;
- d = ContextCompat.getDrawable( activity, R.drawable.btn_refresh ).mutate();
- d.setColorFilter( color, PorterDuff.Mode.SRC_ATOP );
+ d = Styler.getAttributeDrawable( activity,R.attr.btn_refresh ).mutate();
+ d.setColorFilter( color_normal, PorterDuff.Mode.SRC_ATOP );
btnFavourite.setCompoundDrawablesRelativeWithIntrinsicBounds( d, null, null, null );
btnFavourite.setText( "?" );
- btnFavourite.setTextColor( color );
+ btnFavourite.setTextColor( color_normal );
}else{
- color = ( status.favourited ? 0xff0088ff : 0xff000000 );
- d = ContextCompat.getDrawable( activity, R.drawable.btn_favourite ).mutate();
+ int color = ( status.favourited ? color_accent : color_normal );
+ d = Styler.getAttributeDrawable( activity,R.attr.btn_favourite ).mutate();
d.setColorFilter( color, PorterDuff.Mode.SRC_ATOP );
btnFavourite.setCompoundDrawablesRelativeWithIntrinsicBounds( d, null, null, null );
btnFavourite.setText( Long.toString( status.favourites_count ) );
diff --git a/app/src/main/java/jp/juggler/subwaytooter/Pref.java b/app/src/main/java/jp/juggler/subwaytooter/Pref.java
index cf1c5265..b4179695 100644
--- a/app/src/main/java/jp/juggler/subwaytooter/Pref.java
+++ b/app/src/main/java/jp/juggler/subwaytooter/Pref.java
@@ -16,5 +16,6 @@ public class Pref {
public static final String KEY_BACK_BUTTON_ACTION ="back_button_action";
public static final String KEY_PRIOR_LOCAL_URL = "prior_local_url";
public static final String KEY_DISABLE_FAST_SCROLLER = "disable_fast_scroller";
+ public static final String KEY_UI_THEME = "ui_theme";
}
diff --git a/app/src/main/java/jp/juggler/subwaytooter/Styler.java b/app/src/main/java/jp/juggler/subwaytooter/Styler.java
index ef65dcb7..45b887d3 100644
--- a/app/src/main/java/jp/juggler/subwaytooter/Styler.java
+++ b/app/src/main/java/jp/juggler/subwaytooter/Styler.java
@@ -1,26 +1,29 @@
package jp.juggler.subwaytooter;
import android.content.Context;
+import android.content.res.Resources;
+import android.content.res.TypedArray;
+import android.graphics.drawable.Drawable;
+import android.support.annotation.NonNull;
+import android.support.v4.content.ContextCompat;
+
+import java.util.Locale;
import jp.juggler.subwaytooter.api.entity.TootStatus;
-/**
- * Created by tateisu on 2017/04/22.
- */
-
-public class Styler {
- public static int getVisibilityIcon( String visibility ){
+class Styler {
+ static int getVisibilityIcon( Context context,String visibility ){
return
- TootStatus.VISIBILITY_PUBLIC.equals( visibility ) ? R.drawable.ic_public
- : TootStatus.VISIBILITY_UNLISTED.equals( visibility ) ? R.drawable.ic_lock_open
- : TootStatus.VISIBILITY_PRIVATE.equals( visibility ) ? R.drawable.ic_lock
- : TootStatus.VISIBILITY_DIRECT.equals( visibility ) ? R.drawable.ic_mail
- : R.drawable.ic_public;
+ getAttributeResourceId( context,
+ TootStatus.VISIBILITY_PUBLIC.equals( visibility ) ? R.attr.ic_public
+ : TootStatus.VISIBILITY_UNLISTED.equals( visibility ) ? R.attr.ic_lock_open
+ : TootStatus.VISIBILITY_PRIVATE.equals( visibility ) ? R.attr.ic_lock
+ : TootStatus.VISIBILITY_DIRECT.equals( visibility ) ? R.attr.ic_mail
+ : R.attr.ic_public );
}
-
- public static String getVisibilityString( Context context ,String visibility){
+ static String getVisibilityString( Context context, String visibility ){
return
TootStatus.VISIBILITY_PUBLIC.equals( visibility ) ? context.getString( R.string.visibility_public )
: TootStatus.VISIBILITY_UNLISTED.equals( visibility ) ? context.getString( R.string.visibility_unlisted )
@@ -28,4 +31,28 @@ public class Styler {
: TootStatus.VISIBILITY_DIRECT.equals( visibility ) ? context.getString( R.string.visibility_direct )
: "?";
}
+
+ static int getAttributeColor( @NonNull Context context, int attr_id ){
+ Resources.Theme theme = context.getTheme();
+ TypedArray a = theme.obtainStyledAttributes( new int[]{ attr_id } );
+ int color = a.getColor( 0, 0xFFFF0000 );
+ a.recycle();
+ return color;
+ }
+
+ @NonNull static Drawable getAttributeDrawable( @NonNull Context context, int attr_id ){
+ int res_id = getAttributeResourceId( context,attr_id );
+ Drawable d = ContextCompat.getDrawable( context, res_id );
+ if( d == null ) throw new RuntimeException( String.format( Locale.JAPAN,"getDrawable failed. drawable_id=0x%x",res_id));
+ return d;
+ }
+
+ static int getAttributeResourceId(@NonNull Context context, int attr_id ){
+ Resources.Theme theme = context.getTheme();
+ TypedArray a = theme.obtainStyledAttributes( new int[]{ attr_id } );
+ int res_id = a.getResourceId( 0, 0 );
+ a.recycle();
+ if( res_id == 0) throw new RuntimeException( String.format( Locale.JAPAN,"attr not defined.attr_id=0x%x",attr_id));
+ return res_id;
+ }
}
diff --git a/app/src/main/res/drawable-hdpi/black_close.png b/app/src/main/res/drawable-hdpi/black_close.png
deleted file mode 100644
index 0cd254b3..00000000
Binary files a/app/src/main/res/drawable-hdpi/black_close.png and /dev/null differ
diff --git a/app/src/main/res/drawable-hdpi/btn_attachment_dark.png b/app/src/main/res/drawable-hdpi/btn_attachment_dark.png
new file mode 100644
index 00000000..eb4ea952
Binary files /dev/null and b/app/src/main/res/drawable-hdpi/btn_attachment_dark.png differ
diff --git a/app/src/main/res/drawable-hdpi/btn_boost_dark.png b/app/src/main/res/drawable-hdpi/btn_boost_dark.png
new file mode 100644
index 00000000..f72ffc7e
Binary files /dev/null and b/app/src/main/res/drawable-hdpi/btn_boost_dark.png differ
diff --git a/app/src/main/res/drawable-hdpi/btn_close_dark.png b/app/src/main/res/drawable-hdpi/btn_close_dark.png
new file mode 100644
index 00000000..75e65bc9
Binary files /dev/null and b/app/src/main/res/drawable-hdpi/btn_close_dark.png differ
diff --git a/app/src/main/res/drawable-hdpi/btn_favourite_dark.png b/app/src/main/res/drawable-hdpi/btn_favourite_dark.png
new file mode 100644
index 00000000..d22797b9
Binary files /dev/null and b/app/src/main/res/drawable-hdpi/btn_favourite_dark.png differ
diff --git a/app/src/main/res/drawable-hdpi/btn_federate_tl_dark.png b/app/src/main/res/drawable-hdpi/btn_federate_tl_dark.png
new file mode 100644
index 00000000..bb656e72
Binary files /dev/null and b/app/src/main/res/drawable-hdpi/btn_federate_tl_dark.png differ
diff --git a/app/src/main/res/drawable-hdpi/btn_follow.png b/app/src/main/res/drawable-hdpi/btn_follow.png
deleted file mode 100644
index a50def11..00000000
Binary files a/app/src/main/res/drawable-hdpi/btn_follow.png and /dev/null differ
diff --git a/app/src/main/res/drawable-hdpi/btn_home_dark.png b/app/src/main/res/drawable-hdpi/btn_home_dark.png
new file mode 100644
index 00000000..bc447697
Binary files /dev/null and b/app/src/main/res/drawable-hdpi/btn_home_dark.png differ
diff --git a/app/src/main/res/drawable-hdpi/btn_local_tl_dark.png b/app/src/main/res/drawable-hdpi/btn_local_tl_dark.png
new file mode 100644
index 00000000..a47bb88c
Binary files /dev/null and b/app/src/main/res/drawable-hdpi/btn_local_tl_dark.png differ
diff --git a/app/src/main/res/drawable-hdpi/btn_more_dark.png b/app/src/main/res/drawable-hdpi/btn_more_dark.png
new file mode 100644
index 00000000..ddb4dcc9
Binary files /dev/null and b/app/src/main/res/drawable-hdpi/btn_more_dark.png differ
diff --git a/app/src/main/res/drawable-hdpi/btn_notification_dark.png b/app/src/main/res/drawable-hdpi/btn_notification_dark.png
new file mode 100644
index 00000000..f10946e6
Binary files /dev/null and b/app/src/main/res/drawable-hdpi/btn_notification_dark.png differ
diff --git a/app/src/main/res/drawable-hdpi/btn_post_dark.png b/app/src/main/res/drawable-hdpi/btn_post_dark.png
new file mode 100644
index 00000000..293ccbbb
Binary files /dev/null and b/app/src/main/res/drawable-hdpi/btn_post_dark.png differ
diff --git a/app/src/main/res/drawable-hdpi/btn_refresh_dark.png b/app/src/main/res/drawable-hdpi/btn_refresh_dark.png
new file mode 100644
index 00000000..a61eb249
Binary files /dev/null and b/app/src/main/res/drawable-hdpi/btn_refresh_dark.png differ
diff --git a/app/src/main/res/drawable-hdpi/btn_reply_dark.png b/app/src/main/res/drawable-hdpi/btn_reply_dark.png
new file mode 100644
index 00000000..66c46dd4
Binary files /dev/null and b/app/src/main/res/drawable-hdpi/btn_reply_dark.png differ
diff --git a/app/src/main/res/drawable-hdpi/btn_statuses_dark.png b/app/src/main/res/drawable-hdpi/btn_statuses_dark.png
new file mode 100644
index 00000000..7dcdc83f
Binary files /dev/null and b/app/src/main/res/drawable-hdpi/btn_statuses_dark.png differ
diff --git a/app/src/main/res/drawable-hdpi/ic_account_add_dark.png b/app/src/main/res/drawable-hdpi/ic_account_add_dark.png
new file mode 100644
index 00000000..a1519a8d
Binary files /dev/null and b/app/src/main/res/drawable-hdpi/ic_account_add_dark.png differ
diff --git a/app/src/main/res/drawable-hdpi/ic_action_name.png b/app/src/main/res/drawable-hdpi/ic_action_name.png
deleted file mode 100644
index 1eb20694..00000000
Binary files a/app/src/main/res/drawable-hdpi/ic_action_name.png and /dev/null differ
diff --git a/app/src/main/res/drawable-hdpi/ic_block_dark.png b/app/src/main/res/drawable-hdpi/ic_block_dark.png
new file mode 100644
index 00000000..dcc95f5f
Binary files /dev/null and b/app/src/main/res/drawable-hdpi/ic_block_dark.png differ
diff --git a/app/src/main/res/drawable-hdpi/ic_blocked.png b/app/src/main/res/drawable-hdpi/ic_blocked.png
deleted file mode 100644
index 1eb20694..00000000
Binary files a/app/src/main/res/drawable-hdpi/ic_blocked.png and /dev/null differ
diff --git a/app/src/main/res/drawable-hdpi/ic_bookmark_dark.png b/app/src/main/res/drawable-hdpi/ic_bookmark_dark.png
new file mode 100644
index 00000000..a502602a
Binary files /dev/null and b/app/src/main/res/drawable-hdpi/ic_bookmark_dark.png differ
diff --git a/app/src/main/res/drawable-hdpi/ic_conversation_dark.png b/app/src/main/res/drawable-hdpi/ic_conversation_dark.png
new file mode 100644
index 00000000..63522c45
Binary files /dev/null and b/app/src/main/res/drawable-hdpi/ic_conversation_dark.png differ
diff --git a/app/src/main/res/drawable-hdpi/ic_follow_requested.png b/app/src/main/res/drawable-hdpi/ic_follow_requested.png
deleted file mode 100644
index 021bcf45..00000000
Binary files a/app/src/main/res/drawable-hdpi/ic_follow_requested.png and /dev/null differ
diff --git a/app/src/main/res/drawable-hdpi/ic_hot_tub_dark.png b/app/src/main/res/drawable-hdpi/ic_hot_tub_dark.png
new file mode 100644
index 00000000..df890eb5
Binary files /dev/null and b/app/src/main/res/drawable-hdpi/ic_hot_tub_dark.png differ
diff --git a/app/src/main/res/drawable-hdpi/ic_info_dark.png b/app/src/main/res/drawable-hdpi/ic_info_dark.png
new file mode 100644
index 00000000..40227ac1
Binary files /dev/null and b/app/src/main/res/drawable-hdpi/ic_info_dark.png differ
diff --git a/app/src/main/res/drawable-hdpi/ic_knob_dark.png b/app/src/main/res/drawable-hdpi/ic_knob_dark.png
new file mode 100644
index 00000000..4f38990d
Binary files /dev/null and b/app/src/main/res/drawable-hdpi/ic_knob_dark.png differ
diff --git a/app/src/main/res/drawable-hdpi/ic_list_dark.png b/app/src/main/res/drawable-hdpi/ic_list_dark.png
new file mode 100644
index 00000000..d38dd755
Binary files /dev/null and b/app/src/main/res/drawable-hdpi/ic_list_dark.png differ
diff --git a/app/src/main/res/drawable-hdpi/ic_loading_dark.png b/app/src/main/res/drawable-hdpi/ic_loading_dark.png
new file mode 100644
index 00000000..38133563
Binary files /dev/null and b/app/src/main/res/drawable-hdpi/ic_loading_dark.png differ
diff --git a/app/src/main/res/drawable-hdpi/ic_lock_dark.png b/app/src/main/res/drawable-hdpi/ic_lock_dark.png
new file mode 100644
index 00000000..3b869402
Binary files /dev/null and b/app/src/main/res/drawable-hdpi/ic_lock_dark.png differ
diff --git a/app/src/main/res/drawable-hdpi/ic_lock_open_dark.png b/app/src/main/res/drawable-hdpi/ic_lock_open_dark.png
new file mode 100644
index 00000000..6c3821b3
Binary files /dev/null and b/app/src/main/res/drawable-hdpi/ic_lock_open_dark.png differ
diff --git a/app/src/main/res/drawable-hdpi/ic_mail_dark.png b/app/src/main/res/drawable-hdpi/ic_mail_dark.png
new file mode 100644
index 00000000..4c368c24
Binary files /dev/null and b/app/src/main/res/drawable-hdpi/ic_mail_dark.png differ
diff --git a/app/src/main/res/drawable-hdpi/ic_menu_dark.png b/app/src/main/res/drawable-hdpi/ic_menu_dark.png
new file mode 100644
index 00000000..df02693a
Binary files /dev/null and b/app/src/main/res/drawable-hdpi/ic_menu_dark.png differ
diff --git a/app/src/main/res/drawable-hdpi/ic_mute_dark.png b/app/src/main/res/drawable-hdpi/ic_mute_dark.png
new file mode 100644
index 00000000..cec670df
Binary files /dev/null and b/app/src/main/res/drawable-hdpi/ic_mute_dark.png differ
diff --git a/app/src/main/res/drawable-hdpi/ic_muted.png b/app/src/main/res/drawable-hdpi/ic_muted.png
deleted file mode 100644
index edd1cef8..00000000
Binary files a/app/src/main/res/drawable-hdpi/ic_muted.png and /dev/null differ
diff --git a/app/src/main/res/drawable-hdpi/ic_public_dark.png b/app/src/main/res/drawable-hdpi/ic_public_dark.png
new file mode 100644
index 00000000..ea163cc2
Binary files /dev/null and b/app/src/main/res/drawable-hdpi/ic_public_dark.png differ
diff --git a/app/src/main/res/drawable-hdpi/ic_search_dark.png b/app/src/main/res/drawable-hdpi/ic_search_dark.png
new file mode 100644
index 00000000..407fb1be
Binary files /dev/null and b/app/src/main/res/drawable-hdpi/ic_search_dark.png differ
diff --git a/app/src/main/res/drawable-hdpi/ic_setting_dark.png b/app/src/main/res/drawable-hdpi/ic_setting_dark.png
new file mode 100644
index 00000000..30b356d3
Binary files /dev/null and b/app/src/main/res/drawable-hdpi/ic_setting_dark.png differ
diff --git a/app/src/main/res/drawable-hdpi/ic_toot_dark.png b/app/src/main/res/drawable-hdpi/ic_toot_dark.png
new file mode 100644
index 00000000..f40a2a26
Binary files /dev/null and b/app/src/main/res/drawable-hdpi/ic_toot_dark.png differ
diff --git a/app/src/main/res/drawable-hdpi/ic_tune_dark.png b/app/src/main/res/drawable-hdpi/ic_tune_dark.png
new file mode 100644
index 00000000..37d89e87
Binary files /dev/null and b/app/src/main/res/drawable-hdpi/ic_tune_dark.png differ
diff --git a/app/src/main/res/drawable-hdpi/ic_unknown_dark.png b/app/src/main/res/drawable-hdpi/ic_unknown_dark.png
new file mode 100644
index 00000000..1963e0e3
Binary files /dev/null and b/app/src/main/res/drawable-hdpi/ic_unknown_dark.png differ
diff --git a/app/src/main/res/drawable-mdpi/black_close.png b/app/src/main/res/drawable-mdpi/black_close.png
deleted file mode 100644
index 320daff7..00000000
Binary files a/app/src/main/res/drawable-mdpi/black_close.png and /dev/null differ
diff --git a/app/src/main/res/drawable-mdpi/btn_attachment_dark.png b/app/src/main/res/drawable-mdpi/btn_attachment_dark.png
new file mode 100644
index 00000000..f56249c8
Binary files /dev/null and b/app/src/main/res/drawable-mdpi/btn_attachment_dark.png differ
diff --git a/app/src/main/res/drawable-mdpi/btn_boost_dark.png b/app/src/main/res/drawable-mdpi/btn_boost_dark.png
new file mode 100644
index 00000000..89b58568
Binary files /dev/null and b/app/src/main/res/drawable-mdpi/btn_boost_dark.png differ
diff --git a/app/src/main/res/drawable-mdpi/btn_close_dark.png b/app/src/main/res/drawable-mdpi/btn_close_dark.png
new file mode 100644
index 00000000..a1816d4c
Binary files /dev/null and b/app/src/main/res/drawable-mdpi/btn_close_dark.png differ
diff --git a/app/src/main/res/drawable-mdpi/btn_favourite_dark.png b/app/src/main/res/drawable-mdpi/btn_favourite_dark.png
new file mode 100644
index 00000000..b113766e
Binary files /dev/null and b/app/src/main/res/drawable-mdpi/btn_favourite_dark.png differ
diff --git a/app/src/main/res/drawable-mdpi/btn_federate_tl_dark.png b/app/src/main/res/drawable-mdpi/btn_federate_tl_dark.png
new file mode 100644
index 00000000..3906ad14
Binary files /dev/null and b/app/src/main/res/drawable-mdpi/btn_federate_tl_dark.png differ
diff --git a/app/src/main/res/drawable-mdpi/btn_follow.png b/app/src/main/res/drawable-mdpi/btn_follow.png
deleted file mode 100644
index 569de966..00000000
Binary files a/app/src/main/res/drawable-mdpi/btn_follow.png and /dev/null differ
diff --git a/app/src/main/res/drawable-mdpi/btn_home_dark.png b/app/src/main/res/drawable-mdpi/btn_home_dark.png
new file mode 100644
index 00000000..18096af0
Binary files /dev/null and b/app/src/main/res/drawable-mdpi/btn_home_dark.png differ
diff --git a/app/src/main/res/drawable-mdpi/btn_local_tl_dark.png b/app/src/main/res/drawable-mdpi/btn_local_tl_dark.png
new file mode 100644
index 00000000..bf3caba4
Binary files /dev/null and b/app/src/main/res/drawable-mdpi/btn_local_tl_dark.png differ
diff --git a/app/src/main/res/drawable-mdpi/btn_more_dark.png b/app/src/main/res/drawable-mdpi/btn_more_dark.png
new file mode 100644
index 00000000..b07955b5
Binary files /dev/null and b/app/src/main/res/drawable-mdpi/btn_more_dark.png differ
diff --git a/app/src/main/res/drawable-mdpi/btn_notification_dark.png b/app/src/main/res/drawable-mdpi/btn_notification_dark.png
new file mode 100644
index 00000000..384d0f14
Binary files /dev/null and b/app/src/main/res/drawable-mdpi/btn_notification_dark.png differ
diff --git a/app/src/main/res/drawable-mdpi/btn_post_dark.png b/app/src/main/res/drawable-mdpi/btn_post_dark.png
new file mode 100644
index 00000000..6bd9326d
Binary files /dev/null and b/app/src/main/res/drawable-mdpi/btn_post_dark.png differ
diff --git a/app/src/main/res/drawable-mdpi/btn_refresh_dark.png b/app/src/main/res/drawable-mdpi/btn_refresh_dark.png
new file mode 100644
index 00000000..85f0b3ba
Binary files /dev/null and b/app/src/main/res/drawable-mdpi/btn_refresh_dark.png differ
diff --git a/app/src/main/res/drawable-mdpi/btn_reply_dark.png b/app/src/main/res/drawable-mdpi/btn_reply_dark.png
new file mode 100644
index 00000000..c9a26e75
Binary files /dev/null and b/app/src/main/res/drawable-mdpi/btn_reply_dark.png differ
diff --git a/app/src/main/res/drawable-mdpi/btn_statuses_dark.png b/app/src/main/res/drawable-mdpi/btn_statuses_dark.png
new file mode 100644
index 00000000..527e4958
Binary files /dev/null and b/app/src/main/res/drawable-mdpi/btn_statuses_dark.png differ
diff --git a/app/src/main/res/drawable-mdpi/ic_account_add_dark.png b/app/src/main/res/drawable-mdpi/ic_account_add_dark.png
new file mode 100644
index 00000000..6c4dbd67
Binary files /dev/null and b/app/src/main/res/drawable-mdpi/ic_account_add_dark.png differ
diff --git a/app/src/main/res/drawable-mdpi/ic_action_name.png b/app/src/main/res/drawable-mdpi/ic_action_name.png
deleted file mode 100644
index d2dcdbde..00000000
Binary files a/app/src/main/res/drawable-mdpi/ic_action_name.png and /dev/null differ
diff --git a/app/src/main/res/drawable-mdpi/ic_block_dark.png b/app/src/main/res/drawable-mdpi/ic_block_dark.png
new file mode 100644
index 00000000..4b9a435e
Binary files /dev/null and b/app/src/main/res/drawable-mdpi/ic_block_dark.png differ
diff --git a/app/src/main/res/drawable-mdpi/ic_blocked.png b/app/src/main/res/drawable-mdpi/ic_blocked.png
deleted file mode 100644
index d2dcdbde..00000000
Binary files a/app/src/main/res/drawable-mdpi/ic_blocked.png and /dev/null differ
diff --git a/app/src/main/res/drawable-mdpi/ic_bookmark_dark.png b/app/src/main/res/drawable-mdpi/ic_bookmark_dark.png
new file mode 100644
index 00000000..0d01d2f0
Binary files /dev/null and b/app/src/main/res/drawable-mdpi/ic_bookmark_dark.png differ
diff --git a/app/src/main/res/drawable-mdpi/ic_conversation_dark.png b/app/src/main/res/drawable-mdpi/ic_conversation_dark.png
new file mode 100644
index 00000000..39a663ff
Binary files /dev/null and b/app/src/main/res/drawable-mdpi/ic_conversation_dark.png differ
diff --git a/app/src/main/res/drawable-mdpi/ic_follow_requested.png b/app/src/main/res/drawable-mdpi/ic_follow_requested.png
deleted file mode 100644
index 20a2088e..00000000
Binary files a/app/src/main/res/drawable-mdpi/ic_follow_requested.png and /dev/null differ
diff --git a/app/src/main/res/drawable-mdpi/ic_hot_tub_dark.png b/app/src/main/res/drawable-mdpi/ic_hot_tub_dark.png
new file mode 100644
index 00000000..cc15c01b
Binary files /dev/null and b/app/src/main/res/drawable-mdpi/ic_hot_tub_dark.png differ
diff --git a/app/src/main/res/drawable-mdpi/ic_info_dark.png b/app/src/main/res/drawable-mdpi/ic_info_dark.png
new file mode 100644
index 00000000..1fade068
Binary files /dev/null and b/app/src/main/res/drawable-mdpi/ic_info_dark.png differ
diff --git a/app/src/main/res/drawable-mdpi/ic_knob_dark.png b/app/src/main/res/drawable-mdpi/ic_knob_dark.png
new file mode 100644
index 00000000..4d1b2045
Binary files /dev/null and b/app/src/main/res/drawable-mdpi/ic_knob_dark.png differ
diff --git a/app/src/main/res/drawable-mdpi/ic_list_dark.png b/app/src/main/res/drawable-mdpi/ic_list_dark.png
new file mode 100644
index 00000000..61b279c7
Binary files /dev/null and b/app/src/main/res/drawable-mdpi/ic_list_dark.png differ
diff --git a/app/src/main/res/drawable-mdpi/ic_loading_dark.png b/app/src/main/res/drawable-mdpi/ic_loading_dark.png
new file mode 100644
index 00000000..22f9bda0
Binary files /dev/null and b/app/src/main/res/drawable-mdpi/ic_loading_dark.png differ
diff --git a/app/src/main/res/drawable-mdpi/ic_lock_dark.png b/app/src/main/res/drawable-mdpi/ic_lock_dark.png
new file mode 100644
index 00000000..53de2734
Binary files /dev/null and b/app/src/main/res/drawable-mdpi/ic_lock_dark.png differ
diff --git a/app/src/main/res/drawable-mdpi/ic_lock_open_dark.png b/app/src/main/res/drawable-mdpi/ic_lock_open_dark.png
new file mode 100644
index 00000000..9a99ac32
Binary files /dev/null and b/app/src/main/res/drawable-mdpi/ic_lock_open_dark.png differ
diff --git a/app/src/main/res/drawable-mdpi/ic_mail_dark.png b/app/src/main/res/drawable-mdpi/ic_mail_dark.png
new file mode 100644
index 00000000..e61c7abf
Binary files /dev/null and b/app/src/main/res/drawable-mdpi/ic_mail_dark.png differ
diff --git a/app/src/main/res/drawable-mdpi/ic_menu_dark.png b/app/src/main/res/drawable-mdpi/ic_menu_dark.png
new file mode 100644
index 00000000..31ed9e1d
Binary files /dev/null and b/app/src/main/res/drawable-mdpi/ic_menu_dark.png differ
diff --git a/app/src/main/res/drawable-mdpi/ic_mute_dark.png b/app/src/main/res/drawable-mdpi/ic_mute_dark.png
new file mode 100644
index 00000000..629c884f
Binary files /dev/null and b/app/src/main/res/drawable-mdpi/ic_mute_dark.png differ
diff --git a/app/src/main/res/drawable-mdpi/ic_muted.png b/app/src/main/res/drawable-mdpi/ic_muted.png
deleted file mode 100644
index b3e13163..00000000
Binary files a/app/src/main/res/drawable-mdpi/ic_muted.png and /dev/null differ
diff --git a/app/src/main/res/drawable-mdpi/ic_public_dark.png b/app/src/main/res/drawable-mdpi/ic_public_dark.png
new file mode 100644
index 00000000..8f23baad
Binary files /dev/null and b/app/src/main/res/drawable-mdpi/ic_public_dark.png differ
diff --git a/app/src/main/res/drawable-mdpi/ic_search_dark.png b/app/src/main/res/drawable-mdpi/ic_search_dark.png
new file mode 100644
index 00000000..55c36f9c
Binary files /dev/null and b/app/src/main/res/drawable-mdpi/ic_search_dark.png differ
diff --git a/app/src/main/res/drawable-mdpi/ic_setting_dark.png b/app/src/main/res/drawable-mdpi/ic_setting_dark.png
new file mode 100644
index 00000000..ce72de5b
Binary files /dev/null and b/app/src/main/res/drawable-mdpi/ic_setting_dark.png differ
diff --git a/app/src/main/res/drawable-mdpi/ic_toot_dark.png b/app/src/main/res/drawable-mdpi/ic_toot_dark.png
new file mode 100644
index 00000000..dd8f1eb1
Binary files /dev/null and b/app/src/main/res/drawable-mdpi/ic_toot_dark.png differ
diff --git a/app/src/main/res/drawable-mdpi/ic_tune_dark.png b/app/src/main/res/drawable-mdpi/ic_tune_dark.png
new file mode 100644
index 00000000..d6c82c4c
Binary files /dev/null and b/app/src/main/res/drawable-mdpi/ic_tune_dark.png differ
diff --git a/app/src/main/res/drawable-mdpi/ic_unknown_dark.png b/app/src/main/res/drawable-mdpi/ic_unknown_dark.png
new file mode 100644
index 00000000..006c294f
Binary files /dev/null and b/app/src/main/res/drawable-mdpi/ic_unknown_dark.png differ
diff --git a/app/src/main/res/drawable-v21/btn_bg_ddd.xml b/app/src/main/res/drawable-v21/btn_bg_ddd.xml
index ca80979d..b17a599f 100644
--- a/app/src/main/res/drawable-v21/btn_bg_ddd.xml
+++ b/app/src/main/res/drawable-v21/btn_bg_ddd.xml
@@ -1,5 +1,7 @@
-
-
+
+
diff --git a/app/src/main/res/drawable-v21/btn_bg_transparent.xml b/app/src/main/res/drawable-v21/btn_bg_transparent.xml
index 3118f7e5..1cb4ad51 100644
--- a/app/src/main/res/drawable-v21/btn_bg_transparent.xml
+++ b/app/src/main/res/drawable-v21/btn_bg_transparent.xml
@@ -1,5 +1,5 @@
+ android:color="?attr/colorRippleEffect">
diff --git a/app/src/main/res/drawable-xhdpi/black_close.png b/app/src/main/res/drawable-xhdpi/black_close.png
deleted file mode 100644
index 658a422f..00000000
Binary files a/app/src/main/res/drawable-xhdpi/black_close.png and /dev/null differ
diff --git a/app/src/main/res/drawable-xhdpi/btn_attachment_dark.png b/app/src/main/res/drawable-xhdpi/btn_attachment_dark.png
new file mode 100644
index 00000000..98eed902
Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/btn_attachment_dark.png differ
diff --git a/app/src/main/res/drawable-xhdpi/btn_boost_dark.png b/app/src/main/res/drawable-xhdpi/btn_boost_dark.png
new file mode 100644
index 00000000..3995ff3b
Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/btn_boost_dark.png differ
diff --git a/app/src/main/res/drawable-xhdpi/btn_close_dark.png b/app/src/main/res/drawable-xhdpi/btn_close_dark.png
new file mode 100644
index 00000000..ffbdaa6e
Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/btn_close_dark.png differ
diff --git a/app/src/main/res/drawable-xhdpi/btn_favourite_dark.png b/app/src/main/res/drawable-xhdpi/btn_favourite_dark.png
new file mode 100644
index 00000000..db90aa60
Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/btn_favourite_dark.png differ
diff --git a/app/src/main/res/drawable-xhdpi/btn_federate_tl_dark.png b/app/src/main/res/drawable-xhdpi/btn_federate_tl_dark.png
new file mode 100644
index 00000000..dbd46836
Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/btn_federate_tl_dark.png differ
diff --git a/app/src/main/res/drawable-xhdpi/btn_follow.png b/app/src/main/res/drawable-xhdpi/btn_follow.png
deleted file mode 100644
index 6bca480e..00000000
Binary files a/app/src/main/res/drawable-xhdpi/btn_follow.png and /dev/null differ
diff --git a/app/src/main/res/drawable-xhdpi/btn_home_dark.png b/app/src/main/res/drawable-xhdpi/btn_home_dark.png
new file mode 100644
index 00000000..1d3b58cf
Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/btn_home_dark.png differ
diff --git a/app/src/main/res/drawable-xhdpi/btn_local_tl_dark.png b/app/src/main/res/drawable-xhdpi/btn_local_tl_dark.png
new file mode 100644
index 00000000..f52e38ff
Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/btn_local_tl_dark.png differ
diff --git a/app/src/main/res/drawable-xhdpi/btn_more_dark.png b/app/src/main/res/drawable-xhdpi/btn_more_dark.png
new file mode 100644
index 00000000..276d9b8f
Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/btn_more_dark.png differ
diff --git a/app/src/main/res/drawable-xhdpi/btn_notification_dark.png b/app/src/main/res/drawable-xhdpi/btn_notification_dark.png
new file mode 100644
index 00000000..108fd989
Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/btn_notification_dark.png differ
diff --git a/app/src/main/res/drawable-xhdpi/btn_post_dark.png b/app/src/main/res/drawable-xhdpi/btn_post_dark.png
new file mode 100644
index 00000000..7918547e
Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/btn_post_dark.png differ
diff --git a/app/src/main/res/drawable-xhdpi/btn_refresh_dark.png b/app/src/main/res/drawable-xhdpi/btn_refresh_dark.png
new file mode 100644
index 00000000..6c9b809d
Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/btn_refresh_dark.png differ
diff --git a/app/src/main/res/drawable-xhdpi/btn_reply_dark.png b/app/src/main/res/drawable-xhdpi/btn_reply_dark.png
new file mode 100644
index 00000000..0b1c9890
Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/btn_reply_dark.png differ
diff --git a/app/src/main/res/drawable-xhdpi/btn_statuses_dark.png b/app/src/main/res/drawable-xhdpi/btn_statuses_dark.png
new file mode 100644
index 00000000..d3f6fa79
Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/btn_statuses_dark.png differ
diff --git a/app/src/main/res/drawable-xhdpi/ic_account_add_dark.png b/app/src/main/res/drawable-xhdpi/ic_account_add_dark.png
new file mode 100644
index 00000000..aae17964
Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/ic_account_add_dark.png differ
diff --git a/app/src/main/res/drawable-xhdpi/ic_action_name.png b/app/src/main/res/drawable-xhdpi/ic_action_name.png
deleted file mode 100644
index 262a69c6..00000000
Binary files a/app/src/main/res/drawable-xhdpi/ic_action_name.png and /dev/null differ
diff --git a/app/src/main/res/drawable-xhdpi/ic_block_dark.png b/app/src/main/res/drawable-xhdpi/ic_block_dark.png
new file mode 100644
index 00000000..cfa6b93d
Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/ic_block_dark.png differ
diff --git a/app/src/main/res/drawable-xhdpi/ic_blocked.png b/app/src/main/res/drawable-xhdpi/ic_blocked.png
deleted file mode 100644
index 262a69c6..00000000
Binary files a/app/src/main/res/drawable-xhdpi/ic_blocked.png and /dev/null differ
diff --git a/app/src/main/res/drawable-xhdpi/ic_bookmark_dark.png b/app/src/main/res/drawable-xhdpi/ic_bookmark_dark.png
new file mode 100644
index 00000000..ab101fd9
Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/ic_bookmark_dark.png differ
diff --git a/app/src/main/res/drawable-xhdpi/ic_conversation_dark.png b/app/src/main/res/drawable-xhdpi/ic_conversation_dark.png
new file mode 100644
index 00000000..5d824734
Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/ic_conversation_dark.png differ
diff --git a/app/src/main/res/drawable-xhdpi/ic_follow_requested.png b/app/src/main/res/drawable-xhdpi/ic_follow_requested.png
deleted file mode 100644
index 1a1b3a3e..00000000
Binary files a/app/src/main/res/drawable-xhdpi/ic_follow_requested.png and /dev/null differ
diff --git a/app/src/main/res/drawable-xhdpi/ic_hot_tub_dark.png b/app/src/main/res/drawable-xhdpi/ic_hot_tub_dark.png
new file mode 100644
index 00000000..20274948
Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/ic_hot_tub_dark.png differ
diff --git a/app/src/main/res/drawable-xhdpi/ic_info_dark.png b/app/src/main/res/drawable-xhdpi/ic_info_dark.png
new file mode 100644
index 00000000..c359cfb6
Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/ic_info_dark.png differ
diff --git a/app/src/main/res/drawable-xhdpi/ic_knob_dark.png b/app/src/main/res/drawable-xhdpi/ic_knob_dark.png
new file mode 100644
index 00000000..db97cf74
Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/ic_knob_dark.png differ
diff --git a/app/src/main/res/drawable-xhdpi/ic_list_dark.png b/app/src/main/res/drawable-xhdpi/ic_list_dark.png
new file mode 100644
index 00000000..4c4db244
Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/ic_list_dark.png differ
diff --git a/app/src/main/res/drawable-xhdpi/ic_loading_dark.png b/app/src/main/res/drawable-xhdpi/ic_loading_dark.png
new file mode 100644
index 00000000..35b491b5
Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/ic_loading_dark.png differ
diff --git a/app/src/main/res/drawable-xhdpi/ic_lock_dark.png b/app/src/main/res/drawable-xhdpi/ic_lock_dark.png
new file mode 100644
index 00000000..cb939bf6
Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/ic_lock_dark.png differ
diff --git a/app/src/main/res/drawable-xhdpi/ic_lock_open_dark.png b/app/src/main/res/drawable-xhdpi/ic_lock_open_dark.png
new file mode 100644
index 00000000..05cb7c44
Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/ic_lock_open_dark.png differ
diff --git a/app/src/main/res/drawable-xhdpi/ic_mail_dark.png b/app/src/main/res/drawable-xhdpi/ic_mail_dark.png
new file mode 100644
index 00000000..89d4f600
Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/ic_mail_dark.png differ
diff --git a/app/src/main/res/drawable-xhdpi/ic_menu_dark.png b/app/src/main/res/drawable-xhdpi/ic_menu_dark.png
new file mode 100644
index 00000000..acf6defa
Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/ic_menu_dark.png differ
diff --git a/app/src/main/res/drawable-xhdpi/ic_mute_dark.png b/app/src/main/res/drawable-xhdpi/ic_mute_dark.png
new file mode 100644
index 00000000..99196ef1
Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/ic_mute_dark.png differ
diff --git a/app/src/main/res/drawable-xhdpi/ic_muted.png b/app/src/main/res/drawable-xhdpi/ic_muted.png
deleted file mode 100644
index 9ebe8337..00000000
Binary files a/app/src/main/res/drawable-xhdpi/ic_muted.png and /dev/null differ
diff --git a/app/src/main/res/drawable-xhdpi/ic_public_dark.png b/app/src/main/res/drawable-xhdpi/ic_public_dark.png
new file mode 100644
index 00000000..ef015d0b
Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/ic_public_dark.png differ
diff --git a/app/src/main/res/drawable-xhdpi/ic_search_dark.png b/app/src/main/res/drawable-xhdpi/ic_search_dark.png
new file mode 100644
index 00000000..2d270ff6
Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/ic_search_dark.png differ
diff --git a/app/src/main/res/drawable-xhdpi/ic_setting_dark.png b/app/src/main/res/drawable-xhdpi/ic_setting_dark.png
new file mode 100644
index 00000000..7afaebca
Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/ic_setting_dark.png differ
diff --git a/app/src/main/res/drawable-xhdpi/ic_toot_dark.png b/app/src/main/res/drawable-xhdpi/ic_toot_dark.png
new file mode 100644
index 00000000..c7a3268e
Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/ic_toot_dark.png differ
diff --git a/app/src/main/res/drawable-xhdpi/ic_tune_dark.png b/app/src/main/res/drawable-xhdpi/ic_tune_dark.png
new file mode 100644
index 00000000..b7cf0578
Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/ic_tune_dark.png differ
diff --git a/app/src/main/res/drawable-xhdpi/ic_unknown_dark.png b/app/src/main/res/drawable-xhdpi/ic_unknown_dark.png
new file mode 100644
index 00000000..c0ad32f9
Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/ic_unknown_dark.png differ
diff --git a/app/src/main/res/drawable-xxhdpi/black_close.png b/app/src/main/res/drawable-xxhdpi/black_close.png
deleted file mode 100644
index 9932e90d..00000000
Binary files a/app/src/main/res/drawable-xxhdpi/black_close.png and /dev/null differ
diff --git a/app/src/main/res/drawable-xxhdpi/btn_attachment_dark.png b/app/src/main/res/drawable-xxhdpi/btn_attachment_dark.png
new file mode 100644
index 00000000..7677330a
Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/btn_attachment_dark.png differ
diff --git a/app/src/main/res/drawable-xxhdpi/btn_boost_dark.png b/app/src/main/res/drawable-xxhdpi/btn_boost_dark.png
new file mode 100644
index 00000000..21817b30
Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/btn_boost_dark.png differ
diff --git a/app/src/main/res/drawable-xxhdpi/btn_close_dark.png b/app/src/main/res/drawable-xxhdpi/btn_close_dark.png
new file mode 100644
index 00000000..d35469d3
Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/btn_close_dark.png differ
diff --git a/app/src/main/res/drawable-xxhdpi/btn_favourite_dark.png b/app/src/main/res/drawable-xxhdpi/btn_favourite_dark.png
new file mode 100644
index 00000000..6088091e
Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/btn_favourite_dark.png differ
diff --git a/app/src/main/res/drawable-xxhdpi/btn_federate_tl_dark.png b/app/src/main/res/drawable-xxhdpi/btn_federate_tl_dark.png
new file mode 100644
index 00000000..68dbd9e5
Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/btn_federate_tl_dark.png differ
diff --git a/app/src/main/res/drawable-xxhdpi/btn_follow.png b/app/src/main/res/drawable-xxhdpi/btn_follow.png
deleted file mode 100644
index ad140127..00000000
Binary files a/app/src/main/res/drawable-xxhdpi/btn_follow.png and /dev/null differ
diff --git a/app/src/main/res/drawable-xxhdpi/btn_home_dark.png b/app/src/main/res/drawable-xxhdpi/btn_home_dark.png
new file mode 100644
index 00000000..25b07f31
Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/btn_home_dark.png differ
diff --git a/app/src/main/res/drawable-xxhdpi/btn_local_tl_dark.png b/app/src/main/res/drawable-xxhdpi/btn_local_tl_dark.png
new file mode 100644
index 00000000..f571e0f3
Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/btn_local_tl_dark.png differ
diff --git a/app/src/main/res/drawable-xxhdpi/btn_more_dark.png b/app/src/main/res/drawable-xxhdpi/btn_more_dark.png
new file mode 100644
index 00000000..ec25f349
Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/btn_more_dark.png differ
diff --git a/app/src/main/res/drawable-xxhdpi/btn_notification_dark.png b/app/src/main/res/drawable-xxhdpi/btn_notification_dark.png
new file mode 100644
index 00000000..5ab1a4ef
Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/btn_notification_dark.png differ
diff --git a/app/src/main/res/drawable-xxhdpi/btn_post_dark.png b/app/src/main/res/drawable-xxhdpi/btn_post_dark.png
new file mode 100644
index 00000000..39ee0000
Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/btn_post_dark.png differ
diff --git a/app/src/main/res/drawable-xxhdpi/btn_refresh_dark.png b/app/src/main/res/drawable-xxhdpi/btn_refresh_dark.png
new file mode 100644
index 00000000..77dffe99
Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/btn_refresh_dark.png differ
diff --git a/app/src/main/res/drawable-xxhdpi/btn_reply_dark.png b/app/src/main/res/drawable-xxhdpi/btn_reply_dark.png
new file mode 100644
index 00000000..4468bdac
Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/btn_reply_dark.png differ
diff --git a/app/src/main/res/drawable-xxhdpi/btn_statuses_dark.png b/app/src/main/res/drawable-xxhdpi/btn_statuses_dark.png
new file mode 100644
index 00000000..ced815f9
Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/btn_statuses_dark.png differ
diff --git a/app/src/main/res/drawable-xxhdpi/ic_account_add_dark.png b/app/src/main/res/drawable-xxhdpi/ic_account_add_dark.png
new file mode 100644
index 00000000..e84ba64d
Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/ic_account_add_dark.png differ
diff --git a/app/src/main/res/drawable-xxhdpi/ic_action_name.png b/app/src/main/res/drawable-xxhdpi/ic_action_name.png
deleted file mode 100644
index 97f55613..00000000
Binary files a/app/src/main/res/drawable-xxhdpi/ic_action_name.png and /dev/null differ
diff --git a/app/src/main/res/drawable-xxhdpi/ic_block_dark.png b/app/src/main/res/drawable-xxhdpi/ic_block_dark.png
new file mode 100644
index 00000000..224fc4a7
Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/ic_block_dark.png differ
diff --git a/app/src/main/res/drawable-xxhdpi/ic_blocked.png b/app/src/main/res/drawable-xxhdpi/ic_blocked.png
deleted file mode 100644
index 97f55613..00000000
Binary files a/app/src/main/res/drawable-xxhdpi/ic_blocked.png and /dev/null differ
diff --git a/app/src/main/res/drawable-xxhdpi/ic_bookmark_dark.png b/app/src/main/res/drawable-xxhdpi/ic_bookmark_dark.png
new file mode 100644
index 00000000..a5864e29
Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/ic_bookmark_dark.png differ
diff --git a/app/src/main/res/drawable-xxhdpi/ic_conversation_dark.png b/app/src/main/res/drawable-xxhdpi/ic_conversation_dark.png
new file mode 100644
index 00000000..feaa0bd2
Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/ic_conversation_dark.png differ
diff --git a/app/src/main/res/drawable-xxhdpi/ic_follow_requested.png b/app/src/main/res/drawable-xxhdpi/ic_follow_requested.png
deleted file mode 100644
index 67f5ff83..00000000
Binary files a/app/src/main/res/drawable-xxhdpi/ic_follow_requested.png and /dev/null differ
diff --git a/app/src/main/res/drawable-xxhdpi/ic_hot_tub_dark.png b/app/src/main/res/drawable-xxhdpi/ic_hot_tub_dark.png
new file mode 100644
index 00000000..3d837c4b
Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/ic_hot_tub_dark.png differ
diff --git a/app/src/main/res/drawable-xxhdpi/ic_info_dark.png b/app/src/main/res/drawable-xxhdpi/ic_info_dark.png
new file mode 100644
index 00000000..105fdd75
Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/ic_info_dark.png differ
diff --git a/app/src/main/res/drawable-xxhdpi/ic_knob_dark.png b/app/src/main/res/drawable-xxhdpi/ic_knob_dark.png
new file mode 100644
index 00000000..a97ebe3a
Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/ic_knob_dark.png differ
diff --git a/app/src/main/res/drawable-xxhdpi/ic_list_dark.png b/app/src/main/res/drawable-xxhdpi/ic_list_dark.png
new file mode 100644
index 00000000..d33585fa
Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/ic_list_dark.png differ
diff --git a/app/src/main/res/drawable-xxhdpi/ic_loading_dark.png b/app/src/main/res/drawable-xxhdpi/ic_loading_dark.png
new file mode 100644
index 00000000..c03972b4
Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/ic_loading_dark.png differ
diff --git a/app/src/main/res/drawable-xxhdpi/ic_lock_dark.png b/app/src/main/res/drawable-xxhdpi/ic_lock_dark.png
new file mode 100644
index 00000000..0ec86466
Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/ic_lock_dark.png differ
diff --git a/app/src/main/res/drawable-xxhdpi/ic_lock_open_dark.png b/app/src/main/res/drawable-xxhdpi/ic_lock_open_dark.png
new file mode 100644
index 00000000..8cdd5018
Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/ic_lock_open_dark.png differ
diff --git a/app/src/main/res/drawable-xxhdpi/ic_mail_dark.png b/app/src/main/res/drawable-xxhdpi/ic_mail_dark.png
new file mode 100644
index 00000000..f021d77d
Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/ic_mail_dark.png differ
diff --git a/app/src/main/res/drawable-xxhdpi/ic_menu_dark.png b/app/src/main/res/drawable-xxhdpi/ic_menu_dark.png
new file mode 100644
index 00000000..6abbbdd6
Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/ic_menu_dark.png differ
diff --git a/app/src/main/res/drawable-xxhdpi/ic_mute_dark.png b/app/src/main/res/drawable-xxhdpi/ic_mute_dark.png
new file mode 100644
index 00000000..7da91ff2
Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/ic_mute_dark.png differ
diff --git a/app/src/main/res/drawable-xxhdpi/ic_muted.png b/app/src/main/res/drawable-xxhdpi/ic_muted.png
deleted file mode 100644
index 8ab226d8..00000000
Binary files a/app/src/main/res/drawable-xxhdpi/ic_muted.png and /dev/null differ
diff --git a/app/src/main/res/drawable-xxhdpi/ic_public_dark.png b/app/src/main/res/drawable-xxhdpi/ic_public_dark.png
new file mode 100644
index 00000000..95928be5
Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/ic_public_dark.png differ
diff --git a/app/src/main/res/drawable-xxhdpi/ic_search_dark.png b/app/src/main/res/drawable-xxhdpi/ic_search_dark.png
new file mode 100644
index 00000000..d0d4d59e
Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/ic_search_dark.png differ
diff --git a/app/src/main/res/drawable-xxhdpi/ic_setting_dark.png b/app/src/main/res/drawable-xxhdpi/ic_setting_dark.png
new file mode 100644
index 00000000..4b473b77
Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/ic_setting_dark.png differ
diff --git a/app/src/main/res/drawable-xxhdpi/ic_toot_dark.png b/app/src/main/res/drawable-xxhdpi/ic_toot_dark.png
new file mode 100644
index 00000000..222ba4c9
Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/ic_toot_dark.png differ
diff --git a/app/src/main/res/drawable-xxhdpi/ic_tune_dark.png b/app/src/main/res/drawable-xxhdpi/ic_tune_dark.png
new file mode 100644
index 00000000..d1f23c8d
Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/ic_tune_dark.png differ
diff --git a/app/src/main/res/drawable-xxhdpi/ic_unknown_dark.png b/app/src/main/res/drawable-xxhdpi/ic_unknown_dark.png
new file mode 100644
index 00000000..9f81adaf
Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/ic_unknown_dark.png differ
diff --git a/app/src/main/res/drawable/btn_bg_ddd.xml b/app/src/main/res/drawable/btn_bg_ddd.xml
index 238fef50..e45f1b71 100644
--- a/app/src/main/res/drawable/btn_bg_ddd.xml
+++ b/app/src/main/res/drawable/btn_bg_ddd.xml
@@ -3,24 +3,24 @@
-
-
+
-
-
+
-
-
+
-
-
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/btn_bg_transparent.xml b/app/src/main/res/drawable/btn_bg_transparent.xml
index e974ba4e..eb79eed5 100644
--- a/app/src/main/res/drawable/btn_bg_transparent.xml
+++ b/app/src/main/res/drawable/btn_bg_transparent.xml
@@ -3,24 +3,24 @@
-
-
+
-
-
+
-
-
+
-
-
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/list_item_selector.xml b/app/src/main/res/drawable/column_list_selector.xml
similarity index 58%
rename from app/src/main/res/drawable/list_item_selector.xml
rename to app/src/main/res/drawable/column_list_selector.xml
index bd710272..b7fcca9e 100644
--- a/app/src/main/res/drawable/list_item_selector.xml
+++ b/app/src/main/res/drawable/column_list_selector.xml
@@ -1,8 +1,10 @@
-
+
-
-
+
-
diff --git a/app/src/main/res/drawable/window_background_dark.xml b/app/src/main/res/drawable/window_background_dark.xml
new file mode 100644
index 00000000..9eb8d8d1
--- /dev/null
+++ b/app/src/main/res/drawable/window_background_dark.xml
@@ -0,0 +1,6 @@
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/act_app_setting.xml b/app/src/main/res/layout/act_app_setting.xml
index 1894fb75..ec6d4da9 100644
--- a/app/src/main/res/layout/act_app_setting.xml
+++ b/app/src/main/res/layout/act_app_setting.xml
@@ -89,6 +89,22 @@ android:scrollbarStyle="outsideOverlay"
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/act_main.xml b/app/src/main/res/layout/act_main.xml
index 02e409a1..aa2afe96 100644
--- a/app/src/main/res/layout/act_main.xml
+++ b/app/src/main/res/layout/act_main.xml
@@ -46,7 +46,7 @@
android:layout_height="wrap_content"
android:layout_gravity="bottom|end"
android:layout_margin="@dimen/fab_margin"
- app:srcCompat="@drawable/ic_toot"
+ app:srcCompat="?attr/ic_toot"
/>
diff --git a/app/src/main/res/layout/act_post.xml b/app/src/main/res/layout/act_post.xml
index 77ad72a7..ea3be344 100644
--- a/app/src/main/res/layout/act_post.xml
+++ b/app/src/main/res/layout/act_post.xml
@@ -16,7 +16,7 @@
@@ -104,7 +104,7 @@
android:background="@drawable/btn_bg_transparent"
android:minHeight="48dp"
android:minWidth="48dp"
- android:src="@drawable/btn_attachment"
+ android:src="?attr/btn_attachment"
/>
diff --git a/app/src/main/res/layout/lv_column_list.xml b/app/src/main/res/layout/lv_column_list.xml
index d726d06e..f3da535a 100644
--- a/app/src/main/res/layout/lv_column_list.xml
+++ b/app/src/main/res/layout/lv_column_list.xml
@@ -15,7 +15,7 @@
android:layout_alignBottom="@+id/item_layout"
android:layout_alignTop="@+id/item_layout"
android:background="#0088ff"
- android:gravity="start|center_vertical"
+ android:gravity="center"
android:padding="16dp"
android:text="@string/app_name"
android:textColor="@android:color/white"
@@ -27,18 +27,18 @@
android:layout_height="match_parent"
android:layout_alignBottom="@+id/item_layout"
android:layout_alignTop="@+id/item_layout"
- android:background="#FF0000"
- android:gravity="end|center_vertical"
+ android:background="?attr/colorColumnListDeleteBackground"
+ android:gravity="center"
android:padding="16dp"
android:text="@string/delete"
- android:textColor="@android:color/white"
+ android:textColor="?attr/colorColumnListDeleteText"
android:textSize="20sp"/>
@@ -52,10 +52,10 @@
android:id="@+id/ivDragHandle"
android:layout_width="48dp"
android:layout_height="match_parent"
- android:background="#80cccccc"
+ android:background="?attr/colorColumnListDragHandleBackground"
android:contentDescription="@string/drag_handle"
android:scaleType="center"
- android:src="@drawable/ic_knob"
+ android:src="?attr/ic_knob"
/>
@@ -91,7 +91,7 @@
android:layout_marginStart="8dp"
android:contentDescription="@string/last_selection"
android:scaleType="center"
- android:src="@drawable/ic_bookmark"
+ android:src="?attr/ic_bookmark"
/>
diff --git a/app/src/main/res/layout/lv_list_header.xml b/app/src/main/res/layout/lv_list_header.xml
index d42a5d44..c220ac4a 100644
--- a/app/src/main/res/layout/lv_list_header.xml
+++ b/app/src/main/res/layout/lv_list_header.xml
@@ -12,7 +12,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="end"
- android:textColor="#888888"
+ android:textColor="?attr/colorTimeSmall"
android:textSize="12sp"
tools:text="xxxx-xx-xx xx:xx:xx"
/>
@@ -35,7 +35,7 @@
android:gravity="center_horizontal"
android:orientation="vertical"
android:padding="12dp"
- android:background="#C0FFFFFF"
+ android:background="?attr/colorProfileBackgroundMask"
>
@@ -62,8 +62,9 @@
android:layout_height="wrap_content"
android:gravity="center"
tools:text="\@fugahogehogera\@jugemujyugemugokounosurikire.jp"
- android:textColor="@color/colorLink"
+
android:drawablePadding="4dp"
+ android:textColor="?attr/colorLink"
/>
@@ -117,7 +118,7 @@
android:minWidth="48dp"
android:paddingStart="4dp"
android:paddingEnd="4dp"
- android:src="@drawable/btn_more"
+ android:src="?attr/btn_more"
/>
diff --git a/app/src/main/res/layout/lv_status.xml b/app/src/main/res/layout/lv_status.xml
index a0c92b0f..2bdbb755 100644
--- a/app/src/main/res/layout/lv_status.xml
+++ b/app/src/main/res/layout/lv_status.xml
@@ -26,10 +26,8 @@
android:layout_height="32dp"
android:layout_marginEnd="4dp"
android:scaleType="fitEnd"
- android:src="@drawable/btn_boost"
/>
-
@@ -62,7 +60,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="end"
- android:textColor="#888888"
+ android:textColor="?attr/colorTimeSmall"
android:textSize="12sp"
tools:text="2017-04-16 09:37:14"
/>
@@ -119,7 +117,7 @@
android:id="@+id/tvFollowerAcct"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:textColor="#888888"
+ android:textColor="?attr/colorAcctSmall"
android:textSize="12sp"
tools:text="aaaaaaaaaaaaaaaa"
/>
@@ -133,7 +131,7 @@
android:layout_marginStart="4dp"
android:background="@drawable/btn_bg_transparent"
android:contentDescription="@string/follow"
- android:src="@drawable/btn_follow"
+ android:src="?attr/ic_account_add"
/>
@@ -161,7 +159,7 @@
android:ellipsize="end"
android:gravity="end"
android:maxLines="1"
- android:textColor="#888888"
+ android:textColor="?attr/colorAcctSmall"
android:textSize="12sp"
tools:text="who@hoge"
/>
@@ -171,7 +169,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="end"
- android:textColor="#888888"
+ android:textColor="?attr/colorTimeSmall"
android:textSize="12sp"
tools:text="2017-04-16 09:37:14"
/>
@@ -330,7 +328,7 @@
android:layout_marginStart="8dp"
android:background="@drawable/btn_bg_transparent"
android:contentDescription="@string/hide"
- android:src="@drawable/btn_close"
+ android:src="?attr/btn_close"
/>
@@ -338,10 +336,10 @@
android:id="@+id/btnShowMedia"
android:layout_width="match_parent"
android:layout_height="match_parent"
- android:background="#000"
+ android:background="?attr/colorShowMediaBackground"
android:gravity="center"
android:text="@string/tap_to_show"
- android:textColor="#fff"
+ android:textColor="?attr/colorShowMediaText"
/>
@@ -360,7 +358,7 @@
android:background="@drawable/btn_bg_transparent"
android:contentDescription="@string/conversation_view"
android:minWidth="40dp"
- android:src="@drawable/ic_conversation"
+ android:src="?attr/ic_conversation"
/>
diff --git a/app/src/main/res/layout/page_column.xml b/app/src/main/res/layout/page_column.xml
index 66e708fa..ea7c6054 100644
--- a/app/src/main/res/layout/page_column.xml
+++ b/app/src/main/res/layout/page_column.xml
@@ -31,7 +31,7 @@
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="end"
- android:textColor="#888"
+ android:textColor="?attr/colorColumnHeaderAcct"
android:textSize="12sp"
tools:text="tvColumnContext"
/>
@@ -42,7 +42,7 @@
android:layout_height="wrap_content"
android:layout_marginStart="12dp"
android:gravity="end"
- android:textColor="#888"
+ android:textColor="?attr/colorColumnHeaderPageNumber"
android:textSize="12sp"
tools:text="col 6/12"
/>
@@ -72,7 +72,7 @@
android:layout_marginStart="2dp"
android:background="@drawable/btn_bg_transparent"
android:contentDescription="@string/setting"
- android:src="@drawable/ic_tune"
+ android:src="?attr/ic_tune"
/>
@@ -110,7 +110,7 @@
android:paddingEnd="12dp"
android:paddingTop="3dp"
android:paddingBottom="3dp"
- android:background="#ccc"
+ android:background="?attr/colorColumnSettingBackground"
android:id="@+id/llColumnSetting"
>
+ tools:ignore="LabelFor"/>
@@ -20,64 +20,64 @@
@@ -86,22 +86,22 @@
@@ -111,11 +111,11 @@
-
+
-
+
diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml
index 0aa9a2a7..f3ce3722 100644
--- a/app/src/main/res/values-ja/strings.xml
+++ b/app/src/main/res/values-ja/strings.xml
@@ -171,4 +171,7 @@
Status-URL
保護されたカラムは閉じられません
保護(閉じることができない)
+ 暗い
+ 明るい
+ UIテーマ(アプリ再起動が必要)
diff --git a/app/src/main/res/values/attrs.xml b/app/src/main/res/values/attrs.xml
new file mode 100644
index 00000000..542ca559
--- /dev/null
+++ b/app/src/main/res/values/attrs.xml
@@ -0,0 +1,102 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml
index 32ac7d39..de7cb388 100644
--- a/app/src/main/res/values/colors.xml
+++ b/app/src/main/res/values/colors.xml
@@ -1,11 +1,79 @@
- #c4c4c4
- #303030
- #5a5a5a
- #00a2ff
- #AACCCCCC
- #ddd
+ #99343434
+
+ #5a5a5a
+
+ #FF808080
+ #808080
+ #808080
+ #808080
+ #808080
+ #808080
+
+ #80cccccc
+ #AACCCCCC
+
+ #bbb
+ #bee6ff
+
+ #cccccc
+ #cccccc
+ #cccccc
+
+ #ddd
+ #C0FFFFFF
+
+ #303030
+
+
+ #ff000080
+ #00a2ff
+ #ff0088ff
+ #000
+ #fff
+ #FF0000
+ #fff
+
+
+
+
+ #ccFFFFFF
+
+ #ccFFFFFF
+
+ #FF666666
+ #666
+ #666
+ #666
+ #666
+ #666
+
+ #80444444
+ #AA444444
+
+ #383838
+ #333370
+
+ #333
+ #333
+ #333
+
+ #222
+
+ #C0000000
+ #000
+
+ #222
+
+
+ #ff000080
+ #00a2ff
+ #ff0088ff
+ #222
+ #ccFFFFFF
+ #FF0000
+ #fff
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 09661d18..00732602 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -170,4 +170,7 @@
Status-URL
don\'t close column
this column has \'dont close\' option.
+ UI theme (app restart required)
+ light
+ dark
diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml
index ff05acdd..72596c9c 100644
--- a/app/src/main/res/values/styles.xml
+++ b/app/src/main/res/values/styles.xml
@@ -1,18 +1,153 @@
-
-
-
+
+
+
+
+
+
@@ -33,8 +168,8 @@
- 12dp
- 0dp
- - 12dp
- - 0dp
+ - 12dp
+ - 0dp
@@ -82,10 +217,12 @@
- wrap_content
- 1
+
+