Add location to security settings.

Bug: 32437756
Test: RunSettingsRoboTests
Change-Id: I999669963801684eb2399f5e642159970727b3c4
This commit is contained in:
Fan Zhang
2016-10-26 10:44:45 -07:00
parent 9895344be6
commit 301fe80fa7
8 changed files with 224 additions and 76 deletions

View File

@@ -16,10 +16,15 @@
package com.android.settings.dashboard;
import android.app.Activity;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.preference.Preference;
import android.text.TextUtils;
import com.android.settings.SettingsActivity;
import com.android.settingslib.drawer.CategoryManager;
import com.android.settingslib.drawer.DashboardCategory;
import com.android.settingslib.drawer.Tile;
@@ -73,6 +78,40 @@ public class DashboardFeatureProviderImpl implements DashboardFeatureProvider {
return sb.toString();
}
@Override
public void bindPreferenceToTile(Activity activity, Preference pref, Tile tile, String key) {
pref.setTitle(tile.title);
if (!TextUtils.isEmpty(key)) {
pref.setKey(key);
} else {
pref.setKey(getDashboardKeyForTile(tile));
}
pref.setSummary(tile.summary);
if (tile.icon != null) {
pref.setIcon(tile.icon.loadDrawable(activity));
}
final Bundle metadata = tile.metaData;
String clsName = null;
if (metadata != null) {
clsName = metadata.getString(SettingsActivity.META_DATA_KEY_FRAGMENT_CLASS);
}
if (!TextUtils.isEmpty(clsName)) {
pref.setFragment(clsName);
} else if (tile.intent != null) {
final Intent intent = new Intent(tile.intent);
pref.setOnPreferenceClickListener(preference -> {
activity.startActivityForResult(intent, 0);
return true;
});
}
// Use negated priority for order, because tile priority is based on intent-filter
// (larger value has higher priority). However pref order defines smaller value has
// higher priority.
if (tile.priority != 0) {
pref.setOrder(-tile.priority);
}
}
@Override
public ProgressiveDisclosureMixin getProgressiveDisclosureMixin(Context context,
DashboardFragment fragment) {