Merge "Import translations. DO NOT MERGE" into oc-dev
diff --git a/Settings/src/com/android/tv/settings/TvSettingsActivity.java b/Settings/src/com/android/tv/settings/TvSettingsActivity.java
index c0846d5..82e79f4 100644
--- a/Settings/src/com/android/tv/settings/TvSettingsActivity.java
+++ b/Settings/src/com/android/tv/settings/TvSettingsActivity.java
@@ -24,11 +24,13 @@
import android.transition.Slide;
import android.transition.Transition;
import android.transition.TransitionManager;
+import android.util.Log;
import android.view.Gravity;
import android.view.ViewGroup;
import android.view.ViewTreeObserver;
public abstract class TvSettingsActivity extends Activity {
+ private static final String TAG = "TvSettingsActivity";
private static final String SETTINGS_FRAGMENT_TAG =
"com.android.tv.settings.MainSettings.SETTINGS_FRAGMENT";
@@ -38,23 +40,25 @@
super.onCreate(savedInstanceState);
if (savedInstanceState == null) {
- final ViewGroup root = (ViewGroup) findViewById(android.R.id.content);
+ final ViewGroup root = findViewById(android.R.id.content);
root.getViewTreeObserver().addOnPreDrawListener(
new ViewTreeObserver.OnPreDrawListener() {
@Override
public boolean onPreDraw() {
root.getViewTreeObserver().removeOnPreDrawListener(this);
final Scene scene = new Scene(root);
- scene.setEnterAction(new Runnable() {
- @Override
- public void run() {
- final Fragment fragment = createSettingsFragment();
- if (fragment != null) {
- getFragmentManager().beginTransaction()
- .add(android.R.id.content, fragment,
- SETTINGS_FRAGMENT_TAG)
- .commitNow();
- }
+ scene.setEnterAction(() -> {
+ if (getFragmentManager().isStateSaved()
+ || getFragmentManager().isDestroyed()) {
+ Log.d(TAG, "Got torn down before adding fragment");
+ return;
+ }
+ final Fragment fragment = createSettingsFragment();
+ if (fragment != null) {
+ getFragmentManager().beginTransaction()
+ .add(android.R.id.content, fragment,
+ SETTINGS_FRAGMENT_TAG)
+ .commitNow();
}
});
@@ -75,16 +79,11 @@
public void finish() {
final Fragment fragment = getFragmentManager().findFragmentByTag(SETTINGS_FRAGMENT_TAG);
if (isResumed() && fragment != null) {
- final ViewGroup root = (ViewGroup) findViewById(android.R.id.content);
+ final ViewGroup root = findViewById(android.R.id.content);
final Scene scene = new Scene(root);
- scene.setEnterAction(new Runnable() {
- @Override
- public void run() {
- getFragmentManager().beginTransaction()
- .remove(fragment)
- .commitNow();
- }
- });
+ scene.setEnterAction(() -> getFragmentManager().beginTransaction()
+ .remove(fragment)
+ .commitNow());
final Slide slide = new Slide(Gravity.END);
slide.setSlideFraction(
getResources().getDimension(R.dimen.lb_settings_pane_width) / root.getWidth());