Switch from getActivity() to getContext()
In case we host the fragment outside activity.
Bug: 34276716
Test: leanback unit tests and SupportLeanbackDemo app
Change-Id: Ic8e16c038a8590c3359533d00b41f80dca917092
diff --git a/v17/leanback/generatev4.py b/v17/leanback/generatev4.py
index 2e1eaeb..9eb5932 100755
--- a/v17/leanback/generatev4.py
+++ b/v17/leanback/generatev4.py
@@ -16,6 +16,7 @@
import os
import sys
+import re
print "Generate v4 fragment related code for leanback"
@@ -41,6 +42,7 @@
line = line.replace('activity.getFragmentManager()', 'activity.getSupportFragmentManager()')
line = line.replace('Activity activity', 'FragmentActivity activity')
line = line.replace('(Activity', '(FragmentActivity')
+ line = re.sub(r'FragmentUtil.getContext\(.*this\)', 'getContext()', line);
outfile.write(line)
file.close()
outfile.close()
diff --git a/v17/leanback/src/android/support/v17/leanback/app/BaseFragment.java b/v17/leanback/src/android/support/v17/leanback/app/BaseFragment.java
index 3b4c851..8ab731f 100644
--- a/v17/leanback/src/android/support/v17/leanback/app/BaseFragment.java
+++ b/v17/leanback/src/android/support/v17/leanback/app/BaseFragment.java
@@ -219,7 +219,7 @@
@Override
public boolean onPreDraw() {
view.getViewTreeObserver().removeOnPreDrawListener(this);
- if (getActivity() == null || getView() == null) {
+ if (FragmentUtil.getContext(BaseFragment.this) == null || getView() == null) {
// bail out if fragment is destroyed immediately after startEntranceTransition
return true;
}
diff --git a/v17/leanback/src/android/support/v17/leanback/app/BaseSupportFragment.java b/v17/leanback/src/android/support/v17/leanback/app/BaseSupportFragment.java
index 8de54a7..7d08738 100644
--- a/v17/leanback/src/android/support/v17/leanback/app/BaseSupportFragment.java
+++ b/v17/leanback/src/android/support/v17/leanback/app/BaseSupportFragment.java
@@ -222,7 +222,7 @@
@Override
public boolean onPreDraw() {
view.getViewTreeObserver().removeOnPreDrawListener(this);
- if (getActivity() == null || getView() == null) {
+ if (getContext() == null || getView() == null) {
// bail out if fragment is destroyed immediately after startEntranceTransition
return true;
}
diff --git a/v17/leanback/src/android/support/v17/leanback/app/BrowseFragment.java b/v17/leanback/src/android/support/v17/leanback/app/BrowseFragment.java
index fc6561e..24b1a85 100644
--- a/v17/leanback/src/android/support/v17/leanback/app/BrowseFragment.java
+++ b/v17/leanback/src/android/support/v17/leanback/app/BrowseFragment.java
@@ -19,6 +19,7 @@
import android.app.FragmentManager;
import android.app.FragmentManager.BackStackEntry;
import android.app.FragmentTransaction;
+import android.content.Context;
import android.content.res.TypedArray;
import android.graphics.Color;
import android.graphics.Rect;
@@ -1056,12 +1057,13 @@
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
- TypedArray ta = getActivity().obtainStyledAttributes(R.styleable.LeanbackTheme);
+ final Context context = FragmentUtil.getContext(this);
+ TypedArray ta = context.obtainStyledAttributes(R.styleable.LeanbackTheme);
mContainerListMarginStart = (int) ta.getDimension(
- R.styleable.LeanbackTheme_browseRowsMarginStart, getActivity().getResources()
+ R.styleable.LeanbackTheme_browseRowsMarginStart, context.getResources()
.getDimensionPixelSize(R.dimen.lb_browse_rows_margin_start));
mContainerListAlignTop = (int) ta.getDimension(
- R.styleable.LeanbackTheme_browseRowsMarginTop, getActivity().getResources()
+ R.styleable.LeanbackTheme_browseRowsMarginTop, context.getResources()
.getDimensionPixelSize(R.dimen.lb_browse_rows_margin_top));
ta.recycle();
@@ -1223,7 +1225,7 @@
}
void createHeadersTransition() {
- mHeadersTransition = TransitionHelper.loadTransition(getActivity(),
+ mHeadersTransition = TransitionHelper.loadTransition(FragmentUtil.getContext(this),
mShowingHeaders
? R.transition.lb_browse_headers_in : R.transition.lb_browse_headers_out);
@@ -1657,7 +1659,7 @@
@Override
protected Object createEntranceTransition() {
- return TransitionHelper.loadTransition(getActivity(),
+ return TransitionHelper.loadTransition(FragmentUtil.getContext(this),
R.transition.lb_browse_entrance_transition);
}
@@ -1740,7 +1742,7 @@
@Override
public boolean onPreDraw() {
- if (getView() == null || getActivity() == null) {
+ if (getView() == null || FragmentUtil.getContext(BrowseFragment.this) == null) {
mView.getViewTreeObserver().removeOnPreDrawListener(this);
return true;
}
diff --git a/v17/leanback/src/android/support/v17/leanback/app/BrowseSupportFragment.java b/v17/leanback/src/android/support/v17/leanback/app/BrowseSupportFragment.java
index 7bcc43d..b73d23d 100644
--- a/v17/leanback/src/android/support/v17/leanback/app/BrowseSupportFragment.java
+++ b/v17/leanback/src/android/support/v17/leanback/app/BrowseSupportFragment.java
@@ -22,6 +22,7 @@
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentManager.BackStackEntry;
import android.support.v4.app.FragmentTransaction;
+import android.content.Context;
import android.content.res.TypedArray;
import android.graphics.Color;
import android.graphics.Rect;
@@ -1059,12 +1060,13 @@
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
- TypedArray ta = getActivity().obtainStyledAttributes(R.styleable.LeanbackTheme);
+ final Context context = getContext();
+ TypedArray ta = context.obtainStyledAttributes(R.styleable.LeanbackTheme);
mContainerListMarginStart = (int) ta.getDimension(
- R.styleable.LeanbackTheme_browseRowsMarginStart, getActivity().getResources()
+ R.styleable.LeanbackTheme_browseRowsMarginStart, context.getResources()
.getDimensionPixelSize(R.dimen.lb_browse_rows_margin_start));
mContainerListAlignTop = (int) ta.getDimension(
- R.styleable.LeanbackTheme_browseRowsMarginTop, getActivity().getResources()
+ R.styleable.LeanbackTheme_browseRowsMarginTop, context.getResources()
.getDimensionPixelSize(R.dimen.lb_browse_rows_margin_top));
ta.recycle();
@@ -1226,7 +1228,7 @@
}
void createHeadersTransition() {
- mHeadersTransition = TransitionHelper.loadTransition(getActivity(),
+ mHeadersTransition = TransitionHelper.loadTransition(getContext(),
mShowingHeaders
? R.transition.lb_browse_headers_in : R.transition.lb_browse_headers_out);
@@ -1660,7 +1662,7 @@
@Override
protected Object createEntranceTransition() {
- return TransitionHelper.loadTransition(getActivity(),
+ return TransitionHelper.loadTransition(getContext(),
R.transition.lb_browse_entrance_transition);
}
@@ -1743,7 +1745,7 @@
@Override
public boolean onPreDraw() {
- if (getView() == null || getActivity() == null) {
+ if (getView() == null || getContext() == null) {
mView.getViewTreeObserver().removeOnPreDrawListener(this);
return true;
}
diff --git a/v17/leanback/src/android/support/v17/leanback/app/DetailsFragment.java b/v17/leanback/src/android/support/v17/leanback/app/DetailsFragment.java
index fcb3fa9..f73cee6 100644
--- a/v17/leanback/src/android/support/v17/leanback/app/DetailsFragment.java
+++ b/v17/leanback/src/android/support/v17/leanback/app/DetailsFragment.java
@@ -473,7 +473,7 @@
@Override
protected Object createEntranceTransition() {
- return TransitionHelper.loadTransition(getActivity(),
+ return TransitionHelper.loadTransition(FragmentUtil.getContext(this),
R.transition.lb_details_enter_transition);
}
diff --git a/v17/leanback/src/android/support/v17/leanback/app/DetailsSupportFragment.java b/v17/leanback/src/android/support/v17/leanback/app/DetailsSupportFragment.java
index a9bbf28..ee63156 100644
--- a/v17/leanback/src/android/support/v17/leanback/app/DetailsSupportFragment.java
+++ b/v17/leanback/src/android/support/v17/leanback/app/DetailsSupportFragment.java
@@ -476,7 +476,7 @@
@Override
protected Object createEntranceTransition() {
- return TransitionHelper.loadTransition(getActivity(),
+ return TransitionHelper.loadTransition(getContext(),
R.transition.lb_details_enter_transition);
}
diff --git a/v17/leanback/src/android/support/v17/leanback/app/FragmentUtil.java b/v17/leanback/src/android/support/v17/leanback/app/FragmentUtil.java
new file mode 100644
index 0000000..23c6039
--- /dev/null
+++ b/v17/leanback/src/android/support/v17/leanback/app/FragmentUtil.java
@@ -0,0 +1,37 @@
+/*
+ * Copyright (C) 2017 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 android.support.v17.leanback.app;
+
+import android.annotation.TargetApi;
+import android.app.Fragment;
+import android.content.Context;
+import android.os.Build;
+
+class FragmentUtil {
+
+ @TargetApi(23)
+ private static Context getContextNew(Fragment fragment) {
+ return fragment.getContext();
+ }
+
+ public static Context getContext(Fragment fragment) {
+ if (Build.VERSION.SDK_INT >= 23) {
+ return getContextNew(fragment);
+ } else {
+ return fragment.getActivity();
+ }
+ }
+}
diff --git a/v17/leanback/src/android/support/v17/leanback/app/GuidedStepFragment.java b/v17/leanback/src/android/support/v17/leanback/app/GuidedStepFragment.java
index da44fde..bab48bd 100644
--- a/v17/leanback/src/android/support/v17/leanback/app/GuidedStepFragment.java
+++ b/v17/leanback/src/android/support/v17/leanback/app/GuidedStepFragment.java
@@ -1129,7 +1129,7 @@
} else {
// when there are two actions panel, we need adjust the weight of action to
// guidedActionContentWidthWeightTwoPanels.
- Context ctx = mThemeWrapper != null ? mThemeWrapper : getActivity();
+ Context ctx = mThemeWrapper != null ? mThemeWrapper : FragmentUtil.getContext(this);
TypedValue typedValue = new TypedValue();
if (ctx.getTheme().resolveAttribute(R.attr.guidedActionContentWidthWeightTwoPanels,
typedValue, true)) {
@@ -1327,18 +1327,18 @@
private void resolveTheme() {
// Look up the guidedStepTheme in the currently specified theme. If it exists,
// replace the theme with its value.
- Activity activity = getActivity();
+ Context context = FragmentUtil.getContext(this);
int theme = onProvideTheme();
- if (theme == -1 && !isGuidedStepTheme(activity)) {
+ if (theme == -1 && !isGuidedStepTheme(context)) {
// Look up the guidedStepTheme in the activity's currently specified theme. If it
// exists, replace the theme with its value.
int resId = R.attr.guidedStepTheme;
TypedValue typedValue = new TypedValue();
- boolean found = activity.getTheme().resolveAttribute(resId, typedValue, true);
+ boolean found = context.getTheme().resolveAttribute(resId, typedValue, true);
if (DEBUG) Log.v(TAG, "Found guided step theme reference? " + found);
if (found) {
ContextThemeWrapper themeWrapper =
- new ContextThemeWrapper(activity, typedValue.resourceId);
+ new ContextThemeWrapper(context, typedValue.resourceId);
if (isGuidedStepTheme(themeWrapper)) {
mThemeWrapper = themeWrapper;
} else {
@@ -1350,7 +1350,7 @@
Log.e(TAG, "GuidedStepFragment does not have an appropriate theme set.");
}
} else if (theme != -1) {
- mThemeWrapper = new ContextThemeWrapper(activity, theme);
+ mThemeWrapper = new ContextThemeWrapper(context, theme);
}
}
diff --git a/v17/leanback/src/android/support/v17/leanback/app/GuidedStepSupportFragment.java b/v17/leanback/src/android/support/v17/leanback/app/GuidedStepSupportFragment.java
index 32de1fd..f68366c 100644
--- a/v17/leanback/src/android/support/v17/leanback/app/GuidedStepSupportFragment.java
+++ b/v17/leanback/src/android/support/v17/leanback/app/GuidedStepSupportFragment.java
@@ -1132,7 +1132,7 @@
} else {
// when there are two actions panel, we need adjust the weight of action to
// guidedActionContentWidthWeightTwoPanels.
- Context ctx = mThemeWrapper != null ? mThemeWrapper : getActivity();
+ Context ctx = mThemeWrapper != null ? mThemeWrapper : getContext();
TypedValue typedValue = new TypedValue();
if (ctx.getTheme().resolveAttribute(R.attr.guidedActionContentWidthWeightTwoPanels,
typedValue, true)) {
@@ -1330,18 +1330,18 @@
private void resolveTheme() {
// Look up the guidedStepTheme in the currently specified theme. If it exists,
// replace the theme with its value.
- FragmentActivity activity = getActivity();
+ Context context = getContext();
int theme = onProvideTheme();
- if (theme == -1 && !isGuidedStepTheme(activity)) {
+ if (theme == -1 && !isGuidedStepTheme(context)) {
// Look up the guidedStepTheme in the activity's currently specified theme. If it
// exists, replace the theme with its value.
int resId = R.attr.guidedStepTheme;
TypedValue typedValue = new TypedValue();
- boolean found = activity.getTheme().resolveAttribute(resId, typedValue, true);
+ boolean found = context.getTheme().resolveAttribute(resId, typedValue, true);
if (DEBUG) Log.v(TAG, "Found guided step theme reference? " + found);
if (found) {
ContextThemeWrapper themeWrapper =
- new ContextThemeWrapper(activity, typedValue.resourceId);
+ new ContextThemeWrapper(context, typedValue.resourceId);
if (isGuidedStepTheme(themeWrapper)) {
mThemeWrapper = themeWrapper;
} else {
@@ -1353,7 +1353,7 @@
Log.e(TAG, "GuidedStepSupportFragment does not have an appropriate theme set.");
}
} else if (theme != -1) {
- mThemeWrapper = new ContextThemeWrapper(activity, theme);
+ mThemeWrapper = new ContextThemeWrapper(context, theme);
}
}
diff --git a/v17/leanback/src/android/support/v17/leanback/app/OnboardingFragment.java b/v17/leanback/src/android/support/v17/leanback/app/OnboardingFragment.java
index 0459ab6..1baffb4 100644
--- a/v17/leanback/src/android/support/v17/leanback/app/OnboardingFragment.java
+++ b/v17/leanback/src/android/support/v17/leanback/app/OnboardingFragment.java
@@ -22,8 +22,8 @@
import android.animation.AnimatorSet;
import android.animation.ObjectAnimator;
import android.animation.TimeInterpolator;
-import android.app.Activity;
import android.app.Fragment;
+import android.content.Context;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v17.leanback.R;
@@ -267,8 +267,9 @@
mLogoView = (ImageView) view.findViewById(R.id.logo);
mTitleView = (TextView) view.findViewById(R.id.title);
mDescriptionView = (TextView) view.findViewById(R.id.description);
+ final Context context = FragmentUtil.getContext(this);
if (sSlideDistance == 0) {
- sSlideDistance = (int) (SLIDE_DISTANCE * getActivity().getResources()
+ sSlideDistance = (int) (SLIDE_DISTANCE * context.getResources()
.getDisplayMetrics().scaledDensity);
}
if (savedInstanceState == null) {
@@ -312,20 +313,20 @@
}
private void resolveTheme() {
- Activity activity = getActivity();
+ final Context context = FragmentUtil.getContext(this);
int theme = onProvideTheme();
if (theme == -1) {
// Look up the onboardingTheme in the activity's currently specified theme. If it
// exists, wrap the theme with its value.
int resId = R.attr.onboardingTheme;
TypedValue typedValue = new TypedValue();
- boolean found = activity.getTheme().resolveAttribute(resId, typedValue, true);
+ boolean found = context.getTheme().resolveAttribute(resId, typedValue, true);
if (DEBUG) Log.v(TAG, "Found onboarding theme reference? " + found);
if (found) {
- mThemeWrapper = new ContextThemeWrapper(activity, typedValue.resourceId);
+ mThemeWrapper = new ContextThemeWrapper(context, typedValue.resourceId);
}
} else {
- mThemeWrapper = new ContextThemeWrapper(activity, theme);
+ mThemeWrapper = new ContextThemeWrapper(context, theme);
}
}
@@ -366,13 +367,14 @@
}
boolean startLogoAnimation() {
+ final Context context = FragmentUtil.getContext(this);
Animator animator = null;
if (mLogoResourceId != 0) {
mLogoView.setVisibility(View.VISIBLE);
mLogoView.setImageResource(mLogoResourceId);
- Animator inAnimator = AnimatorInflater.loadAnimator(getActivity(),
+ Animator inAnimator = AnimatorInflater.loadAnimator(context,
R.animator.lb_onboarding_logo_enter);
- Animator outAnimator = AnimatorInflater.loadAnimator(getActivity(),
+ Animator outAnimator = AnimatorInflater.loadAnimator(context,
R.animator.lb_onboarding_logo_exit);
outAnimator.setStartDelay(LOGO_SPLASH_PAUSE_DURATION_MS);
AnimatorSet logoAnimator = new AnimatorSet();
@@ -386,7 +388,7 @@
animator.addListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
- if (getActivity() != null) {
+ if (context != null) {
startEnterAnimation();
}
}
@@ -411,7 +413,8 @@
private void initializeViews(View container) {
mLogoView.setVisibility(View.GONE);
// Create custom views.
- LayoutInflater inflater = getThemeInflater(LayoutInflater.from(getActivity()));
+ LayoutInflater inflater = getThemeInflater(LayoutInflater.from(
+ FragmentUtil.getContext(this)));
ViewGroup backgroundContainer = (ViewGroup) container.findViewById(
R.id.background_container);
View background = onCreateBackgroundView(inflater, backgroundContainer);
@@ -453,22 +456,23 @@
mEnterTransitionFinished = true;
initializeViews(getView());
List<Animator> animators = new ArrayList<>();
- Animator animator = AnimatorInflater.loadAnimator(getActivity(),
+ final Context context = FragmentUtil.getContext(this);
+ Animator animator = AnimatorInflater.loadAnimator(context,
R.animator.lb_onboarding_page_indicator_enter);
animator.setTarget(getPageCount() <= 1 ? mStartButton : mPageIndicator);
animators.add(animator);
// Header title
- View view = getActivity().findViewById(R.id.title);
+ View view = getView().findViewById(R.id.title);
view.setAlpha(0);
- animator = AnimatorInflater.loadAnimator(getActivity(),
+ animator = AnimatorInflater.loadAnimator(context,
R.animator.lb_onboarding_title_enter);
animator.setStartDelay(START_DELAY_TITLE_MS);
animator.setTarget(view);
animators.add(animator);
// Header description
- view = getActivity().findViewById(R.id.description);
+ view = getView().findViewById(R.id.description);
view.setAlpha(0);
- animator = AnimatorInflater.loadAnimator(getActivity(),
+ animator = AnimatorInflater.loadAnimator(context,
R.animator.lb_onboarding_description_enter);
animator.setStartDelay(START_DELAY_DESCRIPTION_MS);
animator.setTarget(view);
@@ -610,10 +614,11 @@
}
});
+ final Context context = FragmentUtil.getContext(this);
// Animator for switching between page indicator and button.
if (getCurrentPageIndex() == getPageCount() - 1) {
mStartButton.setVisibility(View.VISIBLE);
- Animator navigatorFadeOutAnimator = AnimatorInflater.loadAnimator(getActivity(),
+ Animator navigatorFadeOutAnimator = AnimatorInflater.loadAnimator(context,
R.animator.lb_onboarding_page_indicator_fade_out);
navigatorFadeOutAnimator.setTarget(mPageIndicator);
navigatorFadeOutAnimator.addListener(new AnimatorListenerAdapter() {
@@ -623,17 +628,17 @@
}
});
animators.add(navigatorFadeOutAnimator);
- Animator buttonFadeInAnimator = AnimatorInflater.loadAnimator(getActivity(),
+ Animator buttonFadeInAnimator = AnimatorInflater.loadAnimator(context,
R.animator.lb_onboarding_start_button_fade_in);
buttonFadeInAnimator.setTarget(mStartButton);
animators.add(buttonFadeInAnimator);
} else if (previousPage == getPageCount() - 1) {
mPageIndicator.setVisibility(View.VISIBLE);
- Animator navigatorFadeInAnimator = AnimatorInflater.loadAnimator(getActivity(),
+ Animator navigatorFadeInAnimator = AnimatorInflater.loadAnimator(context,
R.animator.lb_onboarding_page_indicator_fade_in);
navigatorFadeInAnimator.setTarget(mPageIndicator);
animators.add(navigatorFadeInAnimator);
- Animator buttonFadeOutAnimator = AnimatorInflater.loadAnimator(getActivity(),
+ Animator buttonFadeOutAnimator = AnimatorInflater.loadAnimator(context,
R.animator.lb_onboarding_start_button_fade_out);
buttonFadeOutAnimator.setTarget(mStartButton);
buttonFadeOutAnimator.addListener(new AnimatorListenerAdapter() {
diff --git a/v17/leanback/src/android/support/v17/leanback/app/OnboardingSupportFragment.java b/v17/leanback/src/android/support/v17/leanback/app/OnboardingSupportFragment.java
index 32163b0..8523a27 100644
--- a/v17/leanback/src/android/support/v17/leanback/app/OnboardingSupportFragment.java
+++ b/v17/leanback/src/android/support/v17/leanback/app/OnboardingSupportFragment.java
@@ -25,8 +25,8 @@
import android.animation.AnimatorSet;
import android.animation.ObjectAnimator;
import android.animation.TimeInterpolator;
-import android.support.v4.app.FragmentActivity;
import android.support.v4.app.Fragment;
+import android.content.Context;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v17.leanback.R;
@@ -270,8 +270,9 @@
mLogoView = (ImageView) view.findViewById(R.id.logo);
mTitleView = (TextView) view.findViewById(R.id.title);
mDescriptionView = (TextView) view.findViewById(R.id.description);
+ final Context context = getContext();
if (sSlideDistance == 0) {
- sSlideDistance = (int) (SLIDE_DISTANCE * getActivity().getResources()
+ sSlideDistance = (int) (SLIDE_DISTANCE * context.getResources()
.getDisplayMetrics().scaledDensity);
}
if (savedInstanceState == null) {
@@ -315,20 +316,20 @@
}
private void resolveTheme() {
- FragmentActivity activity = getActivity();
+ final Context context = getContext();
int theme = onProvideTheme();
if (theme == -1) {
// Look up the onboardingTheme in the activity's currently specified theme. If it
// exists, wrap the theme with its value.
int resId = R.attr.onboardingTheme;
TypedValue typedValue = new TypedValue();
- boolean found = activity.getTheme().resolveAttribute(resId, typedValue, true);
+ boolean found = context.getTheme().resolveAttribute(resId, typedValue, true);
if (DEBUG) Log.v(TAG, "Found onboarding theme reference? " + found);
if (found) {
- mThemeWrapper = new ContextThemeWrapper(activity, typedValue.resourceId);
+ mThemeWrapper = new ContextThemeWrapper(context, typedValue.resourceId);
}
} else {
- mThemeWrapper = new ContextThemeWrapper(activity, theme);
+ mThemeWrapper = new ContextThemeWrapper(context, theme);
}
}
@@ -369,13 +370,14 @@
}
boolean startLogoAnimation() {
+ final Context context = getContext();
Animator animator = null;
if (mLogoResourceId != 0) {
mLogoView.setVisibility(View.VISIBLE);
mLogoView.setImageResource(mLogoResourceId);
- Animator inAnimator = AnimatorInflater.loadAnimator(getActivity(),
+ Animator inAnimator = AnimatorInflater.loadAnimator(context,
R.animator.lb_onboarding_logo_enter);
- Animator outAnimator = AnimatorInflater.loadAnimator(getActivity(),
+ Animator outAnimator = AnimatorInflater.loadAnimator(context,
R.animator.lb_onboarding_logo_exit);
outAnimator.setStartDelay(LOGO_SPLASH_PAUSE_DURATION_MS);
AnimatorSet logoAnimator = new AnimatorSet();
@@ -389,7 +391,7 @@
animator.addListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
- if (getActivity() != null) {
+ if (context != null) {
startEnterAnimation();
}
}
@@ -414,7 +416,8 @@
private void initializeViews(View container) {
mLogoView.setVisibility(View.GONE);
// Create custom views.
- LayoutInflater inflater = getThemeInflater(LayoutInflater.from(getActivity()));
+ LayoutInflater inflater = getThemeInflater(LayoutInflater.from(
+ getContext()));
ViewGroup backgroundContainer = (ViewGroup) container.findViewById(
R.id.background_container);
View background = onCreateBackgroundView(inflater, backgroundContainer);
@@ -456,22 +459,23 @@
mEnterTransitionFinished = true;
initializeViews(getView());
List<Animator> animators = new ArrayList<>();
- Animator animator = AnimatorInflater.loadAnimator(getActivity(),
+ final Context context = getContext();
+ Animator animator = AnimatorInflater.loadAnimator(context,
R.animator.lb_onboarding_page_indicator_enter);
animator.setTarget(getPageCount() <= 1 ? mStartButton : mPageIndicator);
animators.add(animator);
// Header title
- View view = getActivity().findViewById(R.id.title);
+ View view = getView().findViewById(R.id.title);
view.setAlpha(0);
- animator = AnimatorInflater.loadAnimator(getActivity(),
+ animator = AnimatorInflater.loadAnimator(context,
R.animator.lb_onboarding_title_enter);
animator.setStartDelay(START_DELAY_TITLE_MS);
animator.setTarget(view);
animators.add(animator);
// Header description
- view = getActivity().findViewById(R.id.description);
+ view = getView().findViewById(R.id.description);
view.setAlpha(0);
- animator = AnimatorInflater.loadAnimator(getActivity(),
+ animator = AnimatorInflater.loadAnimator(context,
R.animator.lb_onboarding_description_enter);
animator.setStartDelay(START_DELAY_DESCRIPTION_MS);
animator.setTarget(view);
@@ -613,10 +617,11 @@
}
});
+ final Context context = getContext();
// Animator for switching between page indicator and button.
if (getCurrentPageIndex() == getPageCount() - 1) {
mStartButton.setVisibility(View.VISIBLE);
- Animator navigatorFadeOutAnimator = AnimatorInflater.loadAnimator(getActivity(),
+ Animator navigatorFadeOutAnimator = AnimatorInflater.loadAnimator(context,
R.animator.lb_onboarding_page_indicator_fade_out);
navigatorFadeOutAnimator.setTarget(mPageIndicator);
navigatorFadeOutAnimator.addListener(new AnimatorListenerAdapter() {
@@ -626,17 +631,17 @@
}
});
animators.add(navigatorFadeOutAnimator);
- Animator buttonFadeInAnimator = AnimatorInflater.loadAnimator(getActivity(),
+ Animator buttonFadeInAnimator = AnimatorInflater.loadAnimator(context,
R.animator.lb_onboarding_start_button_fade_in);
buttonFadeInAnimator.setTarget(mStartButton);
animators.add(buttonFadeInAnimator);
} else if (previousPage == getPageCount() - 1) {
mPageIndicator.setVisibility(View.VISIBLE);
- Animator navigatorFadeInAnimator = AnimatorInflater.loadAnimator(getActivity(),
+ Animator navigatorFadeInAnimator = AnimatorInflater.loadAnimator(context,
R.animator.lb_onboarding_page_indicator_fade_in);
navigatorFadeInAnimator.setTarget(mPageIndicator);
animators.add(navigatorFadeInAnimator);
- Animator buttonFadeOutAnimator = AnimatorInflater.loadAnimator(getActivity(),
+ Animator buttonFadeOutAnimator = AnimatorInflater.loadAnimator(context,
R.animator.lb_onboarding_start_button_fade_out);
buttonFadeOutAnimator.setTarget(mStartButton);
buttonFadeOutAnimator.addListener(new AnimatorListenerAdapter() {
diff --git a/v17/leanback/src/android/support/v17/leanback/app/PlaybackFragment.java b/v17/leanback/src/android/support/v17/leanback/app/PlaybackFragment.java
index 02a0257..4e04e51 100644
--- a/v17/leanback/src/android/support/v17/leanback/app/PlaybackFragment.java
+++ b/v17/leanback/src/android/support/v17/leanback/app/PlaybackFragment.java
@@ -452,11 +452,12 @@
}
};
- mBgFadeInAnimator = loadAnimator(getActivity(), R.animator.lb_playback_bg_fade_in);
+ Context context = FragmentUtil.getContext(this);
+ mBgFadeInAnimator = loadAnimator(context, R.animator.lb_playback_bg_fade_in);
mBgFadeInAnimator.addUpdateListener(listener);
mBgFadeInAnimator.addListener(mFadeListener);
- mBgFadeOutAnimator = loadAnimator(getActivity(), R.animator.lb_playback_bg_fade_out);
+ mBgFadeOutAnimator = loadAnimator(context, R.animator.lb_playback_bg_fade_out);
mBgFadeOutAnimator.addUpdateListener(listener);
mBgFadeOutAnimator.addListener(mFadeListener);
}
@@ -498,14 +499,14 @@
}
};
- mControlRowFadeInAnimator = loadAnimator(
- getActivity(), R.animator.lb_playback_controls_fade_in);
+ Context context = FragmentUtil.getContext(this);
+ mControlRowFadeInAnimator = loadAnimator(context, R.animator.lb_playback_controls_fade_in);
mControlRowFadeInAnimator.addUpdateListener(updateListener);
mControlRowFadeInAnimator.addListener(listener);
mControlRowFadeInAnimator.setInterpolator(mLogDecelerateInterpolator);
- mControlRowFadeOutAnimator = loadAnimator(
- getActivity(), R.animator.lb_playback_controls_fade_out);
+ mControlRowFadeOutAnimator = loadAnimator(context,
+ R.animator.lb_playback_controls_fade_out);
mControlRowFadeOutAnimator.addUpdateListener(updateListener);
mControlRowFadeOutAnimator.addListener(listener);
mControlRowFadeOutAnimator.setInterpolator(mLogAccelerateInterpolator);
@@ -543,14 +544,13 @@
}
};
- mOtherRowFadeInAnimator = loadAnimator(
- getActivity(), R.animator.lb_playback_controls_fade_in);
+ Context context = FragmentUtil.getContext(this);
+ mOtherRowFadeInAnimator = loadAnimator(context, R.animator.lb_playback_controls_fade_in);
mOtherRowFadeInAnimator.addListener(listener);
mOtherRowFadeInAnimator.addUpdateListener(updateListener);
mOtherRowFadeInAnimator.setInterpolator(mLogDecelerateInterpolator);
- mOtherRowFadeOutAnimator = loadAnimator(
- getActivity(), R.animator.lb_playback_controls_fade_out);
+ mOtherRowFadeOutAnimator = loadAnimator(context, R.animator.lb_playback_controls_fade_out);
mOtherRowFadeOutAnimator.addListener(listener);
mOtherRowFadeOutAnimator.addUpdateListener(updateListener);
mOtherRowFadeOutAnimator.setInterpolator(new AccelerateInterpolator());
diff --git a/v17/leanback/src/android/support/v17/leanback/app/PlaybackOverlayFragment.java b/v17/leanback/src/android/support/v17/leanback/app/PlaybackOverlayFragment.java
index 33e35eb..3b8cfd3 100644
--- a/v17/leanback/src/android/support/v17/leanback/app/PlaybackOverlayFragment.java
+++ b/v17/leanback/src/android/support/v17/leanback/app/PlaybackOverlayFragment.java
@@ -433,11 +433,12 @@
}
};
- mBgFadeInAnimator = loadAnimator(getActivity(), R.animator.lb_playback_bg_fade_in);
+ Context context = FragmentUtil.getContext(this);
+ mBgFadeInAnimator = loadAnimator(context, R.animator.lb_playback_bg_fade_in);
mBgFadeInAnimator.addUpdateListener(listener);
mBgFadeInAnimator.addListener(mFadeListener);
- mBgFadeOutAnimator = loadAnimator(getActivity(), R.animator.lb_playback_bg_fade_out);
+ mBgFadeOutAnimator = loadAnimator(context, R.animator.lb_playback_bg_fade_out);
mBgFadeOutAnimator.addUpdateListener(listener);
mBgFadeOutAnimator.addListener(mFadeListener);
}
@@ -479,14 +480,14 @@
}
};
- mControlRowFadeInAnimator = loadAnimator(
- getActivity(), R.animator.lb_playback_controls_fade_in);
+ Context context = FragmentUtil.getContext(this);
+ mControlRowFadeInAnimator = loadAnimator(context, R.animator.lb_playback_controls_fade_in);
mControlRowFadeInAnimator.addUpdateListener(updateListener);
mControlRowFadeInAnimator.addListener(listener);
mControlRowFadeInAnimator.setInterpolator(mLogDecelerateInterpolator);
- mControlRowFadeOutAnimator = loadAnimator(
- getActivity(), R.animator.lb_playback_controls_fade_out);
+ mControlRowFadeOutAnimator = loadAnimator(context,
+ R.animator.lb_playback_controls_fade_out);
mControlRowFadeOutAnimator.addUpdateListener(updateListener);
mControlRowFadeOutAnimator.addListener(listener);
mControlRowFadeOutAnimator.setInterpolator(mLogAccelerateInterpolator);
@@ -524,14 +525,13 @@
}
};
- mOtherRowFadeInAnimator = loadAnimator(
- getActivity(), R.animator.lb_playback_controls_fade_in);
+ Context context = FragmentUtil.getContext(this);
+ mOtherRowFadeInAnimator = loadAnimator(context, R.animator.lb_playback_controls_fade_in);
mOtherRowFadeInAnimator.addListener(listener);
mOtherRowFadeInAnimator.addUpdateListener(updateListener);
mOtherRowFadeInAnimator.setInterpolator(mLogDecelerateInterpolator);
- mOtherRowFadeOutAnimator = loadAnimator(
- getActivity(), R.animator.lb_playback_controls_fade_out);
+ mOtherRowFadeOutAnimator = loadAnimator(context, R.animator.lb_playback_controls_fade_out);
mOtherRowFadeOutAnimator.addListener(listener);
mOtherRowFadeOutAnimator.addUpdateListener(updateListener);
mOtherRowFadeOutAnimator.setInterpolator(new AccelerateInterpolator());
@@ -557,13 +557,14 @@
}
};
- mDescriptionFadeInAnimator = loadAnimator(
- getActivity(), R.animator.lb_playback_description_fade_in);
+ Context context = FragmentUtil.getContext(this);
+ mDescriptionFadeInAnimator = loadAnimator(context,
+ R.animator.lb_playback_description_fade_in);
mDescriptionFadeInAnimator.addUpdateListener(listener);
mDescriptionFadeInAnimator.setInterpolator(mLogDecelerateInterpolator);
- mDescriptionFadeOutAnimator = loadAnimator(
- getActivity(), R.animator.lb_playback_description_fade_out);
+ mDescriptionFadeOutAnimator = loadAnimator(context,
+ R.animator.lb_playback_description_fade_out);
mDescriptionFadeOutAnimator.addUpdateListener(listener);
}
diff --git a/v17/leanback/src/android/support/v17/leanback/app/PlaybackOverlaySupportFragment.java b/v17/leanback/src/android/support/v17/leanback/app/PlaybackOverlaySupportFragment.java
index d41d65f..b58a2ad 100644
--- a/v17/leanback/src/android/support/v17/leanback/app/PlaybackOverlaySupportFragment.java
+++ b/v17/leanback/src/android/support/v17/leanback/app/PlaybackOverlaySupportFragment.java
@@ -436,11 +436,12 @@
}
};
- mBgFadeInAnimator = loadAnimator(getActivity(), R.animator.lb_playback_bg_fade_in);
+ Context context = getContext();
+ mBgFadeInAnimator = loadAnimator(context, R.animator.lb_playback_bg_fade_in);
mBgFadeInAnimator.addUpdateListener(listener);
mBgFadeInAnimator.addListener(mFadeListener);
- mBgFadeOutAnimator = loadAnimator(getActivity(), R.animator.lb_playback_bg_fade_out);
+ mBgFadeOutAnimator = loadAnimator(context, R.animator.lb_playback_bg_fade_out);
mBgFadeOutAnimator.addUpdateListener(listener);
mBgFadeOutAnimator.addListener(mFadeListener);
}
@@ -482,14 +483,14 @@
}
};
- mControlRowFadeInAnimator = loadAnimator(
- getActivity(), R.animator.lb_playback_controls_fade_in);
+ Context context = getContext();
+ mControlRowFadeInAnimator = loadAnimator(context, R.animator.lb_playback_controls_fade_in);
mControlRowFadeInAnimator.addUpdateListener(updateListener);
mControlRowFadeInAnimator.addListener(listener);
mControlRowFadeInAnimator.setInterpolator(mLogDecelerateInterpolator);
- mControlRowFadeOutAnimator = loadAnimator(
- getActivity(), R.animator.lb_playback_controls_fade_out);
+ mControlRowFadeOutAnimator = loadAnimator(context,
+ R.animator.lb_playback_controls_fade_out);
mControlRowFadeOutAnimator.addUpdateListener(updateListener);
mControlRowFadeOutAnimator.addListener(listener);
mControlRowFadeOutAnimator.setInterpolator(mLogAccelerateInterpolator);
@@ -527,14 +528,13 @@
}
};
- mOtherRowFadeInAnimator = loadAnimator(
- getActivity(), R.animator.lb_playback_controls_fade_in);
+ Context context = getContext();
+ mOtherRowFadeInAnimator = loadAnimator(context, R.animator.lb_playback_controls_fade_in);
mOtherRowFadeInAnimator.addListener(listener);
mOtherRowFadeInAnimator.addUpdateListener(updateListener);
mOtherRowFadeInAnimator.setInterpolator(mLogDecelerateInterpolator);
- mOtherRowFadeOutAnimator = loadAnimator(
- getActivity(), R.animator.lb_playback_controls_fade_out);
+ mOtherRowFadeOutAnimator = loadAnimator(context, R.animator.lb_playback_controls_fade_out);
mOtherRowFadeOutAnimator.addListener(listener);
mOtherRowFadeOutAnimator.addUpdateListener(updateListener);
mOtherRowFadeOutAnimator.setInterpolator(new AccelerateInterpolator());
@@ -560,13 +560,14 @@
}
};
- mDescriptionFadeInAnimator = loadAnimator(
- getActivity(), R.animator.lb_playback_description_fade_in);
+ Context context = getContext();
+ mDescriptionFadeInAnimator = loadAnimator(context,
+ R.animator.lb_playback_description_fade_in);
mDescriptionFadeInAnimator.addUpdateListener(listener);
mDescriptionFadeInAnimator.setInterpolator(mLogDecelerateInterpolator);
- mDescriptionFadeOutAnimator = loadAnimator(
- getActivity(), R.animator.lb_playback_description_fade_out);
+ mDescriptionFadeOutAnimator = loadAnimator(context,
+ R.animator.lb_playback_description_fade_out);
mDescriptionFadeOutAnimator.addUpdateListener(listener);
}
diff --git a/v17/leanback/src/android/support/v17/leanback/app/PlaybackSupportFragment.java b/v17/leanback/src/android/support/v17/leanback/app/PlaybackSupportFragment.java
index 07701f9..3d3ff7e 100644
--- a/v17/leanback/src/android/support/v17/leanback/app/PlaybackSupportFragment.java
+++ b/v17/leanback/src/android/support/v17/leanback/app/PlaybackSupportFragment.java
@@ -455,11 +455,12 @@
}
};
- mBgFadeInAnimator = loadAnimator(getActivity(), R.animator.lb_playback_bg_fade_in);
+ Context context = getContext();
+ mBgFadeInAnimator = loadAnimator(context, R.animator.lb_playback_bg_fade_in);
mBgFadeInAnimator.addUpdateListener(listener);
mBgFadeInAnimator.addListener(mFadeListener);
- mBgFadeOutAnimator = loadAnimator(getActivity(), R.animator.lb_playback_bg_fade_out);
+ mBgFadeOutAnimator = loadAnimator(context, R.animator.lb_playback_bg_fade_out);
mBgFadeOutAnimator.addUpdateListener(listener);
mBgFadeOutAnimator.addListener(mFadeListener);
}
@@ -501,14 +502,14 @@
}
};
- mControlRowFadeInAnimator = loadAnimator(
- getActivity(), R.animator.lb_playback_controls_fade_in);
+ Context context = getContext();
+ mControlRowFadeInAnimator = loadAnimator(context, R.animator.lb_playback_controls_fade_in);
mControlRowFadeInAnimator.addUpdateListener(updateListener);
mControlRowFadeInAnimator.addListener(listener);
mControlRowFadeInAnimator.setInterpolator(mLogDecelerateInterpolator);
- mControlRowFadeOutAnimator = loadAnimator(
- getActivity(), R.animator.lb_playback_controls_fade_out);
+ mControlRowFadeOutAnimator = loadAnimator(context,
+ R.animator.lb_playback_controls_fade_out);
mControlRowFadeOutAnimator.addUpdateListener(updateListener);
mControlRowFadeOutAnimator.addListener(listener);
mControlRowFadeOutAnimator.setInterpolator(mLogAccelerateInterpolator);
@@ -546,14 +547,13 @@
}
};
- mOtherRowFadeInAnimator = loadAnimator(
- getActivity(), R.animator.lb_playback_controls_fade_in);
+ Context context = getContext();
+ mOtherRowFadeInAnimator = loadAnimator(context, R.animator.lb_playback_controls_fade_in);
mOtherRowFadeInAnimator.addListener(listener);
mOtherRowFadeInAnimator.addUpdateListener(updateListener);
mOtherRowFadeInAnimator.setInterpolator(mLogDecelerateInterpolator);
- mOtherRowFadeOutAnimator = loadAnimator(
- getActivity(), R.animator.lb_playback_controls_fade_out);
+ mOtherRowFadeOutAnimator = loadAnimator(context, R.animator.lb_playback_controls_fade_out);
mOtherRowFadeOutAnimator.addListener(listener);
mOtherRowFadeOutAnimator.addUpdateListener(updateListener);
mOtherRowFadeOutAnimator.setInterpolator(new AccelerateInterpolator());
diff --git a/v17/leanback/src/android/support/v17/leanback/app/SearchFragment.java b/v17/leanback/src/android/support/v17/leanback/app/SearchFragment.java
index 93886f9..d2b9bb1 100644
--- a/v17/leanback/src/android/support/v17/leanback/app/SearchFragment.java
+++ b/v17/leanback/src/android/support/v17/leanback/app/SearchFragment.java
@@ -391,7 +391,8 @@
super.onResume();
mIsPaused = false;
if (mSpeechRecognitionCallback == null && null == mSpeechRecognizer) {
- mSpeechRecognizer = SpeechRecognizer.createSpeechRecognizer(getActivity());
+ mSpeechRecognizer = SpeechRecognizer.createSpeechRecognizer(
+ FragmentUtil.getContext(this));
mSearchBar.setSpeechRecognizer(mSpeechRecognizer);
}
if (mPendingStartRecognitionWhenPaused) {
diff --git a/v17/leanback/src/android/support/v17/leanback/app/SearchSupportFragment.java b/v17/leanback/src/android/support/v17/leanback/app/SearchSupportFragment.java
index c8a058d..b870d79 100644
--- a/v17/leanback/src/android/support/v17/leanback/app/SearchSupportFragment.java
+++ b/v17/leanback/src/android/support/v17/leanback/app/SearchSupportFragment.java
@@ -394,7 +394,8 @@
super.onResume();
mIsPaused = false;
if (mSpeechRecognitionCallback == null && null == mSpeechRecognizer) {
- mSpeechRecognizer = SpeechRecognizer.createSpeechRecognizer(getActivity());
+ mSpeechRecognizer = SpeechRecognizer.createSpeechRecognizer(
+ getContext());
mSearchBar.setSpeechRecognizer(mSpeechRecognizer);
}
if (mPendingStartRecognitionWhenPaused) {
diff --git a/v17/leanback/src/android/support/v17/leanback/app/VerticalGridFragment.java b/v17/leanback/src/android/support/v17/leanback/app/VerticalGridFragment.java
index b8f3df2..cfa27df 100644
--- a/v17/leanback/src/android/support/v17/leanback/app/VerticalGridFragment.java
+++ b/v17/leanback/src/android/support/v17/leanback/app/VerticalGridFragment.java
@@ -13,9 +13,11 @@
*/
package android.support.v17.leanback.app;
+import android.os.Bundle;
import android.support.v17.leanback.R;
import android.support.v17.leanback.transition.TransitionHelper;
import android.support.v17.leanback.widget.BrowseFrameLayout;
+import android.support.v17.leanback.widget.ObjectAdapter;
import android.support.v17.leanback.widget.OnChildLaidOutListener;
import android.support.v17.leanback.widget.OnItemViewClickedListener;
import android.support.v17.leanback.widget.OnItemViewSelectedListener;
@@ -23,8 +25,6 @@
import android.support.v17.leanback.widget.Row;
import android.support.v17.leanback.widget.RowPresenter;
import android.support.v17.leanback.widget.VerticalGridPresenter;
-import android.support.v17.leanback.widget.ObjectAdapter;
-import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
@@ -223,7 +223,7 @@
@Override
protected Object createEntranceTransition() {
- return TransitionHelper.loadTransition(getActivity(),
+ return TransitionHelper.loadTransition(FragmentUtil.getContext(this),
R.transition.lb_vertical_grid_entrance_transition);
}
diff --git a/v17/leanback/src/android/support/v17/leanback/app/VerticalGridSupportFragment.java b/v17/leanback/src/android/support/v17/leanback/app/VerticalGridSupportFragment.java
index 2a87f10..55e079d 100644
--- a/v17/leanback/src/android/support/v17/leanback/app/VerticalGridSupportFragment.java
+++ b/v17/leanback/src/android/support/v17/leanback/app/VerticalGridSupportFragment.java
@@ -16,9 +16,11 @@
*/
package android.support.v17.leanback.app;
+import android.os.Bundle;
import android.support.v17.leanback.R;
import android.support.v17.leanback.transition.TransitionHelper;
import android.support.v17.leanback.widget.BrowseFrameLayout;
+import android.support.v17.leanback.widget.ObjectAdapter;
import android.support.v17.leanback.widget.OnChildLaidOutListener;
import android.support.v17.leanback.widget.OnItemViewClickedListener;
import android.support.v17.leanback.widget.OnItemViewSelectedListener;
@@ -26,8 +28,6 @@
import android.support.v17.leanback.widget.Row;
import android.support.v17.leanback.widget.RowPresenter;
import android.support.v17.leanback.widget.VerticalGridPresenter;
-import android.support.v17.leanback.widget.ObjectAdapter;
-import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
@@ -226,7 +226,7 @@
@Override
protected Object createEntranceTransition() {
- return TransitionHelper.loadTransition(getActivity(),
+ return TransitionHelper.loadTransition(getContext(),
R.transition.lb_vertical_grid_entrance_transition);
}
diff --git a/v17/leanback/src/android/support/v17/leanback/app/VideoFragment.java b/v17/leanback/src/android/support/v17/leanback/app/VideoFragment.java
index fa9989e..9906813 100644
--- a/v17/leanback/src/android/support/v17/leanback/app/VideoFragment.java
+++ b/v17/leanback/src/android/support/v17/leanback/app/VideoFragment.java
@@ -39,7 +39,7 @@
public View onCreateView(
LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
ViewGroup root = (ViewGroup) super.onCreateView(inflater, container, savedInstanceState);
- mVideoSurface = (SurfaceView) getActivity().getLayoutInflater().inflate(
+ mVideoSurface = (SurfaceView) LayoutInflater.from(FragmentUtil.getContext(this)).inflate(
R.layout.lb_video_surface, root, false);
root.addView(mVideoSurface, 0);
mVideoSurface.getHolder().addCallback(new SurfaceHolder.Callback() {
diff --git a/v17/leanback/src/android/support/v17/leanback/app/VideoSupportFragment.java b/v17/leanback/src/android/support/v17/leanback/app/VideoSupportFragment.java
index 0f76e6e..29f1faf 100644
--- a/v17/leanback/src/android/support/v17/leanback/app/VideoSupportFragment.java
+++ b/v17/leanback/src/android/support/v17/leanback/app/VideoSupportFragment.java
@@ -42,7 +42,7 @@
public View onCreateView(
LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
ViewGroup root = (ViewGroup) super.onCreateView(inflater, container, savedInstanceState);
- mVideoSurface = (SurfaceView) getActivity().getLayoutInflater().inflate(
+ mVideoSurface = (SurfaceView) LayoutInflater.from(getContext()).inflate(
R.layout.lb_video_surface, root, false);
root.addView(mVideoSurface, 0);
mVideoSurface.getHolder().addCallback(new SurfaceHolder.Callback() {