diff --git a/app/src/main/java/io/github/droidkaigi/confsched2018/presentation/App.kt b/app/src/main/java/io/github/droidkaigi/confsched2018/presentation/App.kt
index 421273cc..edcb2f7f 100644
--- a/app/src/main/java/io/github/droidkaigi/confsched2018/presentation/App.kt
+++ b/app/src/main/java/io/github/droidkaigi/confsched2018/presentation/App.kt
@@ -3,6 +3,7 @@ package io.github.droidkaigi.confsched2018.presentation
import android.annotation.SuppressLint
import android.app.Activity
import android.support.multidex.MultiDexApplication
+import android.support.v7.app.AppCompatDelegate
import com.facebook.stetho.Stetho
import com.google.firebase.FirebaseApp
import com.google.firebase.firestore.FirebaseFirestore
@@ -22,6 +23,7 @@ open class App : MultiDexApplication(), HasActivityInjector {
super.onCreate()
setupTimber()
setupFirebase()
+ setupVectorDrawable()
setupThreeTenABP()
setupLeakCanary()
setupDagger()
@@ -42,6 +44,10 @@ open class App : MultiDexApplication(), HasActivityInjector {
}
}
+ private fun setupVectorDrawable() {
+ AppCompatDelegate.setCompatVectorFromResourcesEnabled(true)
+ }
+
private fun setupThreeTenABP() {
AndroidThreeTen.init(this)
}
diff --git a/app/src/main/java/io/github/droidkaigi/confsched2018/presentation/common/binding/ImageBinding.kt b/app/src/main/java/io/github/droidkaigi/confsched2018/presentation/common/binding/ImageBinding.kt
index ce3a7f25..4e13af65 100644
--- a/app/src/main/java/io/github/droidkaigi/confsched2018/presentation/common/binding/ImageBinding.kt
+++ b/app/src/main/java/io/github/droidkaigi/confsched2018/presentation/common/binding/ImageBinding.kt
@@ -1,7 +1,11 @@
package io.github.droidkaigi.confsched2018.presentation.common.binding
+import android.databinding.BindingAdapter
import android.databinding.BindingMethod
import android.databinding.BindingMethods
+import android.graphics.drawable.Drawable
+import android.support.annotation.ColorInt
+import android.support.v4.graphics.drawable.DrawableCompat
import android.widget.ImageView
@BindingMethods(
@@ -10,3 +14,10 @@ import android.widget.ImageView
method = "setImageDrawable"))
class ImageBinding {}
+@BindingAdapter("bind:colorTint", "app:srcCompat")
+fun ImageView.setColorTint(@ColorInt color: Int, drawable: Drawable) {
+ drawable ?: return
+ val wrappedDrawable = DrawableCompat.wrap(drawable.mutate())
+ DrawableCompat.setTint(wrappedDrawable, color)
+ setImageDrawable(wrappedDrawable)
+}
diff --git a/app/src/main/java/io/github/droidkaigi/confsched2018/presentation/favorite/FavoriteSessionsFragment.kt b/app/src/main/java/io/github/droidkaigi/confsched2018/presentation/favorite/FavoriteSessionsFragment.kt
index 9b651637..ac95e8ea 100644
--- a/app/src/main/java/io/github/droidkaigi/confsched2018/presentation/favorite/FavoriteSessionsFragment.kt
+++ b/app/src/main/java/io/github/droidkaigi/confsched2018/presentation/favorite/FavoriteSessionsFragment.kt
@@ -9,6 +9,7 @@ import android.support.transition.TransitionManager
import android.support.v4.app.Fragment
import android.support.v7.widget.LinearLayoutManager
import android.support.v7.widget.RecyclerView
+import android.support.v7.widget.SimpleItemAnimator
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
@@ -95,6 +96,7 @@ class FavoriteSessionsFragment : Fragment(), Injectable {
}
binding.sessionsRecycler.apply {
adapter = groupAdapter
+ (itemAnimator as SimpleItemAnimator).supportsChangeAnimations = false
addOnScrollListener(
onScrollStateChanged = { _: RecyclerView?, newState: Int ->
diff --git a/app/src/main/java/io/github/droidkaigi/confsched2018/presentation/search/SearchFragment.kt b/app/src/main/java/io/github/droidkaigi/confsched2018/presentation/search/SearchFragment.kt
index cb1c8c54..f3c01799 100644
--- a/app/src/main/java/io/github/droidkaigi/confsched2018/presentation/search/SearchFragment.kt
+++ b/app/src/main/java/io/github/droidkaigi/confsched2018/presentation/search/SearchFragment.kt
@@ -14,6 +14,7 @@ import android.support.v4.app.FragmentStatePagerAdapter
import android.support.v7.widget.LinearLayoutManager
import android.support.v7.widget.RecyclerView
import android.support.v7.widget.SearchView
+import android.support.v7.widget.SimpleItemAnimator
import android.view.*
import com.xwray.groupie.GroupAdapter
import com.xwray.groupie.ViewHolder
@@ -95,6 +96,7 @@ class SearchFragment : Fragment(), Injectable {
}
binding.sessionsRecycler.apply {
adapter = groupAdapter
+ (itemAnimator as SimpleItemAnimator).supportsChangeAnimations = false
addOnScrollListener(
onScrollStateChanged = { _: RecyclerView?, newState: Int ->
diff --git a/app/src/main/java/io/github/droidkaigi/confsched2018/presentation/search/item/HorizontalSessionItem.kt b/app/src/main/java/io/github/droidkaigi/confsched2018/presentation/search/item/HorizontalSessionItem.kt
index cb785d57..b1381220 100644
--- a/app/src/main/java/io/github/droidkaigi/confsched2018/presentation/search/item/HorizontalSessionItem.kt
+++ b/app/src/main/java/io/github/droidkaigi/confsched2018/presentation/search/item/HorizontalSessionItem.kt
@@ -11,7 +11,7 @@ import io.github.droidkaigi.confsched2018.model.Session
import io.github.droidkaigi.confsched2018.util.CustomGlideApp
import io.github.droidkaigi.confsched2018.util.ViewSizeCalculator.calculateViewSizeByScreenAndCount
import io.github.droidkaigi.confsched2018.util.ext.context
-import io.github.droidkaigi.confsched2018.util.ext.getDisplaySize
+import io.github.droidkaigi.confsched2018.util.ext.displaySize
import io.github.droidkaigi.confsched2018.util.ext.getFloat
import io.github.droidkaigi.confsched2018.util.ext.toGone
import io.github.droidkaigi.confsched2018.util.lang
@@ -29,7 +29,7 @@ class HorizontalSessionItem(
val binding = viewHolder.binding
val width = calculateViewSizeByScreenAndCount(
- binding.context.getDisplaySize().width,
+ binding.context.displaySize().width,
binding.context.resources.getFloat(R.dimen.horizontal_visible_item_count))
itemView.layoutParams.width = width
return viewHolder
@@ -85,5 +85,4 @@ class HorizontalSessionItem(
return session.hashCode()
}
-
}
diff --git a/app/src/main/java/io/github/droidkaigi/confsched2018/presentation/sessions/AllSessionsFragment.kt b/app/src/main/java/io/github/droidkaigi/confsched2018/presentation/sessions/AllSessionsFragment.kt
index 506d868b..0ac7ad64 100644
--- a/app/src/main/java/io/github/droidkaigi/confsched2018/presentation/sessions/AllSessionsFragment.kt
+++ b/app/src/main/java/io/github/droidkaigi/confsched2018/presentation/sessions/AllSessionsFragment.kt
@@ -9,6 +9,7 @@ import android.support.transition.TransitionManager
import android.support.v4.app.Fragment
import android.support.v7.widget.LinearLayoutManager
import android.support.v7.widget.RecyclerView
+import android.support.v7.widget.SimpleItemAnimator
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
@@ -27,6 +28,7 @@ import io.github.droidkaigi.confsched2018.util.ext.setTextIfChanged
import timber.log.Timber
import javax.inject.Inject
+
class AllSessionsFragment : Fragment(), Injectable {
private lateinit var binding: FragmentAllSessionsBinding
@@ -95,6 +97,7 @@ class AllSessionsFragment : Fragment(), Injectable {
}
binding.sessionsRecycler.apply {
adapter = groupAdapter
+ (itemAnimator as SimpleItemAnimator).supportsChangeAnimations = false
addOnScrollListener(
onScrollStateChanged = { _: RecyclerView?, newState: Int ->
diff --git a/app/src/main/java/io/github/droidkaigi/confsched2018/presentation/sessions/RoomSessionsFragment.kt b/app/src/main/java/io/github/droidkaigi/confsched2018/presentation/sessions/RoomSessionsFragment.kt
index 3443f3c5..341e101a 100644
--- a/app/src/main/java/io/github/droidkaigi/confsched2018/presentation/sessions/RoomSessionsFragment.kt
+++ b/app/src/main/java/io/github/droidkaigi/confsched2018/presentation/sessions/RoomSessionsFragment.kt
@@ -9,6 +9,7 @@ import android.support.transition.TransitionManager
import android.support.v4.app.Fragment
import android.support.v7.widget.LinearLayoutManager
import android.support.v7.widget.RecyclerView
+import android.support.v7.widget.SimpleItemAnimator
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
@@ -103,6 +104,7 @@ class RoomSessionsFragment : Fragment(), Injectable {
}
binding.sessionsRecycler.apply {
adapter = groupAdapter
+ (itemAnimator as SimpleItemAnimator).supportsChangeAnimations = false
addOnScrollListener(
onScrollStateChanged = { _: RecyclerView?, newState: Int ->
diff --git a/app/src/main/java/io/github/droidkaigi/confsched2018/presentation/sessions/item/SessionItem.kt b/app/src/main/java/io/github/droidkaigi/confsched2018/presentation/sessions/item/SessionItem.kt
index cecc017e..59091dce 100644
--- a/app/src/main/java/io/github/droidkaigi/confsched2018/presentation/sessions/item/SessionItem.kt
+++ b/app/src/main/java/io/github/droidkaigi/confsched2018/presentation/sessions/item/SessionItem.kt
@@ -21,7 +21,7 @@ data class SessionItem(
override fun bind(viewBinding: ItemSessionBinding, position: Int) {
viewBinding.session = session
- viewBinding.topic.text = session.topic.getNameByLang(lang())
+ viewBinding.topic.text = session.topic.name
viewBinding.level.text = session.level.getNameByLang(lang())
val speakerImages = arrayOf(
viewBinding.speakerImage1,
diff --git a/app/src/main/java/io/github/droidkaigi/confsched2018/util/ext/ContextExt.kt b/app/src/main/java/io/github/droidkaigi/confsched2018/util/ext/ContextExt.kt
index 1eca1744..136cb66b 100644
--- a/app/src/main/java/io/github/droidkaigi/confsched2018/util/ext/ContextExt.kt
+++ b/app/src/main/java/io/github/droidkaigi/confsched2018/util/ext/ContextExt.kt
@@ -2,14 +2,17 @@ package io.github.droidkaigi.confsched2018.util.ext
import android.content.Context
import android.graphics.Point
+import android.support.annotation.ColorRes
+import android.support.v4.content.ContextCompat
import android.view.WindowManager
-
-fun Context.getDisplaySize(): Size {
+fun Context.displaySize(): Size {
val point = Point()
val manager = getSystemService(Context.WINDOW_SERVICE) as WindowManager
manager.defaultDisplay.getSize(point)
return Size(point.x, point.y)
}
+fun Context.color(@ColorRes color: Int): Int = ContextCompat.getColor(this, color)
+
data class Size(val width: Int, val height: Int)
diff --git a/app/src/main/res/drawable/ic_filter_list_black_24dp.xml b/app/src/main/res/drawable/ic_filter_list_white_24dp.xml
similarity index 88%
rename from app/src/main/res/drawable/ic_filter_list_black_24dp.xml
rename to app/src/main/res/drawable/ic_filter_list_white_24dp.xml
index ebaf89de..e4df2490 100644
--- a/app/src/main/res/drawable/ic_filter_list_black_24dp.xml
+++ b/app/src/main/res/drawable/ic_filter_list_white_24dp.xml
@@ -5,7 +5,7 @@
android:viewportWidth="24.0"
>
diff --git a/app/src/main/res/drawable/shape_circle_button.xml b/app/src/main/res/drawable/shape_circle_button.xml
new file mode 100644
index 00000000..871e1824
--- /dev/null
+++ b/app/src/main/res/drawable/shape_circle_button.xml
@@ -0,0 +1,6 @@
+
+
+
+
diff --git a/app/src/main/res/drawable/shape_round_corner.xml b/app/src/main/res/drawable/shape_round_corner.xml
index 6e044b13..87fad9c6 100644
--- a/app/src/main/res/drawable/shape_round_corner.xml
+++ b/app/src/main/res/drawable/shape_round_corner.xml
@@ -8,5 +8,5 @@
android:topLeftRadius="30dp"
android:topRightRadius="30dp"
/>
-
+
diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml
index d53e0526..8cf3d7de 100644
--- a/app/src/main/res/layout/activity_main.xml
+++ b/app/src/main/res/layout/activity_main.xml
@@ -31,6 +31,7 @@
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
+ app:titleTextColor="@color/app_bar_text_color"
/>
-
-
-
-
@@ -235,14 +212,17 @@
diff --git a/app/src/main/res/menu/search.xml b/app/src/main/res/menu/search.xml
index 4e70d3a7..1b5c1e7c 100644
--- a/app/src/main/res/menu/search.xml
+++ b/app/src/main/res/menu/search.xml
@@ -10,7 +10,7 @@
/>
diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml
index 0c1b301c..9c9a7a10 100644
--- a/app/src/main/res/values/colors.xml
+++ b/app/src/main/res/values/colors.xml
@@ -1,8 +1,17 @@
- #3F51B5
- #303F9F
- #FF4081
+ #FBC812
+ #FEAD22
+ #F57C00
+
+ #f2f2f2
+
+ #d7a611
+ #FFF
+
+ #FFF
+
+ #8a000000
+ #f6f6f6
- #f2f2f2
diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml
index 03f90016..0addaa04 100644
--- a/app/src/main/res/values/styles.xml
+++ b/app/src/main/res/values/styles.xml
@@ -1,12 +1,31 @@
-
-
+
+
+
+
+
diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml
new file mode 100644
index 00000000..59fd9aea
--- /dev/null
+++ b/app/src/main/res/values/themes.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+