Revert "Feature flags support in Chooser"

This reverts commit 33bb96bf4da9ad037d1184c644fd9c26db569ded.

Reason for revert: DroidMonitor-triggered revert due to breakage https://android-build.googleplex.com/builds/quarterdeck?branch=git_master&target=bramble-user&lkgb=9536619&lkbb=9537444&fkbb=9536627 , bug b/267135531

BUG: b/267135531

Change-Id: I73f5b6c66e27dd0e5a628034604e80523f2acf99
diff --git a/Android.bp b/Android.bp
index 19d2a82..31d7d6d 100644
--- a/Android.bp
+++ b/Android.bp
@@ -31,34 +31,13 @@
     ],
 }
 
-filegroup {
-    name: "ReleaseSources",
-    srcs: [
-        "java/src-release/**/*.kt",
-    ],
-}
-
-filegroup {
-    name: "DebugSources",
-    srcs: [
-        "java/src-debug/**/*.kt",
-    ],
-}
-
 android_library {
     name: "IntentResolver-core",
     min_sdk_version: "current",
     srcs: [
         "java/src/**/*.java",
         "java/src/**/*.kt",
-        ":ReleaseSources",
     ],
-    product_variables: {
-        debuggable: {
-            srcs: [":DebugSources"],
-            exclude_srcs: [":ReleaseSources"],
-        }
-    },
     resource_dirs: [
         "java/res",
     ],
@@ -79,12 +58,11 @@
         "kotlinx-coroutines-android",
         "//external/kotlinc:kotlin-annotations",
         "guava",
-        "SystemUIFlagsLib",
     ],
 
     plugins: ["java_api_finder"],
     lint: {
-        strict_updatability_linting: false,
+        strict_updatability_linting: true,
     },
 }
 
