Skip to content

Commit 2e52e77

Browse files
Merge pull request RocketChat#61 from RocketChat/develop
merge
2 parents 8fb548e + 9b4af32 commit 2e52e77

File tree

39 files changed

+329
-340
lines changed

39 files changed

+329
-340
lines changed

app/build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@ android {
1616
applicationId "chat.rocket.android"
1717
minSdkVersion versions.minSdk
1818
targetSdkVersion versions.targetSdk
19-
versionCode 2043
20-
versionName "2.6.1"
19+
versionCode 2048
20+
versionName "3.0.0"
2121
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
2222
multiDexEnabled true
2323

Lines changed: 1 addition & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,3 @@
11
package chat.rocket.android.analytics
22

3-
import chat.rocket.android.analytics.event.AuthenticationEvent
4-
import chat.rocket.android.analytics.event.ScreenViewEvent
5-
import chat.rocket.android.analytics.event.SubscriptionTypeEvent
6-
7-
class AnswersAnalytics : Analytics {
8-
9-
override fun logLogin(event: AuthenticationEvent, loginSucceeded: Boolean) {
10-
// Do absolutely nothing
11-
}
12-
13-
override fun logSignUp(event: AuthenticationEvent, signUpSucceeded: Boolean) {
14-
// Do absolutely nothing
15-
}
16-
17-
override fun logScreenView(event: ScreenViewEvent) {
18-
// Do absolutely nothing
19-
}
20-
21-
override fun logMessageSent(event: SubscriptionTypeEvent, serverUrl: String) {
22-
// Do absolutely nothing
23-
}
24-
25-
override fun logMediaUploaded(event: SubscriptionTypeEvent, mimeType: String) {
26-
// Do absolutely nothing
27-
}
28-
29-
override fun logReaction(event: SubscriptionTypeEvent) {
30-
// Do absolutely nothing
31-
}
32-
33-
override fun logServerSwitch(serverUrl: String, serverCount: Int) {
34-
// Do absolutely nothing
35-
}
36-
}
3+
class AnswersAnalytics : Analytics
Lines changed: 1 addition & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,39 +1,6 @@
11
package chat.rocket.android.analytics
22

33
import android.content.Context
4-
import chat.rocket.android.analytics.event.AuthenticationEvent
5-
import chat.rocket.android.analytics.event.ScreenViewEvent
6-
import chat.rocket.android.analytics.event.SubscriptionTypeEvent
74
import javax.inject.Inject
85

9-
class GoogleAnalyticsForFirebase @Inject constructor(val context: Context) :
10-
Analytics {
11-
12-
override fun logLogin(event: AuthenticationEvent, loginSucceeded: Boolean) {
13-
// Do absolutely nothing
14-
}
15-
16-
override fun logSignUp(event: AuthenticationEvent, signUpSucceeded: Boolean) {
17-
// Do absolutely nothing
18-
}
19-
20-
override fun logScreenView(event: ScreenViewEvent) {
21-
// Do absolutely nothing
22-
}
23-
24-
override fun logMessageSent(event: SubscriptionTypeEvent, serverUrl: String) {
25-
// Do absolutely nothing
26-
}
27-
28-
override fun logMediaUploaded(event: SubscriptionTypeEvent, mimeType: String) {
29-
// Do absolutely nothing
30-
}
31-
32-
override fun logReaction(event: SubscriptionTypeEvent) {
33-
// Do absolutely nothing
34-
}
35-
36-
override fun logServerSwitch(serverUrl: String, serverCount: Int) {
37-
// Do absolutely nothing
38-
}
39-
}
6+
class GoogleAnalyticsForFirebase @Inject constructor(val context: Context) : Analytics

app/src/main/java/chat/rocket/android/analytics/Analytics.kt

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -12,51 +12,56 @@ interface Analytics {
1212
* @param event The [AuthenticationEvent] used to log in.
1313
* @param loginSucceeded True if successful logged in, false otherwise.
1414
*/
15-
fun logLogin(event: AuthenticationEvent, loginSucceeded: Boolean)
15+
fun logLogin(event: AuthenticationEvent, loginSucceeded: Boolean) {}
1616

1717
/**
1818
* Logs the sign up event.
1919
*
2020
* @param event The [AuthenticationEvent] used to sign up.
2121
* @param signUpSucceeded True if successful signed up, false otherwise.
2222
*/
23-
fun logSignUp(event: AuthenticationEvent, signUpSucceeded: Boolean)
23+
fun logSignUp(event: AuthenticationEvent, signUpSucceeded: Boolean) {}
2424

2525
/**
2626
* Logs the screen view event.
2727
*
2828
* @param event The [ScreenViewEvent] to log.
2929
*/
30-
fun logScreenView(event: ScreenViewEvent)
30+
fun logScreenView(event: ScreenViewEvent) {}
3131

3232
/**
3333
* Logs the message sent event.
3434
*
3535
* @param event The [SubscriptionTypeEvent] to log.
3636
* @param serverUrl The server URL to log.
3737
*/
38-
fun logMessageSent(event: SubscriptionTypeEvent, serverUrl: String)
38+
fun logMessageSent(event: SubscriptionTypeEvent, serverUrl: String) {}
3939

4040
/**
4141
* Logs the media upload event.
4242
*
4343
* @param event The [SubscriptionTypeEvent] to log.
4444
* @param mimeType The mime type of the media uploaded to log.
4545
*/
46-
fun logMediaUploaded(event: SubscriptionTypeEvent, mimeType: String)
46+
fun logMediaUploaded(event: SubscriptionTypeEvent, mimeType: String) {}
4747

4848
/**
4949
* Logs the reaction event.
5050
*
5151
* @param event The [SubscriptionTypeEvent] to log.
5252
*/
53-
fun logReaction(event: SubscriptionTypeEvent)
53+
fun logReaction(event: SubscriptionTypeEvent) {}
5454

5555
/**
5656
* Logs the server switch event.
5757
*
5858
* @param serverUrl The server URL to log.
5959
* @param serverCount The number of server(s) the use own.
6060
*/
61-
fun logServerSwitch(serverUrl: String, serverCount: Int)
61+
fun logServerSwitch(serverUrl: String, serverCount: Int) {}
62+
63+
/**
64+
* Logs the admin opening.
65+
*/
66+
fun logOpenAdmin() {}
6267
}

app/src/main/java/chat/rocket/android/analytics/AnalyticsManager.kt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,4 +64,10 @@ class AnalyticsManager @Inject constructor(
6464
analytics.forEach { it.logServerSwitch(serverUrl, accounts.size) }
6565
}
6666
}
67+
68+
fun logOpenAdmin() {
69+
if (analyticsTrackingInteractor.get()) {
70+
analytics.forEach { it.logOpenAdmin() }
71+
}
72+
}
6773
}

