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_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 -->
|
||||
<string name="invitations_header">Invites</string>
|
||||
<string name="low_priority_header">Low priority</string>
|
||||
|
|
|
@ -38,6 +38,7 @@
|
|||
|
||||
<!-- Level 1: Labs -->
|
||||
<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_default">false</bool>
|
||||
<!-- Level 1: Advanced settings -->
|
||||
|
|
|
@ -85,11 +85,6 @@ class DebugFeaturesStateFactory @Inject constructor(
|
|||
key = DebugFeatureKeys.startDmOnFirstMsg,
|
||||
factory = VectorFeatures::shouldStartDmOnFirstMessage
|
||||
),
|
||||
createBooleanFeature(
|
||||
label = "Enable New App Layout",
|
||||
key = DebugFeatureKeys.newAppLayoutEnabled,
|
||||
factory = VectorFeatures::isNewAppLayoutEnabled
|
||||
),
|
||||
createBooleanFeature(
|
||||
label = "Enable New Device Management",
|
||||
key = DebugFeatureKeys.newDeviceManagementEnabled,
|
||||
|
|
|
@ -76,9 +76,6 @@ class DebugVectorFeatures(
|
|||
override fun shouldStartDmOnFirstMessage(): Boolean = read(DebugFeatureKeys.startDmOnFirstMsg)
|
||||
?: vectorFeatures.shouldStartDmOnFirstMessage()
|
||||
|
||||
override fun isNewAppLayoutEnabled(): Boolean = read(DebugFeatureKeys.newAppLayoutEnabled)
|
||||
?: vectorFeatures.isNewAppLayoutEnabled()
|
||||
|
||||
override fun isNewDeviceManagementEnabled(): Boolean = read(DebugFeatureKeys.newDeviceManagementEnabled)
|
||||
?: vectorFeatures.isNewDeviceManagementEnabled()
|
||||
|
||||
|
@ -141,6 +138,5 @@ object DebugFeatureKeys {
|
|||
val screenSharing = booleanPreferencesKey("screen-sharing")
|
||||
val forceUsageOfOpusEncoder = booleanPreferencesKey("force-usage-of-opus-encoder")
|
||||
val startDmOnFirstMsg = booleanPreferencesKey("start-dm-on-first-msg")
|
||||
val newAppLayoutEnabled = booleanPreferencesKey("new-app-layout-enabled")
|
||||
val newDeviceManagementEnabled = booleanPreferencesKey("new-device-management-enabled")
|
||||
}
|
||||
|
|
|
@ -249,7 +249,7 @@ abstract class VectorBaseActivity<VB : ViewBinding> : AppCompatActivity(), Maver
|
|||
|
||||
initUiAndData()
|
||||
|
||||
if (vectorFeatures.isNewAppLayoutEnabled()) {
|
||||
if (vectorPreferences.isNewAppLayoutEnabled()) {
|
||||
tryOrNull { // Add to XML theme when feature flag is removed
|
||||
val toolbarBackground = MaterialColors.getColor(views.root, R.attr.vctr_toolbar_background)
|
||||
window.statusBarColor = toolbarBackground
|
||||
|
|
|
@ -33,7 +33,6 @@ interface VectorFeatures {
|
|||
fun isLocationSharingEnabled(): Boolean
|
||||
fun forceUsageOfOpusEncoder(): Boolean
|
||||
fun shouldStartDmOnFirstMessage(): Boolean
|
||||
fun isNewAppLayoutEnabled(): Boolean
|
||||
fun isNewDeviceManagementEnabled(): Boolean
|
||||
}
|
||||
|
||||
|
@ -50,6 +49,5 @@ class DefaultVectorFeatures : VectorFeatures {
|
|||
override fun isLocationSharingEnabled() = Config.ENABLE_LOCATION_SHARING
|
||||
override fun forceUsageOfOpusEncoder(): Boolean = false
|
||||
override fun shouldStartDmOnFirstMessage(): Boolean = false
|
||||
override fun isNewAppLayoutEnabled(): Boolean = true
|
||||
override fun isNewDeviceManagementEnabled(): Boolean = false
|
||||
}
|
||||
|
|
|
@ -200,7 +200,7 @@ class HomeActivity :
|
|||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
isNewAppLayoutEnabled = vectorFeatures.isNewAppLayoutEnabled()
|
||||
isNewAppLayoutEnabled = vectorPreferences.isNewAppLayoutEnabled()
|
||||
analyticsScreenName = MobileScreen.ScreenName.Home
|
||||
supportFragmentManager.registerFragmentLifecycleCallbacks(fragmentLifecycleCallbacks, false)
|
||||
unifiedPushHelper.register(this) {
|
||||
|
@ -216,7 +216,7 @@ class HomeActivity :
|
|||
roomListSharedActionViewModel = viewModelProvider[RoomListSharedActionViewModel::class.java]
|
||||
views.drawerLayout.addDrawerListener(drawerListener)
|
||||
if (isFirstCreation()) {
|
||||
if (vectorFeatures.isNewAppLayoutEnabled()) {
|
||||
if (vectorPreferences.isNewAppLayoutEnabled()) {
|
||||
views.drawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED)
|
||||
replaceFragment(views.homeDetailFragmentContainer, NewHomeDetailFragment::class.java)
|
||||
} else {
|
||||
|
@ -575,12 +575,12 @@ class HomeActivity :
|
|||
}
|
||||
|
||||
private fun checkNewAppLayoutFlagChange() {
|
||||
if (buildMeta.isDebug && vectorFeatures.isNewAppLayoutEnabled() != isNewAppLayoutEnabled) {
|
||||
if (buildMeta.isDebug && vectorPreferences.isNewAppLayoutEnabled() != isNewAppLayoutEnabled) {
|
||||
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) {
|
||||
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_DIVIDER_PREFERENCE_KEY = "SETTINGS_BACKGROUND_SYNC_DIVIDER_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_DIVIDER_PREFERENCE_KEY = "SETTINGS_CRYPTOGRAPHY_DIVIDER_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()
|
||||
}
|
||||
|
||||
/**
|
||||
* 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 {
|
||||
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.VectorBaseFragment
|
||||
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.HomeSharedActionViewModel
|
||||
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.settings.VectorPreferences
|
||||
import org.matrix.android.sdk.api.session.room.model.RoomSummary
|
||||
import javax.inject.Inject
|
||||
|
||||
|
@ -58,7 +58,7 @@ class SpaceListFragment :
|
|||
|
||||
@Inject lateinit var spaceController: SpaceSummaryController
|
||||
@Inject lateinit var newSpaceController: NewSpaceSummaryController
|
||||
@Inject lateinit var vectorFeatures: VectorFeatures
|
||||
@Inject lateinit var vectorPreferences: VectorPreferences
|
||||
|
||||
private lateinit var homeActivitySharedActionViewModel: HomeSharedActionViewModel
|
||||
private lateinit var roomListSharedActionViewModel: RoomListSharedActionViewModel
|
||||
|
@ -79,7 +79,7 @@ class SpaceListFragment :
|
|||
}
|
||||
|
||||
private fun setupSpaceController() {
|
||||
if (vectorFeatures.isNewAppLayoutEnabled()) {
|
||||
if (vectorPreferences.isNewAppLayoutEnabled()) {
|
||||
newSpaceController.callback = this
|
||||
views.groupListView.configureWith(newSpaceController)
|
||||
} else {
|
||||
|
@ -169,7 +169,7 @@ class SpaceListFragment :
|
|||
else -> Unit
|
||||
}
|
||||
|
||||
if (vectorFeatures.isNewAppLayoutEnabled()) {
|
||||
if (vectorPreferences.isNewAppLayoutEnabled()) {
|
||||
newSpaceController.update(state)
|
||||
} else {
|
||||
spaceController.update(state)
|
||||
|
|
|
@ -83,4 +83,10 @@
|
|||
android:summary="@string/labs_enable_element_call_permission_shortcuts_summary"
|
||||
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>
|
||||
|
|
Loading…
Reference in New Issue