diff --git a/res/values/attrs.xml b/res/values/attrs.xml
index 4b607bedb06..a08b2e88161 100644
--- a/res/values/attrs.xml
+++ b/res/values/attrs.xml
@@ -22,10 +22,6 @@
-
-
-
-
diff --git a/src/com/android/settings/widget/SetupWizardIllustration.java b/src/com/android/settings/widget/SetupWizardIllustration.java
deleted file mode 100644
index 717ec352c12..00000000000
--- a/src/com/android/settings/widget/SetupWizardIllustration.java
+++ /dev/null
@@ -1,161 +0,0 @@
-/*
- * Copyright (C) 2014 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.widget;
-
-import android.content.Context;
-import android.content.res.TypedArray;
-import android.graphics.Canvas;
-import android.graphics.Rect;
-import android.graphics.drawable.Drawable;
-import android.util.AttributeSet;
-import android.view.Gravity;
-import android.view.ViewOutlineProvider;
-import android.widget.FrameLayout;
-
-import com.android.settings.R;
-
-/**
- * Class to draw the illustration of setup wizard. The aspectRatio attribute determines the aspect
- * ratio of the top padding, which is leaving space for the illustration. Draws an illustration
- * (foreground) to fit the width of the view and fills the rest with the background.
- *
- * Copied from com.google.android.setupwizard.util.SetupWizardIllustration
- */
-public class SetupWizardIllustration extends FrameLayout {
-
- private static final String TAG = "SetupWizardIllustration";
-
- // Size of the baseline grid in pixels
- private float mBaselineGridSize;
- private Drawable mBackground;
- private Drawable mForeground;
- private final Rect mViewBounds = new Rect();
- private final Rect mForegroundBounds = new Rect();
- private float mScale = 1.0f;
- private float mAspectRatio = 0.0f;
-
- public SetupWizardIllustration(Context context) {
- this(context, null);
- }
-
- public SetupWizardIllustration(Context context, AttributeSet attrs) {
- this(context, attrs, 0);
- }
-
- public SetupWizardIllustration(Context context, AttributeSet attrs, int defStyleAttr) {
- this(context, attrs, defStyleAttr, 0);
- }
-
- public SetupWizardIllustration(Context context, AttributeSet attrs, int defStyleAttr,
- int defStyleRes) {
- super(context, attrs, defStyleAttr, defStyleRes);
- if (attrs != null) {
- TypedArray a = context.obtainStyledAttributes(attrs,
- R.styleable.SetupWizardIllustration, 0, 0);
- mAspectRatio = a.getFloat(R.styleable.SetupWizardIllustration_aspectRatio, 0.0f);
- a.recycle();
- }
- // Number of pixels of the 8dp baseline grid as defined in material design specs
- mBaselineGridSize = getResources().getDisplayMetrics().density * 8;
- setWillNotDraw(false);
- }
-
- /**
- * The background will be drawn to fill up the rest of the view. It will also be scaled by the
- * same amount as the foreground so their textures look the same.
- */
- @Override
- public void setBackground(Drawable background) {
- mBackground = background;
- }
-
- /**
- * Sets the drawable used as the illustration. THe drawable is expected to have intrinsic
- * width and height defined and will be scaled to fit the width of the view.
- */
- @Override
- public void setForeground(Drawable foreground) {
- mForeground = foreground;
- }
-
- @Override
- public void onResolveDrawables(int layoutDirection) {
- mBackground.setLayoutDirection(layoutDirection);
- mForeground.setLayoutDirection(layoutDirection);
- }
-
- @Override
- protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
- if (mAspectRatio != 0.0f) {
- int parentWidth = MeasureSpec.getSize(widthMeasureSpec);
- int illustrationHeight = (int) (parentWidth / mAspectRatio);
- illustrationHeight -= illustrationHeight % mBaselineGridSize;
- setPaddingRelative(0, illustrationHeight, 0, 0);
- }
- setOutlineProvider(ViewOutlineProvider.BOUNDS);
- super.onMeasure(widthMeasureSpec, heightMeasureSpec);
- }
-
- @Override
- protected void onLayout(boolean changed, int left, int top, int right, int bottom) {
- final int layoutWidth = right - left;
- final int layoutHeight = bottom - top;
- if (mForeground != null) {
- int intrinsicWidth = mForeground.getIntrinsicWidth();
- int intrinsicHeight = mForeground.getIntrinsicHeight();
- final int layoutDirection = getLayoutDirection();
-
- mViewBounds.set(0, 0, layoutWidth, layoutHeight);
- if (mAspectRatio != 0f) {
- mScale = layoutWidth / (float) intrinsicWidth;
- intrinsicWidth = layoutWidth;
- intrinsicHeight = (int) (intrinsicHeight * mScale);
- }
- Gravity.apply(Gravity.FILL_HORIZONTAL | Gravity.TOP, intrinsicWidth, intrinsicHeight,
- mViewBounds, mForegroundBounds, layoutDirection);
- mForeground.setBounds(mForegroundBounds);
- }
- if (mBackground != null) {
- // Scale the bounds by mScale to compensate for the scale done to the canvas before
- // drawing.
- mBackground.setBounds(0, 0, (int) Math.ceil(layoutWidth / mScale),
- (int) Math.ceil((layoutHeight - mForegroundBounds.height()) / mScale));
- }
- super.onLayout(changed, left, top, right, bottom);
- }
-
- @Override
- public void onDraw(Canvas canvas) {
- if (mBackground != null) {
- canvas.save();
- // Draw the background filling parts not covered by the illustration
- canvas.translate(0, mForegroundBounds.height());
- // Scale the background so its size matches the foreground
- canvas.scale(mScale, mScale, 0, 0);
- mBackground.draw(canvas);
- canvas.restore();
- }
- if (mForeground != null) {
- canvas.save();
- // Draw the illustration
- mForeground.draw(canvas);
- canvas.restore();
- }
- super.onDraw(canvas);
- }
-}
diff --git a/src/com/android/settings/widget/StickyHeaderListView.java b/src/com/android/settings/widget/StickyHeaderListView.java
deleted file mode 100644
index a2ff51b4d80..00000000000
--- a/src/com/android/settings/widget/StickyHeaderListView.java
+++ /dev/null
@@ -1,138 +0,0 @@
-/*
- * Copyright (C) 2014 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.widget;
-
-import android.content.Context;
-import android.graphics.Canvas;
-import android.graphics.RectF;
-import android.util.AttributeSet;
-import android.view.MotionEvent;
-import android.view.View;
-import android.view.WindowInsets;
-import android.widget.ListView;
-
-/**
- * This class provides sticky header functionality in a list view, to use with
- * SetupWizardIllustration. To use this, add a header tagged with "sticky", or a header tagged with
- * "stickyContainer" and one of its child tagged as "sticky". The sticky container will be drawn
- * when the sticky element hits the top of the view.
- *
- * There are a few things to note:
- * 1. The two supported scenarios are StickyHeaderListView -> Header (stickyContainer) -> sticky,
- * and StickyHeaderListView -> Header (sticky). The arrow (->) represents parent/child
- * relationship and must be immediate child.
- * 2. The view does not work well with padding. b/16190933
- * 3. If fitsSystemWindows is true, then this will offset the sticking position by the height of
- * the system decorations at the top of the screen.
- *
- * @see SetupWizardIllustration
- * @see com.google.android.setupwizard.util.StickyHeaderScrollView
- *
- * Copied from com.google.android.setupwizard.util.StickyHeaderListView
- */
-public class StickyHeaderListView extends ListView {
-
- private View mSticky;
- private View mStickyContainer;
- private boolean mDrawScrollBar;
- private int mStatusBarInset = 0;
- private RectF mStickyRect = new RectF();
-
- public StickyHeaderListView(Context context) {
- super(context);
- }
-
- public StickyHeaderListView(Context context, AttributeSet attrs) {
- super(context, attrs);
- }
-
- public StickyHeaderListView(Context context, AttributeSet attrs, int defStyleAttr) {
- super(context, attrs, defStyleAttr);
- }
-
- public StickyHeaderListView(Context context, AttributeSet attrs, int defStyleAttr,
- int defStyleRes) {
- super(context, attrs, defStyleAttr, defStyleRes);
- }
-
- @Override
- protected void onLayout(boolean changed, int l, int t, int r, int b) {
- super.onLayout(changed, l, t, r, b);
- if (mSticky == null) {
- updateStickyView();
- }
- }
-
- public void updateStickyView() {
- mSticky = findViewWithTag("sticky");
- mStickyContainer = findViewWithTag("stickyContainer");
- }
-
- @Override
- public boolean dispatchTouchEvent(MotionEvent ev) {
- if (mStickyRect.contains(ev.getX(), ev.getY())) {
- ev.offsetLocation(-mStickyRect.left, -mStickyRect.top);
- return mStickyContainer.dispatchTouchEvent(ev);
- } else {
- return super.dispatchTouchEvent(ev);
- }
- }
-
- @Override
- public void draw(Canvas canvas) {
- mDrawScrollBar = false;
- super.draw(canvas);
- if (mSticky != null) {
- final int saveCount = canvas.save();
- // The view to draw when sticking to the top
- final View drawTarget = mStickyContainer != null ? mStickyContainer : mSticky;
- // The offset to draw the view at when sticky
- final int drawOffset = mStickyContainer != null ? mSticky.getTop() : 0;
- // Position of the draw target, relative to the outside of the scrollView
- final int drawTop = drawTarget.getTop();
- if (drawTop + drawOffset < mStatusBarInset || !drawTarget.isShown()) {
- // ListView does not translate the canvas, so we can simply draw at the top
- canvas.translate(0, -drawOffset + mStatusBarInset);
- canvas.clipRect(0, 0, drawTarget.getWidth(), drawTarget.getHeight());
- drawTarget.draw(canvas);
- mStickyRect.set(0, -drawOffset + mStatusBarInset, drawTarget.getWidth(),
- drawTarget.getHeight() - drawOffset + mStatusBarInset);
- } else {
- mStickyRect.setEmpty();
- }
- canvas.restoreToCount(saveCount);
- }
- // Draw the scrollbars last so they are on top of the header
- mDrawScrollBar = true;
- onDrawScrollBars(canvas);
- }
-
- @Override
- protected boolean isVerticalScrollBarHidden() {
- return super.isVerticalScrollBarHidden() || !mDrawScrollBar;
- }
-
- @Override
- public WindowInsets onApplyWindowInsets(WindowInsets insets) {
- if (getFitsSystemWindows()) {
- mStatusBarInset = insets.getSystemWindowInsetTop();
- insets.consumeSystemWindowInsets(false, true, false, false);
- }
- return insets;
- }
-}