app/src/main/java/chat/rocket/android/authentication/loginoptions/presentation/LoginOptionsPresenter.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,19 +68,22 @@ class LoginOptionsPresenter @Inject constructor(
6868
fun toLoginWithEmail() = navigator.toLogin(currentServer)
6969

7070
fun authenticateWithOauth(oauthToken: String, oauthSecret: String) {
71+
setupConnectionInfo(currentServer)
7172
credentialToken = oauthToken
7273
credentialSecret = oauthSecret
7374
loginMethod = AuthenticationEvent.AuthenticationWithOauth
7475
doAuthentication(TYPE_LOGIN_OAUTH)
7576
}
7677

7778
fun authenticateWithCas(casToken: String) {
79+
setupConnectionInfo(currentServer)
7880
credentialToken = casToken
7981
loginMethod = AuthenticationEvent.AuthenticationWithCas
8082
doAuthentication(TYPE_LOGIN_CAS)
8183
}
8284

8385
fun authenticateWithSaml(samlToken: String) {
86+
setupConnectionInfo(currentServer)
8487
credentialToken = samlToken
8588
loginMethod = AuthenticationEvent.AuthenticationWithSaml
8689
doAuthentication(TYPE_LOGIN_SAML)

app/src/main/java/chat/rocket/android/authentication/loginoptions/ui/LoginOptionsFragment.kt

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import android.view.View
99
import android.view.ViewGroup
1010
import android.widget.Button
1111
import android.widget.LinearLayout
12+
import androidx.appcompat.view.ContextThemeWrapper
1213
import androidx.core.view.isVisible
1314
import androidx.fragment.app.Fragment
1415
import chat.rocket.android.R
@@ -18,11 +19,7 @@ import chat.rocket.android.authentication.domain.model.LoginDeepLinkInfo
1819
import chat.rocket.android.authentication.loginoptions.presentation.LoginOptionsPresenter
1920
import chat.rocket.android.authentication.loginoptions.presentation.LoginOptionsView
2021
import chat.rocket.android.authentication.ui.AuthenticationActivity
21-
import chat.rocket.android.util.extensions.clearLightStatusBar
22-
import chat.rocket.android.util.extensions.inflate
23-
import chat.rocket.android.util.extensions.rotateBy
24-
import chat.rocket.android.util.extensions.showToast
25-
import chat.rocket.android.util.extensions.ui
22+
import chat.rocket.android.util.extensions.*
2623
import chat.rocket.android.webview.oauth.ui.INTENT_OAUTH_CREDENTIAL_SECRET
2724
import chat.rocket.android.webview.oauth.ui.INTENT_OAUTH_CREDENTIAL_TOKEN
2825
import chat.rocket.android.webview.oauth.ui.oauthWebViewIntent
@@ -290,7 +287,6 @@ class LoginOptionsFragment : Fragment(), LoginOptionsView {
290287
}
291288
}
292289

293-
294290
// OAuth Accounts.
295291
override fun enableLoginByFacebook() = enableAccountButton(button_facebook)
296292

@@ -337,8 +333,8 @@ class LoginOptionsFragment : Fragment(), LoginOptionsView {
337333
buttonColor: Int
338334
) {
339335
val button = getCustomServiceButton(serviceName, serviceNameColor, buttonColor)
340-
accounts_container.addView(button)
341336
setupButtonListener(button, customOauthUrl, state, REQUEST_CODE_FOR_OAUTH)
337+
accounts_container.addView(button)
342338
}
343339

344340
// SAML account.
@@ -350,8 +346,8 @@ class LoginOptionsFragment : Fragment(), LoginOptionsView {
350346
buttonColor: Int
351347
) {
352348
val button = getCustomServiceButton(serviceName, serviceNameColor, buttonColor)
353-
accounts_container.addView(button)
354349
setupButtonListener(button, samlUrl, samlToken, REQUEST_CODE_FOR_SAML)
350+
accounts_container.addView(button)
355351
}
356352

357353
override fun showAccountsView() {
@@ -487,7 +483,11 @@ class LoginOptionsFragment : Fragment(), LoginOptionsView {
487483
val marginTop = resources.getDimensionPixelSize(R.dimen.button_account_margin_top)
488484
params.setMargins(0, marginTop, 0, 0)
489485

490-
val button = Button(context)
486+
val button = Button(
487+
ContextThemeWrapper(context, R.style.Authentication_Button),
488+
null,
489+
R.style.Authentication_Button
490+
)
491491
button.layoutParams = params
492492
button.text = buttonText
493493
button.setTextColor(buttonTextColor)

app/src/main/java/chat/rocket/android/authentication/server/ui/ServerFragment.kt

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import android.view.ViewGroup
77
import android.view.ViewTreeObserver
88
import android.widget.AdapterView
99
import android.widget.ArrayAdapter
10+
import android.widget.ScrollView
1011
import android.widget.Toast
1112
import androidx.core.content.ContextCompat
1213
import androidx.core.net.toUri
@@ -52,8 +53,10 @@ class ServerFragment : Fragment(), ServerView {
5253
private var protocol = "https://"
5354
private lateinit var serverUrlDisposable: Disposable
5455
private val layoutListener = ViewTreeObserver.OnGlobalLayoutListener {
55-
text_server_url.isCursorVisible =
56-
KeyboardHelper.isSoftKeyboardShown(scroll_view.rootView)
56+
if (KeyboardHelper.isSoftKeyboardShown(scroll_view.rootView)) {
57+
scroll_view.fullScroll(ScrollView.FOCUS_DOWN)
58+
text_server_url.isCursorVisible = true
59+
}
5760
}
5861

5962
override fun onCreate(savedInstanceState: Bundle?) {

app/src/main/java/chat/rocket/android/authentication/signup/ui/SignupFragment.kt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ import androidx.core.view.ViewCompat
1111
import androidx.core.view.isVisible
1212
import androidx.fragment.app.Fragment
1313
import chat.rocket.android.R
14-
import chat.rocket.android.R.string.message_credentials_saved_successfully
1514
import chat.rocket.android.analytics.AnalyticsManager
1615
import chat.rocket.android.analytics.event.ScreenViewEvent
1716
import chat.rocket.android.authentication.signup.presentation.SignupPresenter
@@ -64,7 +63,7 @@ class SignupFragment : Fragment(), SignupView {
6463
if (resultCode == Activity.RESULT_OK) {
6564
if (data != null) {
6665
if (requestCode == SAVE_CREDENTIALS) {
67-
showMessage(getString(message_credentials_saved_successfully))
66+
showMessage(getString(R.string.message_credentials_saved_successfully))
6867
}
6968
}
7069
}

app/src/main/java/chat/rocket/android/chatinformation/ui/MessageInfoFragment.kt

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import chat.rocket.android.chatinformation.presentation.MessageInfoView
1717
import chat.rocket.android.chatinformation.viewmodel.ReadReceiptViewModel
1818
import chat.rocket.android.util.extensions.setVisible
1919
import chat.rocket.android.util.extensions.showToast
20+
import chat.rocket.android.util.extensions.ui
2021
import dagger.android.support.AndroidSupportInjection
2122
import kotlinx.android.synthetic.main.fragment_message_info.*
2223
import javax.inject.Inject
@@ -84,16 +85,22 @@ class MessageInfoFragment : Fragment(), MessageInfoView {
8485
}
8586

8687
override fun showLoading() {
87-
view_loading.setVisible(true)
88-
view_loading.show()
88+
ui {
89+
view_loading.setVisible(true)
90+
view_loading.show()
91+
}
8992
}
9093

9194
override fun hideLoading() {
92-
view_loading.hide()
93-
view_loading.setVisible(false)
95+
ui {
96+
view_loading.hide()
97+
view_loading.setVisible(false)
98+
}
9499
}
95100

96101
override fun showReadReceipts(messageReceipts: List<ReadReceiptViewModel>) {
97-
adapter.addAll(messageReceipts)
102+
ui {
103+
adapter.addAll(messageReceipts)
104+
}
98105
}
99106
}

0 commit comments

Comments
 (0)