diff options
author | Kazuki Yamaguchi <k@rhe.jp> | 2017-10-21 18:47:29 +0900 |
---|---|---|
committer | Kazuki Yamaguchi <k@rhe.jp> | 2017-10-21 18:47:29 +0900 |
commit | ab3a67f8a8ad5c5367604977964b4689862edea4 (patch) | |
tree | c329554053203b0b248cdcced2185270e671df57 | |
parent | 5ac6ace581471dd0747aff57d976b993d43a6938 (diff) | |
download | SmileEssence-ab3a67f8a8ad5c5367604977964b4689862edea4.tar.gz |
unyaunya
19 files changed, 144 insertions, 202 deletions
diff --git a/app/build.gradle b/app/build.gradle index 959809d7..be183ffb 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -51,7 +51,7 @@ dependencies { implementation 'com.android.support:palette-v7:26.1.0' implementation 'com.android.support:support-v13:26.1.0' implementation 'com.android.support:design:26.1.0' - implementation 'com.android.support.constraint:constraint-layout:1.0.2' + implementation 'com.android.support.constraint:constraint-layout:1.1.0-beta3' // Volley implementation 'com.android.volley:volley:1.0.0@aar' diff --git a/app/src/main/java/net/lacolaco/smileessence/activity/MainActivity.kt b/app/src/main/java/net/lacolaco/smileessence/activity/MainActivity.kt index aef46b64..407c75fa 100644 --- a/app/src/main/java/net/lacolaco/smileessence/activity/MainActivity.kt +++ b/app/src/main/java/net/lacolaco/smileessence/activity/MainActivity.kt @@ -206,15 +206,11 @@ class MainActivity : AppCompatActivity() { } override fun onBackPressed() { - finish() - } - - override fun finish() { val homeIndex = world.pages.indexOfFirst { it is PageInfo.TweetsPageInfo } if (viewPager.currentItem != homeIndex) viewPager.setCurrentItem(homeIndex, true) else - confirm(R.string.dialog_confirm_finish_app) { super.finish() } + confirm(R.string.dialog_confirm_exit) { finish() } } override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { @@ -222,7 +218,7 @@ class MainActivity : AppCompatActivity() { REQUEST_CODE_MANAGE_PAGES -> { if (resultCode == RESULT_OK) { Application.toast("Restarting activity...") - super.finish() + finish() startActivity(intent) } } diff --git a/app/src/main/java/net/lacolaco/smileessence/util/DateUtils.kt b/app/src/main/java/net/lacolaco/smileessence/util/DateUtils.kt new file mode 100644 index 00000000..be06f563 --- /dev/null +++ b/app/src/main/java/net/lacolaco/smileessence/util/DateUtils.kt @@ -0,0 +1,14 @@ +package net.lacolaco.smileessence.util + +import java.text.SimpleDateFormat +import java.util.* + +fun Date.toCompactString(): String { + val current = Calendar.getInstance() + val calendar = Calendar.getInstance().apply { time = this@toCompactString } + var pattern = "HH:mm:ss" + if (calendar.get(Calendar.YEAR) != current.get(Calendar.YEAR) || + calendar.get(Calendar.DAY_OF_YEAR) != current.get(Calendar.DAY_OF_YEAR)) + pattern = "yyyy-MM-dd $pattern" + return SimpleDateFormat(pattern).format(this) +} diff --git a/app/src/main/java/net/lacolaco/smileessence/util/StringUtils.kt b/app/src/main/java/net/lacolaco/smileessence/util/StringUtils.kt deleted file mode 100644 index 4d5f6524..00000000 --- a/app/src/main/java/net/lacolaco/smileessence/util/StringUtils.kt +++ /dev/null @@ -1,30 +0,0 @@ -package net.lacolaco.smileessence.util - -import java.text.SimpleDateFormat -import java.util.* - -object StringUtils { - fun dateToString(date: Date): String { - val current = Calendar.getInstance() - val cal = Calendar.getInstance() - cal.time = date - - return if (isSameYear(current, cal)) { - if (isSameDay(current, cal)) { - SimpleDateFormat("HH:mm:ss").format(date) - } else { - SimpleDateFormat("MM/dd HH:mm:ss").format(date) - } - } else { - SimpleDateFormat("yyyy/MM/dd HH:mm:ss").format(date) - } - } - - private fun isSameDay(current: Calendar, cal: Calendar): Boolean { - return cal.get(Calendar.DAY_OF_YEAR) == current.get(Calendar.DAY_OF_YEAR) - } - - private fun isSameYear(current: Calendar, cal: Calendar): Boolean { - return cal.get(Calendar.YEAR) == current.get(Calendar.YEAR) - } -} diff --git a/app/src/main/java/net/lacolaco/smileessence/view/ColoredRelativeLayout.kt b/app/src/main/java/net/lacolaco/smileessence/view/ColoredRelativeLayout.kt deleted file mode 100644 index 3e37411d..00000000 --- a/app/src/main/java/net/lacolaco/smileessence/view/ColoredRelativeLayout.kt +++ /dev/null @@ -1,49 +0,0 @@ -package net.lacolaco.smileessence.view - -import android.content.Context -import android.graphics.Canvas -import android.graphics.Paint -import android.util.AttributeSet -import android.widget.RelativeLayout -import net.lacolaco.smileessence.R - -// XXX: 4th argument defStyleRes: Int = 0 isn't available in API 19 -class ColoredRelativeLayout @JvmOverloads constructor(context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = 0) : - RelativeLayout(context, attrs, defStyleAttr) { - private val paint = Paint() - private val highlightColors = IntArray(4) - private var showAccent = false - - init { - setWillNotDraw(false) - - val ta = context.obtainStyledAttributes(attrs, R.styleable.ColoredRelativeLayout) - highlightColors[0] = ta.getColor(R.styleable.ColoredRelativeLayout_highlight_none, -1) - highlightColors[1] = ta.getColor(R.styleable.ColoredRelativeLayout_highlight_type1, -1) - highlightColors[2] = ta.getColor(R.styleable.ColoredRelativeLayout_highlight_type2, -1) - highlightColors[3] = ta.getColor(R.styleable.ColoredRelativeLayout_highlight_type3, -1) - setHighlight(HIGHLIGHT_NONE) - paint.color = ta.getColor(R.styleable.ColoredRelativeLayout_accent_color, -1) - paint.style = Paint.Style.STROKE - paint.strokeWidth = 3f - ta.recycle() - } - - override fun onDraw(canvas: Canvas) { - super.onDraw(canvas) - if (showAccent) - canvas.drawLine(1f, 0f, 1f, measuredHeight.toFloat(), paint) - } - - fun setAccentVisibility(yes: Boolean) { - showAccent = yes - } - - fun setHighlight(type: Int) { - setBackgroundColor(highlightColors[type]) - } - - companion object { - val HIGHLIGHT_NONE = 0 - } -} diff --git a/app/src/main/java/net/lacolaco/smileessence/view/Partials.kt b/app/src/main/java/net/lacolaco/smileessence/view/Partials.kt index 45e5b4f0..eb373f71 100644 --- a/app/src/main/java/net/lacolaco/smileessence/view/Partials.kt +++ b/app/src/main/java/net/lacolaco/smileessence/view/Partials.kt @@ -1,7 +1,6 @@ package net.lacolaco.smileessence.view import android.app.Activity -import android.content.Context import android.text.Html import android.view.View import android.view.ViewGroup @@ -13,8 +12,8 @@ import net.lacolaco.smileessence.entity.DirectMessage import net.lacolaco.smileessence.entity.Tweet import net.lacolaco.smileessence.entity.User import net.lacolaco.smileessence.twitter.task.getTweetAsync -import net.lacolaco.smileessence.util.StringUtils import net.lacolaco.smileessence.util.launchBg +import net.lacolaco.smileessence.util.toCompactString import net.lacolaco.smileessence.view.adapter.UnorderedCustomListAdapter import net.lacolaco.smileessence.view.dialog.MessageDetailDialogFragment import net.lacolaco.smileessence.view.dialog.StatusDetailDialogFragment @@ -28,8 +27,7 @@ object Partials { DialogHelper.showDialog(activity, StatusDetailDialogFragment.newInstance(tweet)) } - //FIXME: (view as ColoredRelativeLayout).setAccentVisibility(tweet.user === world.user) - + view.highlight_mine.visibility = if (tweet.user === world.user) View.VISIBLE else View.INVISIBLE updateViewUser(tweet.originalTweet.user, activity, view) updateViewBody(tweet, world, activity, view) updateTweetReactionsViews(tweet, world, view) @@ -76,13 +74,13 @@ object Partials { private fun updateViewBody(tweet: Tweet, world: World, activity: Activity, view: View) { view.textview_status_text.text = tweet.text - var footerText = StringUtils.dateToString(tweet.originalTweet.createdAt) + var footerText = tweet.originalTweet.createdAt.toCompactString() footerText += " via ${Html.fromHtml(tweet.originalTweet.source)}" if (tweet.isRetweet) footerText += " (RT by ${tweet.user.screenName})" view.textview_status_footer.text = footerText - (view as TweetRelativeLayout).isMention = tweet.mentions.contains(world.user.screenName) + (view as TweetConstraintLayout).isMention = tweet.mentions.contains(world.user.screenName) view.isRetweet = tweet.isRetweet view.isDirectMessage = false } @@ -119,15 +117,16 @@ object Partials { view.tweet_favorite_count.visibility = View.GONE view.imageview_status_retweeted.visibility = View.GONE view.tweet_retweet_count.visibility = View.GONE + view.listview_status_embedded_status.visibility = View.GONE //view.textview_status_header.setTextColor(getStyledColor(activity, world, R.attr.color_message_text_header)) - (view as TweetRelativeLayout).isDirectMessage = true + (view as TweetConstraintLayout).isDirectMessage = true - //FIXME: (view as ColoredRelativeLayout).setAccentVisibility(directMessage.sender === world.user) + view.highlight_mine.visibility = if (directMessage.sender === world.user) View.VISIBLE else View.INVISIBLE updateViewUser(directMessage.sender, activity, view) view.textview_status_text.text = directMessage.text - var footerText = StringUtils.dateToString(directMessage.createdAt) + var footerText = directMessage.createdAt.toCompactString() if (directMessage.sender == world.user) { footerText += " to @${directMessage.recipient.screenName}" } diff --git a/app/src/main/java/net/lacolaco/smileessence/view/TweetRelativeLayout.kt b/app/src/main/java/net/lacolaco/smileessence/view/TweetConstraintLayout.kt index 5eab63a4..1f2d473c 100644 --- a/app/src/main/java/net/lacolaco/smileessence/view/TweetRelativeLayout.kt +++ b/app/src/main/java/net/lacolaco/smileessence/view/TweetConstraintLayout.kt @@ -1,20 +1,13 @@ package net.lacolaco.smileessence.view -import android.annotation.TargetApi import android.content.Context -import android.os.Build +import android.support.constraint.ConstraintLayout import android.util.AttributeSet -import android.widget.RelativeLayout import net.lacolaco.smileessence.R -class TweetRelativeLayout : RelativeLayout { - @TargetApi(Build.VERSION_CODES.LOLLIPOP) - constructor(context: Context, attrs: AttributeSet?, defStyleAttr: Int, defStyleRes: Int) : - super(context, attrs, defStyleAttr, defStyleRes) - - @JvmOverloads - constructor(context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = 0) : - super(context, attrs, defStyleAttr) +class TweetConstraintLayout +@JvmOverloads constructor(context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = 0) : + ConstraintLayout(context, attrs, defStyleAttr) { var isDirectMessage = false set(value) { diff --git a/app/src/main/java/net/lacolaco/smileessence/view/dialog/StatusDetailDialogFragment.kt b/app/src/main/java/net/lacolaco/smileessence/view/dialog/StatusDetailDialogFragment.kt index 0d00bef7..787ac314 100644 --- a/app/src/main/java/net/lacolaco/smileessence/view/dialog/StatusDetailDialogFragment.kt +++ b/app/src/main/java/net/lacolaco/smileessence/view/dialog/StatusDetailDialogFragment.kt @@ -1,6 +1,5 @@ package net.lacolaco.smileessence.view.dialog -import android.graphics.drawable.ColorDrawable import android.os.Bundle import android.view.LayoutInflater import android.view.View diff --git a/app/src/main/java/net/lacolaco/smileessence/view/dialog/UserDetailDialogFragment.kt b/app/src/main/java/net/lacolaco/smileessence/view/dialog/UserDetailDialogFragment.kt index c0d70a13..770c0c8d 100644 --- a/app/src/main/java/net/lacolaco/smileessence/view/dialog/UserDetailDialogFragment.kt +++ b/app/src/main/java/net/lacolaco/smileessence/view/dialog/UserDetailDialogFragment.kt @@ -150,7 +150,7 @@ class UserDetailDialogFragment : StackableDialogFragment() { v.tabhost.setup() val tab1 = v.tabhost.newTabSpec("tab1").setContent(R.id.tab1).setIndicator(getString(R.string.user_detail_tab_info)) v.tabhost.addTab(tab1) - val tab2 = v.tabhost.newTabSpec("tab2").setContent(R.id.tab2).setIndicator(getString(R.string.user_detail_tab_timeline)) + val tab2 = v.tabhost.newTabSpec("tab2").setContent(R.id.user_detail_refresh_layout).setIndicator(getString(R.string.user_detail_tab_timeline)) v.tabhost.addTab(tab2) v.tabhost.currentTab = 0 diff --git a/app/src/main/java/net/lacolaco/smileessence/view/page/ComposePageFragment.kt b/app/src/main/java/net/lacolaco/smileessence/view/page/ComposePageFragment.kt index 10f63566..b2c5cb80 100644 --- a/app/src/main/java/net/lacolaco/smileessence/view/page/ComposePageFragment.kt +++ b/app/src/main/java/net/lacolaco/smileessence/view/page/ComposePageFragment.kt @@ -20,7 +20,6 @@ import kotlinx.android.parcel.Parcelize import kotlinx.android.synthetic.main.page_fragment_compose.* import net.lacolaco.smileessence.Logger import net.lacolaco.smileessence.R -import net.lacolaco.smileessence.activity.MainActivity import net.lacolaco.smileessence.data.PageInfo import net.lacolaco.smileessence.entity.Tweet import net.lacolaco.smileessence.entity.User @@ -184,7 +183,7 @@ class ComposePageFragment : PageFragment<PageInfo.ComposePageInfo>(), TextWatche world.notifyError(R.string.notice_tweet_failed, e) } } - (activity as MainActivity).openHomePage() + mainActivity.openHomePage() } button_post_reply_delete.setOnClickListener { postState.inReplyTo = null diff --git a/app/src/main/java/net/lacolaco/smileessence/view/page/EventsPageFragment.kt b/app/src/main/java/net/lacolaco/smileessence/view/page/EventsPageFragment.kt index b49f09f4..e52003d9 100644 --- a/app/src/main/java/net/lacolaco/smileessence/view/page/EventsPageFragment.kt +++ b/app/src/main/java/net/lacolaco/smileessence/view/page/EventsPageFragment.kt @@ -9,7 +9,7 @@ import net.lacolaco.smileessence.R import net.lacolaco.smileessence.data.ImageCache import net.lacolaco.smileessence.data.PageInfo import net.lacolaco.smileessence.entity.Event -import net.lacolaco.smileessence.util.StringUtils +import net.lacolaco.smileessence.util.toCompactString import net.lacolaco.smileessence.view.DialogHelper import net.lacolaco.smileessence.view.dialog.UserDetailDialogFragment @@ -27,7 +27,7 @@ class EventsPageFragment : TimelinePageFragment<Event, PageInfo.EventsPageInfo>( itemView.imageview_status_icon.setImageUrl(item.source.profileImageUrl, ImageCache.getImageLoader()) itemView.textview_status_header.text = item.formattedString itemView.textview_status_text.text = item.targetObject?.text ?: "" - itemView.textview_status_footer.text = StringUtils.dateToString(item.createdAt) + itemView.textview_status_footer.text = item.createdAt.toCompactString() itemView.imageview_status_favorited.visibility = View.INVISIBLE itemView.tweet_favorite_count.visibility = View.INVISIBLE itemView.imageview_status_retweeted.visibility = View.INVISIBLE diff --git a/app/src/main/java/net/lacolaco/smileessence/view/page/PageFragment.kt b/app/src/main/java/net/lacolaco/smileessence/view/page/PageFragment.kt index 9f1f3dca..15ca9449 100644 --- a/app/src/main/java/net/lacolaco/smileessence/view/page/PageFragment.kt +++ b/app/src/main/java/net/lacolaco/smileessence/view/page/PageFragment.kt @@ -2,8 +2,12 @@ package net.lacolaco.smileessence.view.page import android.app.Fragment import net.lacolaco.smileessence.World +import net.lacolaco.smileessence.activity.MainActivity import net.lacolaco.smileessence.data.PageInfo +/** + * Note, PageFragment is always attached to a MainActivity. + */ abstract class PageFragment<out T : PageInfo> : Fragment() { protected val world by lazy { World[arguments.getLong(KEY_WORLD_USER_ID)] @@ -13,6 +17,9 @@ abstract class PageFragment<out T : PageInfo> : Fragment() { world.pages[arguments.getInt(KEY_PAGE_POSITION)] as T } + val mainActivity + get() = super.getActivity() as MainActivity + // Invoked when user click the refresh button. open fun refresh() {} diff --git a/app/src/main/res/drawable/tweet_background.xml b/app/src/main/res/drawable/tweet_background.xml index 93a8d884..4fb995ae 100644 --- a/app/src/main/res/drawable/tweet_background.xml +++ b/app/src/main/res/drawable/tweet_background.xml @@ -1,6 +1,6 @@ <selector xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"> - <item app:state_tweet_direct_message="true" android:drawable="@color/md_blue_grey_900" /> - <item app:state_tweet_mention="true" android:drawable="@color/md_brown_850" /> - <item app:state_tweet_retweet="true" android:drawable="@color/md_grey_850" /> + <item android:drawable="@color/md_blue_grey_900" app:state_tweet_direct_message="true" /> + <item android:drawable="@color/md_brown_850" app:state_tweet_mention="true" /> + <item android:drawable="@color/md_grey_850" app:state_tweet_retweet="true" /> <item android:drawable="@color/md_grey_900" /> </selector> diff --git a/app/src/main/res/drawable/tweet_background_light.xml b/app/src/main/res/drawable/tweet_background_light.xml index 725e4620..e20398a1 100644 --- a/app/src/main/res/drawable/tweet_background_light.xml +++ b/app/src/main/res/drawable/tweet_background_light.xml @@ -1,6 +1,6 @@ <selector xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"> - <item app:state_tweet_direct_message="true" android:drawable="@color/orange_light" /> - <item app:state_tweet_mention="true" android:drawable="@color/light_red" /> - <item app:state_tweet_retweet="true" android:drawable="@color/light_blue" /> + <item android:drawable="@color/orange_light" app:state_tweet_direct_message="true" /> + <item android:drawable="@color/light_red" app:state_tweet_mention="true" /> + <item android:drawable="@color/light_blue" app:state_tweet_retweet="true" /> <item android:drawable="@color/md_white_1000" /> </selector> diff --git a/app/src/main/res/layout/dialog_user_detail.xml b/app/src/main/res/layout/dialog_user_detail.xml index f369c7ba..645740db 100644 --- a/app/src/main/res/layout/dialog_user_detail.xml +++ b/app/src/main/res/layout/dialog_user_detail.xml @@ -110,8 +110,8 @@ <ImageView android:id="@+id/imageview_user_detail_menu" - android:layout_width="45dp" - android:layout_height="45dp" + android:layout_width="40dp" + android:layout_height="40dp" android:background="?selectableItemBackgroundBorderless" android:clickable="true" android:src="@drawable/ic_more_vert_black_24dp" @@ -280,27 +280,21 @@ </LinearLayout> </ScrollView> - <FrameLayout - android:id="@+id/tab2" + <com.omadahealth.github.swipyrefreshlayout.library.SwipyRefreshLayout + android:id="@+id/user_detail_refresh_layout" android:layout_width="match_parent" - android:layout_height="match_parent"> + android:layout_height="match_parent" + app:srl_direction="both"> - <com.omadahealth.github.swipyrefreshlayout.library.SwipyRefreshLayout - android:id="@+id/user_detail_refresh_layout" + <ListView + android:id="@+id/listview_user_detail_timeline" android:layout_width="match_parent" android:layout_height="match_parent" - app:srl_direction="both"> - - <ListView - android:id="@+id/listview_user_detail_timeline" - android:layout_width="match_parent" - android:layout_height="match_parent" - android:divider="?attr/color_list_divider" - android:dividerHeight="1px" - android:fastScrollEnabled="true" - android:overScrollMode="never" /> - </com.omadahealth.github.swipyrefreshlayout.library.SwipyRefreshLayout> - </FrameLayout> + android:divider="?attr/color_list_divider" + android:dividerHeight="1px" + android:fastScrollEnabled="true" + android:overScrollMode="never" /> + </com.omadahealth.github.swipyrefreshlayout.library.SwipyRefreshLayout> </FrameLayout> </LinearLayout> </TabHost> diff --git a/app/src/main/res/layout/list_item_status.xml b/app/src/main/res/layout/list_item_status.xml index 33f41c7f..4f6346c6 100644 --- a/app/src/main/res/layout/list_item_status.xml +++ b/app/src/main/res/layout/list_item_status.xml @@ -1,100 +1,127 @@ -<net.lacolaco.smileessence.view.TweetRelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" +<net.lacolaco.smileessence.view.TweetConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" - android:layout_width="wrap_content" + android:layout_width="match_parent" android:layout_height="wrap_content" - android:descendantFocusability="blocksDescendants" android:background="?status_item_background" - android:foreground="?android:attr/selectableItemBackground" - android:padding="5dp"> - <!-- app:accent_color="?attr/color_status_text_mine" --> + android:descendantFocusability="blocksDescendants" + android:foreground="?android:attr/selectableItemBackground"> + + <FrameLayout + android:id="@+id/highlight_mine" + android:layout_width="3dp" + android:layout_height="0dp" + android:background="?color_status_text_mine" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent" /> <com.android.volley.toolbox.NetworkImageView android:id="@+id/imageview_status_icon" android:layout_width="40dp" android:layout_height="40dp" - android:layout_alignParentTop="true" - android:layout_marginRight="5dp" /> + android:layout_marginBottom="5dp" + android:layout_marginStart="5dp" + android:layout_marginTop="5dp" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent" + app:layout_constraintVertical_bias="0.0" /> <TextView android:id="@+id/textview_status_header" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_alignParentTop="true" - android:layout_toRightOf="@id/imageview_status_icon" + android:layout_marginStart="5dp" + android:layout_marginTop="5dp" android:text="mmmmmmmmmmmmmmm / !!!NAME!!!" android:textColor="?attr/color_status_text_header" - android:textSize="@dimen/status_text_size" /> - - <TextView - android:id="@+id/textview_status_text" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:layout_alignLeft="@id/textview_status_header" - android:layout_alignParentRight="true" - android:layout_below="@id/textview_status_header" - android:layout_marginBottom="3dp" - android:layout_marginTop="1dp" - android:text="!!!TEXT!!!" - android:textColor="?attr/color_status_text_normal" - android:textSize="@dimen/status_text_size" /> + android:textSize="@dimen/status_text_size" + app:layout_constraintStart_toEndOf="@+id/imageview_status_icon" + app:layout_constraintTop_toTopOf="parent" /> <TextView android:id="@+id/textview_status_footer" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_alignLeft="@id/textview_status_header" - android:layout_below="@id/textview_status_text" - android:text="2017-01-01 00:00:00 via Twitter Web Client" + android:layout_marginBottom="5dp" + android:layout_marginStart="5dp" + android:text="2017-01-01 00:00:00 via !!!VIA!!!" android:textColor="?attr/color_status_text_footer" - android:textSize="@dimen/status_meta_text_size" /> + android:textSize="@dimen/status_meta_text_size" + app:layout_constraintBottom_toTopOf="@+id/listview_status_embedded_status" + app:layout_constraintStart_toEndOf="@+id/imageview_status_icon" + app:layout_goneMarginBottom="5dp" /> <ImageView android:id="@+id/imageview_status_retweeted" android:layout_width="16dp" - android:layout_height="wrap_content" - android:layout_alignBottom="@id/textview_status_footer" - android:layout_alignTop="@id/textview_status_footer" - android:layout_toLeftOf="@id/tweet_retweet_count" + android:layout_height="0dp" + android:layout_marginEnd="0dp" android:src="@drawable/ic_repeat_black_24dp" - android:tint="?attr/color_green_activatable" /> + android:tint="?attr/color_green_activatable" + app:layout_constraintBottom_toBottomOf="@+id/textview_status_footer" + app:layout_constraintEnd_toStartOf="@+id/tweet_retweet_count" + app:layout_constraintTop_toTopOf="@+id/textview_status_footer" /> <TextView android:id="@+id/tweet_retweet_count" - android:layout_width="16dp" - android:layout_height="wrap_content" - android:layout_alignBottom="@id/textview_status_footer" - android:layout_alignTop="@id/textview_status_footer" - android:layout_toLeftOf="@id/imageview_status_favorited" + android:layout_width="20dp" + android:layout_height="0dp" + android:layout_marginEnd="5dp" android:text="999999" android:textColor="?attr/color_status_text_footer" - android:textSize="@dimen/status_meta_text_size" /> + android:textSize="@dimen/status_meta_text_size" + app:layout_constraintBottom_toBottomOf="@+id/textview_status_footer" + app:layout_constraintEnd_toStartOf="@+id/imageview_status_favorited" + app:layout_constraintTop_toTopOf="@+id/textview_status_footer" /> <ImageView android:id="@+id/imageview_status_favorited" android:layout_width="16dp" - android:layout_height="wrap_content" - android:layout_alignBottom="@id/textview_status_footer" - android:layout_alignTop="@id/textview_status_footer" - android:layout_toLeftOf="@id/tweet_favorite_count" + android:layout_height="0dp" + android:layout_marginEnd="0dp" android:src="@drawable/ic_star_black_24dp" - android:tint="?attr/color_orange_activatable" /> + android:tint="?attr/color_orange_activatable" + app:layout_constraintBottom_toBottomOf="@+id/textview_status_footer" + app:layout_constraintEnd_toStartOf="@+id/tweet_favorite_count" + app:layout_constraintTop_toTopOf="@+id/textview_status_footer" /> <TextView android:id="@+id/tweet_favorite_count" - android:layout_width="16dp" - android:layout_height="wrap_content" - android:layout_alignBottom="@id/textview_status_footer" - android:layout_alignParentRight="true" - android:layout_alignTop="@id/textview_status_footer" + android:layout_width="20dp" + android:layout_height="0dp" + android:layout_marginEnd="5dp" android:text="999999" android:textColor="?attr/color_status_text_footer" - android:textSize="@dimen/status_meta_text_size" /> + android:textSize="@dimen/status_meta_text_size" + app:layout_constraintBottom_toBottomOf="@+id/textview_status_footer" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintTop_toTopOf="@+id/textview_status_footer" /> <net.lacolaco.smileessence.view.ExpandedListView android:id="@+id/listview_status_embedded_status" - android:layout_width="match_parent" + android:layout_width="0dp" android:layout_height="wrap_content" - android:layout_alignLeft="@id/textview_status_header" - android:layout_below="@id/textview_status_footer" - android:layout_marginTop="3dp" /> -</net.lacolaco.smileessence.view.TweetRelativeLayout> + android:layout_marginBottom="5dp" + android:layout_marginEnd="5dp" + android:layout_marginStart="5dp" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toEndOf="@+id/imageview_status_icon" /> + + <TextView + android:id="@+id/textview_status_text" + android:layout_width="0dp" + android:layout_height="wrap_content" + android:layout_marginBottom="2dp" + android:layout_marginEnd="5dp" + android:layout_marginStart="5dp" + android:layout_marginTop="1dp" + android:text="!!!TEXT!!!" + android:textColor="?attr/color_status_text_normal" + android:textSize="@dimen/status_text_size" + app:layout_constraintBottom_toTopOf="@+id/textview_status_footer" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toEndOf="@+id/imageview_status_icon" + app:layout_constraintTop_toBottomOf="@+id/textview_status_header" /> +</net.lacolaco.smileessence.view.TweetConstraintLayout> diff --git a/app/src/main/res/values/attrs.xml b/app/src/main/res/values/attrs.xml index e6101a4c..7fc3cf01 100644 --- a/app/src/main/res/values/attrs.xml +++ b/app/src/main/res/values/attrs.xml @@ -6,17 +6,10 @@ <attr name="color_status_text_mine" format="color" /> <attr name="color_list_divider" format="color" /> <attr name="color_message_text_header" format="color" /> - <declare-styleable name="ColoredRelativeLayout"> - <attr name="accent_color" format="reference" /> - <attr name="highlight_none" format="reference" /> - <attr name="highlight_type1" format="reference" /> - <attr name="highlight_type2" format="reference" /> - <attr name="highlight_type3" format="reference" /> - </declare-styleable> <attr name="color_nonactivatable" format="reference" /> <attr name="color_orange_activatable" format="reference" /> <attr name="color_green_activatable" format="reference" /> - <declare-styleable name="TweetRelativeLayout"> + <declare-styleable name="TweetConstraintLayout"> <attr name="state_tweet_direct_message" format="boolean" /> <attr name="state_tweet_mention" format="boolean" /> <attr name="state_tweet_retweet" format="boolean" /> diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 7ef10eeb..3501f75f 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -48,7 +48,7 @@ <string name="user_detail_tab_info">Info</string> <string name="user_detail_tab_timeline">Timeline</string> <string name="dialog_title_add">Add</string> - <string name="dialog_confirm_finish_app">OK to close?</string> + <string name="dialog_confirm_exit">Are you sure you want to exit?</string> <string name="dialog_confirm_commands">Execute, OK?</string> <string name="dialog_confirm_remove_profile">Are you sure you want to remove the profile for @%s?</string> <string name="dialog_confirm_delete_query">Delete this query, OK?</string> diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index e7d6a50d..9b15c6cb 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -30,7 +30,7 @@ <item name="color_status_text_normal">@color/gray_dark</item> <item name="color_status_text_footer">@color/gray_dark_light</item> <item name="color_status_text_mine">@color/dark_blue</item> - <item name="color_list_divider">@color/gray_light_light</item> + <item name="color_list_divider">#1f000000</item> <item name="color_message_text_header">@color/orange</item> <item name="color_nonactivatable">@color/color_nonactivatable_light</item> |