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
16f3a41c
Unverified
Commit
16f3a41c
authored
Apr 20, 2018
by
Rafael Kellermann Streit
Committed by
GitHub
Apr 20, 2018
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #1154 from RocketChat/new/support-http
[NEW] Support HTTP
parents
26a0e865
590dd047
Changes
9
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
111 additions
and
17 deletions
+111
-17
build.gradle
app/build.gradle
+4
-0
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/build.gradle
View file @
16f3a41c
...
@@ -47,6 +47,10 @@ android {
...
@@ -47,6 +47,10 @@ android {
packagingOptions
{
packagingOptions
{
exclude
'META-INF/core.kotlin_module'
exclude
'META-INF/core.kotlin_module'
}
}
lintOptions
{
disable
'MissingTranslation'
}
}
}
dependencies
{
dependencies
{
...
...
app/src/main/java/chat/rocket/android/authentication/server/presentation/VersionCheckView.kt
View file @
16f3a41c
...
@@ -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 @
16f3a41c
...
@@ -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 @
16f3a41c
...
@@ -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 @
16f3a41c
...
@@ -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 @
16f3a41c
...
@@ -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 @
16f3a41c
<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 @
16f3a41c
...
@@ -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 @
16f3a41c
...
@@ -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