Fix crash when dynamic_homepage flag is off.
This partially rolls back ag/5650901. We should revert this change when
dynamic_homepage flag is permanently on.
Change-Id: I5e340421d04bc20c77dd30395fd8522693807954
Fixes: 118444000
Test: manual
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index a08d028..c5e512e 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -114,6 +114,14 @@
<uses-library android:name="org.apache.http.legacy" />
<!-- Settings -->
+ <!-- TODO(b/118444000): Remove this. -->
+ <activity android:name="SettingsActivity"
+ android:label="@string/settings_label_launcher"
+ android:launchMode="singleTask">
+ <meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED"
+ android:value="true" />
+ </activity>
+
<activity android:name=".homepage.SettingsHomepageActivity"
android:label="@string/settings_label_launcher"
android:theme="@style/Theme.Settings.Home"
diff --git a/res/layout/settings_main_dashboard.xml b/res/layout/settings_main_dashboard.xml
new file mode 100644
index 0000000..ee84576
--- /dev/null
+++ b/res/layout/settings_main_dashboard.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2018 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.
+-->
+
+<!-- TODO(118444000): Remove this -->
+<LinearLayout
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:orientation="vertical">
+
+ <include layout="@layout/search_bar" />
+
+ <FrameLayout
+ android:id="@+id/main_content"
+ android:layout_height="match_parent"
+ android:layout_width="match_parent" />
+</LinearLayout>
\ No newline at end of file
diff --git a/res/values/themes.xml b/res/values/themes.xml
index a787443..1e24770 100644
--- a/res/values/themes.xml
+++ b/res/values/themes.xml
@@ -54,6 +54,10 @@
<item name="batteryGoodColor">@color/battery_good_color_light</item>
<item name="batteryMaybeColor">@color/battery_maybe_color_light</item>
<item name="batteryBadColor">@color/battery_bad_color_light</item>
+
+ <!-- TODO(118444000): Remove colorPrimary and colorPrimaryVariant -->
+ <item name="colorPrimary">@*android:color/primary_device_default_settings_light</item>
+ <item name="colorPrimaryVariant">@android:color/white</item>
</style>
<!-- Variant of the settings theme with no action bar. -->
diff --git a/src/com/android/settings/SettingsActivity.java b/src/com/android/settings/SettingsActivity.java
index 222c18c..9b5fc00 100644
--- a/src/com/android/settings/SettingsActivity.java
+++ b/src/com/android/settings/SettingsActivity.java
@@ -35,9 +35,9 @@
import android.transition.TransitionManager;
import android.util.Log;
import android.view.View;
-import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.Button;
+import android.widget.Toolbar;
import androidx.annotation.Nullable;
import androidx.annotation.VisibleForTesting;
@@ -168,6 +168,12 @@
private Button mNextButton;
+ /**
+ * TODO(b/118444000): Remove this and all related code.
+ */
+ @Deprecated
+ private boolean mIsShowingDashboard;
+
private ViewGroup mContent;
// Categories
@@ -250,7 +256,11 @@
setTheme(R.style.Theme_SubSettings);
}
- setContentView(R.layout.settings_main_prefs);
+ mIsShowingDashboard = TextUtils.equals(
+ SettingsActivity.class.getName(), intent.getComponent().getClassName());
+
+ setContentView(mIsShowingDashboard ?
+ R.layout.settings_main_dashboard : R.layout.settings_main_prefs);
mContent = findViewById(R.id.main_content);
@@ -273,12 +283,21 @@
}
final boolean deviceProvisioned = Utils.isDeviceProvisioned(this);
+ if (mIsShowingDashboard) {
+ findViewById(R.id.search_bar).setVisibility(
+ deviceProvisioned ? View.VISIBLE : View.INVISIBLE);
+ findViewById(R.id.action_bar).setVisibility(View.GONE);
+ final Toolbar toolbar = findViewById(R.id.search_action_bar);
+ setActionBar(toolbar);
+ FeatureFactory.getFactory(this).getSearchFeatureProvider()
+ .initSearchToolbar(this, toolbar);
+ }
ActionBar actionBar = getActionBar();
if (actionBar != null) {
actionBar.setDisplayHomeAsUpEnabled(deviceProvisioned);
actionBar.setHomeButtonEnabled(deviceProvisioned);
- actionBar.setDisplayShowTitleEnabled(true);
+ actionBar.setDisplayShowTitleEnabled(!mIsShowingDashboard);
}
mSwitchBar = findViewById(R.id.switch_bar);
if (mSwitchBar != null) {
@@ -292,26 +311,20 @@
if (buttonBar != null) {
buttonBar.setVisibility(View.VISIBLE);
- Button backButton = (Button) findViewById(R.id.back_button);
- backButton.setOnClickListener(new OnClickListener() {
- public void onClick(View v) {
- setResult(RESULT_CANCELED, null);
- finish();
- }
+ Button backButton = findViewById(R.id.back_button);
+ backButton.setOnClickListener(v -> {
+ setResult(RESULT_CANCELED, null);
+ finish();
});
- Button skipButton = (Button) findViewById(R.id.skip_button);
- skipButton.setOnClickListener(new OnClickListener() {
- public void onClick(View v) {
- setResult(RESULT_OK, null);
- finish();
- }
+ Button skipButton = findViewById(R.id.skip_button);
+ skipButton.setOnClickListener(v -> {
+ setResult(RESULT_OK, null);
+ finish();
});
- mNextButton = (Button) findViewById(R.id.next_button);
- mNextButton.setOnClickListener(new OnClickListener() {
- public void onClick(View v) {
- setResult(RESULT_OK, null);
- finish();
- }
+ mNextButton = findViewById(R.id.next_button);
+ mNextButton.setOnClickListener(v -> {
+ setResult(RESULT_OK, null);
+ finish();
});
// set our various button parameters