Replaces feature flag with labs flag
This commit is contained in:
parent
36a221adf1
commit
24509543b9
|
@ -438,6 +438,9 @@
|
||||||
<string name="home_layout_preferences_sort_activity">Activity</string>
|
<string name="home_layout_preferences_sort_activity">Activity</string>
|
||||||
<string name="home_layout_preferences_sort_name">A - Z</string>
|
<string name="home_layout_preferences_sort_name">A - Z</string>
|
||||||
|
|
||||||
|
<string name="labs_enable_new_app_layout_title">Enable new layout</string>
|
||||||
|
<string name="labs_enable_new_app_layout_summary">A simplified Element with optional tabs</string>
|
||||||
|
|
||||||
<!-- Home fragment -->
|
<!-- Home fragment -->
|
||||||
<string name="invitations_header">Invites</string>
|
<string name="invitations_header">Invites</string>
|
||||||
<string name="low_priority_header">Low priority</string>
|
<string name="low_priority_header">Low priority</string>
|
||||||
|
|
|
@ -38,6 +38,7 @@
|
||||||
|
|
||||||
<!-- Level 1: Labs -->
|
<!-- Level 1: Labs -->
|
||||||
<bool name="settings_labs_thread_messages_default">false</bool>
|
<bool name="settings_labs_thread_messages_default">false</bool>
|
||||||
|
<bool name="settings_labs_new_app_layout_default">false</bool>
|
||||||
<bool name="settings_timeline_show_live_sender_info_visible">true</bool>
|
<bool name="settings_timeline_show_live_sender_info_visible">true</bool>
|
||||||
<bool name="settings_timeline_show_live_sender_info_default">false</bool>
|
<bool name="settings_timeline_show_live_sender_info_default">false</bool>
|
||||||
<!-- Level 1: Advanced settings -->
|
<!-- Level 1: Advanced settings -->
|
||||||
|
|
|
@ -85,11 +85,6 @@ class DebugFeaturesStateFactory @Inject constructor(
|
||||||
key = DebugFeatureKeys.startDmOnFirstMsg,
|
key = DebugFeatureKeys.startDmOnFirstMsg,
|
||||||
factory = VectorFeatures::shouldStartDmOnFirstMessage
|
factory = VectorFeatures::shouldStartDmOnFirstMessage
|
||||||
),
|
),
|
||||||
createBooleanFeature(
|
|
||||||
label = "Enable New App Layout",
|
|
||||||
key = DebugFeatureKeys.newAppLayoutEnabled,
|
|
||||||
factory = VectorFeatures::isNewAppLayoutEnabled
|
|
||||||
),
|
|
||||||
createBooleanFeature(
|
createBooleanFeature(
|
||||||
label = "Enable New Device Management",
|
label = "Enable New Device Management",
|
||||||
key = DebugFeatureKeys.newDeviceManagementEnabled,
|
key = DebugFeatureKeys.newDeviceManagementEnabled,
|
||||||
|
|
|
@ -76,9 +76,6 @@ class DebugVectorFeatures(
|
||||||
override fun shouldStartDmOnFirstMessage(): Boolean = read(DebugFeatureKeys.startDmOnFirstMsg)
|
override fun shouldStartDmOnFirstMessage(): Boolean = read(DebugFeatureKeys.startDmOnFirstMsg)
|
||||||
?: vectorFeatures.shouldStartDmOnFirstMessage()
|
?: vectorFeatures.shouldStartDmOnFirstMessage()
|
||||||
|
|
||||||
override fun isNewAppLayoutEnabled(): Boolean = read(DebugFeatureKeys.newAppLayoutEnabled)
|
|
||||||
?: vectorFeatures.isNewAppLayoutEnabled()
|
|
||||||
|
|
||||||
override fun isNewDeviceManagementEnabled(): Boolean = read(DebugFeatureKeys.newDeviceManagementEnabled)
|
override fun isNewDeviceManagementEnabled(): Boolean = read(DebugFeatureKeys.newDeviceManagementEnabled)
|
||||||
?: vectorFeatures.isNewDeviceManagementEnabled()
|
?: vectorFeatures.isNewDeviceManagementEnabled()
|
||||||
|
|
||||||
|
@ -141,6 +138,5 @@ object DebugFeatureKeys {
|
||||||
val screenSharing = booleanPreferencesKey("screen-sharing")
|
val screenSharing = booleanPreferencesKey("screen-sharing")
|
||||||
val forceUsageOfOpusEncoder = booleanPreferencesKey("force-usage-of-opus-encoder")
|
val forceUsageOfOpusEncoder = booleanPreferencesKey("force-usage-of-opus-encoder")
|
||||||
val startDmOnFirstMsg = booleanPreferencesKey("start-dm-on-first-msg")
|
val startDmOnFirstMsg = booleanPreferencesKey("start-dm-on-first-msg")
|
||||||
val newAppLayoutEnabled = booleanPreferencesKey("new-app-layout-enabled")
|
|
||||||
val newDeviceManagementEnabled = booleanPreferencesKey("new-device-management-enabled")
|
val newDeviceManagementEnabled = booleanPreferencesKey("new-device-management-enabled")
|
||||||
}
|
}
|
||||||
|
|
|
@ -249,7 +249,7 @@ abstract class VectorBaseActivity<VB : ViewBinding> : AppCompatActivity(), Maver
|
||||||
|
|
||||||
initUiAndData()
|
initUiAndData()
|
||||||
|
|
||||||
if (vectorFeatures.isNewAppLayoutEnabled()) {
|
if (vectorPreferences.isNewAppLayoutEnabled()) {
|
||||||
tryOrNull { // Add to XML theme when feature flag is removed
|
tryOrNull { // Add to XML theme when feature flag is removed
|
||||||
val toolbarBackground = MaterialColors.getColor(views.root, R.attr.vctr_toolbar_background)
|
val toolbarBackground = MaterialColors.getColor(views.root, R.attr.vctr_toolbar_background)
|
||||||
window.statusBarColor = toolbarBackground
|
window.statusBarColor = toolbarBackground
|
||||||
|
|
|
@ -33,7 +33,6 @@ interface VectorFeatures {
|
||||||
fun isLocationSharingEnabled(): Boolean
|
fun isLocationSharingEnabled(): Boolean
|
||||||
fun forceUsageOfOpusEncoder(): Boolean
|
fun forceUsageOfOpusEncoder(): Boolean
|
||||||
fun shouldStartDmOnFirstMessage(): Boolean
|
fun shouldStartDmOnFirstMessage(): Boolean
|
||||||
fun isNewAppLayoutEnabled(): Boolean
|
|
||||||
fun isNewDeviceManagementEnabled(): Boolean
|
fun isNewDeviceManagementEnabled(): Boolean
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -50,6 +49,5 @@ class DefaultVectorFeatures : VectorFeatures {
|
||||||
override fun isLocationSharingEnabled() = Config.ENABLE_LOCATION_SHARING
|
override fun isLocationSharingEnabled() = Config.ENABLE_LOCATION_SHARING
|
||||||
override fun forceUsageOfOpusEncoder(): Boolean = false
|
override fun forceUsageOfOpusEncoder(): Boolean = false
|
||||||
override fun shouldStartDmOnFirstMessage(): Boolean = false
|
override fun shouldStartDmOnFirstMessage(): Boolean = false
|
||||||
override fun isNewAppLayoutEnabled(): Boolean = true
|
|
||||||
override fun isNewDeviceManagementEnabled(): Boolean = false
|
override fun isNewDeviceManagementEnabled(): Boolean = false
|
||||||
}
|
}
|
||||||
|
|
|
@ -200,7 +200,7 @@ class HomeActivity :
|
||||||
|
|
||||||
override fun onCreate(savedInstanceState: Bundle?) {
|
override fun onCreate(savedInstanceState: Bundle?) {
|
||||||
super.onCreate(savedInstanceState)
|
super.onCreate(savedInstanceState)
|
||||||
isNewAppLayoutEnabled = vectorFeatures.isNewAppLayoutEnabled()
|
isNewAppLayoutEnabled = vectorPreferences.isNewAppLayoutEnabled()
|
||||||
analyticsScreenName = MobileScreen.ScreenName.Home
|
analyticsScreenName = MobileScreen.ScreenName.Home
|
||||||
supportFragmentManager.registerFragmentLifecycleCallbacks(fragmentLifecycleCallbacks, false)
|
supportFragmentManager.registerFragmentLifecycleCallbacks(fragmentLifecycleCallbacks, false)
|
||||||
unifiedPushHelper.register(this) {
|
unifiedPushHelper.register(this) {
|
||||||
|
@ -216,7 +216,7 @@ class HomeActivity :
|
||||||
roomListSharedActionViewModel = viewModelProvider[RoomListSharedActionViewModel::class.java]
|
roomListSharedActionViewModel = viewModelProvider[RoomListSharedActionViewModel::class.java]
|
||||||
views.drawerLayout.addDrawerListener(drawerListener)
|
views.drawerLayout.addDrawerListener(drawerListener)
|
||||||
if (isFirstCreation()) {
|
if (isFirstCreation()) {
|
||||||
if (vectorFeatures.isNewAppLayoutEnabled()) {
|
if (vectorPreferences.isNewAppLayoutEnabled()) {
|
||||||
views.drawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED)
|
views.drawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED)
|
||||||
replaceFragment(views.homeDetailFragmentContainer, NewHomeDetailFragment::class.java)
|
replaceFragment(views.homeDetailFragmentContainer, NewHomeDetailFragment::class.java)
|
||||||
} else {
|
} else {
|
||||||
|
@ -575,12 +575,12 @@ class HomeActivity :
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun checkNewAppLayoutFlagChange() {
|
private fun checkNewAppLayoutFlagChange() {
|
||||||
if (buildMeta.isDebug && vectorFeatures.isNewAppLayoutEnabled() != isNewAppLayoutEnabled) {
|
if (buildMeta.isDebug && vectorPreferences.isNewAppLayoutEnabled() != isNewAppLayoutEnabled) {
|
||||||
restart()
|
restart()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun getMenuRes() = if (vectorFeatures.isNewAppLayoutEnabled()) R.menu.menu_new_home else R.menu.menu_home
|
override fun getMenuRes() = if (vectorPreferences.isNewAppLayoutEnabled()) R.menu.menu_new_home else R.menu.menu_home
|
||||||
|
|
||||||
override fun handlePrepareMenu(menu: Menu) {
|
override fun handlePrepareMenu(menu: Menu) {
|
||||||
menu.findItem(R.id.menu_home_init_sync_legacy).isVisible = vectorPreferences.developerMode()
|
menu.findItem(R.id.menu_home_init_sync_legacy).isVisible = vectorPreferences.developerMode()
|
||||||
|
|
|
@ -63,6 +63,7 @@ class VectorPreferences @Inject constructor(
|
||||||
const val SETTINGS_BACKGROUND_SYNC_PREFERENCE_KEY = "SETTINGS_BACKGROUND_SYNC_PREFERENCE_KEY"
|
const val SETTINGS_BACKGROUND_SYNC_PREFERENCE_KEY = "SETTINGS_BACKGROUND_SYNC_PREFERENCE_KEY"
|
||||||
const val SETTINGS_BACKGROUND_SYNC_DIVIDER_PREFERENCE_KEY = "SETTINGS_BACKGROUND_SYNC_DIVIDER_PREFERENCE_KEY"
|
const val SETTINGS_BACKGROUND_SYNC_DIVIDER_PREFERENCE_KEY = "SETTINGS_BACKGROUND_SYNC_DIVIDER_PREFERENCE_KEY"
|
||||||
const val SETTINGS_LABS_PREFERENCE_KEY = "SETTINGS_LABS_PREFERENCE_KEY"
|
const val SETTINGS_LABS_PREFERENCE_KEY = "SETTINGS_LABS_PREFERENCE_KEY"
|
||||||
|
const val SETTINGS_LABS_NEW_APP_LAYOUT_KEY = "SETTINGS_LABS_ENABLE_NEW_LAYOUT"
|
||||||
const val SETTINGS_CRYPTOGRAPHY_PREFERENCE_KEY = "SETTINGS_CRYPTOGRAPHY_PREFERENCE_KEY"
|
const val SETTINGS_CRYPTOGRAPHY_PREFERENCE_KEY = "SETTINGS_CRYPTOGRAPHY_PREFERENCE_KEY"
|
||||||
const val SETTINGS_CRYPTOGRAPHY_DIVIDER_PREFERENCE_KEY = "SETTINGS_CRYPTOGRAPHY_DIVIDER_PREFERENCE_KEY"
|
const val SETTINGS_CRYPTOGRAPHY_DIVIDER_PREFERENCE_KEY = "SETTINGS_CRYPTOGRAPHY_DIVIDER_PREFERENCE_KEY"
|
||||||
const val SETTINGS_CRYPTOGRAPHY_MANAGE_PREFERENCE_KEY = "SETTINGS_CRYPTOGRAPHY_MANAGE_PREFERENCE_KEY"
|
const val SETTINGS_CRYPTOGRAPHY_MANAGE_PREFERENCE_KEY = "SETTINGS_CRYPTOGRAPHY_MANAGE_PREFERENCE_KEY"
|
||||||
|
@ -1146,6 +1147,13 @@ class VectorPreferences @Inject constructor(
|
||||||
return spaceIdsJoined?.takeIf { it.isNotEmpty() }?.split(",").orEmpty()
|
return spaceIdsJoined?.takeIf { it.isNotEmpty() }?.split(",").orEmpty()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Indicates whether or not new app layout is enabled
|
||||||
|
*/
|
||||||
|
fun isNewAppLayoutEnabled(): Boolean {
|
||||||
|
return defaultPrefs.getBoolean(SETTINGS_LABS_NEW_APP_LAYOUT_KEY, getDefault(R.bool.settings_labs_new_app_layout_default))
|
||||||
|
}
|
||||||
|
|
||||||
fun showLiveSenderInfo(): Boolean {
|
fun showLiveSenderInfo(): Boolean {
|
||||||
return defaultPrefs.getBoolean(SETTINGS_TIMELINE_SHOW_LIVE_SENDER_INFO, getDefault(R.bool.settings_timeline_show_live_sender_info_default))
|
return defaultPrefs.getBoolean(SETTINGS_TIMELINE_SHOW_LIVE_SENDER_INFO, getDefault(R.bool.settings_timeline_show_live_sender_info_default))
|
||||||
}
|
}
|
||||||
|
|
|
@ -35,11 +35,11 @@ import im.vector.app.core.extensions.configureWith
|
||||||
import im.vector.app.core.platform.StateView
|
import im.vector.app.core.platform.StateView
|
||||||
import im.vector.app.core.platform.VectorBaseFragment
|
import im.vector.app.core.platform.VectorBaseFragment
|
||||||
import im.vector.app.databinding.FragmentSpaceListBinding
|
import im.vector.app.databinding.FragmentSpaceListBinding
|
||||||
import im.vector.app.features.VectorFeatures
|
|
||||||
import im.vector.app.features.home.HomeActivitySharedAction
|
import im.vector.app.features.home.HomeActivitySharedAction
|
||||||
import im.vector.app.features.home.HomeSharedActionViewModel
|
import im.vector.app.features.home.HomeSharedActionViewModel
|
||||||
import im.vector.app.features.home.room.list.actions.RoomListSharedAction
|
import im.vector.app.features.home.room.list.actions.RoomListSharedAction
|
||||||
import im.vector.app.features.home.room.list.actions.RoomListSharedActionViewModel
|
import im.vector.app.features.home.room.list.actions.RoomListSharedActionViewModel
|
||||||
|
import im.vector.app.features.settings.VectorPreferences
|
||||||
import org.matrix.android.sdk.api.session.room.model.RoomSummary
|
import org.matrix.android.sdk.api.session.room.model.RoomSummary
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
|
@ -58,7 +58,7 @@ class SpaceListFragment :
|
||||||
|
|
||||||
@Inject lateinit var spaceController: SpaceSummaryController
|
@Inject lateinit var spaceController: SpaceSummaryController
|
||||||
@Inject lateinit var newSpaceController: NewSpaceSummaryController
|
@Inject lateinit var newSpaceController: NewSpaceSummaryController
|
||||||
@Inject lateinit var vectorFeatures: VectorFeatures
|
@Inject lateinit var vectorPreferences: VectorPreferences
|
||||||
|
|
||||||
private lateinit var homeActivitySharedActionViewModel: HomeSharedActionViewModel
|
private lateinit var homeActivitySharedActionViewModel: HomeSharedActionViewModel
|
||||||
private lateinit var roomListSharedActionViewModel: RoomListSharedActionViewModel
|
private lateinit var roomListSharedActionViewModel: RoomListSharedActionViewModel
|
||||||
|
@ -79,7 +79,7 @@ class SpaceListFragment :
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun setupSpaceController() {
|
private fun setupSpaceController() {
|
||||||
if (vectorFeatures.isNewAppLayoutEnabled()) {
|
if (vectorPreferences.isNewAppLayoutEnabled()) {
|
||||||
newSpaceController.callback = this
|
newSpaceController.callback = this
|
||||||
views.groupListView.configureWith(newSpaceController)
|
views.groupListView.configureWith(newSpaceController)
|
||||||
} else {
|
} else {
|
||||||
|
@ -169,7 +169,7 @@ class SpaceListFragment :
|
||||||
else -> Unit
|
else -> Unit
|
||||||
}
|
}
|
||||||
|
|
||||||
if (vectorFeatures.isNewAppLayoutEnabled()) {
|
if (vectorPreferences.isNewAppLayoutEnabled()) {
|
||||||
newSpaceController.update(state)
|
newSpaceController.update(state)
|
||||||
} else {
|
} else {
|
||||||
spaceController.update(state)
|
spaceController.update(state)
|
||||||
|
|
|
@ -83,4 +83,10 @@
|
||||||
android:summary="@string/labs_enable_element_call_permission_shortcuts_summary"
|
android:summary="@string/labs_enable_element_call_permission_shortcuts_summary"
|
||||||
android:title="@string/labs_enable_element_call_permission_shortcuts" />
|
android:title="@string/labs_enable_element_call_permission_shortcuts" />
|
||||||
|
|
||||||
|
<im.vector.app.core.preference.VectorSwitchPreference
|
||||||
|
android:defaultValue="false"
|
||||||
|
android:key="SETTINGS_LABS_ENABLE_NEW_LAYOUT"
|
||||||
|
android:summary="@string/labs_enable_new_app_layout_summary"
|
||||||
|
android:title="@string/labs_enable_new_app_layout_title" />
|
||||||
|
|
||||||
</androidx.preference.PreferenceScreen>
|
</androidx.preference.PreferenceScreen>
|
||||||
|
|
Loading…
Reference in New Issue