Merge "Fix footer issues" into sc-dev

This commit is contained in:
TreeHugger Robot
2021-05-24 16:15:36 +00:00
committed by Android (Google) Code Review
5 changed files with 33 additions and 21 deletions

View File

@@ -685,24 +685,24 @@
<!-- Location settings, loading the number of apps which have location permission [CHAR LIMIT=30] --> <!-- Location settings, loading the number of apps which have location permission [CHAR LIMIT=30] -->
<string name="location_settings_loading_app_permission_stats">Loading\u2026</string> <string name="location_settings_loading_app_permission_stats">Loading\u2026</string>
<!-- Location settings footer warning text when location is on [CHAR LIMIT=NONE] --> <!-- Location settings footer warning text when location is on [CHAR LIMIT=NONE] -->
<string name="location_settings_footer_location_on"> <string name="location_settings_footer_general">
&lt;br>&lt;br>Apps with the Nearby devices permission can determine the Apps with the Nearby devices permission can determine the
relative position of connected devices. relative position of connected devices.
&lt;br>&lt;br>&lt;a href="<xliff:g example="http://www.google.com" id="url">
https://support.google.com/android/answer/3467281</xliff:g>">Learn more&lt;/a>
</string> </string>
<!-- Location settings footer warning text when location is off [CHAR LIMIT=NONE] --> <!-- Location settings footer warning text when location is off [CHAR LIMIT=NONE] -->
<string name="location_settings_footer_location_off"> <string name="location_settings_footer_location_off">
Location access is off for apps and services. Your device location may still be sent to Location access is off for apps and services. Your device location may still be sent to
emergency responders when you call or text an emergency number. emergency responders when you call or text an emergency number.
</string>
&lt;br>&lt;br>Apps with the Nearby devices permission can determine the relative <!-- Location settings footer link to support page [CHAR LIMIT=NONE] -->
position of connected devices. <string name="location_settings_footer_learn_more">
&lt;a href="<xliff:g example="http://www.google.com"
&lt;br>&lt;br>&lt;a href="<xliff:g example="http://www.google.com"
id="url"> https://support.google.com/android/answer/3467281</xliff:g>">Learn more&lt;/a> id="url"> https://support.google.com/android/answer/3467281</xliff:g>">Learn more&lt;/a>
</string> </string>
<!-- Location settings footer link content description [CHAR LIMIT=NONE] -->
<string name="location_settings_footer_learn_more_content_description">
Learn more about Location Settings.
</string>
<!-- Main Settings screen setting option title for the item to take you to the accounts screen [CHAR LIMIT=22] --> <!-- Main Settings screen setting option title for the item to take you to the accounts screen [CHAR LIMIT=22] -->
<string name="account_settings_title">Accounts</string> <string name="account_settings_title">Accounts</string>

View File

@@ -70,8 +70,9 @@
</PreferenceCategory> </PreferenceCategory>
<com.android.settingslib.widget.FooterPreference <com.android.settingslib.widget.FooterPreference
android:title="@string/location_settings_footer_location_on" android:title="@string/location_settings_footer_general"
android:key="location_footer" android:key="location_footer"
android:selectable="false" android:selectable="false"
settings:searchable="false"
settings:controller="com.android.settings.location.LocationSettingsFooterPreferenceController"/> settings:controller="com.android.settings.location.LocationSettingsFooterPreferenceController"/>
</PreferenceScreen> </PreferenceScreen>

View File

@@ -54,7 +54,7 @@
settings:controller="com.android.settings.location.LocationServicesPreferenceController"/> settings:controller="com.android.settings.location.LocationServicesPreferenceController"/>
<com.android.settingslib.widget.FooterPreference <com.android.settingslib.widget.FooterPreference
android:title="@string/location_settings_footer_location_on" android:title="@string/location_settings_footer_general"
android:key="location_footer" android:key="location_footer"
settings:controller="com.android.settings.location.LocationSettingsFooterPreferenceController" settings:controller="com.android.settings.location.LocationSettingsFooterPreferenceController"
android:selectable="false"/> android:selectable="false"/>

View File

@@ -62,7 +62,7 @@
settings:controller="com.android.settings.location.LocationServicesForWorkPreferenceController"/> settings:controller="com.android.settings.location.LocationServicesForWorkPreferenceController"/>
<com.android.settingslib.widget.FooterPreference <com.android.settingslib.widget.FooterPreference
android:title="@string/location_settings_footer_location_on" android:title="@string/location_settings_footer_general"
android:key="location_footer" android:key="location_footer"
settings:controller="com.android.settings.location.LocationSettingsFooterPreferenceController" settings:controller="com.android.settings.location.LocationSettingsFooterPreferenceController"
android:selectable="false"/> android:selectable="false"/>

View File

@@ -24,6 +24,7 @@ import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo; import android.content.pm.ResolveInfo;
import android.location.LocationManager; import android.location.LocationManager;
import android.text.Html; import android.text.Html;
import android.text.TextUtils;
import android.util.Log; import android.util.Log;
import androidx.preference.Preference; import androidx.preference.Preference;
@@ -42,6 +43,7 @@ import java.util.List;
*/ */
public class LocationSettingsFooterPreferenceController extends LocationBasePreferenceController { public class LocationSettingsFooterPreferenceController extends LocationBasePreferenceController {
private static final String TAG = "LocationFooter"; private static final String TAG = "LocationFooter";
private static final String PARAGRAPH_SEPARATOR = "<br><br>";
private static final Intent INJECT_INTENT = private static final Intent INJECT_INTENT =
new Intent(LocationManager.SETTINGS_FOOTER_DISPLAYED_ACTION); new Intent(LocationManager.SETTINGS_FOOTER_DISPLAYED_ACTION);
@@ -90,24 +92,33 @@ public class LocationSettingsFooterPreferenceController extends LocationBasePref
} }
private void updateFooterPreference() { private void updateFooterPreference() {
String footerString = mContext.getString( String footerString = mContext.getString(R.string.location_settings_footer_general);
mLocationEnabled ? R.string.location_settings_footer_location_on
: R.string.location_settings_footer_location_off);
if (mLocationEnabled) { if (mLocationEnabled) {
footerString = mInjectedFooterString + footerString; if (!TextUtils.isEmpty(mInjectedFooterString)) {
footerString = Html.escapeHtml(mInjectedFooterString) + PARAGRAPH_SEPARATOR
+ footerString;
}
} else {
footerString = mContext.getString(R.string.location_settings_footer_location_off)
+ PARAGRAPH_SEPARATOR
+ footerString;
} }
if (mFooterPreference != null) { if (mFooterPreference != null) {
mFooterPreference.setTitle(Html.fromHtml(footerString)); mFooterPreference.setTitle(Html.fromHtml(footerString
+ PARAGRAPH_SEPARATOR
+ mContext.getString(
R.string.location_settings_footer_learn_more)));
mFooterPreference.setContentDescription(Html.fromHtml(footerString + mContext.getString(
R.string.location_settings_footer_learn_more_content_description)));
} }
} }
/** /**
* Location footer preference group should be displayed if there is at least one footer to * Location footer preference group should always be displayed.
* inject.
*/ */
@Override @Override
public int getAvailabilityStatus() { public int getAvailabilityStatus() {
return !getFooterData().isEmpty() ? AVAILABLE : UNSUPPORTED_ON_DEVICE; return AVAILABLE;
} }
/** /**