diff --git a/java/src-debug/com/android/intentresolver/flags/DebugFeatureFlagRepository.kt b/java/src-debug/com/android/intentresolver/flags/DebugFeatureFlagRepository.kt
deleted file mode 100644
index a85e097..0000000
--- a/java/src-debug/com/android/intentresolver/flags/DebugFeatureFlagRepository.kt
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
- * Copyright (C) 2022 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.intentresolver.flags
-
-import android.util.SparseBooleanArray
-import androidx.annotation.GuardedBy
-import com.android.systemui.flags.BooleanFlag
-import com.android.systemui.flags.FlagManager
-import com.android.systemui.flags.ReleasedFlag
-import com.android.systemui.flags.UnreleasedFlag
-import javax.annotation.concurrent.ThreadSafe
-
-@ThreadSafe
-internal class DebugFeatureFlagRepository(
-    private val flagManager: FlagManager,
-    private val deviceConfig: DeviceConfigProxy,
-) : FeatureFlagRepository {
-    @GuardedBy("self")
-    private val cache = SparseBooleanArray()
-
-    override fun isEnabled(flag: UnreleasedFlag): Boolean = isFlagEnabled(flag)
-
-    override fun isEnabled(flag: ReleasedFlag): Boolean = isFlagEnabled(flag)
-
-    private fun isFlagEnabled(flag: BooleanFlag): Boolean {
-        synchronized(cache) {
-            val idx = cache.indexOfKey(flag.id)
-            if (idx >= 0) return cache.valueAt(idx)
-        }
-        val flagValue = readFlagValue(flag)
-        synchronized(cache) {
-            val idx = cache.indexOfKey(flag.id)
-            // the first read saved in the cache wins
-            if (idx >= 0) return cache.valueAt(idx)
-            cache.put(flag.id, flagValue)
-        }
-        return flagValue
-    }
-
-    private fun readFlagValue(flag: BooleanFlag): Boolean {
-        val localOverride = runCatching {
-            flagManager.isEnabled(flag.id)
-        }.getOrDefault(null)
-        val remoteOverride = deviceConfig.isEnabled(flag)
-
-        // Only check for teamfood if the default is false
-        // and there is no server override.
-        if (remoteOverride == null
-            && !flag.default
-            && localOverride == null
-            && !flag.isTeamfoodFlag
-            && flag.teamfood
-        ) {
-            return flagManager.isTeamfoodEnabled
-        }
-        return localOverride ?: remoteOverride ?: flag.default
-    }
-
-    companion object {
-        // keep in sync with com.android.systemui.flags.Flags
-        private const val TEAMFOOD_FLAG_ID = 1
-
-        private val BooleanFlag.isTeamfoodFlag: Boolean
-            get() = id == TEAMFOOD_FLAG_ID
-
-        private val FlagManager.isTeamfoodEnabled: Boolean
-            get() = runCatching {
-                isEnabled(TEAMFOOD_FLAG_ID) ?: false
-            }.getOrDefault(false)
-    }
-}
diff --git a/java/src-debug/com/android/intentresolver/flags/FeatureFlagRepositoryFactory.kt b/java/src-debug/com/android/intentresolver/flags/FeatureFlagRepositoryFactory.kt
deleted file mode 100644
index 4ddb044..0000000
--- a/java/src-debug/com/android/intentresolver/flags/FeatureFlagRepositoryFactory.kt
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Copyright (C) 2022 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.intentresolver.flags
-
-import android.content.Context
-import android.os.Handler
-import android.os.Looper
-import com.android.systemui.flags.FlagManager
-
-class FeatureFlagRepositoryFactory {
-    fun create(context: Context): FeatureFlagRepository =
-        DebugFeatureFlagRepository(
-            FlagManager(context, Handler(Looper.getMainLooper())),
-            DeviceConfigProxy(),
-        )
-}
diff --git a/java/src-release/com/android/intentresolver/flags/FeatureFlagRepositoryFactory.kt b/java/src-release/com/android/intentresolver/flags/FeatureFlagRepositoryFactory.kt
deleted file mode 100644
index 6bf7579..0000000
--- a/java/src-release/com/android/intentresolver/flags/FeatureFlagRepositoryFactory.kt
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * Copyright (C) 2022 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.intentresolver.flags
-
-import android.content.Context
-
-class FeatureFlagRepositoryFactory {
-    fun create(context: Context): FeatureFlagRepository =
-        ReleaseFeatureFlagRepository(DeviceConfigProxy())
-}
diff --git a/java/src-release/com/android/intentresolver/flags/ReleaseFeatureFlagRepository.kt b/java/src-release/com/android/intentresolver/flags/ReleaseFeatureFlagRepository.kt
deleted file mode 100644
index a513e46..0000000
--- a/java/src-release/com/android/intentresolver/flags/ReleaseFeatureFlagRepository.kt
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * Copyright (C) 2022 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.intentresolver.flags
-
-import com.android.systemui.flags.ReleasedFlag
-import com.android.systemui.flags.UnreleasedFlag
-import javax.annotation.concurrent.ThreadSafe
-
-@ThreadSafe
-internal class ReleaseFeatureFlagRepository(
-    private val deviceConfig: DeviceConfigProxy,
-) : FeatureFlagRepository {
-    override fun isEnabled(flag: UnreleasedFlag): Boolean = flag.default
-
-    override fun isEnabled(flag: ReleasedFlag): Boolean =
-        deviceConfig.isEnabled(flag.namespace, flag.name) ?: flag.default
-}
diff --git a/java/src/com/android/intentresolver/flags/DeviceConfigProxy.kt b/java/src/com/android/intentresolver/flags/DeviceConfigProxy.kt
deleted file mode 100644
index e23616f..0000000
--- a/java/src/com/android/intentresolver/flags/DeviceConfigProxy.kt
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * Copyright (C) 2022 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.intentresolver.flags
-
-import android.provider.DeviceConfig
-import com.android.systemui.flags.BooleanFlag
-
-internal class DeviceConfigProxy {
-    fun isEnabled(flag: BooleanFlag): Boolean? {
-        return runCatching {
-            DeviceConfig.getBoolean(flag.namespace, flag.name, flag.default)
-        }.getOrDefault(null)
-    }
-}
diff --git a/java/src/com/android/intentresolver/flags/FeatureFlagRepository.kt b/java/src/com/android/intentresolver/flags/FeatureFlagRepository.kt
deleted file mode 100644
index 5b5d769..0000000
--- a/java/src/com/android/intentresolver/flags/FeatureFlagRepository.kt
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * Copyright (C) 2022 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.intentresolver.flags
-
-import com.android.systemui.flags.ReleasedFlag
-import com.android.systemui.flags.UnreleasedFlag
-
-interface FeatureFlagRepository {
-    fun isEnabled(flag: UnreleasedFlag): Boolean
-    fun isEnabled(flag: ReleasedFlag): Boolean
-}
diff --git a/java/src/com/android/intentresolver/flags/Flags.kt b/java/src/com/android/intentresolver/flags/Flags.kt
deleted file mode 100644
index 7c23f7d..0000000
--- a/java/src/com/android/intentresolver/flags/Flags.kt
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * Copyright (C) 2022 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.intentresolver.flags
-
-import com.android.systemui.flags.UnreleasedFlag
-
-// keep in sync with com.android.systemui.flags.Flags to make the flags available in the
-// flag flipper app (see go/sysui-flags)
-object Flags {
-    @JvmField
-    val CHOOSER_CUSTOM_ACTIONS = UnreleasedFlag(
-        id = 1501, name = "chooser_custom_actions", namespace = "systemui", teamfood = false
-    )
-}