Revert "Support two pane design in the Settings app."
This reverts commit a12a0d1eb234e4841a6633d4614e91a28f5c1517.
Reason for revert: See a build error in git_sc-v2-dev-plus-aosp/aosp_crosshatch-userdebug
Bug: 198722766
Change-Id: Ibf812bf92595f57409e3c6d9cda6a1dfa4a8c72c
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index d8bbe8f..c88639f 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -108,9 +108,7 @@
<uses-permission android:name="android.permission.READ_DREAM_SUPPRESSION" />
<uses-permission android:name="android.permission.MANAGE_APP_HIBERNATION" />
- <application
- android:name=".SettingsApplication"
- android:label="@string/settings_label"
+ <application android:label="@string/settings_label"
android:icon="@drawable/ic_launcher_settings"
android:theme="@style/Theme.Settings"
android:hardwareAccelerated="true"
diff --git a/src/com/android/settings/SettingsApplication.java b/src/com/android/settings/SettingsApplication.java
deleted file mode 100644
index 7aa5af8..0000000
--- a/src/com/android/settings/SettingsApplication.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Copyright (C) 2021 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;
-
-import android.app.Application;
-
-import com.android.settings.activityembedding.ActivityEmbeddingRulesController;
-
-/** Settings application which sets up activity embedding rules for the large screen device. */
-public class SettingsApplication extends Application {
-
- @Override
- public void onCreate() {
- super.onCreate();
-
- final ActivityEmbeddingRulesController controller =
- new ActivityEmbeddingRulesController(this);
- controller.initRules();
- }
-}
diff --git a/src/com/android/settings/activityembedding/ActivityEmbeddingRulesController.java b/src/com/android/settings/activityembedding/ActivityEmbeddingRulesController.java
deleted file mode 100644
index f1a1ecd..0000000
--- a/src/com/android/settings/activityembedding/ActivityEmbeddingRulesController.java
+++ /dev/null
@@ -1,108 +0,0 @@
-/*
- * Copyright (C) 2021 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.activityembedding;
-
-import android.app.Activity;
-import android.content.ComponentName;
-import android.content.Context;
-import android.content.Intent;
-import android.util.LayoutDirection;
-import android.util.Log;
-
-import androidx.annotation.NonNull;
-import androidx.window.embedding.ActivityFilter;
-import androidx.window.embedding.SplitController;
-import androidx.window.embedding.SplitPairFilter;
-import androidx.window.embedding.SplitPairRule;
-import androidx.window.embedding.SplitPlaceholderRule;
-
-import com.android.settings.Settings;
-import com.android.settings.SubSettings;
-
-import java.util.HashSet;
-import java.util.Set;
-
-/** A class to initialize split rules for activity embedding. */
-public class ActivityEmbeddingRulesController {
-
- private static final String TAG = "ActivityEmbeddingCtrl ";
- private final Context mContext;
- private final SplitController mSplitController;
-
- public ActivityEmbeddingRulesController(Context context) {
- mContext = context;
- mSplitController = new SplitController(context);
- }
-
- /**
- * Set up embedding rules to place activities to the right pane.
- */
- public void initRules() {
- if (!ActivityEmbeddingUtils.isEmbeddingActivityEnabled(mContext)) {
- Log.d(TAG, "Not support this feature now");
- return;
- }
-
- mSplitController.clearRegisteredRules();
-
- // Set a placeholder for home page.
- mSplitController.registerRule(getHomepagePlaceholderRule());
- // Set subsettings rule.
- mSplitController.registerRule(getSubSettingsPairRule());
- }
-
- private SplitPlaceholderRule getHomepagePlaceholderRule() {
- final Set<ActivityFilter> activityFilters = new HashSet<>();
- activityFilters.add(new ActivityFilter(getComponentName(Settings.class)));
- final Intent intent = new Intent();
- intent.setComponent(getComponentName(Settings.NetworkDashboardActivity.class));
- final SplitPlaceholderRule placeholderRule = new SplitPlaceholderRule(
- activityFilters,
- intent,
- ActivityEmbeddingUtils.getMinCurrentScreenSplitWidthPx(mContext),
- ActivityEmbeddingUtils.getMinSmallestScreenSplitWidthPx(mContext),
- ActivityEmbeddingUtils.SPLIT_RATIO,
- LayoutDirection.LOCALE);
-
- return placeholderRule;
- }
-
- private SplitPairRule getSubSettingsPairRule() {
- final Set<SplitPairFilter> pairFilters = new HashSet<>();
- pairFilters.add(new SplitPairFilter(
- getComponentName(Settings.class),
- getComponentName(SubSettings.class),
- null /* secondaryActivityIntentAction */,
- null /* secondaryActivityIntentCategory */));
- final SplitPairRule rule = new SplitPairRule(
- pairFilters,
- true /* finishPrimaryWithSecondary */,
- true /* finishSecondaryWithPrimary */,
- true /* clearTop */,
- ActivityEmbeddingUtils.getMinCurrentScreenSplitWidthPx(mContext),
- ActivityEmbeddingUtils.getMinSmallestScreenSplitWidthPx(mContext),
- ActivityEmbeddingUtils.SPLIT_RATIO,
- LayoutDirection.LOCALE);
-
- return rule;
- }
-
- @NonNull
- private ComponentName getComponentName(Class<? extends Activity> activityClass) {
- return new ComponentName(mContext.getPackageName(), activityClass.getName());
- }
-}
diff --git a/src/com/android/settings/activityembedding/ActivityEmbeddingUtils.java b/src/com/android/settings/activityembedding/ActivityEmbeddingUtils.java
deleted file mode 100644
index 96c3777..0000000
--- a/src/com/android/settings/activityembedding/ActivityEmbeddingUtils.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * Copyright (C) 2021 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.activityembedding;
-
-import android.content.Context;
-import android.util.DisplayMetrics;
-import android.util.FeatureFlagUtils;
-import android.util.Log;
-import android.util.TypedValue;
-
-import androidx.window.embedding.SplitController;
-
-/** An util class collecting all common methods for the embedding activity features. */
-public class ActivityEmbeddingUtils {
- public static final float SPLIT_RATIO = 0.5f;
- // The smallest value of current width of the window when the split should be used.
- private static final float MIN_CURRENT_SCREEN_SPLIT_WIDTH_DP = 600f;
- // The smallest value of the smallest-width (sw) of the window in any rotation when
- // the split should be used.
- private static final float MIN_SMALLEST_SCREEN_SPLIT_WIDTH_DP = 600f;
- private static final String TAG = "ActivityEmbeddingUtils";
-
- /** Get the smallest pixel value of width of the window when the split should be used. */
- public static int getMinCurrentScreenSplitWidthPx(Context context) {
- final DisplayMetrics dm = context.getResources().getDisplayMetrics();
- return (int) TypedValue.applyDimension(
- TypedValue.COMPLEX_UNIT_DIP, MIN_CURRENT_SCREEN_SPLIT_WIDTH_DP, dm);
- }
-
- /**
- * Get the smallest pixel value of the smallest-width (sw) of the window in any rotation when
- * the split should be used.
- */
- public static int getMinSmallestScreenSplitWidthPx(Context context) {
- final DisplayMetrics dm = context.getResources().getDisplayMetrics();
- return (int) TypedValue.applyDimension(
- TypedValue.COMPLEX_UNIT_DIP, MIN_SMALLEST_SCREEN_SPLIT_WIDTH_DP, dm);
- }
-
- /** Whether to support embedding activity feature. */
- public static boolean isEmbeddingActivityEnabled(Context context) {
- final boolean isFlagEnabled = FeatureFlagUtils.isEnabled(context,
- FeatureFlagUtils.SETTINGS_SUPPORT_LARGE_SCREEN);
- final boolean isSplitSupported = new SplitController(context).isSplitSupported();
-
- Log.d(TAG, "isFlagEnabled = " + isFlagEnabled);
- Log.d(TAG, "isSplitSupported = " + isSplitSupported);
-
- return isFlagEnabled && isSplitSupported;
- }
-}