diff --git a/vector/src/main/java/im/vector/riotx/core/platform/VectorBaseBottomSheetDialogFragment.kt b/vector/src/main/java/im/vector/riotx/core/platform/VectorBaseBottomSheetDialogFragment.kt index b3a56f48ee..c066ffff43 100644 --- a/vector/src/main/java/im/vector/riotx/core/platform/VectorBaseBottomSheetDialogFragment.kt +++ b/vector/src/main/java/im/vector/riotx/core/platform/VectorBaseBottomSheetDialogFragment.kt @@ -19,10 +19,16 @@ import android.app.Dialog import android.content.Context import android.os.Bundle import android.os.Parcelable +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup import android.widget.FrameLayout import androidx.annotation.CallSuper +import androidx.annotation.LayoutRes import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.ViewModelProviders +import butterknife.ButterKnife +import butterknife.Unbinder import com.airbnb.mvrx.MvRx import com.airbnb.mvrx.MvRxView import com.airbnb.mvrx.MvRxViewId @@ -43,6 +49,15 @@ abstract class VectorBaseBottomSheetDialogFragment : BottomSheetDialogFragment() final override val mvrxViewId: String by mvrxViewIdProperty private lateinit var screenComponent: ScreenComponent + /* ========================================================================================== + * View + * ========================================================================================== */ + + @LayoutRes + abstract fun getLayoutResId(): Int + + private var unBinder: Unbinder? = null + /* ========================================================================================== * View model * ========================================================================================== */ @@ -67,6 +82,18 @@ abstract class VectorBaseBottomSheetDialogFragment : BottomSheetDialogFragment() open val showExpanded = false + override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { + val view = inflater.inflate(getLayoutResId(), container, false) + unBinder = ButterKnife.bind(this, view) + return view + } + + override fun onDestroyView() { + super.onDestroyView() + unBinder?.unbind() + unBinder = null + } + override fun onAttach(context: Context) { screenComponent = DaggerScreenComponent.factory().create(vectorBaseActivity.getVectorComponent(), vectorBaseActivity) viewModelFactory = screenComponent.viewModelFactory() diff --git a/vector/src/main/java/im/vector/riotx/features/crypto/verification/VerificationBottomSheet.kt b/vector/src/main/java/im/vector/riotx/features/crypto/verification/VerificationBottomSheet.kt index 61598bd5fc..291527a4b3 100644 --- a/vector/src/main/java/im/vector/riotx/features/crypto/verification/VerificationBottomSheet.kt +++ b/vector/src/main/java/im/vector/riotx/features/crypto/verification/VerificationBottomSheet.kt @@ -77,19 +77,7 @@ class VerificationBottomSheet : VectorBaseBottomSheetDialogFragment() { @BindView(R.id.verificationRequestAvatar) lateinit var otherUserAvatarImageView: ImageView - private var unBinder: Unbinder? = null - - override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { - val view = inflater.inflate(R.layout.bottom_sheet_verification, container, false) - unBinder = ButterKnife.bind(this, view) - return view - } - - override fun onDestroyView() { - super.onDestroyView() - unBinder?.unbind() - unBinder = null - } + override fun getLayoutResId() = R.layout.bottom_sheet_verification override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) diff --git a/vector/src/main/java/im/vector/riotx/features/home/room/detail/readreceipts/DisplayReadReceiptsBottomSheet.kt b/vector/src/main/java/im/vector/riotx/features/home/room/detail/readreceipts/DisplayReadReceiptsBottomSheet.kt index 4827c825cb..fe05d032ea 100644 --- a/vector/src/main/java/im/vector/riotx/features/home/room/detail/readreceipts/DisplayReadReceiptsBottomSheet.kt +++ b/vector/src/main/java/im/vector/riotx/features/home/room/detail/readreceipts/DisplayReadReceiptsBottomSheet.kt @@ -18,12 +18,8 @@ package im.vector.riotx.features.home.room.detail.readreceipts import android.os.Bundle import android.os.Parcelable -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup import androidx.recyclerview.widget.RecyclerView import butterknife.BindView -import butterknife.ButterKnife import com.airbnb.mvrx.MvRx import com.airbnb.mvrx.args import im.vector.riotx.R @@ -57,11 +53,7 @@ class DisplayReadReceiptsBottomSheet : VectorBaseBottomSheetDialogFragment() { injector.inject(this) } - override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { - val view = inflater.inflate(R.layout.bottom_sheet_generic_list_with_title, container, false) - ButterKnife.bind(this, view) - return view - } + override fun getLayoutResId() = R.layout.bottom_sheet_generic_list_with_title override fun onActivityCreated(savedInstanceState: Bundle?) { super.onActivityCreated(savedInstanceState) diff --git a/vector/src/main/java/im/vector/riotx/features/home/room/detail/timeline/action/MessageActionsBottomSheet.kt b/vector/src/main/java/im/vector/riotx/features/home/room/detail/timeline/action/MessageActionsBottomSheet.kt index ba772344e0..4fe59a1dec 100644 --- a/vector/src/main/java/im/vector/riotx/features/home/room/detail/timeline/action/MessageActionsBottomSheet.kt +++ b/vector/src/main/java/im/vector/riotx/features/home/room/detail/timeline/action/MessageActionsBottomSheet.kt @@ -16,12 +16,8 @@ package im.vector.riotx.features.home.room.detail.timeline.action import android.os.Bundle -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup import androidx.recyclerview.widget.RecyclerView import butterknife.BindView -import butterknife.ButterKnife import com.airbnb.mvrx.fragmentViewModel import com.airbnb.mvrx.withState import im.vector.riotx.R @@ -53,11 +49,7 @@ class MessageActionsBottomSheet : VectorBaseBottomSheetDialogFragment(), Message injector.inject(this) } - override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { - val view = inflater.inflate(R.layout.bottom_sheet_generic_list, container, false) - ButterKnife.bind(this, view) - return view - } + override fun getLayoutResId() = R.layout.bottom_sheet_generic_list override fun onActivityCreated(savedInstanceState: Bundle?) { super.onActivityCreated(savedInstanceState) diff --git a/vector/src/main/java/im/vector/riotx/features/home/room/detail/timeline/edithistory/ViewEditHistoryBottomSheet.kt b/vector/src/main/java/im/vector/riotx/features/home/room/detail/timeline/edithistory/ViewEditHistoryBottomSheet.kt index 8aa7c8561c..bf3816a030 100644 --- a/vector/src/main/java/im/vector/riotx/features/home/room/detail/timeline/edithistory/ViewEditHistoryBottomSheet.kt +++ b/vector/src/main/java/im/vector/riotx/features/home/room/detail/timeline/edithistory/ViewEditHistoryBottomSheet.kt @@ -16,12 +16,8 @@ package im.vector.riotx.features.home.room.detail.timeline.edithistory import android.os.Bundle -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup import androidx.recyclerview.widget.RecyclerView import butterknife.BindView -import butterknife.ButterKnife import com.airbnb.mvrx.MvRx import com.airbnb.mvrx.fragmentViewModel import com.airbnb.mvrx.withState @@ -57,11 +53,7 @@ class ViewEditHistoryBottomSheet : VectorBaseBottomSheetDialogFragment() { injector.inject(this) } - override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { - val view = inflater.inflate(R.layout.bottom_sheet_generic_list_with_title, container, false) - ButterKnife.bind(this, view) - return view - } + override fun getLayoutResId() = R.layout.bottom_sheet_generic_list_with_title override fun onActivityCreated(savedInstanceState: Bundle?) { super.onActivityCreated(savedInstanceState) diff --git a/vector/src/main/java/im/vector/riotx/features/home/room/detail/timeline/reactions/ViewReactionsBottomSheet.kt b/vector/src/main/java/im/vector/riotx/features/home/room/detail/timeline/reactions/ViewReactionsBottomSheet.kt index 8fddc4c06a..47764edf93 100644 --- a/vector/src/main/java/im/vector/riotx/features/home/room/detail/timeline/reactions/ViewReactionsBottomSheet.kt +++ b/vector/src/main/java/im/vector/riotx/features/home/room/detail/timeline/reactions/ViewReactionsBottomSheet.kt @@ -17,12 +17,8 @@ package im.vector.riotx.features.home.room.detail.timeline.reactions import android.os.Bundle -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup import androidx.recyclerview.widget.RecyclerView import butterknife.BindView -import butterknife.ButterKnife import com.airbnb.mvrx.MvRx import com.airbnb.mvrx.fragmentViewModel import com.airbnb.mvrx.withState @@ -54,11 +50,7 @@ class ViewReactionsBottomSheet : VectorBaseBottomSheetDialogFragment() { injector.inject(this) } - override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { - val view = inflater.inflate(R.layout.bottom_sheet_generic_list_with_title, container, false) - ButterKnife.bind(this, view) - return view - } + override fun getLayoutResId() = R.layout.bottom_sheet_generic_list_with_title override fun onActivityCreated(savedInstanceState: Bundle?) { super.onActivityCreated(savedInstanceState) diff --git a/vector/src/main/java/im/vector/riotx/features/home/room/list/actions/RoomListQuickActionsBottomSheet.kt b/vector/src/main/java/im/vector/riotx/features/home/room/list/actions/RoomListQuickActionsBottomSheet.kt index 1e775a934a..5779b66ad7 100644 --- a/vector/src/main/java/im/vector/riotx/features/home/room/list/actions/RoomListQuickActionsBottomSheet.kt +++ b/vector/src/main/java/im/vector/riotx/features/home/room/list/actions/RoomListQuickActionsBottomSheet.kt @@ -18,12 +18,8 @@ package im.vector.riotx.features.home.room.list.actions import android.os.Bundle import android.os.Parcelable -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup import androidx.recyclerview.widget.RecyclerView import butterknife.BindView -import butterknife.ButterKnife import com.airbnb.mvrx.fragmentViewModel import com.airbnb.mvrx.withState import im.vector.riotx.R @@ -69,11 +65,7 @@ class RoomListQuickActionsBottomSheet : VectorBaseBottomSheetDialogFragment(), R injector.inject(this) } - override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { - val view = inflater.inflate(R.layout.bottom_sheet_generic_list, container, false) - ButterKnife.bind(this, view) - return view - } + override fun getLayoutResId() = R.layout.bottom_sheet_generic_list override fun onActivityCreated(savedInstanceState: Bundle?) { super.onActivityCreated(savedInstanceState) diff --git a/vector/src/main/java/im/vector/riotx/features/workers/signout/SignOutBottomSheetDialogFragment.kt b/vector/src/main/java/im/vector/riotx/features/workers/signout/SignOutBottomSheetDialogFragment.kt index 94c718466f..e1ef7bc07b 100644 --- a/vector/src/main/java/im/vector/riotx/features/workers/signout/SignOutBottomSheetDialogFragment.kt +++ b/vector/src/main/java/im/vector/riotx/features/workers/signout/SignOutBottomSheetDialogFragment.kt @@ -20,7 +20,6 @@ import android.app.Activity import android.app.Dialog import android.content.Intent import android.os.Bundle -import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import android.widget.FrameLayout @@ -32,7 +31,6 @@ import androidx.core.view.isVisible import androidx.lifecycle.Observer import androidx.transition.TransitionManager import butterknife.BindView -import butterknife.ButterKnife import com.google.android.material.bottomsheet.BottomSheetBehavior import com.google.android.material.bottomsheet.BottomSheetDialog import im.vector.matrix.android.api.session.crypto.keysbackup.KeysBackupState @@ -210,11 +208,7 @@ class SignOutBottomSheetDialogFragment : VectorBaseBottomSheetDialogFragment() { }) } - override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { - val view = inflater.inflate(R.layout.bottom_sheet_logout_and_backup, container, false) - ButterKnife.bind(this, view) - return view - } + override fun getLayoutResId() = R.layout.bottom_sheet_logout_and_backup override fun onCreateDialog(savedInstanceState: Bundle?): Dialog { val dialog = super.onCreateDialog(savedInstanceState)