Add account sync summary.

- Check for the number of sync adapter that is enabled for the account
and
update the summary text for the account sync preference accordingly.
- Add divider above the Remove Account button.

Bug: 62862167
Test: make RunSettingsRoboTests
Change-Id: Ic333f62cce9aed0a72771324976ebe3d8e586287
This commit is contained in:
Doris Ling
2017-06-28 13:18:56 -07:00
parent 051fb19dd4
commit 771848dde0
5 changed files with 267 additions and 16 deletions

View File

@@ -19,6 +19,7 @@ package com.android.settings.applications;
import android.content.Context;
import android.content.res.TypedArray;
import android.support.annotation.VisibleForTesting;
import android.support.v4.content.res.TypedArrayUtils;
import android.support.v7.preference.Preference;
import android.support.v7.preference.PreferenceViewHolder;
import android.util.AttributeSet;
@@ -33,19 +34,30 @@ import com.android.settings.Utils;
public class LayoutPreference extends Preference {
private final View.OnClickListener mClickListener = v -> performClick(v);
private boolean mAllowDividerAbove;
private boolean mAllowDividerBelow;
@VisibleForTesting
View mRootView;
public LayoutPreference(Context context, AttributeSet attrs) {
super(context, attrs);
final TypedArray a = context.obtainStyledAttributes(
TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.Preference);
mAllowDividerAbove = TypedArrayUtils.getBoolean(a, R.styleable.Preference_allowDividerAbove,
R.styleable.Preference_allowDividerAbove, false);
mAllowDividerBelow = TypedArrayUtils.getBoolean(a, R.styleable.Preference_allowDividerBelow,
R.styleable.Preference_allowDividerBelow, false);
a.recycle();
a = context.obtainStyledAttributes(
attrs, com.android.internal.R.styleable.Preference, 0, 0);
int layoutResource = a.getResourceId(com.android.internal.R.styleable.Preference_layout,
0);
if (layoutResource == 0) {
throw new IllegalArgumentException("LayoutPreference requires a layout to be defined");
}
a.recycle();
// Need to create view now so that findViewById can be called immediately.
final View view = LayoutInflater.from(getContext())
.inflate(layoutResource, null, false);
@@ -78,6 +90,8 @@ public class LayoutPreference extends Preference {
final boolean selectable = isSelectable();
holder.itemView.setFocusable(selectable);
holder.itemView.setClickable(selectable);
holder.setDividerAllowedAbove(mAllowDividerAbove);
holder.setDividerAllowedBelow(mAllowDividerBelow);
FrameLayout layout = (FrameLayout) holder.itemView;
layout.removeAllViews();