From afa3a1a0cbebbab40663aedbd60d721df1f161e9 Mon Sep 17 00:00:00 2001 From: Jason Monk Date: Fri, 16 Oct 2015 10:50:25 -0400 Subject: [PATCH] Fix ManagedServiceSettings to work with Preferencev14 Bug: 25007000 Change-Id: I5e3a59b77001ce0e2928b35fa1b87878e22d4fbd --- res/layout/managed_service_settings.xml | 44 ---------------- .../notification/EmptyTextSettings.java | 50 +++++++++++++++++++ .../notification/ManagedServiceSettings.java | 18 ++----- .../notification/ZenAccessSettings.java | 19 ++----- 4 files changed, 60 insertions(+), 71 deletions(-) delete mode 100644 res/layout/managed_service_settings.xml create mode 100644 src/com/android/settings/notification/EmptyTextSettings.java diff --git a/res/layout/managed_service_settings.xml b/res/layout/managed_service_settings.xml deleted file mode 100644 index b2fc0b2419b..00000000000 --- a/res/layout/managed_service_settings.xml +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - - - - - - - - diff --git a/src/com/android/settings/notification/EmptyTextSettings.java b/src/com/android/settings/notification/EmptyTextSettings.java new file mode 100644 index 00000000000..dd7a32174f9 --- /dev/null +++ b/src/com/android/settings/notification/EmptyTextSettings.java @@ -0,0 +1,50 @@ +/* + * Copyright (C) 2015 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.notification; + +import android.annotation.Nullable; +import android.os.Bundle; +import android.util.TypedValue; +import android.view.Gravity; +import android.view.View; +import android.view.ViewGroup; +import android.view.ViewGroup.LayoutParams; +import android.widget.TextView; +import com.android.settings.R; +import com.android.settings.SettingsPreferenceFragment; + +public abstract class EmptyTextSettings extends SettingsPreferenceFragment { + + private TextView mEmpty; + + @Override + public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { + super.onViewCreated(view, savedInstanceState); + mEmpty = new TextView(getContext()); + mEmpty.setGravity(Gravity.CENTER); + TypedValue value = new TypedValue(); + getContext().getTheme().resolveAttribute(android.R.attr.textAppearanceMedium, value, true); + mEmpty.setTextAppearance(value.resourceId); + ((ViewGroup) view.findViewById(R.id.list_container)).addView(mEmpty, + new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT)); + setEmptyView(mEmpty); + } + + protected void setEmptyText(int text) { + mEmpty.setText(text); + } +} diff --git a/src/com/android/settings/notification/ManagedServiceSettings.java b/src/com/android/settings/notification/ManagedServiceSettings.java index 877593336d3..401e650fd44 100644 --- a/src/com/android/settings/notification/ManagedServiceSettings.java +++ b/src/com/android/settings/notification/ManagedServiceSettings.java @@ -16,6 +16,7 @@ package com.android.settings.notification; +import android.annotation.Nullable; import android.app.AlertDialog; import android.app.Dialog; import android.app.DialogFragment; @@ -30,19 +31,14 @@ import android.support.v14.preference.SwitchPreference; import android.support.v7.preference.Preference; import android.support.v7.preference.Preference.OnPreferenceChangeListener; import android.support.v7.preference.PreferenceScreen; -import android.view.LayoutInflater; import android.view.View; -import android.view.ViewGroup; -import android.widget.ListView; import android.widget.TextView; - import com.android.settings.R; -import com.android.settings.SettingsPreferenceFragment; import java.util.Collections; import java.util.List; -public abstract class ManagedServiceSettings extends SettingsPreferenceFragment { +public abstract class ManagedServiceSettings extends EmptyTextSettings { private final Config mConfig; private Context mContext; @@ -73,13 +69,9 @@ public abstract class ManagedServiceSettings extends SettingsPreferenceFragment } @Override - public View onCreateView(LayoutInflater inflater, ViewGroup container, - Bundle savedInstanceState) { - final View v = inflater.inflate(R.layout.managed_service_settings, container, false); - mEmpty = (TextView) v.findViewById(android.R.id.empty); - mEmpty.setText(mConfig.emptyText); - ((ListView) v.findViewById(android.R.id.list)).setEmptyView(mEmpty); - return v; + public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { + super.onViewCreated(view, savedInstanceState); + setEmptyText(mConfig.emptyText); } @Override diff --git a/src/com/android/settings/notification/ZenAccessSettings.java b/src/com/android/settings/notification/ZenAccessSettings.java index d125d21c3d5..1c85f4d9c82 100644 --- a/src/com/android/settings/notification/ZenAccessSettings.java +++ b/src/com/android/settings/notification/ZenAccessSettings.java @@ -16,6 +16,7 @@ package com.android.settings.notification; +import android.annotation.Nullable; import android.app.AlertDialog; import android.app.Dialog; import android.app.DialogFragment; @@ -38,27 +39,21 @@ import android.support.v7.preference.Preference.OnPreferenceChangeListener; import android.support.v7.preference.PreferenceScreen; import android.text.TextUtils; import android.util.ArraySet; -import android.view.LayoutInflater; import android.view.View; -import android.view.ViewGroup; -import android.widget.TextView; - import com.android.internal.logging.MetricsLogger; import com.android.settings.R; -import com.android.settings.SettingsPreferenceFragment; import java.util.ArrayList; import java.util.Collections; import java.util.List; -public class ZenAccessSettings extends SettingsPreferenceFragment { +public class ZenAccessSettings extends EmptyTextSettings { private final SettingObserver mObserver = new SettingObserver(); private Context mContext; private PackageManager mPkgMan; private NotificationManager mNoMan; - private TextView mEmpty; @Override protected int getMetricsCategory() { @@ -76,12 +71,9 @@ public class ZenAccessSettings extends SettingsPreferenceFragment { } @Override - public View onCreateView(LayoutInflater inflater, ViewGroup container, - Bundle savedInstanceState) { - final View v = inflater.inflate(R.layout.managed_service_settings, container, false); - mEmpty = (TextView) v.findViewById(android.R.id.empty); - mEmpty.setText(R.string.zen_access_empty_text); - return v; + public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { + super.onViewCreated(view, savedInstanceState); + setEmptyText(R.string.zen_access_empty_text); } @Override @@ -141,7 +133,6 @@ public class ZenAccessSettings extends SettingsPreferenceFragment { }); screen.addPreference(pref); } - mEmpty.setVisibility(apps.isEmpty() ? View.VISIBLE : View.GONE); } private boolean hasAccess(String pkg) {