|
@@ -3,11 +3,8 @@ package com.afollestad.materialdialogs;
|
|
|
import android.app.Dialog;
|
|
|
import android.content.Context;
|
|
|
import android.content.DialogInterface;
|
|
|
-import android.os.Message;
|
|
|
import android.view.View;
|
|
|
|
|
|
-import java.lang.reflect.Field;
|
|
|
-
|
|
|
/**
|
|
|
* @author Aidan Follestad (afollestad)
|
|
|
*/
|
|
@@ -37,31 +34,4 @@ class DialogBase extends Dialog implements DialogInterface.OnShowListener {
|
|
|
if (mShowListener != null)
|
|
|
mShowListener.onShow(dialog);
|
|
|
}
|
|
|
-
|
|
|
- @Override
|
|
|
- protected void onStop() {
|
|
|
- super.onStop();
|
|
|
- // Prevent framework leak
|
|
|
- try {
|
|
|
- Class superCls = getClass().getSuperclass().getSuperclass();
|
|
|
- Field cancelMsg = superCls.getDeclaredField("mCancelMessage");
|
|
|
- scrubMessageField(cancelMsg);
|
|
|
- Field dismissMsg = superCls.getDeclaredField("mDismissMessage");
|
|
|
- scrubMessageField(dismissMsg);
|
|
|
- Field showMsg = superCls.getDeclaredField("mShowMessage");
|
|
|
- scrubMessageField(showMsg);
|
|
|
- } catch (Exception e) {
|
|
|
- e.printStackTrace();
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- private void scrubMessageField(Field field) throws Exception {
|
|
|
- field.setAccessible(true);
|
|
|
- Object val = field.get(this);
|
|
|
- if (val != null) {
|
|
|
- Message msg = (Message) val;
|
|
|
- msg.recycle();
|
|
|
- field.set(this, null);
|
|
|
- }
|
|
|
- }
|
|
|
}
|