Skip to content
This repository was archived by the owner on Feb 17, 2020. It is now read-only.

Commit 78f3279

Browse files
committed
Convert the empty state too
1 parent 7e2aca3 commit 78f3279

3 files changed

Lines changed: 29 additions & 42 deletions

File tree

app/src/main/java/net/squanchy/favorites/view/FavoritesSignedInEmptyLayout.kt

Lines changed: 7 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -4,31 +4,22 @@ import android.content.Context
44
import android.os.Build
55
import android.support.annotation.DrawableRes
66
import android.support.annotation.RequiresApi
7+
import android.support.constraint.ConstraintLayout
78
import android.support.design.widget.Snackbar
8-
import android.text.Html
99
import android.util.AttributeSet
1010
import android.view.View
11-
import android.widget.LinearLayout
1211
import kotlinx.android.synthetic.main.merge_no_favorites_view.view.*
1312
import net.squanchy.R
13+
import net.squanchy.support.text.parseHtml
1414

1515
class FavoritesSignedInEmptyLayout @JvmOverloads constructor(
1616
context: Context?,
1717
attrs: AttributeSet? = null,
18-
defStyleAttr: Int = 0,
19-
defStyleRes: Int = 0
20-
) : LinearLayout(context, attrs, defStyleAttr, defStyleRes), FavoritesSignedInEmptyLayoutView {
18+
defStyleAttr: Int = 0
19+
) : ConstraintLayout(context, attrs, defStyleAttr), FavoritesSignedInEmptyLayoutView {
2120

2221
private var counter = 0
2322

24-
init {
25-
super.setOrientation(VERTICAL)
26-
}
27-
28-
override fun setOrientation(orientation: Int): Nothing {
29-
throw UnsupportedOperationException("Changing orientation is not supported for ${FavoritesSignedInEmptyLayout::class.java.simpleName}")
30-
}
31-
3223
override fun onFinishInflate() {
3324
super.onFinishInflate()
3425

@@ -41,9 +32,10 @@ class FavoritesSignedInEmptyLayout @JvmOverloads constructor(
4132

4233
override fun setButtonImage(@DrawableRes resId: Int) = favoriteFab.setImageResource(resId)
4334

44-
//TODO do we still need this? Also why is it requiring Nougat?
4535
@RequiresApi(Build.VERSION_CODES.N)
46-
override fun showAchievement(message: String) = Snackbar.make(this, readAsHtml(message), Snackbar.LENGTH_LONG).show()
36+
override fun showAchievement(message: String) {
37+
Snackbar.make(this, parseHtml(message), Snackbar.LENGTH_LONG).show()
38+
}
4739

4840
private val favoriteButtonClickListener = View.OnClickListener {
4941
presentButtonIcon(counter, this, ::favoritesFilledIconId, ::favoritesEmptyIconId)
@@ -57,7 +49,4 @@ class FavoritesSignedInEmptyLayout @JvmOverloads constructor(
5749
private fun initialAchieventMessage() = resources.getString(R.string.favorites_achievement_fast_learner)
5850

5951
private fun perseveranceAchievementMessage() = resources.getString(R.string.favorites_achievement_persevering)
60-
61-
@RequiresApi(Build.VERSION_CODES.N)
62-
private fun readAsHtml(message: String): CharSequence = Html.fromHtml(message, Html.FROM_HTML_MODE_LEGACY)
6352
}
Lines changed: 17 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,35 @@
1-
<merge xmlns:android="http://schemas.android.com/apk/res/android"
1+
<net.squanchy.favorites.view.FavoritesSignedInEmptyLayout xmlns:android="http://schemas.android.com/apk/res/android"
2+
xmlns:app="http://schemas.android.com/apk/res-auto"
23
xmlns:tools="http://schemas.android.com/tools"
4+
android:id="@+id/emptyViewSignedIn"
35
android:layout_width="wrap_content"
46
android:layout_height="wrap_content"
5-
android:layout_gravity="center"
6-
android:orientation="vertical"
7-
tools:context="net.squanchy.home.HomeActivity"
7+
android:visibility="gone"
8+
tools:visibility="visible"
89
tools:showIn="@layout/view_page_favorites">
910

1011
<android.support.design.widget.FloatingActionButton
1112
android:id="@+id/favoriteFab"
1213
style="@style/EventDetails.Fab"
1314
android:layout_width="wrap_content"
1415
android:layout_height="wrap_content"
15-
android:layout_gravity="center_horizontal"
16-
android:layout_marginBottom="@dimen/favorites_empty_fab_margin_bottom" />
16+
android:layout_marginBottom="@dimen/favorites_empty_fab_margin_bottom"
17+
app:layout_constraintStart_toStartOf="parent"
18+
app:layout_constraintTop_toTopOf="parent"
19+
app:layout_constraintEnd_toEndOf="parent"
20+
app:layout_constraintBottom_toTopOf="@+id/text"
21+
app:layout_constraintVertical_chainStyle="packed" />
1722

1823
<TextView
1924
android:id="@+id/text"
2025
style="@style/Favorite.Empty.Blurb"
2126
android:layout_width="wrap_content"
2227
android:layout_height="wrap_content"
23-
android:layout_gravity="center_horizontal"
2428
android:foreground="@drawable/primary_touch_feedback"
25-
android:text="@string/favorites_empty_state_signed_in_blurb" />
29+
android:text="@string/favorites_empty_state_signed_in_blurb"
30+
app:layout_constraintStart_toStartOf="parent"
31+
app:layout_constraintTop_toBottomOf="@id/favoriteFab"
32+
app:layout_constraintEnd_toEndOf="parent"
33+
app:layout_constraintBottom_toBottomOf="parent" />
2634

27-
</merge>
35+
</net.squanchy.favorites.view.FavoritesSignedInEmptyLayout>

app/src/main/res/layout/view_page_favorites.xml

Lines changed: 5 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -25,25 +25,15 @@
2525

2626
</android.support.design.widget.AppBarLayout>
2727

28-
<net.squanchy.favorites.view.FavoritesSignedInEmptyLayout
29-
android:id="@+id/emptyViewSignedIn"
30-
android:layout_width="wrap_content"
28+
<include layout="@layout/merge_no_favorites_view"
29+
android:layout_width="@dimen/match_constraint"
3130
android:layout_height="wrap_content"
32-
android:layout_gravity="center"
3331
android:layout_marginStart="@dimen/favorites_empty_margin_horizontal"
3432
android:layout_marginEnd="@dimen/favorites_empty_margin_horizontal"
35-
android:visibility="gone"
3633
app:layout_constraintBottom_toBottomOf="parent"
3734
app:layout_constraintTop_toBottomOf="@+id/appBarLayout"
3835
app:layout_constraintEnd_toEndOf="parent"
39-
app:layout_constraintStart_toStartOf="parent">
40-
41-
<include
42-
layout="@layout/merge_no_favorites_view"
43-
android:layout_width="wrap_content"
44-
android:layout_height="wrap_content" />
45-
46-
</net.squanchy.favorites.view.FavoritesSignedInEmptyLayout>
36+
app:layout_constraintStart_toStartOf="parent" />
4737

4838
<android.support.constraint.Group
4939
android:id="@+id/emptyViewSignedOut"
@@ -101,7 +91,7 @@
10191
app:layout_constraintTop_toBottomOf="@+id/appBarLayout"
10292
app:layout_constraintEnd_toEndOf="parent"
10393
app:layout_constraintBottom_toBottomOf="parent"
104-
tools:visibility="gone"/>
94+
tools:visibility="gone" />
10595

10696
<net.squanchy.favorites.view.FavoritesListView
10797
android:id="@+id/favoritesListView"
@@ -112,6 +102,6 @@
112102
app:layout_constraintTop_toBottomOf="@+id/appBarLayout"
113103
app:layout_constraintEnd_toEndOf="parent"
114104
app:layout_constraintBottom_toBottomOf="parent"
115-
tools:visibility="visible"/>
105+
tools:visibility="visible" />
116106

117107
</net.squanchy.favorites.FavoritesPageView>

0 commit comments

Comments
 (0)