mirror of
https://github.com/SchildiChat/SchildiChat-android.git
synced 2025-02-16 12:00:03 +03:00
Clean files
This commit is contained in:
parent
64cfd4d81a
commit
959b679086
31 changed files with 89 additions and 102 deletions
|
@ -154,7 +154,12 @@ class RxSession(private val session: Session) {
|
|||
}
|
||||
}
|
||||
|
||||
fun liveRoomWidgets(roomId: String, widgetId: QueryStringValue, widgetTypes: Set<String>? = null, excludedTypes: Set<String>? = null): Observable<List<Widget>> {
|
||||
fun liveRoomWidgets(
|
||||
roomId: String,
|
||||
widgetId: QueryStringValue,
|
||||
widgetTypes: Set<String>? = null,
|
||||
excludedTypes: Set<String>? = null
|
||||
): Observable<List<Widget>> {
|
||||
return session.widgetService().getRoomWidgetsLive(roomId, widgetId, widgetTypes, excludedTypes).asObservable()
|
||||
.startWithCallable {
|
||||
session.widgetService().getRoomWidgets(roomId, widgetId, widgetTypes, excludedTypes)
|
||||
|
|
|
@ -18,21 +18,20 @@ package im.vector.matrix.android.api.session.integrationmanager
|
|||
|
||||
import im.vector.matrix.android.api.MatrixCallback
|
||||
import im.vector.matrix.android.api.util.Cancelable
|
||||
import im.vector.matrix.android.internal.session.integrationmanager.IntegrationManager
|
||||
|
||||
interface IntegrationManagerService {
|
||||
|
||||
interface Listener {
|
||||
fun onIsEnabledChanged(enabled: Boolean) {
|
||||
//No-op
|
||||
// No-op
|
||||
}
|
||||
|
||||
fun onConfigurationChanged(configs: List<IntegrationManagerConfig>) {
|
||||
//No-op
|
||||
// No-op
|
||||
}
|
||||
|
||||
fun onWidgetPermissionsChanged(widgets: Map<String, Boolean>) {
|
||||
//No-op
|
||||
// No-op
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -27,5 +27,4 @@ interface WidgetURLFormatter {
|
|||
forceFetchScalarToken: Boolean = false,
|
||||
bypassWhitelist: Boolean
|
||||
): String
|
||||
|
||||
}
|
||||
|
|
|
@ -18,7 +18,6 @@ package im.vector.matrix.android.api.session.widgets.model
|
|||
|
||||
import im.vector.matrix.android.api.session.events.model.Event
|
||||
import im.vector.matrix.android.api.session.room.sender.SenderInfo
|
||||
import im.vector.matrix.android.api.session.widgets.model.WidgetContent
|
||||
|
||||
data class Widget(
|
||||
val widgetContent: WidgetContent,
|
||||
|
@ -34,4 +33,3 @@ data class Widget(
|
|||
|
||||
val name = widgetContent.getHumanName()
|
||||
}
|
||||
|
||||
|
|
|
@ -34,7 +34,7 @@ sealed class WidgetType(open val preferred: String, open val legacy: String) {
|
|||
return type == preferred || type == legacy
|
||||
}
|
||||
|
||||
fun values(): Set<String>{
|
||||
fun values(): Set<String> {
|
||||
return setOf(preferred, legacy)
|
||||
}
|
||||
|
|
@ -25,5 +25,4 @@ internal open class ScalarTokenEntity(
|
|||
) : RealmObject() {
|
||||
|
||||
companion object
|
||||
|
||||
}
|
||||
|
|
|
@ -32,7 +32,6 @@ internal class IntegrationManagerConfigExtractor @Inject constructor() {
|
|||
if (apiUrl != null
|
||||
&& apiUrl.startsWith("https://")
|
||||
&& uiUrl!!.startsWith("https://")) {
|
||||
|
||||
return WellknownIntegrationManagerConfigEntity(
|
||||
apiUrl = apiUrl,
|
||||
uiUrl = uiUrl
|
||||
|
|
|
@ -20,7 +20,6 @@ import im.vector.matrix.android.api.pushrules.ContainsDisplayNameCondition
|
|||
import im.vector.matrix.android.api.pushrules.EventMatchCondition
|
||||
import im.vector.matrix.android.api.pushrules.RoomMemberCountCondition
|
||||
import im.vector.matrix.android.api.pushrules.SenderNotificationPermissionCondition
|
||||
import im.vector.matrix.android.api.query.QueryStringValue
|
||||
import im.vector.matrix.android.api.session.events.model.Event
|
||||
import im.vector.matrix.android.api.session.events.model.EventType
|
||||
import im.vector.matrix.android.api.session.events.model.toModel
|
||||
|
|
|
@ -57,7 +57,6 @@ import im.vector.matrix.android.api.session.room.model.relation.RelationDefaultC
|
|||
import im.vector.matrix.android.api.session.room.model.relation.ReplyToContent
|
||||
import im.vector.matrix.android.api.session.room.timeline.TimelineEvent
|
||||
import im.vector.matrix.android.api.session.room.timeline.getLastMessageContent
|
||||
import im.vector.matrix.android.api.util.JsonDict
|
||||
import im.vector.matrix.android.internal.di.UserId
|
||||
import im.vector.matrix.android.internal.extensions.subStringBetween
|
||||
import im.vector.matrix.android.internal.session.content.ThumbnailExtractor
|
||||
|
|
|
@ -19,7 +19,6 @@ package im.vector.matrix.android.internal.session.widgets
|
|||
import com.zhuinden.monarchy.Monarchy
|
||||
import im.vector.matrix.android.api.session.events.model.Content
|
||||
import im.vector.matrix.android.api.session.events.model.EventType
|
||||
import im.vector.matrix.android.api.session.widgets.WidgetService
|
||||
import im.vector.matrix.android.internal.database.awaitNotEmptyResult
|
||||
import im.vector.matrix.android.internal.database.model.CurrentStateEventEntity
|
||||
import im.vector.matrix.android.internal.database.model.CurrentStateEventEntityFields
|
||||
|
|
|
@ -30,7 +30,8 @@ import java.util.HashMap
|
|||
import javax.inject.Inject
|
||||
|
||||
internal class DefaultWidgetPostAPIMediator @Inject constructor(private val moshi: Moshi,
|
||||
private val widgetPostMessageAPIProvider: WidgetPostMessageAPIProvider) : WidgetPostAPIMediator {
|
||||
private val widgetPostMessageAPIProvider: WidgetPostMessageAPIProvider)
|
||||
: WidgetPostAPIMediator {
|
||||
|
||||
private val jsonAdapter = moshi.adapter<JsonDict>(JSON_DICT_PARAMETERIZED_TYPE)
|
||||
|
||||
|
|
|
@ -29,7 +29,8 @@ import javax.inject.Inject
|
|||
|
||||
internal class DefaultWidgetService @Inject constructor(private val widgetManager: WidgetManager,
|
||||
private val widgetURLFormatter: WidgetURLFormatter,
|
||||
private val widgetPostAPIMediator: WidgetPostAPIMediator) : WidgetService {
|
||||
private val widgetPostAPIMediator: WidgetPostAPIMediator)
|
||||
: WidgetService {
|
||||
|
||||
override fun getWidgetURLFormatter(): WidgetURLFormatter {
|
||||
return widgetURLFormatter
|
||||
|
@ -39,27 +40,52 @@ internal class DefaultWidgetService @Inject constructor(private val widgetManage
|
|||
return widgetPostAPIMediator
|
||||
}
|
||||
|
||||
override fun getRoomWidgets(roomId: String, widgetId: QueryStringValue, widgetTypes: Set<String>?, excludedTypes: Set<String>?): List<Widget> {
|
||||
override fun getRoomWidgets(
|
||||
roomId: String,
|
||||
widgetId: QueryStringValue,
|
||||
widgetTypes: Set<String>?,
|
||||
excludedTypes: Set<String>?
|
||||
): List<Widget> {
|
||||
return widgetManager.getRoomWidgets(roomId, widgetId, widgetTypes, excludedTypes)
|
||||
}
|
||||
|
||||
override fun getRoomWidgetsLive(roomId: String, widgetId: QueryStringValue, widgetTypes: Set<String>?, excludedTypes: Set<String>?): LiveData<List<Widget>> {
|
||||
override fun getRoomWidgetsLive(
|
||||
roomId: String,
|
||||
widgetId: QueryStringValue,
|
||||
widgetTypes: Set<String>?,
|
||||
excludedTypes: Set<String>?
|
||||
): LiveData<List<Widget>> {
|
||||
return widgetManager.getRoomWidgetsLive(roomId, widgetId, widgetTypes, excludedTypes)
|
||||
}
|
||||
|
||||
override fun getUserWidgetsLive(widgetTypes: Set<String>?, excludedTypes: Set<String>?): LiveData<List<Widget>> {
|
||||
override fun getUserWidgetsLive(
|
||||
widgetTypes: Set<String>?,
|
||||
excludedTypes: Set<String>?
|
||||
): LiveData<List<Widget>> {
|
||||
return widgetManager.getUserWidgetsLive(widgetTypes, excludedTypes)
|
||||
}
|
||||
|
||||
override fun getUserWidgets(widgetTypes: Set<String>?, excludedTypes: Set<String>?): List<Widget> {
|
||||
override fun getUserWidgets(
|
||||
widgetTypes: Set<String>?,
|
||||
excludedTypes: Set<String>?
|
||||
): List<Widget> {
|
||||
return widgetManager.getUserWidgets(widgetTypes, excludedTypes)
|
||||
}
|
||||
|
||||
override fun createRoomWidget(roomId: String, widgetId: String, content: Content, callback: MatrixCallback<Widget>): Cancelable {
|
||||
override fun createRoomWidget(
|
||||
roomId: String,
|
||||
widgetId: String,
|
||||
content: Content,
|
||||
callback: MatrixCallback<Widget>
|
||||
): Cancelable {
|
||||
return widgetManager.createRoomWidget(roomId, widgetId, content, callback)
|
||||
}
|
||||
|
||||
override fun destroyRoomWidget(roomId: String, widgetId: String, callback: MatrixCallback<Unit>): Cancelable {
|
||||
override fun destroyRoomWidget(
|
||||
roomId: String,
|
||||
widgetId: String,
|
||||
callback: MatrixCallback<Unit>
|
||||
): Cancelable {
|
||||
return widgetManager.destroyRoomWidget(roomId, widgetId, callback)
|
||||
}
|
||||
|
||||
|
|
|
@ -113,5 +113,3 @@ internal class DefaultWidgetURLFormatter @Inject constructor(private val integra
|
|||
return this
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -75,7 +75,11 @@ internal class WidgetManager @Inject constructor(private val integrationManager:
|
|||
excludedTypes: Set<String>? = null
|
||||
): LiveData<List<Widget>> {
|
||||
// Get all im.vector.modular.widgets state events in the room
|
||||
val liveWidgetEvents = stateEventDataSource.getStateEventsLive(roomId, setOf(EventType.STATE_ROOM_WIDGET, EventType.STATE_ROOM_WIDGET_LEGACY), widgetId)
|
||||
val liveWidgetEvents = stateEventDataSource.getStateEventsLive(
|
||||
roomId = roomId,
|
||||
eventTypes = setOf(EventType.STATE_ROOM_WIDGET, EventType.STATE_ROOM_WIDGET_LEGACY),
|
||||
stateKey = widgetId
|
||||
)
|
||||
return Transformations.map(liveWidgetEvents) { widgetEvents ->
|
||||
widgetEvents.mapEventsToWidgets(widgetTypes, excludedTypes)
|
||||
}
|
||||
|
@ -88,7 +92,11 @@ internal class WidgetManager @Inject constructor(private val integrationManager:
|
|||
excludedTypes: Set<String>? = null
|
||||
): List<Widget> {
|
||||
// Get all im.vector.modular.widgets state events in the room
|
||||
val widgetEvents: List<Event> = stateEventDataSource.getStateEvents(roomId, setOf(EventType.STATE_ROOM_WIDGET, EventType.STATE_ROOM_WIDGET_LEGACY), widgetId)
|
||||
val widgetEvents: List<Event> = stateEventDataSource.getStateEvents(
|
||||
roomId = roomId,
|
||||
eventTypes = setOf(EventType.STATE_ROOM_WIDGET, EventType.STATE_ROOM_WIDGET_LEGACY),
|
||||
stateKey = widgetId
|
||||
)
|
||||
return widgetEvents.mapEventsToWidgets(widgetTypes, excludedTypes)
|
||||
}
|
||||
|
||||
|
@ -183,7 +191,11 @@ internal class WidgetManager @Inject constructor(private val integrationManager:
|
|||
}
|
||||
|
||||
fun hasPermissionsToHandleWidgets(roomId: String): Boolean {
|
||||
val powerLevelsEvent = stateEventDataSource.getStateEvent(roomId, EventType.STATE_ROOM_POWER_LEVELS, QueryStringValue.NoCondition)
|
||||
val powerLevelsEvent = stateEventDataSource.getStateEvent(
|
||||
roomId = roomId,
|
||||
eventType = EventType.STATE_ROOM_POWER_LEVELS,
|
||||
stateKey = QueryStringValue.NoCondition
|
||||
)
|
||||
val powerLevelsContent = powerLevelsEvent?.content?.toModel<PowerLevelsContent>() ?: return false
|
||||
return PowerLevelsHelper(powerLevelsContent).isAllowedToSend(true, null, userId)
|
||||
}
|
||||
|
|
|
@ -34,4 +34,4 @@ internal interface WidgetsAPI {
|
|||
|
||||
@GET("account")
|
||||
fun validateToken(@Query("scalar_token") scalarToken: String?, @Query("v") version: String?): Call<Unit>
|
||||
}
|
||||
}
|
||||
|
|
|
@ -516,5 +516,4 @@ interface FragmentModule {
|
|||
@IntoMap
|
||||
@FragmentKey(WidgetFragment::class)
|
||||
fun bindWidgetFragment(fragment: WidgetFragment): Fragment
|
||||
|
||||
}
|
||||
|
|
|
@ -17,7 +17,6 @@
|
|||
package im.vector.riotx.features.attachments
|
||||
|
||||
import im.vector.matrix.android.api.session.content.ContentAttachmentData
|
||||
import im.vector.matrix.android.api.session.room.model.message.MessageStickerContent
|
||||
import im.vector.riotx.multipicker.entity.MultiPickerAudioType
|
||||
import im.vector.riotx.multipicker.entity.MultiPickerBaseType
|
||||
import im.vector.riotx.multipicker.entity.MultiPickerContactType
|
||||
|
|
|
@ -243,7 +243,6 @@ class DefaultNavigator @Inject constructor(
|
|||
context.startActivity(WidgetActivity.newIntent(context, widgetArgs))
|
||||
}
|
||||
|
||||
|
||||
override fun openImageViewer(activity: Activity, mediaData: ImageContentRenderer.Data, view: View, options: ((MutableList<Pair<View, String>>) -> Unit)?) {
|
||||
val intent = ImageMediaViewerActivity.newIntent(activity, mediaData, ViewCompat.getTransitionName(view))
|
||||
val pairs = ArrayList<Pair<View, String>>()
|
||||
|
@ -277,4 +276,3 @@ class DefaultNavigator @Inject constructor(
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -94,5 +94,4 @@ interface Navigator {
|
|||
fun openImageViewer(activity: Activity, mediaData: ImageContentRenderer.Data, view: View, options: ((MutableList<Pair<View, String>>) -> Unit)?)
|
||||
|
||||
fun openVideoViewer(activity: Activity, mediaData: VideoContentRenderer.Data)
|
||||
|
||||
}
|
||||
|
|
|
@ -213,7 +213,7 @@ class VectorSettingsGeneralFragment : VectorSettingsBaseFragment() {
|
|||
|
||||
(findPreference(VectorPreferences.SETTINGS_ALLOW_INTEGRATIONS_KEY) as? VectorSwitchPreference)?.let {
|
||||
it.onPreferenceChangeListener = Preference.OnPreferenceChangeListener { _, newValue ->
|
||||
//Disable it while updating the state, will be re-enabled by the account data listener.
|
||||
// Disable it while updating the state, will be re-enabled by the account data listener.
|
||||
it.isEnabled = false
|
||||
session.integrationManagerService().setIntegrationEnabled(newValue as Boolean, NoOpMatrixCallback())
|
||||
true
|
||||
|
|
|
@ -23,8 +23,8 @@ interface WebViewEventListener {
|
|||
*
|
||||
* @param url The url about to be rendered.
|
||||
*/
|
||||
fun pageWillStart(url: String){
|
||||
//NO-OP
|
||||
fun pageWillStart(url: String) {
|
||||
// NO-OP
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -32,8 +32,8 @@ interface WebViewEventListener {
|
|||
*
|
||||
* @param url The rendering url.
|
||||
*/
|
||||
fun onPageStarted(url: String){
|
||||
//NO-OP
|
||||
fun onPageStarted(url: String) {
|
||||
// NO-OP
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -41,8 +41,8 @@ interface WebViewEventListener {
|
|||
*
|
||||
* @param url The finished url.
|
||||
*/
|
||||
fun onPageFinished(url: String){
|
||||
//NO-OP
|
||||
fun onPageFinished(url: String) {
|
||||
// NO-OP
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -52,8 +52,8 @@ interface WebViewEventListener {
|
|||
* @param errorCode The error code.
|
||||
* @param description The error description.
|
||||
*/
|
||||
fun onPageError(url: String, errorCode: Int, description: String){
|
||||
//NO-OP
|
||||
fun onPageError(url: String, errorCode: Int, description: String) {
|
||||
// NO-OP
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -63,8 +63,8 @@ interface WebViewEventListener {
|
|||
* @param errorCode The error code.
|
||||
* @param description The error description.
|
||||
*/
|
||||
fun onHttpError(url: String, errorCode: Int, description: String){
|
||||
//NO-OP
|
||||
fun onHttpError(url: String, errorCode: Int, description: String) {
|
||||
// NO-OP
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -73,7 +73,7 @@ interface WebViewEventListener {
|
|||
* @param url The url about to be rendered.
|
||||
* @return true if the method needs to manage some custom handling
|
||||
*/
|
||||
fun shouldOverrideUrlLoading(url: String): Boolean{
|
||||
fun shouldOverrideUrlLoading(url: String): Boolean {
|
||||
return false
|
||||
}
|
||||
}
|
||||
|
|
|
@ -61,7 +61,7 @@ class WidgetArgsBuilder @Inject constructor(private val sessionHolder: ActiveSes
|
|||
|
||||
fun buildRoomWidgetArgs(roomId: String, widget: Widget): WidgetArgs {
|
||||
val widgetId = widget.widgetId
|
||||
val baseUrl = widget.computedUrl?: throw IllegalStateException()
|
||||
val baseUrl = widget.computedUrl ?: throw IllegalStateException()
|
||||
return WidgetArgs(
|
||||
baseUrl = baseUrl,
|
||||
kind = WidgetKind.ROOM,
|
||||
|
|
|
@ -171,7 +171,7 @@ class WidgetFragment @Inject constructor() : VectorBaseFragment(), WebViewEventL
|
|||
Timber.v("Invalidate state: $state")
|
||||
when (state.status) {
|
||||
WidgetStatus.UNKNOWN -> {
|
||||
//Hide all?
|
||||
// Hide all?
|
||||
widgetWebView.isVisible = false
|
||||
}
|
||||
WidgetStatus.WIDGET_NOT_ALLOWED -> {
|
||||
|
@ -211,7 +211,7 @@ class WidgetFragment @Inject constructor() : VectorBaseFragment(), WebViewEventL
|
|||
}
|
||||
}
|
||||
is Fail -> {
|
||||
//we need to show Error
|
||||
// we need to show Error
|
||||
widgetWebView.isInvisible = true
|
||||
widgetProgressBar.isVisible = false
|
||||
setStateError(state.formattedURL.error.message)
|
||||
|
|
|
@ -357,7 +357,7 @@ class WidgetPostAPIHandler @AssistedInject constructor(@Assisted private val roo
|
|||
val level = eventData["level"] as Int
|
||||
if (level >= 0) {
|
||||
// TODO
|
||||
//room.updateUserPowerLevels(userId, level, WidgetApiCallback(eventData, description))
|
||||
// room.updateUserPowerLevels(userId, level, WidgetApiCallback(eventData, description))
|
||||
} else {
|
||||
Timber.e("## setBotPower() : Power level must be positive integer.")
|
||||
widgetPostAPIMediator.sendError(stringProvider.getString(R.string.widget_integration_positive_power_level), eventData)
|
||||
|
@ -458,5 +458,3 @@ class WidgetPostAPIHandler @AssistedInject constructor(@Assisted private val roo
|
|||
return WidgetAPICallback(widgetPostAPIMediator, eventData, stringProvider)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -178,7 +178,6 @@ class WidgetViewModel @AssistedInject constructor(@Assisted val initialState: Wi
|
|||
} catch (failure: Throwable) {
|
||||
_viewEvents.post(WidgetViewEvents.Failure(failure))
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -191,7 +190,10 @@ class WidgetViewModel @AssistedInject constructor(@Assisted val initialState: Wi
|
|||
setWidgetStatus(WidgetStatus.WIDGET_NOT_ALLOWED)
|
||||
return
|
||||
}
|
||||
val roomWidget = widgetService.getRoomWidgets(initialState.roomId, widgetId = QueryStringValue.Equals(widgetId, QueryStringValue.Case.SENSITIVE)).firstOrNull()
|
||||
val roomWidget = widgetService.getRoomWidgets(
|
||||
roomId = initialState.roomId,
|
||||
widgetId = QueryStringValue.Equals(widgetId, QueryStringValue.Case.SENSITIVE)
|
||||
).firstOrNull()
|
||||
if (roomWidget == null) {
|
||||
setWidgetStatus(WidgetStatus.WIDGET_NOT_ALLOWED)
|
||||
return
|
||||
|
|
|
@ -103,14 +103,14 @@ class RoomWidgetPermissionBottomSheet : VectorBaseBottomSheetDialogFragment() {
|
|||
@OnClick(R.id.bottom_sheet_widget_permission_decline_button)
|
||||
fun doDecline() {
|
||||
viewModel.handle(RoomWidgetPermissionActions.BlockWidget)
|
||||
//optimistic dismiss
|
||||
// optimistic dismiss
|
||||
dismiss()
|
||||
}
|
||||
|
||||
@OnClick(R.id.bottom_sheet_widget_permission_continue_button)
|
||||
fun doAccept() {
|
||||
viewModel.handle(RoomWidgetPermissionActions.AllowWidget)
|
||||
//optimistic dismiss
|
||||
// optimistic dismiss
|
||||
dismiss()
|
||||
}
|
||||
|
||||
|
|
|
@ -55,8 +55,8 @@ class RoomWidgetPermissionViewModel @AssistedInject constructor(@Assisted val in
|
|||
} catch (e: Throwable) {
|
||||
null
|
||||
}
|
||||
//TODO check from widget urls the perms that should be shown?
|
||||
//For now put all
|
||||
// TODO check from widget urls the perms that should be shown?
|
||||
// For now put all
|
||||
val infoShared = listOf(
|
||||
R.string.room_widget_permission_display_name,
|
||||
R.string.room_widget_permission_avatar_url,
|
||||
|
@ -91,7 +91,7 @@ class RoomWidgetPermissionViewModel @AssistedInject constructor(@Assisted val in
|
|||
if (state.permissionData()?.isWebviewWidget.orFalse()) {
|
||||
WidgetPermissionsHelper(integrationManagerService, widgetService).changePermission(state.roomId, widgetId, false)
|
||||
} else {
|
||||
//TODO JITSI
|
||||
// TODO JITSI
|
||||
}
|
||||
} catch (failure: Throwable) {
|
||||
Timber.v("Failure revoking widget: ${state.widgetId}")
|
||||
|
@ -109,7 +109,7 @@ class RoomWidgetPermissionViewModel @AssistedInject constructor(@Assisted val in
|
|||
if (state.permissionData()?.isWebviewWidget.orFalse()) {
|
||||
WidgetPermissionsHelper(integrationManagerService, widgetService).changePermission(state.roomId, widgetId, true)
|
||||
} else {
|
||||
//TODO JITSI
|
||||
// TODO JITSI
|
||||
}
|
||||
} catch (failure: Throwable) {
|
||||
Timber.v("Failure allowing widget: ${state.widgetId}")
|
||||
|
|
|
@ -40,5 +40,3 @@ data class RoomWidgetPermissionViewState(
|
|||
val widgetDomain: String? = null
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -32,12 +32,11 @@ object WebviewPermissionUtils {
|
|||
AlertDialog.Builder(context)
|
||||
.setTitle(title)
|
||||
.setMultiChoiceItems(
|
||||
request.resources.map { webPermissionToHumanReadable(it, context) }.toTypedArray()
|
||||
, null
|
||||
request.resources.map { webPermissionToHumanReadable(it, context) }.toTypedArray(), null
|
||||
) { _, which, isChecked ->
|
||||
allowedPermissions[which] = allowedPermissions[which].first to isChecked
|
||||
}
|
||||
.setPositiveButton(R.string.room_widget_resource_grant_permission) { _, _->
|
||||
.setPositiveButton(R.string.room_widget_resource_grant_permission) { _, _ ->
|
||||
request.grant(allowedPermissions.mapNotNull { perm ->
|
||||
perm.first.takeIf { perm.second }
|
||||
}.toTypedArray())
|
||||
|
@ -56,5 +55,4 @@ object WebviewPermissionUtils {
|
|||
else -> permission
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -1,19 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:id="@+id/rootConstraintLayout"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/message"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="AdminWidgetFragment"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
|
@ -1,18 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:id="@+id/rootConstraintLayout"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/message"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="RoomWidgetsFragment"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
Loading…
Add table
Reference in a new issue