Skip to content
This repository was archived by the owner on Oct 3, 2024. It is now read-only.

Commit 871b66d

Browse files
SUPERCILEXsamtstern
authored andcommitted
Fix leaked decor view (#115)
1 parent 0768c3e commit 871b66d

File tree

2 files changed

+14
-4
lines changed

2 files changed

+14
-4
lines changed

easypermissions/src/main/java/pub/devrel/easypermissions/AppSettingsDialog.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -119,14 +119,13 @@ public void show() {
119119
/**
120120
* Show the dialog. {@link #show()} is a wrapper to ensure backwards compatibility
121121
*/
122-
void showDialog() {
123-
new AlertDialog.Builder(mContext)
122+
AlertDialog showDialog() {
123+
return new AlertDialog.Builder(mContext)
124124
.setCancelable(false)
125125
.setTitle(mTitle)
126126
.setMessage(mRationale)
127127
.setPositiveButton(mPositiveButtonText, this)
128128
.setNegativeButton(mNegativeButtonText, mNegativeListener)
129-
.create()
130129
.show();
131130
}
132131

easypermissions/src/main/java/pub/devrel/easypermissions/AppSettingsDialogHolderActivity.java

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,13 @@
66
import android.content.Intent;
77
import android.os.Bundle;
88
import android.support.annotation.RestrictTo;
9+
import android.support.v7.app.AlertDialog;
910
import android.support.v7.app.AppCompatActivity;
1011

1112
@RestrictTo(RestrictTo.Scope.LIBRARY_GROUP)
1213
public class AppSettingsDialogHolderActivity extends AppCompatActivity implements DialogInterface.OnClickListener {
14+
private AlertDialog mDialog;
15+
1316
public static Intent createShowDialogIntent(Context context, AppSettingsDialog dialog) {
1417
return new Intent(context, AppSettingsDialogHolderActivity.class)
1518
.putExtra(AppSettingsDialog.EXTRA_APP_SETTINGS, dialog);
@@ -22,7 +25,15 @@ protected void onCreate(Bundle savedInstanceState) {
2225
dialog.setContext(this);
2326
dialog.setActivityOrFragment(this);
2427
dialog.setNegativeListener(this);
25-
dialog.showDialog();
28+
mDialog = dialog.showDialog();
29+
}
30+
31+
@Override
32+
protected void onDestroy() {
33+
super.onDestroy();
34+
if (mDialog != null && mDialog.isShowing()) {
35+
mDialog.dismiss();
36+
}
2637
}
2738

2839
@Override

0 commit comments

Comments
 (0)