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
1e92423d
Commit
1e92423d
authored
Jan 05, 2017
by
Yusuke Iwaki
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
show ticker on token login.
parent
7b0bfe19
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
68 additions
and
9 deletions
+68
-9
LaunchUtil.java
app/src/main/java/chat/rocket/android/LaunchUtil.java
+3
-3
LoginActivity.java
...main/java/chat/rocket/android/activity/LoginActivity.java
+1
-1
MainActivity.java
.../main/java/chat/rocket/android/activity/MainActivity.java
+63
-4
strings.xml
app/src/main/res/values/strings.xml
+1
-1
No files found.
app/src/main/java/chat/rocket/android/LaunchUtil.java
View file @
1e92423d
...
...
@@ -4,7 +4,7 @@ import android.content.Context;
import
android.content.Intent
;
import
chat.rocket.android.activity.AddServerActivity
;
import
chat.rocket.android.activity.
ServerConfig
Activity
;
import
chat.rocket.android.activity.
Login
Activity
;
/**
* utility class for launching Activity.
...
...
@@ -23,8 +23,8 @@ public class LaunchUtil {
/**
* launch ServerConfigActivity with proper flags.
*/
public
static
void
show
ServerConfig
Activity
(
Context
context
,
String
serverCondigId
)
{
Intent
intent
=
new
Intent
(
context
,
ServerConfig
Activity
.
class
);
public
static
void
show
Login
Activity
(
Context
context
,
String
serverCondigId
)
{
Intent
intent
=
new
Intent
(
context
,
Login
Activity
.
class
);
intent
.
setFlags
(
Intent
.
FLAG_ACTIVITY_REORDER_TO_FRONT
|
Intent
.
FLAG_ACTIVITY_CLEAR_TOP
);
intent
.
putExtra
(
"serverConfigId"
,
serverCondigId
);
context
.
startActivity
(
intent
);
...
...
app/src/main/java/chat/rocket/android/activity/
ServerConfig
Activity.java
→
app/src/main/java/chat/rocket/android/activity/
Login
Activity.java
View file @
1e92423d
...
...
@@ -20,7 +20,7 @@ import chat.rocket.android.service.RocketChatService;
/**
* Activity for Login, Sign-up, and Retry connecting...
*/
public
class
ServerConfig
Activity
extends
AbstractFragmentActivity
{
public
class
Login
Activity
extends
AbstractFragmentActivity
{
private
String
serverConfigId
;
private
RealmObjectObserver
<
ServerConfig
>
serverConfigErrorObserver
;
...
...
app/src/main/java/chat/rocket/android/activity/MainActivity.java
View file @
1e92423d
...
...
@@ -2,6 +2,7 @@ package chat.rocket.android.activity;
import
android.os.Bundle
;
import
android.support.annotation.Nullable
;
import
android.support.design.widget.Snackbar
;
import
android.support.v4.widget.SlidingPaneLayout
;
import
android.support.v7.widget.Toolbar
;
import
android.view.View
;
...
...
@@ -13,6 +14,8 @@ import chat.rocket.android.fragment.chatroom.HomeFragment;
import
chat.rocket.android.fragment.chatroom.RoomFragment
;
import
chat.rocket.android.fragment.sidebar.SidebarMainFragment
;
import
chat.rocket.android.helper.LogcatIfError
;
import
chat.rocket.android.helper.TextUtils
;
import
chat.rocket.android.model.ServerConfig
;
import
chat.rocket.android.model.ddp.User
;
import
chat.rocket.android.model.internal.Session
;
import
chat.rocket.android.realm_helper.RealmHelper
;
...
...
@@ -27,6 +30,7 @@ public class MainActivity extends AbstractAuthedActivity {
private
RealmObjectObserver
<
Session
>
sessionObserver
;
private
boolean
isForeground
;
private
StatusTicker
tipViewManager
;
@Override
protected
int
getLayoutContainerForFragment
()
{
...
...
@@ -38,6 +42,7 @@ public class MainActivity extends AbstractAuthedActivity {
super
.
onCreate
(
savedInstanceState
);
setContentView
(
R
.
layout
.
activity_main
);
tipViewManager
=
new
StatusTicker
();
setupSidebar
();
if
(
roomId
==
null
)
{
showFragment
(
new
HomeFragment
());
...
...
@@ -143,11 +148,35 @@ public class MainActivity extends AbstractAuthedActivity {
sessionObserver
=
realmHelper
.
createObjectObserver
(
realm
->
Session
.
queryDefaultSession
(
realm
)
.
isNotNull
(
Session
.
TOKEN
)
.
isNull
(
Session
.
ERROR
))
.
isNotNull
(
Session
.
TOKEN
))
.
setOnUpdateListener
(
session
->
{
if
(
session
==
null
&&
isForeground
)
{
LaunchUtil
.
showServerConfigActivity
(
this
,
serverConfigId
);
if
(
session
==
null
)
{
if
(
isForeground
)
{
LaunchUtil
.
showLoginActivity
(
this
,
serverConfigId
);
}
tipViewManager
.
updateStatus
(
StatusTicker
.
STATUS_DISMISS
,
null
);
}
else
if
(!
TextUtils
.
isEmpty
(
session
.
getError
()))
{
tipViewManager
.
updateStatus
(
StatusTicker
.
STATUS_CONNECTION_ERROR
,
Snackbar
.
make
(
findViewById
(
getLayoutContainerForFragment
()),
R
.
string
.
fragment_retry_login_error_title
,
Snackbar
.
LENGTH_INDEFINITE
)
.
setAction
(
R
.
string
.
fragment_retry_login_retry_title
,
view
->
RealmStore
.
getDefault
()
.
executeTransaction
(
realm
->
{
ServerConfig
config
=
realm
.
where
(
ServerConfig
.
class
)
.
equalTo
(
ServerConfig
.
ID
,
serverConfigId
).
findFirst
();
if
(
config
!=
null
&&
config
.
getState
()
==
ServerConfig
.
STATE_CONNECTION_ERROR
)
{
config
.
setState
(
ServerConfig
.
STATE_READY
);
}
return
null
;
}).
continueWith
(
new
LogcatIfError
())));
}
else
if
(!
session
.
isTokenVerified
())
{
tipViewManager
.
updateStatus
(
StatusTicker
.
STATUS_TOKEN_LOGIN
,
Snackbar
.
make
(
findViewById
(
getLayoutContainerForFragment
()),
R
.
string
.
server_config_activity_authenticating
,
Snackbar
.
LENGTH_INDEFINITE
));
}
else
{
tipViewManager
.
updateStatus
(
StatusTicker
.
STATUS_DISMISS
,
null
);
}
});
sessionObserver
.
sub
();
...
...
@@ -184,4 +213,34 @@ public class MainActivity extends AbstractAuthedActivity {
protected
boolean
onBackPress
()
{
return
closeSidebarIfNeeded
()
||
super
.
onBackPress
();
}
//TODO: consider this class to define in layouthelper for more complicated operation.
private
static
class
StatusTicker
{
public
static
final
int
STATUS_DISMISS
=
0
;
public
static
final
int
STATUS_CONNECTION_ERROR
=
1
;
public
static
final
int
STATUS_TOKEN_LOGIN
=
2
;
private
int
status
;
private
Snackbar
snackbar
;
public
StatusTicker
()
{
status
=
STATUS_DISMISS
;
}
public
void
updateStatus
(
int
status
,
Snackbar
snackbar
)
{
if
(
status
==
this
.
status
)
{
return
;
}
this
.
status
=
status
;
if
(
this
.
snackbar
!=
null
)
{
this
.
snackbar
.
dismiss
();
}
if
(
status
!=
STATUS_DISMISS
)
{
this
.
snackbar
=
snackbar
;
if
(
this
.
snackbar
!=
null
)
{
this
.
snackbar
.
show
();
}
}
}
}
}
app/src/main/res/values/strings.xml
View file @
1e92423d
...
...
@@ -29,7 +29,7 @@
<string
name=
"fragment_login_username_or_email"
>
Username or email
</string>
<string
name=
"fragment_login_password"
>
Password
</string>
<string
name=
"fragment_retry_login_retry_title"
>
RETRY
</string>
<string
name=
"fragment_retry_login_error_title"
>
Oops…
</string>
<string
name=
"fragment_retry_login_error_title"
>
Connection Error
</string>
<string
name=
"add_server_activity_waiting_server"
>
Connecting to server…
</string>
<string
name=
"server_config_activity_authenticating"
>
Authenticating…
</string>
<string
name=
"home_fragment_title"
>
Rocket.Chat - Home
</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