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
8af265c7
Commit
8af265c7
authored
Dec 08, 2017
by
Leonardo Aramaki
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Refresh opened rooms if conn state is SESSION_ESTABLISHED loading
missed messages for that channel
parent
85c02cc3
Changes
5
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
471 additions
and
419 deletions
+471
-419
MainActivity.java
.../main/java/chat/rocket/android/activity/MainActivity.java
+36
-17
MainPresenter.java
...main/java/chat/rocket/android/activity/MainPresenter.java
+6
-3
RoomContract.java
...a/chat/rocket/android/fragment/chatroom/RoomContract.java
+35
-33
RoomFragment.java
...a/chat/rocket/android/fragment/chatroom/RoomFragment.java
+2
-2
RoomPresenter.java
.../chat/rocket/android/fragment/chatroom/RoomPresenter.java
+392
-364
No files found.
app/src/main/java/chat/rocket/android/activity/MainActivity.java
View file @
8af265c7
...
@@ -18,6 +18,7 @@ import android.widget.TextView;
...
@@ -18,6 +18,7 @@ import android.widget.TextView;
import
com.facebook.drawee.view.SimpleDraweeView
;
import
com.facebook.drawee.view.SimpleDraweeView
;
import
java.util.List
;
import
java.util.List
;
import
java.util.concurrent.atomic.AtomicReference
;
import
chat.rocket.android.LaunchUtil
;
import
chat.rocket.android.LaunchUtil
;
import
chat.rocket.android.R
;
import
chat.rocket.android.R
;
...
@@ -49,7 +50,7 @@ public class MainActivity extends AbstractAuthedActivity implements MainContract
...
@@ -49,7 +50,7 @@ public class MainActivity extends AbstractAuthedActivity implements MainContract
private
RoomToolbar
toolbar
;
private
RoomToolbar
toolbar
;
private
SlidingPaneLayout
pane
;
private
SlidingPaneLayout
pane
;
private
MainContract
.
Presenter
presenter
;
private
MainContract
.
Presenter
presenter
;
private
volatile
Snackbar
statusTicker
;
private
volatile
AtomicReference
<
Snackbar
>
statusTicker
=
new
AtomicReference
<>()
;
@Override
@Override
public
int
getLayoutContainerForFragment
()
{
public
int
getLayoutContainerForFragment
()
{
...
@@ -95,7 +96,9 @@ public class MainActivity extends AbstractAuthedActivity implements MainContract
...
@@ -95,7 +96,9 @@ public class MainActivity extends AbstractAuthedActivity implements MainContract
presenter
.
release
();
presenter
.
release
();
}
}
// Dismiss any status ticker
// Dismiss any status ticker
if
(
statusTicker
!=
null
)
statusTicker
.
dismiss
();
if
(
statusTicker
.
get
()
!=
null
)
{
statusTicker
.
get
().
dismiss
();
}
super
.
onPause
();
super
.
onPause
();
}
}
...
@@ -250,31 +253,47 @@ public class MainActivity extends AbstractAuthedActivity implements MainContract
...
@@ -250,31 +253,47 @@ public class MainActivity extends AbstractAuthedActivity implements MainContract
}
}
@Override
@Override
public
synchronized
void
showConnectionError
()
{
public
void
showConnectionError
()
{
dismissStatusTickerIfShowing
();
if
(
statusTicker
.
get
()
!=
null
&&
statusTicker
.
get
().
isShown
())
{
statusTicker
=
Snackbar
.
make
(
findViewById
(
getLayoutContainerForFragment
()),
statusTicker
.
get
().
setText
(
R
.
string
.
fragment_retry_login_error_title
)
R
.
string
.
fragment_retry_login_error_title
,
Snackbar
.
LENGTH_INDEFINITE
)
.
setAction
(
R
.
string
.
fragment_retry_login_retry_title
,
view
->
{
.
setAction
(
R
.
string
.
fragment_retry_login_retry_title
,
view
->
statusTicker
.
set
(
null
);
ConnectivityManager
.
getInstance
(
getApplicationContext
()).
keepAliveServer
());
showConnecting
();
statusTicker
.
show
();
ConnectivityManager
.
getInstance
(
getApplicationContext
()).
keepAliveServer
();
});
}
else
{
Snackbar
newStatusTicker
=
Snackbar
.
make
(
findViewById
(
getLayoutContainerForFragment
()),
R
.
string
.
fragment_retry_login_error_title
,
Snackbar
.
LENGTH_INDEFINITE
)
.
setAction
(
R
.
string
.
fragment_retry_login_retry_title
,
view
->
{
statusTicker
.
set
(
null
);
showConnecting
();
ConnectivityManager
.
getInstance
(
getApplicationContext
()).
keepAliveServer
();
});
statusTicker
.
set
(
newStatusTicker
);
statusTicker
.
get
().
show
();
}
}
}
@Override
@Override
public
synchronized
void
showConnecting
()
{
public
void
showConnecting
()
{
dismissStatusTickerIfShowing
();
if
(
statusTicker
.
get
()
!=
null
&&
statusTicker
.
get
().
isShown
())
{
statusTicker
=
Snackbar
.
make
(
findViewById
(
getLayoutContainerForFragment
()),
statusTicker
.
get
().
setText
(
R
.
string
.
server_config_activity_authenticating
);
R
.
string
.
server_config_activity_authenticating
,
Snackbar
.
LENGTH_INDEFINITE
);
}
else
{
statusTicker
.
show
();
Snackbar
newStatusTicker
=
Snackbar
.
make
(
findViewById
(
getLayoutContainerForFragment
()),
R
.
string
.
server_config_activity_authenticating
,
Snackbar
.
LENGTH_INDEFINITE
);
statusTicker
.
set
(
newStatusTicker
);
statusTicker
.
get
().
show
();
}
}
}
@Override
@Override
public
synchronized
void
showConnectionOk
()
{
public
void
showConnectionOk
()
{
dismissStatusTickerIfShowing
();
dismissStatusTickerIfShowing
();
}
}
private
void
dismissStatusTickerIfShowing
()
{
private
void
dismissStatusTickerIfShowing
()
{
if
(
statusTicker
!=
null
)
{
if
(
statusTicker
!=
null
)
{
statusTicker
.
dismiss
();
statusTicker
.
get
().
dismiss
();
}
}
}
}
...
@@ -334,7 +353,7 @@ public class MainActivity extends AbstractAuthedActivity implements MainContract
...
@@ -334,7 +353,7 @@ public class MainActivity extends AbstractAuthedActivity implements MainContract
Fragment
fragment
=
getSupportFragmentManager
().
findFragmentById
(
getLayoutContainerForFragment
());
Fragment
fragment
=
getSupportFragmentManager
().
findFragmentById
(
getLayoutContainerForFragment
());
if
(
fragment
!=
null
&&
fragment
instanceof
RoomFragment
)
{
if
(
fragment
!=
null
&&
fragment
instanceof
RoomFragment
)
{
RoomFragment
roomFragment
=
(
RoomFragment
)
fragment
;
RoomFragment
roomFragment
=
(
RoomFragment
)
fragment
;
roomFragment
.
loadMessages
();
roomFragment
.
loadM
issedM
essages
();
}
}
}
}
...
...
app/src/main/java/chat/rocket/android/activity/MainPresenter.java
View file @
8af265c7
...
@@ -212,7 +212,7 @@ public class MainPresenter extends BasePresenter<MainContract.View>
...
@@ -212,7 +212,7 @@ public class MainPresenter extends BasePresenter<MainContract.View>
return
;
return
;
}
}
view
.
showConnectionOk
();
//
view.showConnectionOk();
},
},
Logger:
:
report
Logger:
:
report
);
);
...
@@ -227,12 +227,15 @@ public class MainPresenter extends BasePresenter<MainContract.View>
...
@@ -227,12 +227,15 @@ public class MainPresenter extends BasePresenter<MainContract.View>
.
subscribe
(
.
subscribe
(
connectivity
->
{
connectivity
->
{
if
(
connectivity
.
state
==
ServerConnectivity
.
STATE_CONNECTED
)
{
if
(
connectivity
.
state
==
ServerConnectivity
.
STATE_CONNECTED
)
{
view
.
showConnectionOk
();
//TODO: notify almost connected or something like that.
view
.
refreshRoom
();
// view.showConnectionOk
();
}
else
if
(
connectivity
.
state
==
ServerConnectivity
.
STATE_DISCONNECTED
)
{
}
else
if
(
connectivity
.
state
==
ServerConnectivity
.
STATE_DISCONNECTED
)
{
if
(
connectivity
.
code
==
DDPClient
.
REASON_NETWORK_ERROR
)
{
if
(
connectivity
.
code
==
DDPClient
.
REASON_NETWORK_ERROR
)
{
view
.
showConnectionError
();
view
.
showConnectionError
();
}
}
}
else
if
(
connectivity
.
state
==
ServerConnectivity
.
STATE_SESSION_ESTABLISHED
)
{
view
.
refreshRoom
();
view
.
showConnectionOk
();
}
else
{
}
else
{
view
.
showConnecting
();
view
.
showConnecting
();
}
}
...
...
app/src/main/java/chat/rocket/android/fragment/chatroom/RoomContract.java
View file @
8af265c7
...
@@ -13,67 +13,69 @@ import chat.rocket.core.models.User;
...
@@ -13,67 +13,69 @@ import chat.rocket.core.models.User;
public
interface
RoomContract
{
public
interface
RoomContract
{
interface
View
extends
BaseContract
.
View
{
interface
View
extends
BaseContract
.
View
{
void
setupWith
(
RocketChatAbsoluteUrl
rocketChatAbsoluteUrl
);
void
setupWith
(
RocketChatAbsoluteUrl
rocketChatAbsoluteUrl
);
void
render
(
Room
room
);
void
render
(
Room
room
);
void
showUserStatus
(
User
user
);
void
showUserStatus
(
User
user
);
void
updateHistoryState
(
boolean
hasNext
,
boolean
isLoaded
);
void
updateHistoryState
(
boolean
hasNext
,
boolean
isLoaded
);
void
onMessageSendSuccessfully
();
void
onMessageSendSuccessfully
();
void
disableMessageInput
();
void
disableMessageInput
();
void
enableMessageInput
();
void
enableMessageInput
();
void
showUnreadCount
(
int
count
);
void
showUnreadCount
(
int
count
);
void
showMessages
(
List
<
Message
>
messages
);
void
showMessages
(
List
<
Message
>
messages
);
void
showMessageSendFailure
(
Message
message
);
void
showMessageSendFailure
(
Message
message
);
void
showMessageDeleteFailure
(
Message
message
);
void
showMessageDeleteFailure
(
Message
message
);
void
autoloadImages
();
void
autoloadImages
();
void
manualLoadImages
();
void
manualLoadImages
();
void
onReply
(
AbsoluteUrl
absoluteUrl
,
String
markdown
,
Message
message
);
void
onReply
(
AbsoluteUrl
absoluteUrl
,
String
markdown
,
Message
message
);
void
onCopy
(
String
message
);
void
onCopy
(
String
message
);
void
showMessageActions
(
Message
message
);
void
showMessageActions
(
Message
message
);
}
}
interface
Presenter
extends
BaseContract
.
Presenter
<
View
>
{
interface
Presenter
extends
BaseContract
.
Presenter
<
View
>
{
void
loadMessages
();
void
loadMessages
();
void
loadMoreMessages
();
void
loadMoreMessages
();
void
onMessageSelected
(
@Nullable
Message
message
);
void
onMessageSelected
(
@Nullable
Message
message
);
void
onMessageTap
(
@Nullable
Message
message
);
void
onMessageTap
(
@Nullable
Message
message
);
void
sendMessage
(
String
messageText
);
void
sendMessage
(
String
messageText
);
void
resendMessage
(
@NonNull
Message
message
);
void
resendMessage
(
@NonNull
Message
message
);
void
updateMessage
(
@NonNull
Message
message
,
String
content
);
void
updateMessage
(
@NonNull
Message
message
,
String
content
);
void
deleteMessage
(
@NonNull
Message
message
);
void
deleteMessage
(
@NonNull
Message
message
);
void
onUnreadCount
();
void
onUnreadCount
();
void
onMarkAsRead
();
void
onMarkAsRead
();
void
refreshRoom
();
void
refreshRoom
();
void
replyMessage
(
@NonNull
Message
message
,
boolean
justQuote
);
void
replyMessage
(
@NonNull
Message
message
,
boolean
justQuote
);
void
acceptMessageDeleteFailure
(
Message
message
);
void
acceptMessageDeleteFailure
(
Message
message
);
}
void
loadMissedMessages
();
}
}
}
app/src/main/java/chat/rocket/android/fragment/chatroom/RoomFragment.java
View file @
8af265c7
...
@@ -716,7 +716,7 @@ public class RoomFragment extends AbstractChatRoomFragment implements
...
@@ -716,7 +716,7 @@ public class RoomFragment extends AbstractChatRoomFragment implements
}
}
}
}
public
void
loadMessages
()
{
public
void
loadM
issedM
essages
()
{
presenter
.
loadMessages
();
presenter
.
loadM
issedM
essages
();
}
}
}
}
\ No newline at end of file
app/src/main/java/chat/rocket/android/fragment/chatroom/RoomPresenter.java
View file @
8af265c7
This diff is collapsed.
Click to expand it.
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