Unsupport DebugActivity & EntryProvider in Settings.

Set SpaEnvironment (with Spp only) in SettingsApplication
Remove DebugActivity & EntryProvider from Settings.

Bug: 244122804
Test: manual - build Settings
Change-Id: I18e97c80b4f1d6094bb22cf28e7e84ea325869d7
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 9941180..a351fb4 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -4621,13 +4621,6 @@
 
         <activity android:name=".spa.SpaActivity" android:exported="false"/>
         <activity android:name=".spa.SpaBridgeActivity" android:exported="false"/>
-        <activity android:name=".spa.SpaDebugActivity" android:exported="false"/>
-        <provider
-            android:name=".spa.SpaEntryProvider"
-            android:authorities="com.android.settings.spa.provider"
-            android:enabled="true"
-            android:exported="false">
-        </provider>
 
         <activity-alias android:name="UsageStatsActivity"
                         android:exported="true"
diff --git a/src/com/android/settings/SettingsApplication.java b/src/com/android/settings/SettingsApplication.java
index 333fc27..e7002c7 100644
--- a/src/com/android/settings/SettingsApplication.java
+++ b/src/com/android/settings/SettingsApplication.java
@@ -26,7 +26,9 @@
 
 import com.android.settings.activityembedding.ActivityEmbeddingRulesController;
 import com.android.settings.homepage.SettingsHomepageActivity;
+import com.android.settings.spa.SettingsSpaEnvironment;
 import com.android.settingslib.applications.AppIconCacheManager;
+import com.android.settingslib.spa.framework.common.SpaEnvironmentFactory;
 
 import com.google.android.setupcompat.util.WizardManagerHelper;
 
@@ -41,6 +43,9 @@
     public void onCreate() {
         super.onCreate();
 
+        // Set Spa environment.
+        setSpaEnvironment();
+
         if (FeatureFlagUtils.isEnabled(this, FeatureFlagUtils.SETTINGS_SUPPORT_LARGE_SCREEN)
                 && SplitController.getInstance().isSplitSupported()) {
             if (WizardManagerHelper.isUserSetupComplete(this)) {
@@ -51,6 +56,14 @@
         }
     }
 
+    /**
+     * Set the spa environment instance.
+     * Override this function to set different spa environment for different Settings app.
+     */
+    protected void setSpaEnvironment() {
+        SpaEnvironmentFactory.INSTANCE.setInstance(new SettingsSpaEnvironment());
+    }
+
     public void setHomeActivity(SettingsHomepageActivity homeActivity) {
         mHomeActivity = new WeakReference<>(homeActivity);
     }
diff --git a/src/com/android/settings/spa/SettingsSpaEnvironment.kt b/src/com/android/settings/spa/SettingsSpaEnvironment.kt
index ad903c61..83fdae5 100644
--- a/src/com/android/settings/spa/SettingsSpaEnvironment.kt
+++ b/src/com/android/settings/spa/SettingsSpaEnvironment.kt
@@ -36,7 +36,7 @@
 import com.android.settingslib.spa.framework.common.SpaEnvironment
 import com.android.settingslib.spaprivileged.template.app.TogglePermissionAppListTemplate
 
-object SettingsSpaEnvironment : SpaEnvironment() {
+open class SettingsSpaEnvironment : SpaEnvironment() {
     override val pageProviderRepository = lazy {
         val togglePermissionAppListTemplate = TogglePermissionAppListTemplate(
             allProviders = listOf(
@@ -65,8 +65,4 @@
             ),
         )
     }
-
-    override val browseActivityClass = SpaActivity::class.java
-
-    override val entryProviderAuthorities = "com.android.settings.spa.provider"
 }
diff --git a/src/com/android/settings/spa/SpaActivity.kt b/src/com/android/settings/spa/SpaActivity.kt
index 0914193..896f899 100644
--- a/src/com/android/settings/spa/SpaActivity.kt
+++ b/src/com/android/settings/spa/SpaActivity.kt
@@ -20,7 +20,7 @@
 import android.content.Intent
 import com.android.settingslib.spa.framework.BrowseActivity
 
-class SpaActivity : BrowseActivity(SettingsSpaEnvironment) {
+class SpaActivity : BrowseActivity() {
     companion object {
         @JvmStatic
         fun startSpaActivity(context: Context, destination: String) {
diff --git a/src/com/android/settings/spa/SpaDebugActivity.kt b/src/com/android/settings/spa/SpaDebugActivity.kt
deleted file mode 100644
index 3f055f8..0000000
--- a/src/com/android/settings/spa/SpaDebugActivity.kt
+++ /dev/null
@@ -1,21 +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.settings.spa
-
-import com.android.settingslib.spa.framework.DebugActivity
-
-class SpaDebugActivity : DebugActivity(SettingsSpaEnvironment)
diff --git a/src/com/android/settings/spa/SpaEntryProvider.kt b/src/com/android/settings/spa/SpaEntryProvider.kt
deleted file mode 100644
index 638cedd..0000000
--- a/src/com/android/settings/spa/SpaEntryProvider.kt
+++ /dev/null
@@ -1,21 +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.settings.spa
-
-import com.android.settingslib.spa.framework.EntryProvider
-
-class SpaEntryProvider : EntryProvider(SettingsSpaEnvironment)