From 6dd3a9d9ece20ac5a530522e51a6dae156c168c3 Mon Sep 17 00:00:00 2001 From: tateisu Date: Sun, 27 Aug 2017 14:41:38 +0900 Subject: [PATCH] =?UTF-8?q?=E8=87=AA=E5=8B=95CW=E3=81=AE=E8=A1=A8=E7=A4=BA?= =?UTF-8?q?=E3=82=92=E6=94=B9=E5=96=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/build.gradle | 4 +-- .../java/jp/juggler/subwaytooter/ActMain.java | 30 +++++++++++++------ .../juggler/subwaytooter/ItemViewHolder.java | 13 ++++++-- app/src/main/res/values-fr/strings.xml | 2 +- app/src/main/res/values/strings.xml | 2 +- 5 files changed, 35 insertions(+), 16 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 3b9eeb83..73440fca 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -9,8 +9,8 @@ android { applicationId "jp.juggler.subwaytooter" minSdkVersion 21 targetSdkVersion 26 - versionCode 128 - versionName "1.2.8" + versionCode 129 + versionName "1.2.9" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } diff --git a/app/src/main/java/jp/juggler/subwaytooter/ActMain.java b/app/src/main/java/jp/juggler/subwaytooter/ActMain.java index 80cdd37c..b44bc394 100644 --- a/app/src/main/java/jp/juggler/subwaytooter/ActMain.java +++ b/app/src/main/java/jp/juggler/subwaytooter/ActMain.java @@ -4425,22 +4425,23 @@ public class ActMain extends AppCompatActivity int lv_pad = (int) ( 0.5f + 12 * density ); int icon_width = (int) ( 0.5f + 48 * density ); int icon_end = (int) ( 0.5f + 4 * density ); - nAutoCwCellWidth = column_w - lv_pad - icon_width - icon_end; + nAutoCwCellWidth = column_w - lv_pad*2 - icon_width - icon_end; } // この後各カラムは再描画される } - TootStatusLike.AutoCW checkAutoCW( @NonNull TootStatusLike status, @NonNull CharSequence text ){ + void checkAutoCW( @NonNull TootStatusLike status, @NonNull CharSequence text ){ if( nAutoCwLines <= 0 || nAutoCwCellWidth <= 0 ){ // 設定が無効 status.auto_cw = null; - return null; + return; } TootStatusLike.AutoCW a = status.auto_cw; if( a != null && a.refActivity.get() == ActMain.this && a.cell_width == nAutoCwCellWidth ){ // 以前に計算した値がまだ使える - return a; + return; } + if( a == null ) a = status.auto_cw = new TootStatusLike.AutoCW(); // 計算時の条件(文字フォント、文字サイズ、カラム幅)を覚えておいて、再利用時に同じか確認する @@ -4469,13 +4470,24 @@ public class ActMain extends AppCompatActivity if( l != null ){ int line_count = l.getLineCount(); if( line_count > nAutoCwLines ){ - SpannableStringBuilder sb = new SpannableStringBuilder( ); - sb.append( getString(R.string.auto_cw_prefix)); - sb.append( text,0, l.getLineEnd( nAutoCwLines-1 ) ); + SpannableStringBuilder sb = new SpannableStringBuilder(); + sb.append( getString( R.string.auto_cw_prefix ) ); + sb.append( text, 0, l.getLineEnd( nAutoCwLines - 1 ) ); + int last = sb.length(); + while( last > 0 ){ + char c = sb.charAt( last - 1 ); + if( c == '\n' || Character.isWhitespace( c ) ){ + -- last; + continue; + } + break; + } + if( last < sb.length() ){ + sb.delete( last, sb.length() ); + } + sb.append( '…' ); a.decoded_spoiler_text = sb; } } - - return a; } } diff --git a/app/src/main/java/jp/juggler/subwaytooter/ItemViewHolder.java b/app/src/main/java/jp/juggler/subwaytooter/ItemViewHolder.java index c23468b9..27361983 100644 --- a/app/src/main/java/jp/juggler/subwaytooter/ItemViewHolder.java +++ b/app/src/main/java/jp/juggler/subwaytooter/ItemViewHolder.java @@ -450,7 +450,8 @@ class ItemViewHolder implements View.OnClickListener, View.OnLongClickListener { showContent( cw_shown ); }else{ // 自動CWを使うかもしれない - TootStatusLike.AutoCW r = activity.checkAutoCW( status, content ); + activity.checkAutoCW( status, content ); + TootStatusLike.AutoCW r = status.auto_cw; if( r != null && r.decoded_spoiler_text != null ){ // 自動CWされた内容を表示 llContentWarning.setVisibility( View.VISIBLE ); @@ -567,9 +568,15 @@ class ItemViewHolder implements View.OnClickListener, View.OnLongClickListener { } private void showContent( boolean shown ){ - btnContentWarning.setText( shown ? R.string.hide : R.string.show ); llContents.setVisibility( shown ? View.VISIBLE : View.GONE ); - + btnContentWarning.setText( shown ? R.string.hide : R.string.show ); + if(status!=null){ + TootStatusLike.AutoCW r = status.auto_cw; + if( r != null && r.decoded_spoiler_text != null ){ + // 自動CWの場合はContentWarningのテキストを切り替える + tvContentWarning.setText( shown ? activity.getString( R.string.auto_cw_prefix ) : r.decoded_spoiler_text ); + } + } } private void setMedia( MyNetworkImageView iv, TootStatus status, int idx ){ diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index 6878d8fd..072a09c8 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -455,7 +455,7 @@ Make enquete Disable IME Action button when using \"Quick Toot\" bar (app restart required) - Automatically hide long sentences (set line counts greater than 0 to enable this option. app restart required) + Automatically hide long text (set line counts greater than 0 to enable this option. app restart required) (Automatic CW) diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 70f7754f..fcf9956b 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -450,7 +450,7 @@ choice 4(optional) Make enquete Disable IME Action button when using \"Quick Toot\" bar (app restart required) - Automatically hide long sentences (set line counts greater than 0 to enable this option. app restart required) + Automatically hide long text (set line counts greater than 0 to enable this option. app restart required) (Automatic CW)