Use setStatusBarColor API

Change-Id: I3eb9a3511f7fe6b4dbac5d93d9edd3b98921e909
diff --git a/src/com/android/calculator2/CalculatorActivity.java b/src/com/android/calculator2/CalculatorActivity.java
index 2d660cc..300e94f 100644
--- a/src/com/android/calculator2/CalculatorActivity.java
+++ b/src/com/android/calculator2/CalculatorActivity.java
@@ -25,6 +25,7 @@
 import android.animation.ValueAnimator;
 import android.animation.ValueAnimator.AnimatorUpdateListener;
 import android.app.Activity;
+import android.graphics.Rect;
 import android.os.Bundle;
 import android.support.v4.view.ViewPager;
 import android.text.Editable;
@@ -34,7 +35,7 @@
 import android.view.View;
 import android.view.View.OnLongClickListener;
 import android.view.ViewAnimationUtils;
-import android.view.ViewGroup;
+import android.view.ViewGroupOverlay;
 import android.view.animation.AccelerateDecelerateInterpolator;
 import android.widget.Button;
 import android.widget.TextView;
@@ -83,7 +84,6 @@
     private CalculatorEditText mResultEditText;
 
     private ViewPager mPadViewPager;
-    private ViewGroup mContentView;
 
     private View mDeleteButton;
     private View mClearButton;
@@ -94,15 +94,12 @@
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
-
-        getWindow().getAttributes().systemUiVisibility |= View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN;
         setContentView(R.layout.activity_calculator);
 
         mFormulaEditText = (CalculatorEditText) findViewById(R.id.formula);
         mResultEditText = (CalculatorEditText) findViewById(R.id.result);
 
         mPadViewPager = (ViewPager) findViewById(R.id.pad_pager);
-        mContentView = (ViewGroup) findViewById(R.id.content);
 
         mDeleteButton = findViewById(R.id.del);
         mClearButton = findViewById(R.id.clr);
@@ -141,13 +138,13 @@
                 final int errorColor = getResources().getColor(R.color.calculator_error_color);
                 mFormulaEditText.setTextColor(errorColor);
                 mResultEditText.setTextColor(errorColor);
-                mContentView.setBackgroundColor(errorColor);
+                getWindow().setStatusBarColor(errorColor);
             } else {
                 mFormulaEditText.setTextColor(
                         getResources().getColor(R.color.display_formula_text_color));
                 mResultEditText.setTextColor(
                         getResources().getColor(R.color.display_result_text_color));
-                mContentView.setBackgroundColor(
+                getWindow().setStatusBarColor(
                         getResources().getColor(R.color.calculator_accent_color));
             }
         }
@@ -259,15 +256,17 @@
     }
 
     private void reveal(View sourceView, int colorRes, AnimatorListener listener) {
-        final View display = findViewById(R.id.display);
-        final ViewGroup contentView = (ViewGroup) findViewById(R.id.content);
+        final View displayView = findViewById(R.id.display);
+        final View decorView = getWindow().getDecorView();
+
+        final Rect displayRect = new Rect();
+        displayView.getGlobalVisibleRect(displayRect);
 
         // Make reveal cover the display and status bar.
         final View revealView = new View(this);
-        revealView.setTop(contentView.getTop());
-        revealView.setBottom(display.getBottom());
-        revealView.setLeft(display.getLeft());
-        revealView.setRight(display.getRight());
+        revealView.setBottom(displayRect.bottom);
+        revealView.setLeft(displayRect.left);
+        revealView.setRight(displayRect.right);
         revealView.setBackgroundColor(getResources().getColor(colorRes));
 
         final int[] clearLocation = new int[2];
@@ -294,18 +293,19 @@
         alphaAnimator.setDuration(
                 getResources().getInteger(android.R.integer.config_mediumAnimTime));
 
+        final ViewGroupOverlay groupOverlay = (ViewGroupOverlay) decorView.getOverlay();
         final AnimatorSet animatorSet = new AnimatorSet();
         animatorSet.play(revealAnimator).before(alphaAnimator);
         animatorSet.setInterpolator(new AccelerateDecelerateInterpolator());
         animatorSet.addListener(new AnimatorListenerAdapter() {
             @Override
             public void onAnimationStart(Animator animation) {
-                contentView.getOverlay().add(revealView);
+                groupOverlay.add(revealView);
             }
 
             @Override
             public void onAnimationEnd(Animator animator) {
-                contentView.getOverlay().remove(revealView);
+                groupOverlay.remove(revealView);
                 mCurrentAnimator = null;
             }
         });