Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
liberty-chat-android
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
12
Issues
12
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Packages & Registries
Packages & Registries
Container Registry
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
liberty
chat
liberty-chat-android
Commits
a7a6595a
Commit
a7a6595a
authored
Nov 15, 2019
by
Valere
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Prompt to accept IM terms if needed
parent
9060afff
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
41 additions
and
1 deletion
+41
-1
vector/src/main/java/im/vector/activity/WidgetActivity.kt
vector/src/main/java/im/vector/activity/WidgetActivity.kt
+5
-0
vector/src/main/java/im/vector/fragments/roomwidgets/RoomWidgetFragment.kt
...ava/im/vector/fragments/roomwidgets/RoomWidgetFragment.kt
+25
-0
vector/src/main/java/im/vector/fragments/roomwidgets/RoomWidgetViewModel.kt
...va/im/vector/fragments/roomwidgets/RoomWidgetViewModel.kt
+11
-1
No files found.
vector/src/main/java/im/vector/activity/WidgetActivity.kt
View file @
a7a6595a
...
...
@@ -18,6 +18,7 @@
package
im.vector.activity
import
android.annotation.SuppressLint
import
android.app.Activity
import
android.content.Context
import
android.content.Intent
import
android.graphics.Color
...
...
@@ -26,9 +27,13 @@ import androidx.core.content.ContextCompat
import
androidx.lifecycle.Observer
import
com.airbnb.mvrx.viewModel
import
im.vector.R
import
im.vector.activity.util.TERMS_REQUEST_CODE
import
im.vector.contacts.ContactsManager
import
im.vector.fragments.roomwidgets.*
import
im.vector.ui.themes.ThemeUtils
import
im.vector.widgets.Widget
import
org.matrix.androidsdk.core.callback.ApiCallback
import
org.matrix.androidsdk.features.terms.TermsManager
/*
* This class displays a widget
...
...
vector/src/main/java/im/vector/fragments/roomwidgets/RoomWidgetFragment.kt
View file @
a7a6595a
...
...
@@ -16,6 +16,8 @@
package
im.vector.fragments.roomwidgets
import
android.annotation.SuppressLint
import
android.app.Activity
import
android.content.Intent
import
android.graphics.Bitmap
import
android.os.Build
import
android.os.Bundle
...
...
@@ -35,9 +37,12 @@ import androidx.lifecycle.Observer
import
butterknife.BindView
import
com.airbnb.mvrx.*
import
im.vector.R
import
im.vector.activity.ReviewTermsActivity
import
im.vector.activity.util.TERMS_REQUEST_CODE
import
im.vector.fragments.VectorBaseMvRxFragment
import
im.vector.ui.themes.ThemeUtils
import
im.vector.util.openUrlInExternalBrowser
import
org.matrix.androidsdk.features.terms.TermsManager
class
RoomWidgetFragment
:
VectorBaseMvRxFragment
()
{
...
...
@@ -67,6 +72,26 @@ class RoomWidgetFragment : VectorBaseMvRxFragment() {
mWidgetWebView
?.
isVisible
=
true
}
})
viewModel
.
termsNotSignedEvent
.
observe
(
this
,
Observer
{
termsEvent
->
termsEvent
?.
getContentIfNotHandled
()
?.
let
{
viewModel
.
widgetsManager
?.
uiUrl
?.
let
{
uiUrl
->
startActivityForResult
(
ReviewTermsActivity
.
intent
(
requireContext
(),
TermsManager
.
ServiceType
.
IntegrationManager
,
uiUrl
,
it
.
token
),
TERMS_REQUEST_CODE
)
}
}
})
}
override
fun
onActivityResult
(
requestCode
:
Int
,
resultCode
:
Int
,
data
:
Intent
?)
{
if
(
requestCode
==
TERMS_REQUEST_CODE
)
{
if
(
resultCode
==
Activity
.
RESULT_OK
)
{
viewModel
.
refreshAfterTermsAccepted
()
}
else
{
viewModel
.
doFinish
()
}
}
}
override
fun
onViewCreated
(
view
:
View
,
savedInstanceState
:
Bundle
?)
{
...
...
vector/src/main/java/im/vector/fragments/roomwidgets/RoomWidgetViewModel.kt
View file @
a7a6595a
...
...
@@ -32,6 +32,7 @@ import org.matrix.androidsdk.core.callback.ApiCallback
import
org.matrix.androidsdk.core.model.MatrixError
import
org.matrix.androidsdk.data.Room
import
org.matrix.androidsdk.features.integrationmanager.IntegrationManager
import
org.matrix.androidsdk.features.terms.TermsNotSignedException
enum
class
WidgetState
{
UNKWNOWN
,
...
...
@@ -64,6 +65,7 @@ class RoomWidgetViewModel(initialState: RoomWidgetViewModelState, val widget: Wi
}
var
navigateEvent
:
MutableLiveData
<
LiveEvent
<
String
>>
=
MutableLiveData
()
var
termsNotSignedEvent
:
MutableLiveData
<
LiveEvent
<
TermsNotSignedException
>>
=
MutableLiveData
()
var
loadWebURLEvent
:
MutableLiveData
<
LiveEvent
<
String
>>
=
MutableLiveData
()
var
toastMessageEvent
:
MutableLiveData
<
LiveEvent
<
String
>>
=
MutableLiveData
()
...
...
@@ -212,6 +214,10 @@ class RoomWidgetViewModel(initialState: RoomWidgetViewModelState, val widget: Wi
navigateEvent
.
postValue
(
LiveEvent
(
NAVIGATE_FINISH
))
}
fun
refreshAfterTermsAccepted
()
{
onWidgetAllowed
()
}
private
fun
onWidgetAllowed
(
applicationContext
:
Context
=
VectorApp
.
getInstance
().
applicationContext
)
{
setState
{
...
...
@@ -251,7 +257,11 @@ class RoomWidgetViewModel(initialState: RoomWidgetViewModelState, val widget: Wi
}
override
fun
onUnexpectedError
(
e
:
Exception
)
{
onError
(
e
.
localizedMessage
)
if
(
e
is
TermsNotSignedException
)
{
termsNotSignedEvent
.
postValue
(
LiveEvent
(
e
))
}
else
{
onError
(
e
.
localizedMessage
)
}
}
})
}
else
{
...
...
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