From b29d495fd4a2abc3206acee220697ca62254bba3 Mon Sep 17 00:00:00 2001 From: Tsung-Mao Fang Date: Thu, 3 Dec 2020 17:56:37 +0800 Subject: [PATCH] Extract footer preference as a widget lib Currently, developer needs to import SettingsLib to use footer preference. But the size of SettingsLib is too huge. We extract the footer preference as a lib so that developer only needs to import a small lib for using footer. Test: Rebuilt apk, and see the footer preference Fix: 173088235 Change-Id: I35ba99a49c7a13542d79f0340eecdbe9844102d0 --- packages/SettingsLib/Android.bp | 1 + .../SettingsLib/FooterPreference/Android.bp | 13 +++++++++++ .../FooterPreference/AndroidManifest.xml | 23 +++++++++++++++++++ .../res/drawable/ic_info_outline_24.xml | 2 +- .../FooterPreference/res/values/attrs.xml | 19 +++++++++++++++ .../settingslib/widget/FooterPreference.java | 8 +++---- packages/SettingsLib/res/values/attrs.xml | 2 -- 7 files changed, 60 insertions(+), 8 deletions(-) create mode 100644 packages/SettingsLib/FooterPreference/Android.bp create mode 100644 packages/SettingsLib/FooterPreference/AndroidManifest.xml rename packages/SettingsLib/{ => FooterPreference}/res/drawable/ic_info_outline_24.xml (95%) create mode 100644 packages/SettingsLib/FooterPreference/res/values/attrs.xml rename packages/SettingsLib/{ => FooterPreference}/src/com/android/settingslib/widget/FooterPreference.java (97%) diff --git a/packages/SettingsLib/Android.bp b/packages/SettingsLib/Android.bp index e6492aadd7659..23cb36fc2a90c 100644 --- a/packages/SettingsLib/Android.bp +++ b/packages/SettingsLib/Android.bp @@ -54,6 +54,7 @@ java_defaults { "SettingsLibEmergencyNumber", "SettingsLibTopIntroPreference", "SettingsLibBannerMessagePreference", + "SettingsLibFooterPreference", ], } diff --git a/packages/SettingsLib/FooterPreference/Android.bp b/packages/SettingsLib/FooterPreference/Android.bp new file mode 100644 index 0000000000000..30d9bd23cd0c6 --- /dev/null +++ b/packages/SettingsLib/FooterPreference/Android.bp @@ -0,0 +1,13 @@ +android_library { + name: "SettingsLibFooterPreference", + + srcs: ["src/**/*.java"], + resource_dirs: ["res"], + + static_libs: [ + "androidx.annotation_annotation", + "androidx.preference_preference", + ], + sdk_version: "system_current", + min_sdk_version: "21", +} diff --git a/packages/SettingsLib/FooterPreference/AndroidManifest.xml b/packages/SettingsLib/FooterPreference/AndroidManifest.xml new file mode 100644 index 0000000000000..96d9e518663f9 --- /dev/null +++ b/packages/SettingsLib/FooterPreference/AndroidManifest.xml @@ -0,0 +1,23 @@ + + + + + + + + diff --git a/packages/SettingsLib/res/drawable/ic_info_outline_24.xml b/packages/SettingsLib/FooterPreference/res/drawable/ic_info_outline_24.xml similarity index 95% rename from packages/SettingsLib/res/drawable/ic_info_outline_24.xml rename to packages/SettingsLib/FooterPreference/res/drawable/ic_info_outline_24.xml index 317e43b95cddc..d9afeb0a63615 100644 --- a/packages/SettingsLib/res/drawable/ic_info_outline_24.xml +++ b/packages/SettingsLib/FooterPreference/res/drawable/ic_info_outline_24.xml @@ -1,6 +1,6 @@ + + + + \ No newline at end of file diff --git a/packages/SettingsLib/src/com/android/settingslib/widget/FooterPreference.java b/packages/SettingsLib/FooterPreference/src/com/android/settingslib/widget/FooterPreference.java similarity index 97% rename from packages/SettingsLib/src/com/android/settingslib/widget/FooterPreference.java rename to packages/SettingsLib/FooterPreference/src/com/android/settingslib/widget/FooterPreference.java index 15576182c53a0..15301f616f8b1 100644 --- a/packages/SettingsLib/src/com/android/settingslib/widget/FooterPreference.java +++ b/packages/SettingsLib/FooterPreference/src/com/android/settingslib/widget/FooterPreference.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2016 The Android Open Source Project + * Copyright (C) 2020 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. @@ -16,7 +16,6 @@ package com.android.settingslib.widget; -import android.annotation.StringRes; import android.content.Context; import android.text.TextUtils; import android.text.method.LinkMovementMethod; @@ -24,20 +23,19 @@ import android.util.AttributeSet; import android.widget.TextView; import androidx.annotation.NonNull; +import androidx.annotation.StringRes; import androidx.core.content.res.TypedArrayUtils; import androidx.preference.Preference; import androidx.preference.PreferenceViewHolder; -import com.android.settingslib.R; - /** * A custom preference acting as "footer" of a page. It has a field for icon and text. It is added * to screen as the last preference. */ public class FooterPreference extends Preference { - static final int ORDER_FOOTER = Integer.MAX_VALUE - 1; public static final String KEY_FOOTER = "footer_preference"; + static final int ORDER_FOOTER = Integer.MAX_VALUE - 1; public FooterPreference(Context context, AttributeSet attrs) { super(context, attrs, TypedArrayUtils.getAttr( diff --git a/packages/SettingsLib/res/values/attrs.xml b/packages/SettingsLib/res/values/attrs.xml index 9aed54e12a2dd..1e6cb33433c7b 100644 --- a/packages/SettingsLib/res/values/attrs.xml +++ b/packages/SettingsLib/res/values/attrs.xml @@ -46,8 +46,6 @@ - -