diff options
author | Sunny Goyal <sunnygoyal@google.com> | 2016-06-03 21:15:52 +0000 |
---|---|---|
committer | android-build-merger <android-build-merger@google.com> | 2016-06-03 21:15:52 +0000 |
commit | 1c22ed659590c7acc652a40b7224fae4271d383a (patch) | |
tree | f78610bb73299ed4ef790df82c8583ca4a7266c2 | |
parent | c61cd7c4886cd4aaf7199e130ed3ff066ae06307 (diff) | |
parent | 02d3d43d97a06b8066495de8eeb63a46ee98b7f2 (diff) | |
download | android_packages_apps_Trebuchet-1c22ed659590c7acc652a40b7224fae4271d383a.tar.gz android_packages_apps_Trebuchet-1c22ed659590c7acc652a40b7224fae4271d383a.tar.bz2 android_packages_apps_Trebuchet-1c22ed659590c7acc652a40b7224fae4271d383a.zip |
Fixing memory leak in QSB widget
am: 02d3d43d97
* commit '02d3d43d97a06b8066495de8eeb63a46ee98b7f2':
Fixing memory leak in QSB widget
Change-Id: I62720392a36fc67aa399b862bd14e69db9e54e2f
-rw-r--r-- | res/layout/qsb_container.xml | 9 | ||||
-rw-r--r-- | src/com/android/launcher3/QsbContainerView.java | 28 |
2 files changed, 18 insertions, 19 deletions
diff --git a/res/layout/qsb_container.xml b/res/layout/qsb_container.xml index 3de28760f..55c7390d3 100644 --- a/res/layout/qsb_container.xml +++ b/res/layout/qsb_container.xml @@ -20,4 +20,11 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/qsb_container" - android:padding="0dp" />
\ No newline at end of file + android:padding="0dp" > + + <fragment + android:name="com.android.launcher3.QsbContainerView$QsbFragment" + android:layout_width="match_parent" + android:tag="qsb_view" + android:layout_height="match_parent"/> +</com.android.launcher3.QsbContainerView>
\ No newline at end of file diff --git a/src/com/android/launcher3/QsbContainerView.java b/src/com/android/launcher3/QsbContainerView.java index 0a112d23e..f931aba21 100644 --- a/src/com/android/launcher3/QsbContainerView.java +++ b/src/com/android/launcher3/QsbContainerView.java @@ -18,7 +18,6 @@ package com.android.launcher3; import android.app.Activity; import android.app.Fragment; -import android.app.FragmentManager; import android.app.SearchManager; import android.appwidget.AppWidgetManager; import android.appwidget.AppWidgetProviderInfo; @@ -44,8 +43,6 @@ import com.android.launcher3.compat.AppWidgetManagerCompat; */ public class QsbContainerView extends FrameLayout { - private boolean mBound; - public QsbContainerView(Context context) { super(context); } @@ -59,17 +56,6 @@ public class QsbContainerView extends FrameLayout { } @Override - protected void onAttachedToWindow() { - super.onAttachedToWindow(); - - if (!mBound) { - FragmentManager fm = ((Launcher) getContext()).getFragmentManager(); - fm.beginTransaction().add(R.id.qsb_container, new QsbFragment()).commit(); - mBound = true; - } - } - - @Override public void setPadding(int left, int top, int right, int bottom) { super.setPadding(0, 0, 0, 0); } @@ -103,6 +89,8 @@ public class QsbContainerView extends FrameLayout { getContext().registerReceiver(mRebindReceiver, filter); } + private FrameLayout mWrapper; + @Override public View onCreateView( LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { @@ -110,7 +98,12 @@ public class QsbContainerView extends FrameLayout { if (savedInstanceState != null) { sSavedWidgetId = savedInstanceState.getInt(QSB_WIDGET_ID, -1); } + mWrapper = new FrameLayout(getContext()); + mWrapper.addView(createQsb(inflater, mWrapper)); + return mWrapper; + } + private View createQsb(LayoutInflater inflater, ViewGroup container) { Launcher launcher = (Launcher) getActivity(); mWidgetInfo = getSearchWidgetProvider(launcher); if (mWidgetInfo == null) { @@ -222,10 +215,9 @@ public class QsbContainerView extends FrameLayout { } private void rebindFragment() { - if (getActivity() != null) { - // Recreate the fragment. This will cause the qsb to be inflated again. - getActivity().getFragmentManager().beginTransaction() - .replace(R.id.qsb_container, new QsbFragment()).commit(); + if (mWrapper != null && getActivity() != null) { + mWrapper.removeAllViews(); + mWrapper.addView(createQsb(getActivity().getLayoutInflater(), mWrapper)); } } |