ステータス表示の余白をツメた
This commit is contained in:
parent
2111d1cbe0
commit
6d24d0d7ed
|
@ -9,8 +9,8 @@ android {
|
|||
applicationId "jp.juggler.subwaytooter"
|
||||
minSdkVersion 21
|
||||
targetSdkVersion 25
|
||||
versionCode 13
|
||||
versionName "0.1.3"
|
||||
versionCode 14
|
||||
versionName "0.1.4"
|
||||
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
|
||||
}
|
||||
|
||||
|
|
|
@ -1,8 +1,6 @@
|
|||
package jp.juggler.subwaytooter;
|
||||
|
||||
import android.content.Context;
|
||||
import android.graphics.Color;
|
||||
import android.graphics.ColorFilter;
|
||||
import android.graphics.PorterDuff;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.support.v4.content.ContextCompat;
|
||||
|
@ -13,7 +11,6 @@ import android.view.View;
|
|||
import android.view.ViewGroup;
|
||||
import android.view.inputmethod.EditorInfo;
|
||||
import android.view.inputmethod.InputMethodManager;
|
||||
import android.widget.AdapterView;
|
||||
import android.widget.BaseAdapter;
|
||||
import android.widget.Button;
|
||||
import android.widget.CheckBox;
|
||||
|
@ -34,7 +31,6 @@ import java.util.concurrent.atomic.AtomicBoolean;
|
|||
import jp.juggler.subwaytooter.api.entity.TootAccount;
|
||||
import jp.juggler.subwaytooter.api.entity.TootAttachment;
|
||||
import jp.juggler.subwaytooter.api.entity.TootNotification;
|
||||
import jp.juggler.subwaytooter.api.entity.TootRelationShip;
|
||||
import jp.juggler.subwaytooter.api.entity.TootStatus;
|
||||
import jp.juggler.subwaytooter.table.ContentWarning;
|
||||
import jp.juggler.subwaytooter.table.MediaShown;
|
||||
|
@ -43,15 +39,15 @@ import jp.juggler.subwaytooter.util.Emojione;
|
|||
import jp.juggler.subwaytooter.util.LogCategory;
|
||||
import jp.juggler.subwaytooter.util.Utils;
|
||||
|
||||
public class ColumnViewHolder implements View.OnClickListener, Column.VisualCallback, SwipyRefreshLayout.OnRefreshListener {
|
||||
static final LogCategory log = new LogCategory( "ColumnViewHolder" );
|
||||
class ColumnViewHolder implements View.OnClickListener, Column.VisualCallback, SwipyRefreshLayout.OnRefreshListener {
|
||||
private static final LogCategory log = new LogCategory( "ColumnViewHolder" );
|
||||
|
||||
public final ActMain activity;
|
||||
final AtomicBoolean is_destroyed = new AtomicBoolean( false );
|
||||
|
||||
private final Column column;
|
||||
|
||||
public ColumnViewHolder( ActMain activity, Column column ){
|
||||
ColumnViewHolder( ActMain activity, Column column ){
|
||||
this.activity = activity;
|
||||
this.column = column;
|
||||
}
|
||||
|
@ -60,6 +56,12 @@ public class ColumnViewHolder implements View.OnClickListener, Column.VisualCall
|
|||
return is_destroyed.get() || activity.isFinishing();
|
||||
}
|
||||
|
||||
void onPageDestroy( View root ){
|
||||
saveScrollPosition();
|
||||
log.d( "onPageDestroy:%s", column.getColumnName( true ) );
|
||||
column.removeVisualListener( this );
|
||||
}
|
||||
|
||||
private TextView tvLoading;
|
||||
private ListView listView;
|
||||
private TextView tvColumnContext;
|
||||
|
@ -67,11 +69,9 @@ public class ColumnViewHolder implements View.OnClickListener, Column.VisualCall
|
|||
private StatusListAdapter status_adapter;
|
||||
private HeaderViewHolder vh_header;
|
||||
private SwipyRefreshLayout swipyRefreshLayout;
|
||||
View llSearch;
|
||||
View btnSearch;
|
||||
EditText etSearch;
|
||||
CheckBox cbResolve;
|
||||
View llColumnHeader;
|
||||
private View btnSearch;
|
||||
private EditText etSearch;
|
||||
private CheckBox cbResolve;
|
||||
|
||||
void onPageCreate( View root, int page_idx, int page_count ){
|
||||
log.d( "onPageCreate:%s", column.getColumnName( true ) );
|
||||
|
@ -91,13 +91,12 @@ public class ColumnViewHolder implements View.OnClickListener, Column.VisualCall
|
|||
listView = (ListView) root.findViewById( R.id.listView );
|
||||
status_adapter = new StatusListAdapter();
|
||||
listView.setAdapter( status_adapter );
|
||||
listView.setOnItemClickListener( status_adapter );
|
||||
|
||||
this.swipyRefreshLayout = (SwipyRefreshLayout) root.findViewById( R.id.swipyRefreshLayout );
|
||||
swipyRefreshLayout.setOnRefreshListener( this );
|
||||
swipyRefreshLayout.setDistanceToTriggerSync( (int) ( 0.5f + 20 * activity.getResources().getDisplayMetrics().density ) );
|
||||
|
||||
llSearch = root.findViewById( R.id.llSearch );
|
||||
View llSearch = root.findViewById( R.id.llSearch );
|
||||
btnSearch = root.findViewById( R.id.btnSearch );
|
||||
etSearch = (EditText) root.findViewById( R.id.etSearch );
|
||||
cbResolve = (CheckBox) root.findViewById( R.id.cbResolve );
|
||||
|
@ -139,12 +138,7 @@ public class ColumnViewHolder implements View.OnClickListener, Column.VisualCall
|
|||
onVisualColumn();
|
||||
}
|
||||
|
||||
void onPageDestroy( View root ){
|
||||
saveScrollPosition();
|
||||
log.d( "onPageDestroy:%s", column.getColumnName( true ) );
|
||||
column.removeVisualListener( this );
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void onClick( View v ){
|
||||
switch( v.getId() ){
|
||||
|
@ -254,7 +248,7 @@ public class ColumnViewHolder implements View.OnClickListener, Column.VisualCall
|
|||
}
|
||||
}
|
||||
|
||||
final Runnable proc_restore_scroll = new Runnable() {
|
||||
private final Runnable proc_restore_scroll = new Runnable() {
|
||||
@Override
|
||||
public void run(){
|
||||
if( column.scroll_pos == 0 && column.scroll_y == 0 ){
|
||||
|
@ -276,7 +270,7 @@ public class ColumnViewHolder implements View.OnClickListener, Column.VisualCall
|
|||
}
|
||||
};
|
||||
|
||||
public void saveScrollPosition(){
|
||||
void saveScrollPosition(){
|
||||
column.scroll_pos = 0;
|
||||
column.scroll_y = 0;
|
||||
if( listView.getVisibility() == View.VISIBLE ){
|
||||
|
@ -291,7 +285,7 @@ public class ColumnViewHolder implements View.OnClickListener, Column.VisualCall
|
|||
|
||||
///////////////////////////////////////////////////////////////////
|
||||
|
||||
class HeaderViewHolder implements View.OnClickListener {
|
||||
private class HeaderViewHolder implements View.OnClickListener {
|
||||
final View viewRoot;
|
||||
final NetworkImageView ivBackground;
|
||||
final TextView tvCreated;
|
||||
|
@ -306,7 +300,7 @@ public class ColumnViewHolder implements View.OnClickListener, Column.VisualCall
|
|||
TootAccount who;
|
||||
SavedAccount access_info;
|
||||
|
||||
public HeaderViewHolder( final ActMain activity, ListView parent ){
|
||||
HeaderViewHolder( final ActMain activity, ListView parent ){
|
||||
viewRoot = activity.getLayoutInflater().inflate( R.layout.lv_list_header, parent, false );
|
||||
this.ivBackground = (NetworkImageView) viewRoot.findViewById( R.id.ivBackground );
|
||||
this.tvCreated = (TextView) viewRoot.findViewById( R.id.tvCreated );
|
||||
|
@ -328,7 +322,7 @@ public class ColumnViewHolder implements View.OnClickListener, Column.VisualCall
|
|||
tvNote.setMovementMethod( LinkMovementMethod.getInstance() );
|
||||
}
|
||||
|
||||
public void bind( ActMain activity, SavedAccount access_info, TootAccount who ){
|
||||
void bind( ActMain activity, SavedAccount access_info, TootAccount who ){
|
||||
this.who = who;
|
||||
this.access_info = access_info;
|
||||
if( who == null ){
|
||||
|
@ -394,10 +388,10 @@ public class ColumnViewHolder implements View.OnClickListener, Column.VisualCall
|
|||
}
|
||||
}
|
||||
|
||||
class StatusListAdapter extends BaseAdapter implements AdapterView.OnItemClickListener {
|
||||
private class StatusListAdapter extends BaseAdapter {
|
||||
final ArrayList< Object > status_list = new ArrayList<>();
|
||||
|
||||
public < T > void set( List< T > src ){
|
||||
< T > void set( List< T > src ){
|
||||
this.status_list.clear();
|
||||
this.status_list.addAll( src );
|
||||
notifyDataSetChanged();
|
||||
|
@ -431,24 +425,17 @@ public class ColumnViewHolder implements View.OnClickListener, Column.VisualCall
|
|||
}else{
|
||||
holder = (StatusViewHolder) view.getTag();
|
||||
}
|
||||
holder.bind( activity, view, o, column.access_info );
|
||||
holder.bind( activity, o, column.access_info );
|
||||
return view;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onItemClick( AdapterView< ? > parent, View view, int position, long id ){
|
||||
Object o = view.getTag();
|
||||
if( o instanceof StatusViewHolder ){
|
||||
( (StatusViewHolder) o ).onItemClick();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
class StatusViewHolder implements View.OnClickListener {
|
||||
private class StatusViewHolder implements View.OnClickListener {
|
||||
|
||||
final View llBoosted;
|
||||
final ImageView ivBoosted;
|
||||
final TextView tvBoosted;
|
||||
final TextView tvBoostedAcct;
|
||||
final TextView tvBoostedTime;
|
||||
|
||||
final View llFollow;
|
||||
|
@ -461,13 +448,13 @@ public class ColumnViewHolder implements View.OnClickListener, Column.VisualCall
|
|||
final NetworkImageView ivThumbnail;
|
||||
final TextView tvName;
|
||||
final TextView tvTime;
|
||||
final TextView tvAcct;
|
||||
|
||||
final View llContentWarning;
|
||||
final TextView tvContentWarning;
|
||||
final Button btnContentWarning;
|
||||
|
||||
final View llContents;
|
||||
final TextView tvTags;
|
||||
final TextView tvMentions;
|
||||
final TextView tvContent;
|
||||
|
||||
|
@ -496,13 +483,14 @@ public class ColumnViewHolder implements View.OnClickListener, Column.VisualCall
|
|||
View llSearchTag;
|
||||
Button btnSearchTag;
|
||||
|
||||
public StatusViewHolder( View view ){
|
||||
StatusViewHolder( View view ){
|
||||
|
||||
this.llBoosted = view.findViewById( R.id.llBoosted );
|
||||
this.ivBoosted = (ImageView) view.findViewById( R.id.ivBoosted );
|
||||
this.tvBoosted = (TextView) view.findViewById( R.id.tvBoosted );
|
||||
this.tvBoostedTime = (TextView) view.findViewById( R.id.tvBoostedTime );
|
||||
|
||||
this.tvBoostedAcct = (TextView) view.findViewById( R.id.tvBoostedAcct );
|
||||
|
||||
this.llFollow = view.findViewById( R.id.llFollow );
|
||||
this.ivFollow = (NetworkImageView) view.findViewById( R.id.ivFollow );
|
||||
this.tvFollowerName = (TextView) view.findViewById( R.id.tvFollowerName );
|
||||
|
@ -514,14 +502,14 @@ public class ColumnViewHolder implements View.OnClickListener, Column.VisualCall
|
|||
this.ivThumbnail = (NetworkImageView) view.findViewById( R.id.ivThumbnail );
|
||||
this.tvName = (TextView) view.findViewById( R.id.tvName );
|
||||
this.tvTime = (TextView) view.findViewById( R.id.tvTime );
|
||||
|
||||
this.tvAcct =(TextView) view.findViewById( R.id.tvAcct );
|
||||
|
||||
this.llContentWarning = view.findViewById( R.id.llContentWarning );
|
||||
this.tvContentWarning = (TextView) view.findViewById( R.id.tvContentWarning );
|
||||
this.btnContentWarning = (Button) view.findViewById( R.id.btnContentWarning );
|
||||
|
||||
this.llContents = view.findViewById( R.id.llContents );
|
||||
this.tvContent = (TextView) view.findViewById( R.id.tvContent );
|
||||
this.tvTags = (TextView) view.findViewById( R.id.tvTags );
|
||||
this.tvMentions = (TextView) view.findViewById( R.id.tvMentions );
|
||||
|
||||
this.btnConversation = view.findViewById( R.id.btnConversation );
|
||||
|
@ -563,12 +551,10 @@ public class ColumnViewHolder implements View.OnClickListener, Column.VisualCall
|
|||
btnFollow.setOnClickListener( this );
|
||||
|
||||
tvContent.setMovementMethod( LinkMovementMethod.getInstance() );
|
||||
tvTags.setMovementMethod( LinkMovementMethod.getInstance() );
|
||||
tvMentions.setMovementMethod( LinkMovementMethod.getInstance() );
|
||||
|
||||
}
|
||||
|
||||
public void bind( ActMain activity, View view, Object item, SavedAccount access_info ){
|
||||
void bind( ActMain activity, Object item, SavedAccount access_info ){
|
||||
this.access_info = access_info;
|
||||
|
||||
llBoosted.setVisibility( View.GONE );
|
||||
|
@ -591,7 +577,7 @@ public class ColumnViewHolder implements View.OnClickListener, Column.VisualCall
|
|||
, R.drawable.btn_favourite
|
||||
, Utils.formatSpannable1( activity, R.string.display_name_favourited_by, n.account.display_name )
|
||||
);
|
||||
if( n.status != null ) showStatus( activity, view, n.status, access_info );
|
||||
if( n.status != null ) showStatus( activity, n.status, access_info );
|
||||
}else if( TootNotification.TYPE_REBLOG.equals( n.type ) ){
|
||||
showBoost(
|
||||
n.account
|
||||
|
@ -599,7 +585,7 @@ public class ColumnViewHolder implements View.OnClickListener, Column.VisualCall
|
|||
, R.drawable.btn_boost
|
||||
, Utils.formatSpannable1( activity, R.string.display_name_boosted_by, n.account.display_name )
|
||||
);
|
||||
if( n.status != null ) showStatus( activity, view, n.status, access_info );
|
||||
if( n.status != null ) showStatus( activity, n.status, access_info );
|
||||
}else if( TootNotification.TYPE_FOLLOW.equals( n.type ) ){
|
||||
showBoost(
|
||||
n.account
|
||||
|
@ -618,7 +604,7 @@ public class ColumnViewHolder implements View.OnClickListener, Column.VisualCall
|
|||
, R.drawable.btn_reply
|
||||
, Utils.formatSpannable1( activity, R.string.display_name_replied_by, n.account.display_name )
|
||||
);
|
||||
if( n.status != null ) showStatus( activity, view, n.status, access_info );
|
||||
if( n.status != null ) showStatus( activity, n.status, access_info );
|
||||
}
|
||||
}else if( item instanceof TootStatus ){
|
||||
TootStatus status = (TootStatus) item;
|
||||
|
@ -629,9 +615,9 @@ public class ColumnViewHolder implements View.OnClickListener, Column.VisualCall
|
|||
, R.drawable.btn_boost
|
||||
, Utils.formatSpannable1( activity, R.string.display_name_boosted_by, status.account.display_name )
|
||||
);
|
||||
showStatus( activity, view, status.reblog, access_info );
|
||||
showStatus( activity, status.reblog, access_info );
|
||||
}else{
|
||||
showStatus( activity, view, status, access_info );
|
||||
showStatus( activity, status, access_info );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -646,9 +632,8 @@ public class ColumnViewHolder implements View.OnClickListener, Column.VisualCall
|
|||
account_boost = who;
|
||||
llBoosted.setVisibility( View.VISIBLE );
|
||||
ivBoosted.setImageResource( icon_id );
|
||||
tvBoostedTime.setText( TootStatus.formatTime( time )
|
||||
+ "\n" + access_info.getFullAcct( who )
|
||||
);
|
||||
tvBoostedTime.setText( TootStatus.formatTime( time ) );
|
||||
tvBoostedAcct.setText(access_info.getFullAcct( who ) );
|
||||
tvBoosted.setText( text );
|
||||
}
|
||||
|
||||
|
@ -663,25 +648,24 @@ public class ColumnViewHolder implements View.OnClickListener, Column.VisualCall
|
|||
|
||||
}
|
||||
|
||||
private void showStatus( ActMain activity, View view, TootStatus status, SavedAccount account ){
|
||||
private void showStatus( ActMain activity, TootStatus status, SavedAccount account ){
|
||||
this.status = status;
|
||||
account_thumbnail = status.account;
|
||||
llStatus.setVisibility( View.VISIBLE );
|
||||
tvTime.setText(
|
||||
status.id
|
||||
+ " " + TootStatus.formatTime( status.time_created_at )
|
||||
+ "\n" + account.getFullAcct( status.account )
|
||||
);
|
||||
|
||||
tvAcct.setText( account.getFullAcct( status.account ) );
|
||||
tvTime.setText( TootStatus.formatTime( status.time_created_at ) );
|
||||
|
||||
tvName.setText( status.account.display_name );
|
||||
ivThumbnail.setImageUrl( status.account.avatar_static, App1.getImageLoader() );
|
||||
tvContent.setText( status.decoded_content );
|
||||
|
||||
if( status.decoded_tags == null ){
|
||||
tvTags.setVisibility( View.GONE );
|
||||
}else{
|
||||
tvTags.setVisibility( View.VISIBLE );
|
||||
tvTags.setText( status.decoded_tags );
|
||||
}
|
||||
// if( status.decoded_tags == null ){
|
||||
// tvTags.setVisibility( View.GONE );
|
||||
// }else{
|
||||
// tvTags.setVisibility( View.VISIBLE );
|
||||
// tvTags.setText( status.decoded_tags );
|
||||
// }
|
||||
|
||||
if( status.decoded_mentions == null ){
|
||||
tvMentions.setVisibility( View.GONE );
|
||||
|
@ -857,10 +841,7 @@ public class ColumnViewHolder implements View.OnClickListener, Column.VisualCall
|
|||
}
|
||||
}
|
||||
|
||||
public void onItemClick(){
|
||||
if( status ==null ) return;
|
||||
activity.performConversation( access_info, status );
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -99,7 +99,7 @@ public class TootStatus extends TootId {
|
|||
|
||||
public Spannable decoded_content;
|
||||
public Spannable decoded_spoiler_text;
|
||||
public Spannable decoded_tags;
|
||||
// public Spannable decoded_tags;
|
||||
public Spannable decoded_mentions;
|
||||
|
||||
public JSONObject json;
|
||||
|
@ -137,7 +137,7 @@ public class TootStatus extends TootId {
|
|||
|
||||
status.time_created_at = parseTime( log, status.created_at );
|
||||
status.decoded_content = HTMLDecoder.decodeHTML( account,status.content );
|
||||
status.decoded_tags = HTMLDecoder.decodeTags( account,status.tags );
|
||||
// status.decoded_tags = HTMLDecoder.decodeTags( account,status.tags );
|
||||
status.decoded_mentions = HTMLDecoder.decodeMentions(account, status.mentions );
|
||||
|
||||
if( !TextUtils.isEmpty( status.spoiler_text ) ){
|
||||
|
|
|
@ -6,25 +6,25 @@
|
|||
android:layout_height="wrap_content"
|
||||
android:descendantFocusability="blocksDescendants"
|
||||
android:orientation="vertical"
|
||||
android:paddingBottom="12dp"
|
||||
android:paddingTop="12dp"
|
||||
android:paddingBottom="3dp"
|
||||
android:paddingTop="3dp"
|
||||
>
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/llBoosted"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginBottom="8dp"
|
||||
android:layout_marginBottom="6dp"
|
||||
android:background="@drawable/btn_bg_transparent"
|
||||
android:gravity="center_vertical"
|
||||
android:orientation="horizontal"
|
||||
>
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/ivBoosted"
|
||||
android:layout_width="64dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="bottom"
|
||||
android:layout_marginEnd="8dp"
|
||||
android:layout_width="48dp"
|
||||
android:layout_height="32dp"
|
||||
android:layout_marginEnd="4dp"
|
||||
android:scaleType="fitEnd"
|
||||
android:src="@drawable/btn_boost"
|
||||
/>
|
||||
|
@ -37,15 +37,37 @@
|
|||
android:orientation="vertical"
|
||||
>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tvBoostedTime"
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:gravity="end"
|
||||
android:textColor="#888888"
|
||||
android:textSize="12sp"
|
||||
tools:text="2017-04-16 09:37:14"
|
||||
/>
|
||||
android:orientation="horizontal"
|
||||
>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tvBoostedAcct"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginEnd="4dp"
|
||||
android:layout_weight="1"
|
||||
android:ellipsize="end"
|
||||
android:gravity="end"
|
||||
android:maxLines="1"
|
||||
android:textColor="#888888"
|
||||
android:textSize="12sp"
|
||||
tools:text="who@hoge"
|
||||
/>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tvBoostedTime"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:gravity="end"
|
||||
android:textColor="#888888"
|
||||
android:textSize="12sp"
|
||||
tools:text="2017-04-16 09:37:14"
|
||||
/>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tvBoosted"
|
||||
|
@ -63,19 +85,19 @@
|
|||
android:id="@+id/llFollow"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginBottom="8dp"
|
||||
android:background="@drawable/btn_bg_transparent"
|
||||
android:gravity="center_vertical"
|
||||
android:orientation="horizontal"
|
||||
>
|
||||
|
||||
<com.android.volley.toolbox.NetworkImageView
|
||||
android:id="@+id/ivFollow"
|
||||
android:layout_width="64dp"
|
||||
android:layout_height="32dp"
|
||||
android:layout_gravity="bottom"
|
||||
android:layout_marginEnd="8dp"
|
||||
android:layout_width="48dp"
|
||||
android:layout_height="40dp"
|
||||
android:layout_marginEnd="4dp"
|
||||
android:contentDescription="@string/thumbnail"
|
||||
android:scaleType="fitEnd"
|
||||
|
||||
/>
|
||||
|
||||
<LinearLayout
|
||||
|
@ -106,8 +128,9 @@
|
|||
|
||||
<ImageButton
|
||||
android:id="@+id/btnFollow"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_width="40dp"
|
||||
android:layout_height="40dp"
|
||||
android:layout_marginStart="4dp"
|
||||
android:background="@drawable/btn_bg_transparent"
|
||||
android:contentDescription="@string/follow"
|
||||
android:src="@drawable/btn_follow"
|
||||
|
@ -124,10 +147,10 @@
|
|||
|
||||
<com.android.volley.toolbox.NetworkImageView
|
||||
android:id="@+id/ivThumbnail"
|
||||
android:layout_width="64dp"
|
||||
android:layout_height="64dp"
|
||||
android:layout_marginEnd="8dp"
|
||||
android:layout_marginTop="8dp"
|
||||
android:layout_width="48dp"
|
||||
android:layout_height="48dp"
|
||||
android:layout_marginEnd="4dp"
|
||||
android:layout_marginTop="20dp"
|
||||
android:background="@drawable/btn_bg_transparent"
|
||||
android:contentDescription="@string/thumbnail"
|
||||
android:scaleType="centerCrop"
|
||||
|
@ -140,21 +163,42 @@
|
|||
android:orientation="vertical"
|
||||
>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tvTime"
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:gravity="end"
|
||||
android:textColor="#888888"
|
||||
android:textSize="12sp"
|
||||
tools:text="2017-04-16 09:37:14"
|
||||
/>
|
||||
android:orientation="horizontal"
|
||||
>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tvAcct"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginEnd="4dp"
|
||||
android:layout_weight="1"
|
||||
android:ellipsize="end"
|
||||
android:gravity="end"
|
||||
android:maxLines="1"
|
||||
android:textColor="#888888"
|
||||
android:textSize="12sp"
|
||||
tools:text="who@hoge"
|
||||
/>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tvTime"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:gravity="end"
|
||||
android:textColor="#888888"
|
||||
android:textSize="12sp"
|
||||
tools:text="2017-04-16 09:37:14"
|
||||
/>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tvName"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="8dp"
|
||||
android:textStyle="bold"
|
||||
tools:text="Displayname @username"
|
||||
/>
|
||||
|
@ -163,7 +207,7 @@
|
|||
android:id="@+id/llContentWarning"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="8dp"
|
||||
android:layout_marginTop="3dp"
|
||||
android:baselineAligned="false"
|
||||
android:gravity="center_vertical"
|
||||
android:orientation="horizontal"
|
||||
|
@ -171,28 +215,38 @@
|
|||
|
||||
<Button
|
||||
android:id="@+id/btnContentWarning"
|
||||
android:background="@drawable/btn_bg_ddd"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="8dp"
|
||||
android:minWidth="32dp"
|
||||
android:layout_height="40dp"
|
||||
android:layout_marginEnd="8dp"
|
||||
android:minWidth="40dp"
|
||||
android:padding="4dp"
|
||||
tools:text="見る"
|
||||
/>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tvContentWarning"
|
||||
<LinearLayout
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
/>
|
||||
android:orientation="vertical"
|
||||
>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tvMentions"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
/>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tvContentWarning"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="3dp"
|
||||
/>
|
||||
</LinearLayout>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tvMentions"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="8dp"
|
||||
android:gravity="end"
|
||||
/>
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/llContents"
|
||||
|
@ -201,20 +255,12 @@
|
|||
android:orientation="vertical"
|
||||
>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tvTags"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="8dp"
|
||||
android:gravity="end"
|
||||
/>
|
||||
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tvContent"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="8dp"
|
||||
android:layout_marginTop="3dp"
|
||||
android:lineSpacingMultiplier="1.1"
|
||||
tools:text="Contents\nContents"
|
||||
/>
|
||||
|
||||
|
@ -222,7 +268,7 @@
|
|||
android:id="@+id/flMedia"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="64dp"
|
||||
android:layout_marginTop="8dp"
|
||||
android:layout_marginTop="3dp"
|
||||
>
|
||||
|
||||
<LinearLayout
|
||||
|
@ -295,8 +341,9 @@
|
|||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="48dp"
|
||||
android:layout_height="40dp"
|
||||
android:orientation="horizontal"
|
||||
android:layout_marginTop="3dp"
|
||||
>
|
||||
|
||||
<ImageButton
|
||||
|
@ -305,9 +352,7 @@
|
|||
android:layout_height="match_parent"
|
||||
android:background="@drawable/btn_bg_transparent"
|
||||
android:contentDescription="@string/conversation_view"
|
||||
android:minWidth="48dp"
|
||||
android:paddingEnd="4dp"
|
||||
android:paddingStart="4dp"
|
||||
android:minWidth="40dp"
|
||||
android:src="@drawable/ic_conversation"
|
||||
/>
|
||||
|
||||
|
@ -317,9 +362,7 @@
|
|||
android:layout_height="match_parent"
|
||||
android:background="@drawable/btn_bg_transparent"
|
||||
android:contentDescription="@string/reply"
|
||||
android:minWidth="48dp"
|
||||
android:paddingEnd="4dp"
|
||||
android:paddingStart="4dp"
|
||||
android:minWidth="40dp"
|
||||
android:src="@drawable/btn_reply"
|
||||
/>
|
||||
|
||||
|
@ -351,15 +394,12 @@
|
|||
android:layout_height="match_parent"
|
||||
android:background="@drawable/btn_bg_transparent"
|
||||
android:contentDescription="@string/more"
|
||||
android:minWidth="48dp"
|
||||
android:paddingEnd="4dp"
|
||||
android:paddingStart="4dp"
|
||||
android:minWidth="40dp"
|
||||
android:src="@drawable/btn_more"
|
||||
/>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
|
||||
|
@ -369,11 +409,12 @@
|
|||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal"
|
||||
>
|
||||
|
||||
<Button
|
||||
android:id="@+id/btnSearchTag"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@drawable/btn_bg_transparent"
|
||||
android:id="@+id/btnSearchTag"
|
||||
android:textAllCaps="false"
|
||||
/>
|
||||
</LinearLayout>
|
||||
|
|
|
@ -13,8 +13,8 @@
|
|||
android:orientation="vertical"
|
||||
android:paddingStart="12dp"
|
||||
android:paddingEnd="12dp"
|
||||
android:paddingTop="6dp"
|
||||
android:paddingBottom="6dp"
|
||||
android:paddingTop="3dp"
|
||||
android:paddingBottom="3dp"
|
||||
android:id="@+id/llColumnHeader"
|
||||
android:background="@drawable/btn_bg_ddd"
|
||||
>
|
||||
|
@ -51,7 +51,7 @@
|
|||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="6dp"
|
||||
android:layout_marginTop="0dp"
|
||||
android:orientation="horizontal"
|
||||
android:gravity="center_vertical"
|
||||
>
|
||||
|
@ -97,8 +97,8 @@
|
|||
android:layout_height="wrap_content"
|
||||
android:paddingStart="12dp"
|
||||
android:paddingEnd="12dp"
|
||||
android:paddingTop="6dp"
|
||||
android:paddingBottom="6dp"
|
||||
android:paddingTop="3dp"
|
||||
android:paddingBottom="3dp"
|
||||
android:background="#bee6ff"
|
||||
android:id="@+id/llSearch"
|
||||
>
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
<string name="app_name">Subway Tooter</string>
|
||||
|
||||
<string name="action_settings">設定</string>
|
||||
<string name="account_add">アカウント追加</string>
|
||||
<string name="account_add">アカウントの追加</string>
|
||||
<string name="instance">インスタンス</string>
|
||||
<string name="user_mail_address">メールアドレス</string>
|
||||
<string name="user_password">パスワード</string>
|
||||
|
|
Loading…
Reference in New Issue