Handling press on multi signout action from header menu in other sessions section
This commit is contained in:
		
							parent
							
								
									ae4a728358
								
							
						
					
					
						commit
						810c93cef9
					
				@ -22,4 +22,5 @@ import org.matrix.android.sdk.api.session.crypto.model.CryptoDeviceInfo
 | 
			
		||||
sealed class DevicesAction : VectorViewModelAction {
 | 
			
		||||
    object VerifyCurrentSession : DevicesAction()
 | 
			
		||||
    data class MarkAsManuallyVerified(val cryptoDeviceInfo: CryptoDeviceInfo) : DevicesAction()
 | 
			
		||||
    object MultiSignoutOtherSessions : DevicesAction()
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -95,10 +95,12 @@ class DevicesViewModel @AssistedInject constructor(
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    // TODO update unit tests
 | 
			
		||||
    override fun handle(action: DevicesAction) {
 | 
			
		||||
        when (action) {
 | 
			
		||||
            is DevicesAction.VerifyCurrentSession -> handleVerifyCurrentSessionAction()
 | 
			
		||||
            is DevicesAction.MarkAsManuallyVerified -> handleMarkAsManuallyVerifiedAction()
 | 
			
		||||
            DevicesAction.MultiSignoutOtherSessions -> handleMultiSignoutOtherSessions()
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@ -116,4 +118,8 @@ class DevicesViewModel @AssistedInject constructor(
 | 
			
		||||
    private fun handleMarkAsManuallyVerifiedAction() {
 | 
			
		||||
        // TODO implement when needed
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private fun handleMultiSignoutOtherSessions() {
 | 
			
		||||
        // TODO call multi signout use case with all other devices than the current one
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -19,9 +19,11 @@ package im.vector.app.features.settings.devices.v2
 | 
			
		||||
import android.content.Context
 | 
			
		||||
import android.os.Bundle
 | 
			
		||||
import android.view.LayoutInflater
 | 
			
		||||
import android.view.MenuItem
 | 
			
		||||
import android.view.View
 | 
			
		||||
import android.view.ViewGroup
 | 
			
		||||
import androidx.appcompat.app.AppCompatActivity
 | 
			
		||||
import androidx.appcompat.widget.ActionMenuView.OnMenuItemClickListener
 | 
			
		||||
import androidx.core.view.isVisible
 | 
			
		||||
import com.airbnb.mvrx.Success
 | 
			
		||||
import com.airbnb.mvrx.fragmentViewModel
 | 
			
		||||
@ -48,6 +50,7 @@ import im.vector.app.features.settings.devices.v2.list.SESSION_IS_MARKED_AS_INAC
 | 
			
		||||
import im.vector.app.features.settings.devices.v2.list.SecurityRecommendationView
 | 
			
		||||
import im.vector.app.features.settings.devices.v2.list.SecurityRecommendationViewState
 | 
			
		||||
import im.vector.app.features.settings.devices.v2.list.SessionInfoViewState
 | 
			
		||||
import im.vector.app.features.settings.devices.v2.othersessions.OtherSessionsAction
 | 
			
		||||
import org.matrix.android.sdk.api.session.crypto.model.RoomEncryptionTrustLevel
 | 
			
		||||
import javax.inject.Inject
 | 
			
		||||
 | 
			
		||||
@ -136,6 +139,15 @@ class VectorSettingsDevicesFragment :
 | 
			
		||||
    private fun initOtherSessionsHeaderView() {
 | 
			
		||||
        val color = colorProvider.getColorFromAttribute(R.attr.colorError)
 | 
			
		||||
        views.deviceListHeaderOtherSessions.menu.findItem(R.id.otherSessionsHeaderMultiSignout).setTextColor(color)
 | 
			
		||||
        views.deviceListHeaderOtherSessions.setOnMenuItemClickListener { menuItem ->
 | 
			
		||||
            when(menuItem.itemId) {
 | 
			
		||||
                R.id.otherSessionsHeaderMultiSignout -> {
 | 
			
		||||
                    viewModel.handle(DevicesAction.MultiSignoutOtherSessions)
 | 
			
		||||
                    true
 | 
			
		||||
                }
 | 
			
		||||
                else -> false
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private fun initOtherSessionsView() {
 | 
			
		||||
 | 
			
		||||
@ -23,6 +23,7 @@ import android.view.LayoutInflater
 | 
			
		||||
import android.view.Menu
 | 
			
		||||
import android.view.MenuInflater
 | 
			
		||||
import androidx.appcompat.view.menu.MenuBuilder
 | 
			
		||||
import androidx.appcompat.widget.ActionMenuView.OnMenuItemClickListener
 | 
			
		||||
import androidx.constraintlayout.widget.ConstraintLayout
 | 
			
		||||
import androidx.core.content.res.use
 | 
			
		||||
import androidx.core.view.isVisible
 | 
			
		||||
@ -106,4 +107,8 @@ class SessionsListHeaderView @JvmOverloads constructor(
 | 
			
		||||
            menuBuilder?.let { MenuInflater(context).inflate(menuResId, it) }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    fun setOnMenuItemClickListener(listener: OnMenuItemClickListener) {
 | 
			
		||||
        binding.sessionsListHeaderMenu.setOnMenuItemClickListener(listener)
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user