From a00a6bdde6702f015c637ccbe523e3ab069bd583 Mon Sep 17 00:00:00 2001 From: Rui Kowase Date: Sat, 3 Feb 2018 23:46:01 +0900 Subject: [PATCH 01/13] Add share button in the Session Detail Screen --- .../detail/SessionDetailFragment.kt | 17 +++++++++++++++-- .../main/res/layout/fragment_session_detail.xml | 12 ++++++++++++ app/src/main/res/values/strings.xml | 1 + 3 files changed, 28 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/io/github/droidkaigi/confsched2018/presentation/detail/SessionDetailFragment.kt b/app/src/main/java/io/github/droidkaigi/confsched2018/presentation/detail/SessionDetailFragment.kt index 6b2126a2..b0ecb1e8 100644 --- a/app/src/main/java/io/github/droidkaigi/confsched2018/presentation/detail/SessionDetailFragment.kt +++ b/app/src/main/java/io/github/droidkaigi/confsched2018/presentation/detail/SessionDetailFragment.kt @@ -22,6 +22,9 @@ import io.github.droidkaigi.confsched2018.util.ext.observe import io.github.droidkaigi.confsched2018.util.lang import timber.log.Timber import javax.inject.Inject +import android.content.Intent + + class SessionDetailFragment : Fragment(), Injectable { private lateinit var binding: FragmentSessionDetailBinding @@ -52,7 +55,7 @@ class SessionDetailFragment : Fragment(), Injectable { is Result.Success -> { val sessions = result.data val position = sessions.indexOfFirst { it.id == sessionId } - bindSession(sessions[position]) + bindSession(sessions[position], sessionId) setSessionIndicator(sessions.getOrNull(position - 1), sessions.getOrNull(position + 1)) } @@ -77,13 +80,23 @@ class SessionDetailFragment : Fragment(), Injectable { binding.toolbar.setNavigationOnClickListener { activity?.finish() } } - private fun bindSession(session: Session.SpeechSession) { + private fun bindSession(session: Session.SpeechSession, sessionId: String) { binding.session = session binding.fab.setOnClickListener { updateDrawable() sessionDetailViewModel.onFavoriteClick(session) sessionAlarm.toggleRegister(session) } + binding.fabShare.setOnClickListener { + val shareIntent = Intent(Intent.ACTION_SEND).apply { + type = "text/plain" + // TODO: extract to string resource + val title = "${session.title} at ${session.room.name}" + val url = "https//droidkaigi.jp/2018/timetable?session=$sessionId" + putExtra(Intent.EXTRA_TEXT, "$title\n$url") + } + startActivity(Intent.createChooser(shareIntent, resources.getString(R.string.session_share_via))) + } binding.sessionTopic.text = session.topic.getNameByLang(lang()) val levelDrawable = binding.context.drawable(when (session.level) { is Level.Beginner -> R.drawable.ic_beginner_lightgreen_20dp diff --git a/app/src/main/res/layout/fragment_session_detail.xml b/app/src/main/res/layout/fragment_session_detail.xml index b82ad23b..80c1faa7 100644 --- a/app/src/main/res/layout/fragment_session_detail.xml +++ b/app/src/main/res/layout/fragment_session_detail.xml @@ -366,6 +366,18 @@ app:tintCompat="@{@colorStateList/state_favorite_color}" android:scaleType="center"/> + + + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index cbf23a6c..a8e8b427 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -37,6 +37,7 @@ Finished Session Go To Feedback NOW! + Share via Next From 0d6d219c6af13c1e8a627e293f3b393f60d7f77c Mon Sep 17 00:00:00 2001 From: Rui Kowase Date: Sun, 4 Feb 2018 00:20:11 +0900 Subject: [PATCH 02/13] Add speakers to share text --- .../presentation/detail/SessionDetailFragment.kt | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/io/github/droidkaigi/confsched2018/presentation/detail/SessionDetailFragment.kt b/app/src/main/java/io/github/droidkaigi/confsched2018/presentation/detail/SessionDetailFragment.kt index b0ecb1e8..721a38e9 100644 --- a/app/src/main/java/io/github/droidkaigi/confsched2018/presentation/detail/SessionDetailFragment.kt +++ b/app/src/main/java/io/github/droidkaigi/confsched2018/presentation/detail/SessionDetailFragment.kt @@ -91,7 +91,10 @@ class SessionDetailFragment : Fragment(), Injectable { val shareIntent = Intent(Intent.ACTION_SEND).apply { type = "text/plain" // TODO: extract to string resource - val title = "${session.title} at ${session.room.name}" + var speakerList = listOf() + session.speakers.forEach { speakerList += it.name } + val speakers = speakerList.joinToString(", ") + val title = "${session.title} at ${session.room.name} by $speakers" val url = "https//droidkaigi.jp/2018/timetable?session=$sessionId" putExtra(Intent.EXTRA_TEXT, "$title\n$url") } From 191413ebff27dec68d09843524050e726ceb614c Mon Sep 17 00:00:00 2001 From: Rui Kowase Date: Sun, 4 Feb 2018 00:25:01 +0900 Subject: [PATCH 03/13] Extract share text to string resource --- .../presentation/detail/SessionDetailFragment.kt | 11 ++++++----- app/src/main/res/values/strings.xml | 4 ++++ 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/io/github/droidkaigi/confsched2018/presentation/detail/SessionDetailFragment.kt b/app/src/main/java/io/github/droidkaigi/confsched2018/presentation/detail/SessionDetailFragment.kt index 721a38e9..15d67f35 100644 --- a/app/src/main/java/io/github/droidkaigi/confsched2018/presentation/detail/SessionDetailFragment.kt +++ b/app/src/main/java/io/github/droidkaigi/confsched2018/presentation/detail/SessionDetailFragment.kt @@ -2,6 +2,7 @@ package io.github.droidkaigi.confsched2018.presentation.detail import android.arch.lifecycle.ViewModelProvider import android.arch.lifecycle.ViewModelProviders +import android.content.Intent import android.graphics.drawable.Animatable import android.os.Bundle import android.support.v4.app.Fragment @@ -22,8 +23,6 @@ import io.github.droidkaigi.confsched2018.util.ext.observe import io.github.droidkaigi.confsched2018.util.lang import timber.log.Timber import javax.inject.Inject -import android.content.Intent - class SessionDetailFragment : Fragment(), Injectable { @@ -90,12 +89,14 @@ class SessionDetailFragment : Fragment(), Injectable { binding.fabShare.setOnClickListener { val shareIntent = Intent(Intent.ACTION_SEND).apply { type = "text/plain" - // TODO: extract to string resource var speakerList = listOf() session.speakers.forEach { speakerList += it.name } val speakers = speakerList.joinToString(", ") - val title = "${session.title} at ${session.room.name} by $speakers" - val url = "https//droidkaigi.jp/2018/timetable?session=$sessionId" + val title = resources.getString(R.string.session_share_title, + session.title, + session.room.name, + speakers) + val url = resources.getString(R.string.session_share_url, sessionId) putExtra(Intent.EXTRA_TEXT, "$title\n$url") } startActivity(Intent.createChooser(shareIntent, resources.getString(R.string.session_share_via))) diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index a8e8b427..348581e8 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -37,6 +37,10 @@ Finished Session Go To Feedback NOW! + https//droidkaigi.jp/2018/timetable?session=%s + %1$s at %2$s by %3$s + + Share via From 9fbb272534197f8969d1d3aec842fae86ab4be35 Mon Sep 17 00:00:00 2001 From: Rui Kowase Date: Sun, 4 Feb 2018 00:30:06 +0900 Subject: [PATCH 04/13] Replace share icon and adjust spacing --- app/src/main/res/drawable/ic_share_black_24dp.xml | 9 +++++++++ app/src/main/res/layout/fragment_session_detail.xml | 5 ++--- app/src/main/res/values/strings.xml | 2 -- 3 files changed, 11 insertions(+), 5 deletions(-) create mode 100644 app/src/main/res/drawable/ic_share_black_24dp.xml diff --git a/app/src/main/res/drawable/ic_share_black_24dp.xml b/app/src/main/res/drawable/ic_share_black_24dp.xml new file mode 100644 index 00000000..e3fe874d --- /dev/null +++ b/app/src/main/res/drawable/ic_share_black_24dp.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/layout/fragment_session_detail.xml b/app/src/main/res/layout/fragment_session_detail.xml index 80c1faa7..fbae7eb7 100644 --- a/app/src/main/res/layout/fragment_session_detail.xml +++ b/app/src/main/res/layout/fragment_session_detail.xml @@ -366,16 +366,15 @@ app:tintCompat="@{@colorStateList/state_favorite_color}" android:scaleType="center"/> - diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 348581e8..10b31c46 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -39,8 +39,6 @@ NOW! https//droidkaigi.jp/2018/timetable?session=%s %1$s at %2$s by %3$s - - Share via From 89b820acc52839eada7402dd9f3ebc90ab979723 Mon Sep 17 00:00:00 2001 From: Rui Kowase Date: Sun, 4 Feb 2018 00:35:15 +0900 Subject: [PATCH 05/13] Fix url of session detail --- app/src/main/res/values/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 10b31c46..6df54514 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -37,7 +37,7 @@ Finished Session Go To Feedback NOW! - https//droidkaigi.jp/2018/timetable?session=%s + https://droidkaigi.jp/2018/timetable?session=%s %1$s at %2$s by %3$s Share via From 98481e46f3ae45315b86291cc8ef1bea270149a2 Mon Sep 17 00:00:00 2001 From: Rui Kowase Date: Sun, 4 Feb 2018 00:37:47 +0900 Subject: [PATCH 06/13] Add translatable attributes and add japanese --- app/src/main/res/values-ja/strings.xml | 1 + app/src/main/res/values/strings.xml | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml index adee8e03..c7f02ab8 100644 --- a/app/src/main/res/values-ja/strings.xml +++ b/app/src/main/res/values-ja/strings.xml @@ -29,6 +29,7 @@ リトライ 終了済みのセッション アンケートへ + シェア Next diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 6df54514..d1986c2c 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -37,8 +37,8 @@ Finished Session Go To Feedback NOW! - https://droidkaigi.jp/2018/timetable?session=%s - %1$s at %2$s by %3$s + https://droidkaigi.jp/2018/timetable?session=%s + %1$s at %2$s by %3$s Share via From 324727f3fa8d4670f1d56b170a4d6b336705c146 Mon Sep 17 00:00:00 2001 From: Rui Kowase Date: Sun, 4 Feb 2018 00:41:43 +0900 Subject: [PATCH 07/13] Remove needless blank line and fix warning of exceeded max line length --- .../presentation/detail/SessionDetailFragment.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/io/github/droidkaigi/confsched2018/presentation/detail/SessionDetailFragment.kt b/app/src/main/java/io/github/droidkaigi/confsched2018/presentation/detail/SessionDetailFragment.kt index 15d67f35..1e62f912 100644 --- a/app/src/main/java/io/github/droidkaigi/confsched2018/presentation/detail/SessionDetailFragment.kt +++ b/app/src/main/java/io/github/droidkaigi/confsched2018/presentation/detail/SessionDetailFragment.kt @@ -24,7 +24,6 @@ import io.github.droidkaigi.confsched2018.util.lang import timber.log.Timber import javax.inject.Inject - class SessionDetailFragment : Fragment(), Injectable { private lateinit var binding: FragmentSessionDetailBinding @Inject lateinit var navigationController: NavigationController @@ -99,7 +98,8 @@ class SessionDetailFragment : Fragment(), Injectable { val url = resources.getString(R.string.session_share_url, sessionId) putExtra(Intent.EXTRA_TEXT, "$title\n$url") } - startActivity(Intent.createChooser(shareIntent, resources.getString(R.string.session_share_via))) + startActivity(Intent.createChooser(shareIntent, + resources.getString(R.string.session_share_via))) } binding.sessionTopic.text = session.topic.getNameByLang(lang()) val levelDrawable = binding.context.drawable(when (session.level) { From 5c94e62501ded104785103f9bd0846cbfde1af33 Mon Sep 17 00:00:00 2001 From: Rui Kowase Date: Sun, 4 Feb 2018 23:51:01 +0900 Subject: [PATCH 08/13] Add hash tag to share text --- .../presentation/detail/SessionDetailFragment.kt | 10 ++++++++-- app/src/main/res/values/strings.xml | 3 ++- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/io/github/droidkaigi/confsched2018/presentation/detail/SessionDetailFragment.kt b/app/src/main/java/io/github/droidkaigi/confsched2018/presentation/detail/SessionDetailFragment.kt index 1e62f912..0423ce07 100644 --- a/app/src/main/java/io/github/droidkaigi/confsched2018/presentation/detail/SessionDetailFragment.kt +++ b/app/src/main/java/io/github/droidkaigi/confsched2018/presentation/detail/SessionDetailFragment.kt @@ -91,10 +91,11 @@ class SessionDetailFragment : Fragment(), Injectable { var speakerList = listOf() session.speakers.forEach { speakerList += it.name } val speakers = speakerList.joinToString(", ") + val hashTag = generateHashTagByRoom(session) val title = resources.getString(R.string.session_share_title, session.title, - session.room.name, - speakers) + speakers, + hashTag) val url = resources.getString(R.string.session_share_url, sessionId) putExtra(Intent.EXTRA_TEXT, "$title\n$url") } @@ -115,6 +116,11 @@ class SessionDetailFragment : Fragment(), Injectable { } } + private fun generateHashTagByRoom(session: Session.SpeechSession): String { + val room = session.room.name.replace(" ", "").toLowerCase() + return resources.getString(R.string.session_share_hash_tag, room) + } + private fun updateDrawable() { val img = if (binding.fab.isActivated) R.drawable.ic_anim_favorite_unchecking else R.drawable.ic_anim_favorite_checking binding.fab.setImageResource(img) diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index d1986c2c..9787fb85 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -38,7 +38,8 @@ Go To Feedback NOW! https://droidkaigi.jp/2018/timetable?session=%s - %1$s at %2$s by %3$s + %1$s (%2$s) %3$s + #droidkaigi_%s Share via From ebcfd9348eb39db65820f846e2c6b596d421301a Mon Sep 17 00:00:00 2001 From: Rui Kowase Date: Mon, 5 Feb 2018 00:01:06 +0900 Subject: [PATCH 09/13] Refactoring and add method comment --- .../detail/SessionDetailFragment.kt | 18 +++++++++++++----- app/src/main/res/values/strings.xml | 1 + 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/io/github/droidkaigi/confsched2018/presentation/detail/SessionDetailFragment.kt b/app/src/main/java/io/github/droidkaigi/confsched2018/presentation/detail/SessionDetailFragment.kt index 0423ce07..496a8487 100644 --- a/app/src/main/java/io/github/droidkaigi/confsched2018/presentation/detail/SessionDetailFragment.kt +++ b/app/src/main/java/io/github/droidkaigi/confsched2018/presentation/detail/SessionDetailFragment.kt @@ -87,11 +87,11 @@ class SessionDetailFragment : Fragment(), Injectable { } binding.fabShare.setOnClickListener { val shareIntent = Intent(Intent.ACTION_SEND).apply { - type = "text/plain" + type = resources.getString(R.string.session_share_intent_type) var speakerList = listOf() session.speakers.forEach { speakerList += it.name } val speakers = speakerList.joinToString(", ") - val hashTag = generateHashTagByRoom(session) + val hashTag = generateHashTagByRoom(session.room.name) val title = resources.getString(R.string.session_share_title, session.title, speakers, @@ -116,9 +116,17 @@ class SessionDetailFragment : Fragment(), Injectable { } } - private fun generateHashTagByRoom(session: Session.SpeechSession): String { - val room = session.room.name.replace(" ", "").toLowerCase() - return resources.getString(R.string.session_share_hash_tag, room) + /** + * Generate a hash tag by room name. + * + * e.g. #droidkaigi_hall, #droidkaigi_room1, ... + * + * @param roomName The Room name + * @return A hash tag + */ + private fun generateHashTagByRoom(roomName: String): String { + val lowerCasedName = roomName.replace(" ", "").toLowerCase() + return resources.getString(R.string.session_share_hash_tag, lowerCasedName) } private fun updateDrawable() { diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 9787fb85..2e10d381 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -40,6 +40,7 @@ https://droidkaigi.jp/2018/timetable?session=%s %1$s (%2$s) %3$s #droidkaigi_%s + text/plain Share via From 29aad61f390ec3afb4d90dbb69b58754508015b2 Mon Sep 17 00:00:00 2001 From: Rui Kowase Date: Mon, 5 Feb 2018 00:14:42 +0900 Subject: [PATCH 10/13] Refactoring and remove unnecessary spaces --- .../detail/SessionDetailFragment.kt | 40 +++++++++++++------ 1 file changed, 28 insertions(+), 12 deletions(-) diff --git a/app/src/main/java/io/github/droidkaigi/confsched2018/presentation/detail/SessionDetailFragment.kt b/app/src/main/java/io/github/droidkaigi/confsched2018/presentation/detail/SessionDetailFragment.kt index 496a8487..84ef40a1 100644 --- a/app/src/main/java/io/github/droidkaigi/confsched2018/presentation/detail/SessionDetailFragment.kt +++ b/app/src/main/java/io/github/droidkaigi/confsched2018/presentation/detail/SessionDetailFragment.kt @@ -88,16 +88,8 @@ class SessionDetailFragment : Fragment(), Injectable { binding.fabShare.setOnClickListener { val shareIntent = Intent(Intent.ACTION_SEND).apply { type = resources.getString(R.string.session_share_intent_type) - var speakerList = listOf() - session.speakers.forEach { speakerList += it.name } - val speakers = speakerList.joinToString(", ") - val hashTag = generateHashTagByRoom(session.room.name) - val title = resources.getString(R.string.session_share_title, - session.title, - speakers, - hashTag) - val url = resources.getString(R.string.session_share_url, sessionId) - putExtra(Intent.EXTRA_TEXT, "$title\n$url") + val text = generateSharedText(session, sessionId) + putExtra(Intent.EXTRA_TEXT, text) } startActivity(Intent.createChooser(shareIntent, resources.getString(R.string.session_share_via))) @@ -116,13 +108,37 @@ class SessionDetailFragment : Fragment(), Injectable { } } + /** + * Generate a shared text + * + * e.g. + * ConstraintLayout, now and future (Nicolas Roard, John Hoford, thagikura) #droidkaigi_room6 + * https://droidkaigi.jp/2018/timetable/?session=16988 + * + * @param session The [Session.SpeechSession] object + * @param sessionId The session ID + * @return A shared text + */ + private fun generateSharedText(session: Session.SpeechSession, sessionId: String): String { + var speakerList = listOf() + session.speakers.forEach { speakerList += it.name } + val speakers = speakerList.joinToString(", ") + val hashTag = generateHashTagByRoom(session.room.name) + val title = resources.getString(R.string.session_share_title, + session.title, + speakers, + hashTag) + val url = resources.getString(R.string.session_share_url, sessionId) + return "$title\n$url" + } + /** * Generate a hash tag by room name. * * e.g. #droidkaigi_hall, #droidkaigi_room1, ... * - * @param roomName The Room name - * @return A hash tag + * @param roomName The Room name + * @return A hash tag */ private fun generateHashTagByRoom(roomName: String): String { val lowerCasedName = roomName.replace(" ", "").toLowerCase() From 640c4009466cd071776ca2297df1b48da5b74903 Mon Sep 17 00:00:00 2001 From: Rui Kowase Date: Wed, 7 Feb 2018 00:21:35 +0900 Subject: [PATCH 11/13] Remove unnecessary argument --- .../presentation/detail/SessionDetailFragment.kt | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/io/github/droidkaigi/confsched2018/presentation/detail/SessionDetailFragment.kt b/app/src/main/java/io/github/droidkaigi/confsched2018/presentation/detail/SessionDetailFragment.kt index 84ef40a1..94795c86 100644 --- a/app/src/main/java/io/github/droidkaigi/confsched2018/presentation/detail/SessionDetailFragment.kt +++ b/app/src/main/java/io/github/droidkaigi/confsched2018/presentation/detail/SessionDetailFragment.kt @@ -53,7 +53,7 @@ class SessionDetailFragment : Fragment(), Injectable { is Result.Success -> { val sessions = result.data val position = sessions.indexOfFirst { it.id == sessionId } - bindSession(sessions[position], sessionId) + bindSession(sessions[position]) setSessionIndicator(sessions.getOrNull(position - 1), sessions.getOrNull(position + 1)) } @@ -78,7 +78,7 @@ class SessionDetailFragment : Fragment(), Injectable { binding.toolbar.setNavigationOnClickListener { activity?.finish() } } - private fun bindSession(session: Session.SpeechSession, sessionId: String) { + private fun bindSession(session: Session.SpeechSession) { binding.session = session binding.fab.setOnClickListener { updateDrawable() @@ -88,7 +88,7 @@ class SessionDetailFragment : Fragment(), Injectable { binding.fabShare.setOnClickListener { val shareIntent = Intent(Intent.ACTION_SEND).apply { type = resources.getString(R.string.session_share_intent_type) - val text = generateSharedText(session, sessionId) + val text = generateSharedText(session) putExtra(Intent.EXTRA_TEXT, text) } startActivity(Intent.createChooser(shareIntent, @@ -116,10 +116,9 @@ class SessionDetailFragment : Fragment(), Injectable { * https://droidkaigi.jp/2018/timetable/?session=16988 * * @param session The [Session.SpeechSession] object - * @param sessionId The session ID * @return A shared text */ - private fun generateSharedText(session: Session.SpeechSession, sessionId: String): String { + private fun generateSharedText(session: Session.SpeechSession): String { var speakerList = listOf() session.speakers.forEach { speakerList += it.name } val speakers = speakerList.joinToString(", ") @@ -128,7 +127,7 @@ class SessionDetailFragment : Fragment(), Injectable { session.title, speakers, hashTag) - val url = resources.getString(R.string.session_share_url, sessionId) + val url = resources.getString(R.string.session_share_url, session.id) return "$title\n$url" } From ae95383b6374b9ec98749363c7484ed6cc846373 Mon Sep 17 00:00:00 2001 From: Rui Kowase Date: Wed, 7 Feb 2018 00:25:02 +0900 Subject: [PATCH 12/13] Simplify the logic to generate speakers --- .../presentation/detail/SessionDetailFragment.kt | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/app/src/main/java/io/github/droidkaigi/confsched2018/presentation/detail/SessionDetailFragment.kt b/app/src/main/java/io/github/droidkaigi/confsched2018/presentation/detail/SessionDetailFragment.kt index 94795c86..bd668549 100644 --- a/app/src/main/java/io/github/droidkaigi/confsched2018/presentation/detail/SessionDetailFragment.kt +++ b/app/src/main/java/io/github/droidkaigi/confsched2018/presentation/detail/SessionDetailFragment.kt @@ -119,9 +119,7 @@ class SessionDetailFragment : Fragment(), Injectable { * @return A shared text */ private fun generateSharedText(session: Session.SpeechSession): String { - var speakerList = listOf() - session.speakers.forEach { speakerList += it.name } - val speakers = speakerList.joinToString(", ") + val speakers = session.speakers.joinToString(", ") { it.name } val hashTag = generateHashTagByRoom(session.room.name) val title = resources.getString(R.string.session_share_title, session.title, From 4ba453f9a0c7031936f1cc3ac9f7ac8cd1007a78 Mon Sep 17 00:00:00 2001 From: Rui Kowase Date: Wed, 7 Feb 2018 23:07:31 +0900 Subject: [PATCH 13/13] Replace FAB with menu icon of share button --- .../detail/SessionDetailFragment.kt | 2 +- ...black_24dp.xml => ic_share_white_24dp.xml} | 2 +- .../res/layout/fragment_session_detail.xml | 23 ++++++++++--------- app/src/main/res/values/strings.xml | 1 + 4 files changed, 15 insertions(+), 13 deletions(-) rename app/src/main/res/drawable/{ic_share_black_24dp.xml => ic_share_white_24dp.xml} (94%) diff --git a/app/src/main/java/io/github/droidkaigi/confsched2018/presentation/detail/SessionDetailFragment.kt b/app/src/main/java/io/github/droidkaigi/confsched2018/presentation/detail/SessionDetailFragment.kt index bd668549..7e4e4855 100644 --- a/app/src/main/java/io/github/droidkaigi/confsched2018/presentation/detail/SessionDetailFragment.kt +++ b/app/src/main/java/io/github/droidkaigi/confsched2018/presentation/detail/SessionDetailFragment.kt @@ -85,7 +85,7 @@ class SessionDetailFragment : Fragment(), Injectable { sessionDetailViewModel.onFavoriteClick(session) sessionAlarm.toggleRegister(session) } - binding.fabShare.setOnClickListener { + binding.shareButton.setOnClickListener { val shareIntent = Intent(Intent.ACTION_SEND).apply { type = resources.getString(R.string.session_share_intent_type) val text = generateSharedText(session) diff --git a/app/src/main/res/drawable/ic_share_black_24dp.xml b/app/src/main/res/drawable/ic_share_white_24dp.xml similarity index 94% rename from app/src/main/res/drawable/ic_share_black_24dp.xml rename to app/src/main/res/drawable/ic_share_white_24dp.xml index e3fe874d..90406663 100644 --- a/app/src/main/res/drawable/ic_share_black_24dp.xml +++ b/app/src/main/res/drawable/ic_share_white_24dp.xml @@ -4,6 +4,6 @@ android:viewportWidth="24.0" android:viewportHeight="24.0"> diff --git a/app/src/main/res/layout/fragment_session_detail.xml b/app/src/main/res/layout/fragment_session_detail.xml index fbae7eb7..4ce2df72 100644 --- a/app/src/main/res/layout/fragment_session_detail.xml +++ b/app/src/main/res/layout/fragment_session_detail.xml @@ -130,6 +130,18 @@ app:speakers="@{session.speakers}" app:textColor="@color/app_bar_text_color" /> + @@ -366,17 +378,6 @@ app:tintCompat="@{@colorStateList/state_favorite_color}" android:scaleType="center"/> - - diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 2e10d381..980a2189 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -42,6 +42,7 @@ #droidkaigi_%s text/plain Share via + Share button Next