Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
A
AloqaIM-Android
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Administrator
AloqaIM-Android
Commits
54afdeb2
Unverified
Commit
54afdeb2
authored
Jan 15, 2018
by
Lucio Maciel
Committed by
GitHub
Jan 15, 2018
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #702 from RocketChat/spotlight-on-toolbar
Spotlight on toolbar
parents
8fef2381
8745f233
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
66 additions
and
29 deletions
+66
-29
ChatRoomsFragment.kt
...ava/chat/rocket/android/chatrooms/ui/ChatRoomsFragment.kt
+40
-14
ic_search_white_24px.xml
app/src/main/res/drawable/ic_search_white_24px.xml
+5
-0
fragment_chat_rooms.xml
app/src/main/res/layout/fragment_chat_rooms.xml
+9
-15
chatrooms_menu.xml
app/src/main/res/menu/chatrooms_menu.xml
+10
-0
strings.xml
app/src/main/res/values-pt-rBR/strings.xml
+1
-0
strings.xml
app/src/main/res/values/strings.xml
+1
-0
No files found.
app/src/main/java/chat/rocket/android/chatrooms/ui/ChatRoomsFragment.kt
View file @
54afdeb2
...
@@ -2,12 +2,12 @@ package chat.rocket.android.chatrooms.ui
...
@@ -2,12 +2,12 @@ package chat.rocket.android.chatrooms.ui
import
android.os.Bundle
import
android.os.Bundle
import
android.support.v4.app.Fragment
import
android.support.v4.app.Fragment
import
android.support.v7.app.AppCompatActivity
import
android.support.v7.util.DiffUtil
import
android.support.v7.util.DiffUtil
import
android.support.v7.widget.DefaultItemAnimator
import
android.support.v7.widget.DefaultItemAnimator
import
android.support.v7.widget.LinearLayoutManager
import
android.support.v7.widget.LinearLayoutManager
import
android.view.LayoutInflater
import
android.support.v7.widget.SearchView
import
android.view.View
import
android.view.*
import
android.view.ViewGroup
import
android.widget.Toast
import
android.widget.Toast
import
chat.rocket.android.R
import
chat.rocket.android.R
import
chat.rocket.android.chatrooms.presentation.ChatRoomsPresenter
import
chat.rocket.android.chatrooms.presentation.ChatRoomsPresenter
...
@@ -16,6 +16,7 @@ import chat.rocket.android.util.setVisibility
...
@@ -16,6 +16,7 @@ import chat.rocket.android.util.setVisibility
import
chat.rocket.android.widget.DividerItemDecoration
import
chat.rocket.android.widget.DividerItemDecoration
import
chat.rocket.core.model.ChatRoom
import
chat.rocket.core.model.ChatRoom
import
dagger.android.support.AndroidSupportInjection
import
dagger.android.support.AndroidSupportInjection
import
kotlinx.android.synthetic.main.app_bar.*
import
kotlinx.android.synthetic.main.fragment_chat_rooms.*
import
kotlinx.android.synthetic.main.fragment_chat_rooms.*
import
kotlinx.coroutines.experimental.CommonPool
import
kotlinx.coroutines.experimental.CommonPool
import
kotlinx.coroutines.experimental.android.UI
import
kotlinx.coroutines.experimental.android.UI
...
@@ -24,7 +25,9 @@ import kotlinx.coroutines.experimental.launch
...
@@ -24,7 +25,9 @@ import kotlinx.coroutines.experimental.launch
import
javax.inject.Inject
import
javax.inject.Inject
class
ChatRoomsFragment
:
Fragment
(),
ChatRoomsView
{
class
ChatRoomsFragment
:
Fragment
(),
ChatRoomsView
{
@Inject
lateinit
var
presenter
:
ChatRoomsPresenter
@Inject
lateinit
var
presenter
:
ChatRoomsPresenter
private
var
searchView
:
SearchView
?
=
null
companion
object
{
companion
object
{
fun
newInstance
()
=
ChatRoomsFragment
()
fun
newInstance
()
=
ChatRoomsFragment
()
...
@@ -33,6 +36,7 @@ class ChatRoomsFragment : Fragment(), ChatRoomsView {
...
@@ -33,6 +36,7 @@ class ChatRoomsFragment : Fragment(), ChatRoomsView {
override
fun
onCreate
(
savedInstanceState
:
Bundle
?)
{
override
fun
onCreate
(
savedInstanceState
:
Bundle
?)
{
super
.
onCreate
(
savedInstanceState
)
super
.
onCreate
(
savedInstanceState
)
AndroidSupportInjection
.
inject
(
this
)
AndroidSupportInjection
.
inject
(
this
)
setHasOptionsMenu
(
true
)
}
}
override
fun
onCreateView
(
inflater
:
LayoutInflater
,
container
:
ViewGroup
?,
savedInstanceState
:
Bundle
?):
View
?
=
inflater
.
inflate
(
R
.
layout
.
fragment_chat_rooms
,
container
,
false
)
override
fun
onCreateView
(
inflater
:
LayoutInflater
,
container
:
ViewGroup
?,
savedInstanceState
:
Bundle
?):
View
?
=
inflater
.
inflate
(
R
.
layout
.
fragment_chat_rooms
,
container
,
false
)
...
@@ -40,27 +44,45 @@ class ChatRoomsFragment : Fragment(), ChatRoomsView {
...
@@ -40,27 +44,45 @@ class ChatRoomsFragment : Fragment(), ChatRoomsView {
override
fun
onViewCreated
(
view
:
View
,
savedInstanceState
:
Bundle
?)
{
override
fun
onViewCreated
(
view
:
View
,
savedInstanceState
:
Bundle
?)
{
super
.
onViewCreated
(
view
,
savedInstanceState
)
super
.
onViewCreated
(
view
,
savedInstanceState
)
floating_search_view
.
setOnQueryChangeListener
{
oldQuery
,
newQuery
->
(
activity
as
AppCompatActivity
).
apply
{
floating_search_view
.
showProgress
()
presenter
.
chatRoomsByName
(
newQuery
)
if
(
oldQuery
.
isNotEmpty
()
&&
newQuery
.
isEmpty
())
{
floating_search_view
.
clearSuggestions
()
floating_search_view
.
hideProgress
()
}
}
activity
?.
apply
{
recycler_view
.
layoutManager
=
LinearLayoutManager
(
this
,
LinearLayoutManager
.
VERTICAL
,
false
)
recycler_view
.
layoutManager
=
LinearLayoutManager
(
this
,
LinearLayoutManager
.
VERTICAL
,
false
)
recycler_view
.
addItemDecoration
(
DividerItemDecoration
(
this
,
144
,
32
))
recycler_view
.
addItemDecoration
(
DividerItemDecoration
(
this
,
144
,
32
))
recycler_view
.
itemAnimator
=
DefaultItemAnimator
()
recycler_view
.
itemAnimator
=
DefaultItemAnimator
()
recycler_view
.
adapter
=
ChatRoomsAdapter
(
this
)
{
chatRoom
->
recycler_view
.
adapter
=
ChatRoomsAdapter
(
this
)
{
chatRoom
->
presenter
.
loadChatRoom
(
chatRoom
)
presenter
.
loadChatRoom
(
chatRoom
)
}
}
if
(
supportActionBar
==
null
)
{
setSupportActionBar
(
toolbar
)
supportActionBar
?.
setDisplayHomeAsUpEnabled
(
false
)
supportActionBar
?.
setDisplayShowHomeEnabled
(
true
)
//TODO: should display the current server "SiteName" setting?
supportActionBar
?.
setDisplayShowTitleEnabled
(
true
)
supportActionBar
?.
title
=
"Rocket.Chat"
}
}
}
presenter
.
loadChatRooms
()
presenter
.
loadChatRooms
()
}
}
override
fun
onCreateOptionsMenu
(
menu
:
Menu
?,
inflater
:
MenuInflater
?)
{
inflater
?.
inflate
(
R
.
menu
.
chatrooms_menu
,
menu
)
val
searchItem
=
menu
?.
findItem
(
R
.
id
.
action_search
)
searchView
=
searchItem
?.
actionView
as
SearchView
val
sv
=
searchView
sv
?.
setOnQueryTextListener
(
object
:
SearchView
.
OnQueryTextListener
{
override
fun
onQueryTextSubmit
(
query
:
String
?):
Boolean
{
return
queryChatRoomsByName
(
query
)
}
override
fun
onQueryTextChange
(
newText
:
String
?):
Boolean
{
return
queryChatRoomsByName
(
newText
)
}
})
}
override
suspend
fun
updateChatRooms
(
newDataSet
:
List
<
ChatRoom
>)
{
override
suspend
fun
updateChatRooms
(
newDataSet
:
List
<
ChatRoom
>)
{
activity
.
apply
{
activity
.
apply
{
launch
(
UI
)
{
launch
(
UI
)
{
...
@@ -69,7 +91,6 @@ class ChatRoomsFragment : Fragment(), ChatRoomsView {
...
@@ -69,7 +91,6 @@ class ChatRoomsFragment : Fragment(), ChatRoomsView {
DiffUtil
.
calculateDiff
(
RoomsDiffCallback
(
adapter
.
dataSet
,
newDataSet
))
DiffUtil
.
calculateDiff
(
RoomsDiffCallback
(
adapter
.
dataSet
,
newDataSet
))
}.
await
()
}.
await
()
floating_search_view
.
hideProgress
()
adapter
.
updateRooms
(
newDataSet
)
adapter
.
updateRooms
(
newDataSet
)
diff
.
dispatchUpdatesTo
(
adapter
)
diff
.
dispatchUpdatesTo
(
adapter
)
}
}
...
@@ -84,6 +105,11 @@ class ChatRoomsFragment : Fragment(), ChatRoomsView {
...
@@ -84,6 +105,11 @@ class ChatRoomsFragment : Fragment(), ChatRoomsView {
override
fun
showGenericErrorMessage
()
=
showMessage
(
getString
(
R
.
string
.
msg_generic_error
))
override
fun
showGenericErrorMessage
()
=
showMessage
(
getString
(
R
.
string
.
msg_generic_error
))
private
fun
queryChatRoomsByName
(
name
:
String
?):
Boolean
{
presenter
.
chatRoomsByName
(
name
?:
""
)
return
true
}
class
RoomsDiffCallback
(
private
val
oldRooms
:
List
<
ChatRoom
>,
class
RoomsDiffCallback
(
private
val
oldRooms
:
List
<
ChatRoom
>,
private
val
newRooms
:
List
<
ChatRoom
>)
:
DiffUtil
.
Callback
()
{
private
val
newRooms
:
List
<
ChatRoom
>)
:
DiffUtil
.
Callback
()
{
...
...
app/src/main/res/drawable/ic_search_white_24px.xml
0 → 100644
View file @
54afdeb2
<vector
android:autoMirrored=
"true"
android:height=
"24dp"
android:viewportHeight=
"24.0"
android:viewportWidth=
"24.0"
android:width=
"24dp"
xmlns:android=
"http://schemas.android.com/apk/res/android"
>
<path
android:fillColor=
"#FFFFFF"
android:pathData=
"M15.5,14h-0.79l-0.28,-0.27C15.41,12.59 16,11.11 16,9.5 16,5.91 13.09,3 9.5,3S3,5.91 3,9.5 5.91,16 9.5,16c1.61,0 3.09,-0.59 4.23,-1.57l0.27,0.28v0.79l5,4.99L20.49,19l-4.99,-5zM9.5,14C7.01,14 5,11.99 5,9.5S7.01,5 9.5,5 14,7.01 14,9.5 11.99,14 9.5,14z"
/>
</vector>
app/src/main/res/layout/fragment_chat_rooms.xml
View file @
54afdeb2
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<
Relative
Layout
xmlns:android=
"http://schemas.android.com/apk/res/android"
<
android.support.design.widget.Coordinator
Layout
xmlns:android=
"http://schemas.android.com/apk/res/android"
xmlns:app=
"http://schemas.android.com/apk/res-auto"
xmlns:app=
"http://schemas.android.com/apk/res-auto"
xmlns:tools=
"http://schemas.android.com/tools"
xmlns:tools=
"http://schemas.android.com/tools"
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:layout_height=
"match_parent"
android:fitsSystemWindows=
"true"
tools:context=
".chatrooms.ui.ChatRoomsFragment"
>
tools:context=
".chatrooms.ui.ChatRoomsFragment"
>
<include
android:id=
"@+id/layout_app_bar"
layout=
"@layout/app_bar"
android:background=
"@color/black"
/>
<android.support.v7.widget.RecyclerView
<android.support.v7.widget.RecyclerView
android:id=
"@+id/recycler_view"
android:id=
"@+id/recycler_view"
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:layout_height=
"match_parent"
android:clipToPadding=
"false"
android:clipToPadding=
"false"
android:gravity=
"center_horizontal"
android:gravity=
"center_horizontal"
android:paddingTop=
"84dp"
/>
app:layout_behavior=
"@string/appbar_scrolling_view_behavior"
/>
<com.arlib.floatingsearchview.FloatingSearchView
android:id=
"@+id/floating_search_view"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
app:floatingSearch_close_search_on_keyboard_dismiss=
"true"
app:floatingSearch_dimBackground=
"false"
app:floatingSearch_dismissOnOutsideTouch=
"true"
app:floatingSearch_leftActionMode=
"showSearch"
app:floatingSearch_searchBarMarginLeft=
"4dp"
app:floatingSearch_searchBarMarginRight=
"4dp"
app:floatingSearch_searchBarMarginTop=
"28dp"
/>
<com.wang.avi.AVLoadingIndicatorView
<com.wang.avi.AVLoadingIndicatorView
android:id=
"@+id/view_loading"
android:id=
"@+id/view_loading"
...
@@ -36,4 +30,4 @@
...
@@ -36,4 +30,4 @@
app:indicatorName=
"BallPulseIndicator"
app:indicatorName=
"BallPulseIndicator"
tools:visibility=
"visible"
/>
tools:visibility=
"visible"
/>
</RelativeLayout>
</android.support.design.widget.CoordinatorLayout>
\ No newline at end of file
\ No newline at end of file
app/src/main/res/menu/chatrooms_menu.xml
0 → 100644
View file @
54afdeb2
<?xml version="1.0" encoding="utf-8"?>
<menu
xmlns:android=
"http://schemas.android.com/apk/res/android"
xmlns:app=
"http://schemas.android.com/apk/res-auto"
>
<item
android:id=
"@+id/action_search"
android:icon=
"@drawable/ic_search_white_24px"
android:title=
"@string/search"
app:actionViewClass=
"android.support.v7.widget.SearchView"
app:showAsAction=
"always|collapseActionView"
/>
</menu>
\ No newline at end of file
app/src/main/res/values-pt-rBR/strings.xml
View file @
54afdeb2
...
@@ -11,6 +11,7 @@
...
@@ -11,6 +11,7 @@
<string
name=
"action_send"
>
Enviar
</string>
<string
name=
"action_send"
>
Enviar
</string>
<string
name=
"action_terms_of_service"
>
Termos de Serviço
</string>
<string
name=
"action_terms_of_service"
>
Termos de Serviço
</string>
<string
name=
"action_privacy_policy"
>
Política de Privacidade
</string>
<string
name=
"action_privacy_policy"
>
Política de Privacidade
</string>
<string
name=
"search"
>
Pesquisar
</string>
<!-- Regular information messages -->
<!-- Regular information messages -->
<string
name=
"msg_no_internet_connection"
>
Sem conexão à internet
</string>
<string
name=
"msg_no_internet_connection"
>
Sem conexão à internet
</string>
...
...
app/src/main/res/values/strings.xml
View file @
54afdeb2
...
@@ -12,6 +12,7 @@
...
@@ -12,6 +12,7 @@
<string
name=
"action_send"
>
Send
</string>
<string
name=
"action_send"
>
Send
</string>
<string
name=
"action_terms_of_service"
>
Terms of Service
</string>
<string
name=
"action_terms_of_service"
>
Terms of Service
</string>
<string
name=
"action_privacy_policy"
>
Privacy Policy
</string>
<string
name=
"action_privacy_policy"
>
Privacy Policy
</string>
<string
name=
"search"
>
Search
</string>
<!-- Regular information messages -->
<!-- Regular information messages -->
<string
name=
"msg_no_internet_connection"
>
No internet connection
</string>
<string
name=
"msg_no_internet_connection"
>
No internet connection
</string>
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment