Merge "Rename SupportActivity to ComponentActivity" into pi-preview1-androidx-dev
diff --git a/compat/src/androidTest/AndroidManifest.xml b/compat/src/androidTest/AndroidManifest.xml
index 064f6e9..02eb330 100644
--- a/compat/src/androidTest/AndroidManifest.xml
+++ b/compat/src/androidTest/AndroidManifest.xml
@@ -45,9 +45,11 @@
 
         <activity android:name="androidx.core.view.ViewCompatActivity"/>
 
-        <activity android:name="androidx.core.app.TestSupportActivity"
+        <activity android:name="androidx.core.app.TestActivity"
                   android:icon="@drawable/test_drawable_blue"/>
 
+        <activity android:name="androidx.core.app.TestComponentActivity"/>
+
         <activity android:name="androidx.core.view.DragStartHelperTestActivity"/>
 
         <activity android:name="androidx.core.widget.ContentLoadingProgressBarActivity"/>
diff --git a/compat/src/androidTest/java/androidx/core/app/ActivityCompatTest.java b/compat/src/androidTest/java/androidx/core/app/ActivityCompatTest.java
index 82c9e27..da9c031 100644
--- a/compat/src/androidTest/java/androidx/core/app/ActivityCompatTest.java
+++ b/compat/src/androidTest/java/androidx/core/app/ActivityCompatTest.java
@@ -39,10 +39,10 @@
 
 @RunWith(AndroidJUnit4.class)
 @SmallTest
-public class ActivityCompatTest extends BaseInstrumentationTestCase<TestSupportActivity> {
+public class ActivityCompatTest extends BaseInstrumentationTestCase<TestActivity> {
 
     public ActivityCompatTest() {
-        super(TestSupportActivity.class);
+        super(TestActivity.class);
     }
 
     private Activity getActivity() {
diff --git a/compat/src/androidTest/java/androidx/core/app/SupportActivityTest.java b/compat/src/androidTest/java/androidx/core/app/ComponentActivityTest.java
similarity index 66%
rename from compat/src/androidTest/java/androidx/core/app/SupportActivityTest.java
rename to compat/src/androidTest/java/androidx/core/app/ComponentActivityTest.java
index eef5f0e..57e28a9 100644
--- a/compat/src/androidTest/java/androidx/core/app/SupportActivityTest.java
+++ b/compat/src/androidTest/java/androidx/core/app/ComponentActivityTest.java
@@ -28,35 +28,35 @@
 
 @RunWith(AndroidJUnit4.class)
 @SmallTest
-public class SupportActivityTest extends BaseInstrumentationTestCase<TestSupportActivity> {
-    private SupportActivity mSupportActivity;
+public class ComponentActivityTest extends BaseInstrumentationTestCase<TestComponentActivity> {
+    private ComponentActivity mComponentActivity;
     private TestExtraData mTestExtraData;
 
-    public SupportActivityTest() {
-        super(TestSupportActivity.class);
+    public ComponentActivityTest() {
+        super(TestComponentActivity.class);
     }
 
     @Before
     public void setUp() {
-        mSupportActivity = mActivityTestRule.getActivity();
+        mComponentActivity = mActivityTestRule.getActivity();
         mTestExtraData = new TestExtraData();
-        mSupportActivity.putExtraData(mTestExtraData);
+        mComponentActivity.putExtraData(mTestExtraData);
     }
 
     @Test
     public void testGetExtraData_returnsNullForNotAdded() {
-        assertNull(mSupportActivity.getExtraData(NeverAddedExtraData.class));
+        assertNull(mComponentActivity.getExtraData(NeverAddedExtraData.class));
     }
 
     @Test
     public void testGetExtraData() {
-        assertEquals(mTestExtraData, mSupportActivity.getExtraData(TestExtraData.class));
+        assertEquals(mTestExtraData, mComponentActivity.getExtraData(TestExtraData.class));
     }
 
-    public class NeverAddedExtraData extends SupportActivity.ExtraData {
+    public class NeverAddedExtraData extends ComponentActivity.ExtraData {
     }
 
-    public class TestExtraData extends SupportActivity.ExtraData {
+    public class TestExtraData extends ComponentActivity.ExtraData {
     }
 }
 
diff --git a/compat/src/androidTest/java/androidx/core/app/NotificationCompatTest.java b/compat/src/androidTest/java/androidx/core/app/NotificationCompatTest.java
index 32daade..318a283 100644
--- a/compat/src/androidTest/java/androidx/core/app/NotificationCompatTest.java
+++ b/compat/src/androidTest/java/androidx/core/app/NotificationCompatTest.java
@@ -57,7 +57,7 @@
 
 @RunWith(AndroidJUnit4.class)
 @SmallTest
-public class NotificationCompatTest extends BaseInstrumentationTestCase<TestSupportActivity> {
+public class NotificationCompatTest extends BaseInstrumentationTestCase<TestActivity> {
     private static final String TEXT_RESULT_KEY = "text";
     private static final String DATA_RESULT_KEY = "data";
     private static final String EXTRA_COLORIZED = "android.colorized";
@@ -65,7 +65,7 @@
     Context mContext;
 
     public NotificationCompatTest() {
-        super(TestSupportActivity.class);
+        super(TestActivity.class);
     }
 
     @Before
diff --git a/compat/src/androidTest/java/androidx/core/app/RemoteInputTest.java b/compat/src/androidTest/java/androidx/core/app/RemoteInputTest.java
index b958a6d..35d3400 100644
--- a/compat/src/androidTest/java/androidx/core/app/RemoteInputTest.java
+++ b/compat/src/androidTest/java/androidx/core/app/RemoteInputTest.java
@@ -37,12 +37,12 @@
 
 @RunWith(AndroidJUnit4.class)
 @SmallTest
-public class RemoteInputTest extends BaseInstrumentationTestCase<TestSupportActivity> {
+public class RemoteInputTest extends BaseInstrumentationTestCase<TestActivity> {
     private static final String RESULT_KEY = "result_key";  // value doesn't matter
     private static final String MIME_TYPE = "mimeType";  // value doesn't matter
 
     public RemoteInputTest() {
-        super(TestSupportActivity.class);
+        super(TestActivity.class);
     }
 
     @Test
diff --git a/compat/src/androidTest/java/androidx/core/app/TestSupportActivity.java b/compat/src/androidTest/java/androidx/core/app/TestActivity.java
similarity index 88%
copy from compat/src/androidTest/java/androidx/core/app/TestSupportActivity.java
copy to compat/src/androidTest/java/androidx/core/app/TestActivity.java
index 88b7989..a627520 100644
--- a/compat/src/androidTest/java/androidx/core/app/TestSupportActivity.java
+++ b/compat/src/androidTest/java/androidx/core/app/TestActivity.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2016 The Android Open Source Project
+ * Copyright 2018 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.
@@ -16,12 +16,13 @@
 
 package androidx.core.app;
 
+import android.app.Activity;
 import android.os.Bundle;
 import android.view.WindowManager;
 
 import androidx.core.test.R;
 
-public class TestSupportActivity extends SupportActivity {
+public class TestActivity extends Activity {
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
diff --git a/compat/src/androidTest/java/androidx/core/app/TestSupportActivity.java b/compat/src/androidTest/java/androidx/core/app/TestComponentActivity.java
similarity index 93%
rename from compat/src/androidTest/java/androidx/core/app/TestSupportActivity.java
rename to compat/src/androidTest/java/androidx/core/app/TestComponentActivity.java
index 88b7989..633595f 100644
--- a/compat/src/androidTest/java/androidx/core/app/TestSupportActivity.java
+++ b/compat/src/androidTest/java/androidx/core/app/TestComponentActivity.java
@@ -21,7 +21,7 @@
 
 import androidx.core.test.R;
 
-public class TestSupportActivity extends SupportActivity {
+public class TestComponentActivity extends ComponentActivity {
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
diff --git a/compat/src/androidTest/java/androidx/core/content/pm/ShortcutInfoCompatTest.java b/compat/src/androidTest/java/androidx/core/content/pm/ShortcutInfoCompatTest.java
index d878eb5..9f40145 100644
--- a/compat/src/androidTest/java/androidx/core/content/pm/ShortcutInfoCompatTest.java
+++ b/compat/src/androidTest/java/androidx/core/content/pm/ShortcutInfoCompatTest.java
@@ -35,7 +35,7 @@
 import android.support.test.filters.SmallTest;
 import android.support.test.runner.AndroidJUnit4;
 
-import androidx.core.app.TestSupportActivity;
+import androidx.core.app.TestActivity;
 import androidx.core.content.ContextCompat;
 import androidx.core.graphics.drawable.IconCompat;
 import androidx.core.test.R;
@@ -67,7 +67,7 @@
     @Test
     public void testAddToIntent_noBadge() {
         Intent intent = new Intent();
-        mBuilder.setActivity(new ComponentName(mContext, TestSupportActivity.class))
+        mBuilder.setActivity(new ComponentName(mContext, TestActivity.class))
                 .build()
                 .addToIntent(intent);
 
@@ -79,7 +79,7 @@
     @Test
     public void testAddToIntent_badgeActivity() {
         Intent intent = new Intent();
-        mBuilder.setActivity(new ComponentName(mContext, TestSupportActivity.class))
+        mBuilder.setActivity(new ComponentName(mContext, TestActivity.class))
                 .setAlwaysBadged()
                 .build()
                 .addToIntent(intent);
diff --git a/compat/src/androidTest/java/androidx/core/content/pm/ShortcutManagerCompatTest.java b/compat/src/androidTest/java/androidx/core/content/pm/ShortcutManagerCompatTest.java
index b12ce39..6e28066 100644
--- a/compat/src/androidTest/java/androidx/core/content/pm/ShortcutManagerCompatTest.java
+++ b/compat/src/androidTest/java/androidx/core/content/pm/ShortcutManagerCompatTest.java
@@ -51,7 +51,7 @@
 import android.support.test.runner.AndroidJUnit4;
 import android.support.v4.BaseInstrumentationTestCase;
 
-import androidx.core.app.TestSupportActivity;
+import androidx.core.app.TestActivity;
 import androidx.core.graphics.drawable.IconCompat;
 
 import org.junit.Before;
@@ -64,13 +64,13 @@
 import java.util.concurrent.TimeUnit;
 
 @RunWith(AndroidJUnit4.class)
-public class ShortcutManagerCompatTest extends BaseInstrumentationTestCase<TestSupportActivity> {
+public class ShortcutManagerCompatTest extends BaseInstrumentationTestCase<TestActivity> {
 
     Context mContext;
     ShortcutInfoCompat mInfoCompat;
 
     public ShortcutManagerCompatTest() {
-        super(TestSupportActivity.class);
+        super(TestActivity.class);
     }
 
     @Before
diff --git a/compat/src/main/java/androidx/core/app/SupportActivity.java b/compat/src/main/java/androidx/core/app/ComponentActivity.java
similarity index 86%
rename from compat/src/main/java/androidx/core/app/SupportActivity.java
rename to compat/src/main/java/androidx/core/app/ComponentActivity.java
index 1e02c0a..8237140 100644
--- a/compat/src/main/java/androidx/core/app/SupportActivity.java
+++ b/compat/src/main/java/androidx/core/app/ComponentActivity.java
@@ -31,12 +31,16 @@
 import androidx.lifecycle.ReportFragment;
 
 /**
- * Base class for composing together compatibility functionality
+ * Base class for activities that enables composition of higher level components.
+ * <p>
+ * Rather than all functionality being built directly into this class, only the minimal set of
+ * lower level building blocks are included. Higher level components can then be used as needed
+ * without enforcing a deep Activity class hierarchy or strong coupling between components.
  *
  * @hide
  */
 @RestrictTo(LIBRARY_GROUP)
-public class SupportActivity extends Activity implements LifecycleOwner {
+public class ComponentActivity extends Activity implements LifecycleOwner {
     /**
      * Storage for {@link ExtraData} instances.
      *
diff --git a/fragment/api/current.txt b/fragment/api/current.txt
index 89730f0..81c367b 100644
--- a/fragment/api/current.txt
+++ b/fragment/api/current.txt
@@ -149,7 +149,7 @@
     field public static final android.os.Parcelable.Creator<androidx.fragment.app.Fragment.SavedState> CREATOR;
   }
 
-  public class FragmentActivity extends androidx.core.app.SupportActivity implements androidx.core.app.ActivityCompat.OnRequestPermissionsResultCallback androidx.core.app.ActivityCompat.RequestPermissionsRequestCodeValidator androidx.lifecycle.ViewModelStoreOwner {
+  public class FragmentActivity extends androidx.core.app.ComponentActivity implements androidx.core.app.ActivityCompat.OnRequestPermissionsResultCallback androidx.core.app.ActivityCompat.RequestPermissionsRequestCodeValidator androidx.lifecycle.ViewModelStoreOwner {
     ctor public FragmentActivity();
     method public java.lang.Object getLastCustomNonConfigurationInstance();
     method public androidx.fragment.app.FragmentManager getSupportFragmentManager();
diff --git a/fragment/src/main/java/androidx/fragment/app/FragmentActivity.java b/fragment/src/main/java/androidx/fragment/app/FragmentActivity.java
index 164f932..c9c1ef5 100644
--- a/fragment/src/main/java/androidx/fragment/app/FragmentActivity.java
+++ b/fragment/src/main/java/androidx/fragment/app/FragmentActivity.java
@@ -42,8 +42,8 @@
 import androidx.annotation.RestrictTo;
 import androidx.collection.SparseArrayCompat;
 import androidx.core.app.ActivityCompat;
+import androidx.core.app.ComponentActivity;
 import androidx.core.app.SharedElementCallback;
-import androidx.core.app.SupportActivity;
 import androidx.lifecycle.Lifecycle;
 import androidx.lifecycle.LifecycleOwner;
 import androidx.lifecycle.ViewModelStore;
@@ -65,7 +65,7 @@
  * specify an ID (or tag) in the <code>&lt;fragment></code>.</p>
  * </ul>
  */
-public class FragmentActivity extends SupportActivity implements
+public class FragmentActivity extends ComponentActivity implements
         ViewModelStoreOwner,
         ActivityCompat.OnRequestPermissionsResultCallback,
         ActivityCompat.RequestPermissionsRequestCodeValidator {
diff --git a/jetifier/jetifier/core/src/main/resources/default.config b/jetifier/jetifier/core/src/main/resources/default.config
index f8dc220..8765830 100644
--- a/jetifier/jetifier/core/src/main/resources/default.config
+++ b/jetifier/jetifier/core/src/main/resources/default.config
@@ -386,6 +386,10 @@
             "to": "androidx/dynamicanimation/animation/{0}"
         },
         {
+            "from": "android/support/v4/app/SupportActivity(.*)",
+            "to": "androidx/core/app/ComponentActivity{0}"
+        },
+        {
             "from": "android/support/v4/app/Fragment(.*)",
             "to": "androidx/fragment/app/Fragment{0}"
         },
diff --git a/jetifier/jetifier/core/src/main/resources/default.generated.config b/jetifier/jetifier/core/src/main/resources/default.generated.config
index 925d5d4..c9d08ca 100644
--- a/jetifier/jetifier/core/src/main/resources/default.generated.config
+++ b/jetifier/jetifier/core/src/main/resources/default.generated.config
@@ -380,6 +380,10 @@
       "to": "androidx/dynamicanimation/animation/{0}"
     },
     {
+      "from": "android/support/v4/app/SupportActivity(.*)",
+      "to": "androidx/core/app/ComponentActivity{0}"
+    },
+    {
       "from": "android/support/v4/app/Fragment(.*)",
       "to": "androidx/fragment/app/Fragment{0}"
     },
@@ -3087,7 +3091,7 @@
       "android/support/v4/app/ShareCompat": "androidx/core/app/ShareCompat",
       "android/support/v4/app/SharedElementCallback": "androidx/core/app/SharedElementCallback",
       "android/support/v4/app/SuperNotCalledException": "androidx/fragment/app/SuperNotCalledException",
-      "android/support/v4/app/SupportActivity": "androidx/core/app/SupportActivity",
+      "android/support/v4/app/SupportActivity": "androidx/core/app/ComponentActivity",
       "android/support/v4/app/TaskStackBuilder": "androidx/core/app/TaskStackBuilder",
       "android/support/v4/content/AsyncTaskLoader": "androidx/loader/content/AsyncTaskLoader",
       "android/support/v4/content/ContentResolverCompat": "androidx/core/content/ContentResolverCompat",
diff --git a/media/src/main/java/android/support/v4/media/session/MediaControllerCompat.java b/media/src/main/java/android/support/v4/media/session/MediaControllerCompat.java
index 4a4ad32..a700c31 100644
--- a/media/src/main/java/android/support/v4/media/session/MediaControllerCompat.java
+++ b/media/src/main/java/android/support/v4/media/session/MediaControllerCompat.java
@@ -45,7 +45,7 @@
 import androidx.annotation.RequiresApi;
 import androidx.annotation.RestrictTo;
 import androidx.core.app.BundleCompat;
-import androidx.core.app.SupportActivity;
+import androidx.core.app.ComponentActivity;
 import androidx.media.VolumeProviderCompat;
 
 import java.lang.ref.WeakReference;
@@ -131,7 +131,7 @@
     public static final String COMMAND_ARGUMENT_INDEX =
             "android.support.v4.media.session.command.ARGUMENT_INDEX";
 
-    private static class MediaControllerExtraData extends SupportActivity.ExtraData {
+    private static class MediaControllerExtraData extends ComponentActivity.ExtraData {
         private final MediaControllerCompat mMediaController;
 
         MediaControllerExtraData(MediaControllerCompat mediaController) {
@@ -161,8 +161,8 @@
      */
     public static void setMediaController(@NonNull Activity activity,
             MediaControllerCompat mediaController) {
-        if (activity instanceof SupportActivity) {
-            ((SupportActivity) activity).putExtraData(
+        if (activity instanceof ComponentActivity) {
+            ((ComponentActivity) activity).putExtraData(
                     new MediaControllerExtraData(mediaController));
         }
         if (android.os.Build.VERSION.SDK_INT >= 21) {
@@ -187,9 +187,9 @@
      * @see #setMediaController(Activity, MediaControllerCompat)
      */
     public static MediaControllerCompat getMediaController(@NonNull Activity activity) {
-        if (activity instanceof SupportActivity) {
+        if (activity instanceof ComponentActivity) {
             MediaControllerExtraData extraData =
-                    ((SupportActivity) activity).getExtraData(MediaControllerExtraData.class);
+                    ((ComponentActivity) activity).getExtraData(MediaControllerExtraData.class);
             return extraData != null ? extraData.getMediaController() : null;
         } else if (android.os.Build.VERSION.SDK_INT >= 21) {
             Object controllerObj = MediaControllerCompatApi21.getMediaController(activity);