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
418d6429
Commit
418d6429
authored
Apr 20, 2018
by
Lucio Maciel
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Support HTTP
parent
8446479c
Changes
8
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
107 additions
and
17 deletions
+107
-17
VersionCheckView.kt
...id/authentication/server/presentation/VersionCheckView.kt
+11
-0
ServerFragment.kt
...rocket/android/authentication/server/ui/ServerFragment.kt
+48
-3
CheckServerPresenter.kt
...ocket/android/server/presentation/CheckServerPresenter.kt
+9
-0
String.kt
...c/main/java/chat/rocket/android/util/extensions/String.kt
+6
-1
fragment_authentication_server.xml
app/src/main/res/layout/fragment_authentication_server.xml
+18
-12
strings.xml
app/src/main/res/values-hi-rIN/strings.xml
+3
-1
strings.xml
app/src/main/res/values-pt-rBR/strings.xml
+6
-0
strings.xml
app/src/main/res/values/strings.xml
+6
-0
No files found.
app/src/main/java/chat/rocket/android/authentication/server/presentation/VersionCheckView.kt
View file @
418d6429
...
@@ -11,8 +11,19 @@ interface VersionCheckView {
...
@@ -11,8 +11,19 @@ interface VersionCheckView {
*/
*/
fun
blockAndAlertNotRequiredVersion
()
fun
blockAndAlertNotRequiredVersion
()
/**
* Alerts the user that an error has occurred while checking the server version
* This is optional.
*/
fun
errorCheckingServerVersion
()
{}
/**
/**
* Do some action if version is ok. This is optional.
* Do some action if version is ok. This is optional.
*/
*/
fun
versionOk
()
{}
fun
versionOk
()
{}
/**
* Alters the user this protocol is invalid. This is optional.
*/
fun
errorInvalidProtocol
()
{}
}
}
\ No newline at end of file
app/src/main/java/chat/rocket/android/authentication/server/ui/ServerFragment.kt
View file @
418d6429
...
@@ -8,6 +8,8 @@ import android.view.LayoutInflater
...
@@ -8,6 +8,8 @@ import android.view.LayoutInflater
import
android.view.View
import
android.view.View
import
android.view.ViewGroup
import
android.view.ViewGroup
import
android.view.ViewTreeObserver
import
android.view.ViewTreeObserver
import
android.widget.AdapterView
import
android.widget.ArrayAdapter
import
chat.rocket.android.BuildConfig
import
chat.rocket.android.BuildConfig
import
chat.rocket.android.R
import
chat.rocket.android.R
import
chat.rocket.android.authentication.domain.model.LoginDeepLinkInfo
import
chat.rocket.android.authentication.domain.model.LoginDeepLinkInfo
...
@@ -38,6 +40,8 @@ class ServerFragment : Fragment(), ServerView {
...
@@ -38,6 +40,8 @@ class ServerFragment : Fragment(), ServerView {
}
}
}
}
private
var
protocol
=
"https://"
override
fun
onCreate
(
savedInstanceState
:
Bundle
?)
{
override
fun
onCreate
(
savedInstanceState
:
Bundle
?)
{
super
.
onCreate
(
savedInstanceState
)
super
.
onCreate
(
savedInstanceState
)
AndroidSupportInjection
.
inject
(
this
)
AndroidSupportInjection
.
inject
(
this
)
...
@@ -55,9 +59,40 @@ class ServerFragment : Fragment(), ServerView {
...
@@ -55,9 +59,40 @@ class ServerFragment : Fragment(), ServerView {
deepLinkInfo
?.
let
{
deepLinkInfo
?.
let
{
val
uri
=
Uri
.
parse
(
it
.
url
)
val
uri
=
Uri
.
parse
(
it
.
url
)
uri
?.
let
{
text_server_
protoco
l
.
hintContent
=
it
.
host
}
uri
?.
let
{
text_server_
ur
l
.
hintContent
=
it
.
host
}
presenter
.
deepLink
(
it
)
presenter
.
deepLink
(
it
)
}
}
text_server_protocol
.
adapter
=
ArrayAdapter
<
String
>(
activity
,
android
.
R
.
layout
.
simple_dropdown_item_1line
,
arrayOf
(
"https://"
,
"http://"
))
text_server_protocol
.
onItemSelectedListener
=
object
:
AdapterView
.
OnItemSelectedListener
{
override
fun
onItemSelected
(
parent
:
AdapterView
<
*
>?,
view
:
View
?,
position
:
Int
,
id
:
Long
)
{
when
(
position
)
{
0
->
{
protocol
=
"https://"
}
1
->
{
ui
{
AlertDialog
.
Builder
(
it
)
.
setTitle
(
R
.
string
.
msg_warning
)
.
setMessage
(
R
.
string
.
msg_http_insecure
)
.
setPositiveButton
(
R
.
string
.
msg_proceed
)
{
_
,
_
->
protocol
=
"http://"
}
.
setNegativeButton
(
R
.
string
.
msg_cancel
)
{
_
,
_
->
text_server_protocol
.
setSelection
(
0
)
}
.
setCancelable
(
false
)
.
create
()
.
show
()
}
}
}
}
override
fun
onNothingSelected
(
parent
:
AdapterView
<
*
>?)
{
}
}
}
}
override
fun
onDestroyView
()
{
override
fun
onDestroyView
()
{
...
@@ -129,13 +164,23 @@ class ServerFragment : Fragment(), ServerView {
...
@@ -129,13 +164,23 @@ class ServerFragment : Fragment(), ServerView {
performConnect
()
performConnect
()
}
}
override
fun
errorCheckingServerVersion
()
{
hideLoading
()
showMessage
(
R
.
string
.
msg_error_checking_server_version
)
}
override
fun
errorInvalidProtocol
()
{
hideLoading
()
showMessage
(
R
.
string
.
msg_invalid_server_protocol
)
}
private
fun
performConnect
()
{
private
fun
performConnect
()
{
ui
{
ui
{
deepLinkInfo
?.
let
{
deepLinkInfo
?.
let
{
presenter
.
deepLink
(
it
)
presenter
.
deepLink
(
it
)
}.
ifNull
{
}.
ifNull
{
val
url
=
text_server_url
.
textContent
.
ifEmpty
(
text_server_url
.
hintContent
)
val
url
=
text_server_url
.
textContent
.
ifEmpty
(
text_server_url
.
hintContent
)
presenter
.
connect
(
text_server_protocol
.
textContent
+
url
)
presenter
.
connect
(
"${protocol}${url.sanitize()}"
)
}
}
}
}
}
}
...
@@ -149,7 +194,7 @@ class ServerFragment : Fragment(), ServerView {
...
@@ -149,7 +194,7 @@ class ServerFragment : Fragment(), ServerView {
ui
{
ui
{
button_connect
.
setOnClickListener
{
button_connect
.
setOnClickListener
{
val
url
=
text_server_url
.
textContent
.
ifEmpty
(
text_server_url
.
hintContent
)
val
url
=
text_server_url
.
textContent
.
ifEmpty
(
text_server_url
.
hintContent
)
presenter
.
checkServer
(
text_server_protocol
.
textContent
+
url
)
presenter
.
checkServer
(
"${protocol}${url.sanitize()}"
)
}
}
}
}
}
}
...
...
app/src/main/java/chat/rocket/android/server/presentation/CheckServerPresenter.kt
View file @
418d6429
...
@@ -7,6 +7,7 @@ import chat.rocket.android.server.infraestructure.RocketChatClientFactory
...
@@ -7,6 +7,7 @@ import chat.rocket.android.server.infraestructure.RocketChatClientFactory
import
chat.rocket.android.util.VersionInfo
import
chat.rocket.android.util.VersionInfo
import
chat.rocket.android.util.extensions.launchUI
import
chat.rocket.android.util.extensions.launchUI
import
chat.rocket.android.util.retryIO
import
chat.rocket.android.util.retryIO
import
chat.rocket.common.RocketChatInvalidProtocolException
import
chat.rocket.core.RocketChatClient
import
chat.rocket.core.RocketChatClient
import
chat.rocket.core.internal.rest.serverInfo
import
chat.rocket.core.internal.rest.serverInfo
import
kotlinx.coroutines.experimental.Deferred
import
kotlinx.coroutines.experimental.Deferred
...
@@ -42,6 +43,14 @@ abstract class CheckServerPresenter constructor(private val strategy: CancelStra
...
@@ -42,6 +43,14 @@ abstract class CheckServerPresenter constructor(private val strategy: CancelStra
}
}
}
catch
(
ex
:
Exception
)
{
}
catch
(
ex
:
Exception
)
{
Timber
.
d
(
ex
,
"Error getting server info"
)
Timber
.
d
(
ex
,
"Error getting server info"
)
when
(
ex
)
{
is
RocketChatInvalidProtocolException
->
{
view
.
errorInvalidProtocol
()
}
else
->
{
view
.
errorCheckingServerVersion
()
}
}
}
}
}
}
}
}
...
...
app/src/main/java/chat/rocket/android/util/extensions/String.kt
View file @
418d6429
...
@@ -4,12 +4,17 @@ import android.util.Patterns
...
@@ -4,12 +4,17 @@ import android.util.Patterns
fun
String
.
removeTrailingSlash
():
String
{
fun
String
.
removeTrailingSlash
():
String
{
return
if
(
isNotEmpty
()
&&
this
[
length
-
1
]
==
'/'
)
{
return
if
(
isNotEmpty
()
&&
this
[
length
-
1
]
==
'/'
)
{
this
.
replace
(
"/+$"
,
""
)
this
.
substring
(
0
,
length
-
1
)
}
else
{
}
else
{
this
this
}
}
}
}
fun
String
.
sanitize
():
String
{
val
tmp
=
this
.
trim
()
return
tmp
.
removeTrailingSlash
()
}
fun
String
.
avatarUrl
(
avatar
:
String
,
isGroupOrChannel
:
Boolean
=
false
,
format
:
String
=
"jpeg"
):
String
{
fun
String
.
avatarUrl
(
avatar
:
String
,
isGroupOrChannel
:
Boolean
=
false
,
format
:
String
=
"jpeg"
):
String
{
return
if
(
isGroupOrChannel
)
{
return
if
(
isGroupOrChannel
)
{
"${removeTrailingSlash()}/avatar/%23${avatar.removeTrailingSlash()}?format=$format"
"${removeTrailingSlash()}/avatar/%23${avatar.removeTrailingSlash()}?format=$format"
...
...
app/src/main/res/layout/fragment_authentication_server.xml
View file @
418d6429
...
@@ -18,24 +18,30 @@
...
@@ -18,24 +18,30 @@
android:id=
"@+id/text_server_url"
android:id=
"@+id/text_server_url"
style=
"@style/Authentication.EditText"
style=
"@style/Authentication.EditText"
android:layout_below=
"@id/text_headline"
android:layout_below=
"@id/text_headline"
android:layout_marginStart=
"-
4
dp"
android:layout_marginStart=
"-
6
dp"
android:layout_marginTop=
"32dp"
android:layout_marginTop=
"32dp"
android:layout_toEndOf=
"@id/
text_server_protocol
"
android:layout_toEndOf=
"@id/
protocol_container
"
android:cursorVisible=
"false"
android:cursorVisible=
"false"
android:hint=
"@string/default_server"
android:hint=
"@string/default_server"
android:imeOptions=
"actionDone"
android:imeOptions=
"actionDone"
android:digits=
"0123456789abcdefghijklmnopqrstuvwxyz.-/:"
android:inputType=
"text|textUri"
android:inputType=
"textUri"
android:paddingEnd=
"0dp"
/>
android:paddingEnd=
"0dp"
android:paddingStart=
"4dp"
/>
<TextView
<FrameLayout
android:id=
"@+id/text_server_protocol"
android:id=
"@+id/protocol_container"
style=
"@style/Authentication.TextView"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:background=
"@drawable/style_edit_text_authentication"
android:layout_marginStart=
"@dimen/screen_edge_left_and_right_margins"
android:layout_below=
"@id/text_headline"
android:layout_below=
"@id/text_headline"
android:layout_marginTop=
"32dp"
android:layout_marginTop=
"32dp"
>
android:gravity=
"center_vertical"
<Spinner
android:text=
"@string/default_protocol"
/>
android:id=
"@+id/text_server_protocol"
android:spinnerMode=
"dropdown"
android:layout_width=
"120dp"
android:layout_height=
"50dp"
android:backgroundTint=
"@color/actionMenuColor"
/>
</FrameLayout>
<com.wang.avi.AVLoadingIndicatorView
<com.wang.avi.AVLoadingIndicatorView
android:id=
"@+id/view_loading"
android:id=
"@+id/view_loading"
...
...
app/src/main/res/values-hi-rIN/strings.xml
View file @
418d6429
<resources>
<resources
xmlns:tools=
"http://schemas.android.com/tools"
tools:ignore=
"MissingTranslation"
>
<!-- Titles -->
<!-- Titles -->
<string
name=
"title_sign_in_your_server"
>
अपने सर्वर में साइन इन करें
</string>
<string
name=
"title_sign_in_your_server"
>
अपने सर्वर में साइन इन करें
</string>
...
...
app/src/main/res/values-pt-rBR/strings.xml
View file @
418d6429
...
@@ -89,6 +89,12 @@
...
@@ -89,6 +89,12 @@
<string
name=
"msg_ver_not_minimum"
>
<string
name=
"msg_ver_not_minimum"
>
Parece que a versão do seu servidor está abaixo da mínima requerida %1$s.\nPor favor, atualize seus servidores antes de continuar!
Parece que a versão do seu servidor está abaixo da mínima requerida %1$s.\nPor favor, atualize seus servidores antes de continuar!
</string>
</string>
<string
name=
"msg_proceed"
>
CONTINUAR
</string>
<string
name=
"msg_cancel"
>
CANCELAR
</string>
<string
name=
"msg_warning"
>
AVISO
</string>
<string
name=
"msg_http_insecure"
>
Usando HTTP, você estará conectando a um servidor não seguro, não recomendamos sua utilização.
</string>
<string
name=
"msg_error_checking_server_version"
>
Ocorreu um erro verificando a versão do servidor, por favor tente novamente
</string>
<string
name=
"msg_invalid_server_protocol"
>
O protocolo selecionado não é suportado pelo servidor, por favor utilize HTTPS e tente novamente
</string>
<!-- System messages -->
<!-- System messages -->
<string
name=
"message_room_name_changed"
>
Nome da sala alterado para: %1$s por %2$s
</string>
<string
name=
"message_room_name_changed"
>
Nome da sala alterado para: %1$s por %2$s
</string>
...
...
app/src/main/res/values/strings.xml
View file @
418d6429
...
@@ -90,6 +90,12 @@
...
@@ -90,6 +90,12 @@
<string
name=
"msg_ver_not_minimum"
>
<string
name=
"msg_ver_not_minimum"
>
Looks like your server version is below the minimum required version %1$s.\nPlease upgrade your server to login!
Looks like your server version is below the minimum required version %1$s.\nPlease upgrade your server to login!
</string>
</string>
<string
name=
"msg_proceed"
>
PROCEED
</string>
<string
name=
"msg_cancel"
>
CANCEL
</string>
<string
name=
"msg_warning"
>
WARNING
</string>
<string
name=
"msg_http_insecure"
>
When using HTTP, you\'re connecting to an insecure server. We don\'t recommend you doing that.
</string>
<string
name=
"msg_error_checking_server_version"
>
An error has occurred while checking your server version, please try again
</string>
<string
name=
"msg_invalid_server_protocol"
>
The selected protocol is not accepted by this server, try using HTTPS
</string>
<!-- System messages -->
<!-- System messages -->
<string
name=
"message_room_name_changed"
>
Room name changed to: %1$s by %2$s
</string>
<string
name=
"message_room_name_changed"
>
Room name changed to: %1$s by %2$s
</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