diff --git a/vector/src/main/AndroidManifest.xml b/vector/src/main/AndroidManifest.xml
index 5d8d3dc7..1c3e843b 100644
--- a/vector/src/main/AndroidManifest.xml
+++ b/vector/src/main/AndroidManifest.xml
@@ -44,6 +44,7 @@
android:label="@string/title_activity_emoji_reaction_picker" />
+
{
// ROOM PREVIEW
- vectorBaseActivity.notImplemented("Opening room preview")
+ requireActivity().startActivity(RoomPreviewActivity.getIntent(requireActivity(), publicRoom))
}
else -> {
Snackbar.make(publicRoomsCoordinator, getString(R.string.please_wait), Snackbar.LENGTH_SHORT)
diff --git a/vector/src/main/java/im/vector/riotredesign/features/roomdirectory/roompreview/RoomPreviewActivity.kt b/vector/src/main/java/im/vector/riotredesign/features/roomdirectory/roompreview/RoomPreviewActivity.kt
new file mode 100644
index 00000000..5b489183
--- /dev/null
+++ b/vector/src/main/java/im/vector/riotredesign/features/roomdirectory/roompreview/RoomPreviewActivity.kt
@@ -0,0 +1,87 @@
+/*
+ * Copyright 2019 New Vector Ltd
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package im.vector.riotredesign.features.roomdirectory.roompreview
+
+import android.content.Context
+import android.content.Intent
+import android.os.Bundle
+import android.os.Parcelable
+import androidx.appcompat.widget.Toolbar
+import im.vector.matrix.android.api.session.room.model.roomdirectory.PublicRoom
+import im.vector.riotredesign.R
+import im.vector.riotredesign.core.extensions.addFragment
+import im.vector.riotredesign.core.platform.ToolbarConfigurable
+import im.vector.riotredesign.core.platform.VectorBaseActivity
+import im.vector.riotredesign.features.roomdirectory.RoomDirectoryModule
+import kotlinx.android.parcel.Parcelize
+import org.koin.android.scope.ext.android.bindScope
+import org.koin.android.scope.ext.android.getOrCreateScope
+
+@Parcelize
+data class RoomPreviewData(
+ val roomId: String,
+ val roomName: String?,
+ val topic: String?,
+ val worldReadable: Boolean,
+ val avatarUrl: String?
+) : Parcelable
+
+
+class RoomPreviewActivity : VectorBaseActivity(), ToolbarConfigurable {
+
+ companion object {
+ private const val ARG = "ARG"
+
+ fun getIntent(context: Context, publicRoom: PublicRoom): Intent {
+ return Intent(context, RoomPreviewActivity::class.java).apply {
+ putExtra(ARG, RoomPreviewData(
+ roomId = publicRoom.roomId,
+ roomName = publicRoom.name,
+ topic = publicRoom.topic,
+ worldReadable = publicRoom.worldReadable,
+ avatarUrl = publicRoom.avatarUrl
+ ))
+ }
+ }
+ }
+
+ override fun getLayoutRes() = R.layout.activity_simple
+
+ override fun configure(toolbar: Toolbar) {
+ configureToolbar(toolbar)
+ }
+
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+
+ bindScope(getOrCreateScope(RoomDirectoryModule.ROOM_DIRECTORY_SCOPE))
+ }
+
+ override fun initUiAndData() {
+ if (isFirstCreation()) {
+ val args = intent.getParcelableExtra(ARG)
+
+ if (args.worldReadable) {
+ // TODO Room preview
+ notImplemented("Room preview of world readable room")
+ } else {
+ addFragment(RoomPreviewNoPreviewFragment.newInstance(args), R.id.simpleFragmentContainer)
+ }
+ }
+ }
+
+}
\ No newline at end of file
diff --git a/vector/src/main/java/im/vector/riotredesign/features/roomdirectory/roompreview/RoomPreviewNoPreviewFragment.kt b/vector/src/main/java/im/vector/riotredesign/features/roomdirectory/roompreview/RoomPreviewNoPreviewFragment.kt
new file mode 100644
index 00000000..5b6b902f
--- /dev/null
+++ b/vector/src/main/java/im/vector/riotredesign/features/roomdirectory/roompreview/RoomPreviewNoPreviewFragment.kt
@@ -0,0 +1,61 @@
+/*
+ * Copyright 2019 New Vector Ltd
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package im.vector.riotredesign.features.roomdirectory.roompreview
+
+import android.os.Bundle
+import android.view.View
+import androidx.fragment.app.Fragment
+import com.airbnb.mvrx.args
+import im.vector.riotredesign.R
+import im.vector.riotredesign.core.extensions.setTextOrHide
+import im.vector.riotredesign.core.platform.VectorBaseFragment
+import im.vector.riotredesign.features.home.AvatarRenderer
+import im.vector.riotredesign.features.roomdirectory.RoomDirectoryModule
+import kotlinx.android.synthetic.main.fragment_room_preview_no_preview.*
+import org.koin.android.scope.ext.android.bindScope
+import org.koin.android.scope.ext.android.getOrCreateScope
+
+class RoomPreviewNoPreviewFragment : VectorBaseFragment() {
+
+ companion object {
+ fun newInstance(arg: RoomPreviewData): Fragment {
+ return RoomPreviewNoPreviewFragment().apply { setArguments(arg) }
+ }
+ }
+
+ private val roomPreviewData: RoomPreviewData by args()
+
+ override fun onActivityCreated(savedInstanceState: Bundle?) {
+ super.onActivityCreated(savedInstanceState)
+ bindScope(getOrCreateScope(RoomDirectoryModule.ROOM_DIRECTORY_SCOPE))
+ setupToolbar(roomPreviewNoPreviewToolbar)
+ }
+
+ override fun getLayoutResId() = R.layout.fragment_room_preview_no_preview
+
+ override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
+ super.onViewCreated(view, savedInstanceState)
+
+ AvatarRenderer.render(roomPreviewData.avatarUrl, roomPreviewData.roomId, roomPreviewData.roomName, roomPreviewNoPreviewAvatar)
+ roomPreviewNoPreviewName.text = roomPreviewData.roomName
+ roomPreviewNoPreviewTopic.setTextOrHide(roomPreviewData.topic)
+
+ roomPreviewNoPreviewJoin.setOnClickListener {
+ vectorBaseActivity.notImplemented("Join from preview")
+ }
+ }
+}
\ No newline at end of file
diff --git a/vector/src/main/java/im/vector/riotredesign/features/settings/VectorSettingsActivity.kt b/vector/src/main/java/im/vector/riotredesign/features/settings/VectorSettingsActivity.kt
index a657e110..6208c75e 100755
--- a/vector/src/main/java/im/vector/riotredesign/features/settings/VectorSettingsActivity.kt
+++ b/vector/src/main/java/im/vector/riotredesign/features/settings/VectorSettingsActivity.kt
@@ -24,6 +24,7 @@ import androidx.preference.PreferenceFragmentCompat
import im.vector.matrix.android.api.session.Session
import im.vector.riotredesign.R
import im.vector.riotredesign.core.platform.VectorBaseActivity
+import kotlinx.android.synthetic.main.activity_vector_settings.*
import org.koin.android.ext.android.inject
/**
@@ -45,7 +46,7 @@ class VectorSettingsActivity : VectorBaseActivity(),
private val session by inject()
override fun initUiAndData() {
- configureToolbar()
+ configureToolbar(settingsToolbar)
if (isFirstCreation()) {
vectorSettingsPreferencesFragment = VectorSettingsPreferencesFragment.newInstance(session.sessionParams.credentials.userId)
diff --git a/vector/src/main/res/layout/activity_bug_report.xml b/vector/src/main/res/layout/activity_bug_report.xml
index 82916ee6..4d87ced7 100644
--- a/vector/src/main/res/layout/activity_bug_report.xml
+++ b/vector/src/main/res/layout/activity_bug_report.xml
@@ -6,7 +6,7 @@
android:orientation="vertical">
diff --git a/vector/src/main/res/layout/activity_emoji_reaction_picker.xml b/vector/src/main/res/layout/activity_emoji_reaction_picker.xml
index 8e1edab3..4744931b 100644
--- a/vector/src/main/res/layout/activity_emoji_reaction_picker.xml
+++ b/vector/src/main/res/layout/activity_emoji_reaction_picker.xml
@@ -19,7 +19,7 @@
android:layout_height="wrap_content">
diff --git a/vector/src/main/res/layout/fragment_room_preview_no_preview.xml b/vector/src/main/res/layout/fragment_room_preview_no_preview.xml
new file mode 100644
index 00000000..30a378ed
--- /dev/null
+++ b/vector/src/main/res/layout/fragment_room_preview_no_preview.xml
@@ -0,0 +1,83 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/vector/src/main/res/values/strings_riotX.xml b/vector/src/main/res/values/strings_riotX.xml
index 82c0f77e..1c7580e1 100644
--- a/vector/src/main/res/values/strings_riotX.xml
+++ b/vector/src/main/res/values/strings_riotX.xml
@@ -30,4 +30,6 @@
"Please wait…"
"All Communities"
+ "This room can't be previewed"
+
\ No newline at end of file