ADD week 5
This commit is contained in:
		
							
								
								
									
										510
									
								
								02-Easy5/E5/sources/androidx/fragment/app/DialogFragment.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										510
									
								
								02-Easy5/E5/sources/androidx/fragment/app/DialogFragment.java
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,510 @@ | ||||
| package androidx.fragment.app; | ||||
|  | ||||
| import android.R; | ||||
| import android.app.Activity; | ||||
| import android.app.Dialog; | ||||
| import android.content.Context; | ||||
| import android.content.DialogInterface; | ||||
| import android.os.Bundle; | ||||
| import android.os.Handler; | ||||
| import android.os.Looper; | ||||
| import android.util.Log; | ||||
| import android.view.LayoutInflater; | ||||
| import android.view.View; | ||||
| import android.view.ViewGroup; | ||||
| import android.view.Window; | ||||
| import androidx.lifecycle.LifecycleOwner; | ||||
| import androidx.lifecycle.Observer; | ||||
| import androidx.lifecycle.ViewTreeLifecycleOwner; | ||||
| import androidx.lifecycle.ViewTreeViewModelStoreOwner; | ||||
| import androidx.savedstate.ViewTreeSavedStateRegistryOwner; | ||||
|  | ||||
| /* loaded from: classes.dex */ | ||||
| public class DialogFragment extends Fragment implements DialogInterface.OnCancelListener, DialogInterface.OnDismissListener { | ||||
|     private static final String SAVED_BACK_STACK_ID = "android:backStackId"; | ||||
|     private static final String SAVED_CANCELABLE = "android:cancelable"; | ||||
|     private static final String SAVED_DIALOG_STATE_TAG = "android:savedDialogState"; | ||||
|     private static final String SAVED_INTERNAL_DIALOG_SHOWING = "android:dialogShowing"; | ||||
|     private static final String SAVED_SHOWS_DIALOG = "android:showsDialog"; | ||||
|     private static final String SAVED_STYLE = "android:style"; | ||||
|     private static final String SAVED_THEME = "android:theme"; | ||||
|     public static final int STYLE_NORMAL = 0; | ||||
|     public static final int STYLE_NO_FRAME = 2; | ||||
|     public static final int STYLE_NO_INPUT = 3; | ||||
|     public static final int STYLE_NO_TITLE = 1; | ||||
|     private int mBackStackId; | ||||
|     private boolean mCancelable; | ||||
|     private boolean mCreatingDialog; | ||||
|     private Dialog mDialog; | ||||
|     private boolean mDialogCreated; | ||||
|     private Runnable mDismissRunnable; | ||||
|     private boolean mDismissed; | ||||
|     private Handler mHandler; | ||||
|     private Observer<LifecycleOwner> mObserver; | ||||
|     private DialogInterface.OnCancelListener mOnCancelListener; | ||||
|     private DialogInterface.OnDismissListener mOnDismissListener; | ||||
|     private boolean mShownByMe; | ||||
|     private boolean mShowsDialog; | ||||
|     private int mStyle; | ||||
|     private int mTheme; | ||||
|     private boolean mViewDestroyed; | ||||
|  | ||||
|     public Dialog getDialog() { | ||||
|         return this.mDialog; | ||||
|     } | ||||
|  | ||||
|     public boolean getShowsDialog() { | ||||
|         return this.mShowsDialog; | ||||
|     } | ||||
|  | ||||
|     public int getTheme() { | ||||
|         return this.mTheme; | ||||
|     } | ||||
|  | ||||
|     public boolean isCancelable() { | ||||
|         return this.mCancelable; | ||||
|     } | ||||
|  | ||||
|     @Override // android.content.DialogInterface.OnCancelListener | ||||
|     public void onCancel(DialogInterface dialogInterface) { | ||||
|     } | ||||
|  | ||||
|     boolean onHasView() { | ||||
|         return this.mDialogCreated; | ||||
|     } | ||||
|  | ||||
|     public void setShowsDialog(boolean z) { | ||||
|         this.mShowsDialog = z; | ||||
|     } | ||||
|  | ||||
|     public DialogFragment() { | ||||
|         this.mDismissRunnable = new Runnable() { // from class: androidx.fragment.app.DialogFragment.1 | ||||
|             @Override // java.lang.Runnable | ||||
|             public void run() { | ||||
|                 DialogFragment.this.mOnDismissListener.onDismiss(DialogFragment.this.mDialog); | ||||
|             } | ||||
|         }; | ||||
|         this.mOnCancelListener = new DialogInterface.OnCancelListener() { // from class: androidx.fragment.app.DialogFragment.2 | ||||
|             @Override // android.content.DialogInterface.OnCancelListener | ||||
|             public void onCancel(DialogInterface dialogInterface) { | ||||
|                 if (DialogFragment.this.mDialog != null) { | ||||
|                     DialogFragment dialogFragment = DialogFragment.this; | ||||
|                     dialogFragment.onCancel(dialogFragment.mDialog); | ||||
|                 } | ||||
|             } | ||||
|         }; | ||||
|         this.mOnDismissListener = new DialogInterface.OnDismissListener() { // from class: androidx.fragment.app.DialogFragment.3 | ||||
|             @Override // android.content.DialogInterface.OnDismissListener | ||||
|             public void onDismiss(DialogInterface dialogInterface) { | ||||
|                 if (DialogFragment.this.mDialog != null) { | ||||
|                     DialogFragment dialogFragment = DialogFragment.this; | ||||
|                     dialogFragment.onDismiss(dialogFragment.mDialog); | ||||
|                 } | ||||
|             } | ||||
|         }; | ||||
|         this.mStyle = 0; | ||||
|         this.mTheme = 0; | ||||
|         this.mCancelable = true; | ||||
|         this.mShowsDialog = true; | ||||
|         this.mBackStackId = -1; | ||||
|         this.mObserver = new Observer<LifecycleOwner>() { // from class: androidx.fragment.app.DialogFragment.4 | ||||
|             @Override // androidx.lifecycle.Observer | ||||
|             public void onChanged(LifecycleOwner lifecycleOwner) { | ||||
|                 if (lifecycleOwner == null || !DialogFragment.this.mShowsDialog) { | ||||
|                     return; | ||||
|                 } | ||||
|                 View requireView = DialogFragment.this.requireView(); | ||||
|                 if (requireView.getParent() == null) { | ||||
|                     if (DialogFragment.this.mDialog != null) { | ||||
|                         if (FragmentManager.isLoggingEnabled(3)) { | ||||
|                             Log.d("FragmentManager", "DialogFragment " + this + " setting the content view on " + DialogFragment.this.mDialog); | ||||
|                         } | ||||
|                         DialogFragment.this.mDialog.setContentView(requireView); | ||||
|                         return; | ||||
|                     } | ||||
|                     return; | ||||
|                 } | ||||
|                 throw new IllegalStateException("DialogFragment can not be attached to a container view"); | ||||
|             } | ||||
|         }; | ||||
|         this.mDialogCreated = false; | ||||
|     } | ||||
|  | ||||
|     public DialogFragment(int i) { | ||||
|         super(i); | ||||
|         this.mDismissRunnable = new Runnable() { // from class: androidx.fragment.app.DialogFragment.1 | ||||
|             @Override // java.lang.Runnable | ||||
|             public void run() { | ||||
|                 DialogFragment.this.mOnDismissListener.onDismiss(DialogFragment.this.mDialog); | ||||
|             } | ||||
|         }; | ||||
|         this.mOnCancelListener = new DialogInterface.OnCancelListener() { // from class: androidx.fragment.app.DialogFragment.2 | ||||
|             @Override // android.content.DialogInterface.OnCancelListener | ||||
|             public void onCancel(DialogInterface dialogInterface) { | ||||
|                 if (DialogFragment.this.mDialog != null) { | ||||
|                     DialogFragment dialogFragment = DialogFragment.this; | ||||
|                     dialogFragment.onCancel(dialogFragment.mDialog); | ||||
|                 } | ||||
|             } | ||||
|         }; | ||||
|         this.mOnDismissListener = new DialogInterface.OnDismissListener() { // from class: androidx.fragment.app.DialogFragment.3 | ||||
|             @Override // android.content.DialogInterface.OnDismissListener | ||||
|             public void onDismiss(DialogInterface dialogInterface) { | ||||
|                 if (DialogFragment.this.mDialog != null) { | ||||
|                     DialogFragment dialogFragment = DialogFragment.this; | ||||
|                     dialogFragment.onDismiss(dialogFragment.mDialog); | ||||
|                 } | ||||
|             } | ||||
|         }; | ||||
|         this.mStyle = 0; | ||||
|         this.mTheme = 0; | ||||
|         this.mCancelable = true; | ||||
|         this.mShowsDialog = true; | ||||
|         this.mBackStackId = -1; | ||||
|         this.mObserver = new Observer<LifecycleOwner>() { // from class: androidx.fragment.app.DialogFragment.4 | ||||
|             @Override // androidx.lifecycle.Observer | ||||
|             public void onChanged(LifecycleOwner lifecycleOwner) { | ||||
|                 if (lifecycleOwner == null || !DialogFragment.this.mShowsDialog) { | ||||
|                     return; | ||||
|                 } | ||||
|                 View requireView = DialogFragment.this.requireView(); | ||||
|                 if (requireView.getParent() == null) { | ||||
|                     if (DialogFragment.this.mDialog != null) { | ||||
|                         if (FragmentManager.isLoggingEnabled(3)) { | ||||
|                             Log.d("FragmentManager", "DialogFragment " + this + " setting the content view on " + DialogFragment.this.mDialog); | ||||
|                         } | ||||
|                         DialogFragment.this.mDialog.setContentView(requireView); | ||||
|                         return; | ||||
|                     } | ||||
|                     return; | ||||
|                 } | ||||
|                 throw new IllegalStateException("DialogFragment can not be attached to a container view"); | ||||
|             } | ||||
|         }; | ||||
|         this.mDialogCreated = false; | ||||
|     } | ||||
|  | ||||
|     public void setStyle(int i, int i2) { | ||||
|         if (FragmentManager.isLoggingEnabled(2)) { | ||||
|             Log.d("FragmentManager", "Setting style and theme for DialogFragment " + this + " to " + i + ", " + i2); | ||||
|         } | ||||
|         this.mStyle = i; | ||||
|         if (i == 2 || i == 3) { | ||||
|             this.mTheme = R.style.Theme.Panel; | ||||
|         } | ||||
|         if (i2 != 0) { | ||||
|             this.mTheme = i2; | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     public void show(FragmentManager fragmentManager, String str) { | ||||
|         this.mDismissed = false; | ||||
|         this.mShownByMe = true; | ||||
|         FragmentTransaction beginTransaction = fragmentManager.beginTransaction(); | ||||
|         beginTransaction.add(this, str); | ||||
|         beginTransaction.commit(); | ||||
|     } | ||||
|  | ||||
|     public int show(FragmentTransaction fragmentTransaction, String str) { | ||||
|         this.mDismissed = false; | ||||
|         this.mShownByMe = true; | ||||
|         fragmentTransaction.add(this, str); | ||||
|         this.mViewDestroyed = false; | ||||
|         int commit = fragmentTransaction.commit(); | ||||
|         this.mBackStackId = commit; | ||||
|         return commit; | ||||
|     } | ||||
|  | ||||
|     public void showNow(FragmentManager fragmentManager, String str) { | ||||
|         this.mDismissed = false; | ||||
|         this.mShownByMe = true; | ||||
|         FragmentTransaction beginTransaction = fragmentManager.beginTransaction(); | ||||
|         beginTransaction.add(this, str); | ||||
|         beginTransaction.commitNow(); | ||||
|     } | ||||
|  | ||||
|     public void dismiss() { | ||||
|         dismissInternal(false, false); | ||||
|     } | ||||
|  | ||||
|     public void dismissAllowingStateLoss() { | ||||
|         dismissInternal(true, false); | ||||
|     } | ||||
|  | ||||
|     private void dismissInternal(boolean z, boolean z2) { | ||||
|         if (this.mDismissed) { | ||||
|             return; | ||||
|         } | ||||
|         this.mDismissed = true; | ||||
|         this.mShownByMe = false; | ||||
|         Dialog dialog = this.mDialog; | ||||
|         if (dialog != null) { | ||||
|             dialog.setOnDismissListener(null); | ||||
|             this.mDialog.dismiss(); | ||||
|             if (!z2) { | ||||
|                 if (Looper.myLooper() == this.mHandler.getLooper()) { | ||||
|                     onDismiss(this.mDialog); | ||||
|                 } else { | ||||
|                     this.mHandler.post(this.mDismissRunnable); | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|         this.mViewDestroyed = true; | ||||
|         if (this.mBackStackId >= 0) { | ||||
|             getParentFragmentManager().popBackStack(this.mBackStackId, 1); | ||||
|             this.mBackStackId = -1; | ||||
|             return; | ||||
|         } | ||||
|         FragmentTransaction beginTransaction = getParentFragmentManager().beginTransaction(); | ||||
|         beginTransaction.remove(this); | ||||
|         if (z) { | ||||
|             beginTransaction.commitAllowingStateLoss(); | ||||
|         } else { | ||||
|             beginTransaction.commit(); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     public final Dialog requireDialog() { | ||||
|         Dialog dialog = getDialog(); | ||||
|         if (dialog != null) { | ||||
|             return dialog; | ||||
|         } | ||||
|         throw new IllegalStateException("DialogFragment " + this + " does not have a Dialog."); | ||||
|     } | ||||
|  | ||||
|     public void setCancelable(boolean z) { | ||||
|         this.mCancelable = z; | ||||
|         Dialog dialog = this.mDialog; | ||||
|         if (dialog != null) { | ||||
|             dialog.setCancelable(z); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     @Override // androidx.fragment.app.Fragment | ||||
|     public void onAttach(Context context) { | ||||
|         super.onAttach(context); | ||||
|         getViewLifecycleOwnerLiveData().observeForever(this.mObserver); | ||||
|         if (this.mShownByMe) { | ||||
|             return; | ||||
|         } | ||||
|         this.mDismissed = false; | ||||
|     } | ||||
|  | ||||
|     @Override // androidx.fragment.app.Fragment | ||||
|     public void onDetach() { | ||||
|         super.onDetach(); | ||||
|         if (!this.mShownByMe && !this.mDismissed) { | ||||
|             this.mDismissed = true; | ||||
|         } | ||||
|         getViewLifecycleOwnerLiveData().removeObserver(this.mObserver); | ||||
|     } | ||||
|  | ||||
|     @Override // androidx.fragment.app.Fragment | ||||
|     public void onCreate(Bundle bundle) { | ||||
|         super.onCreate(bundle); | ||||
|         this.mHandler = new Handler(); | ||||
|         this.mShowsDialog = this.mContainerId == 0; | ||||
|         if (bundle != null) { | ||||
|             this.mStyle = bundle.getInt(SAVED_STYLE, 0); | ||||
|             this.mTheme = bundle.getInt(SAVED_THEME, 0); | ||||
|             this.mCancelable = bundle.getBoolean(SAVED_CANCELABLE, true); | ||||
|             this.mShowsDialog = bundle.getBoolean(SAVED_SHOWS_DIALOG, this.mShowsDialog); | ||||
|             this.mBackStackId = bundle.getInt(SAVED_BACK_STACK_ID, -1); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     @Override // androidx.fragment.app.Fragment | ||||
|     void performCreateView(LayoutInflater layoutInflater, ViewGroup viewGroup, Bundle bundle) { | ||||
|         Bundle bundle2; | ||||
|         super.performCreateView(layoutInflater, viewGroup, bundle); | ||||
|         if (this.mView != null || this.mDialog == null || bundle == null || (bundle2 = bundle.getBundle(SAVED_DIALOG_STATE_TAG)) == null) { | ||||
|             return; | ||||
|         } | ||||
|         this.mDialog.onRestoreInstanceState(bundle2); | ||||
|     } | ||||
|  | ||||
|     @Override // androidx.fragment.app.Fragment | ||||
|     FragmentContainer createFragmentContainer() { | ||||
|         final FragmentContainer createFragmentContainer = super.createFragmentContainer(); | ||||
|         return new FragmentContainer() { // from class: androidx.fragment.app.DialogFragment.5 | ||||
|             @Override // androidx.fragment.app.FragmentContainer | ||||
|             public View onFindViewById(int i) { | ||||
|                 if (createFragmentContainer.onHasView()) { | ||||
|                     return createFragmentContainer.onFindViewById(i); | ||||
|                 } | ||||
|                 return DialogFragment.this.onFindViewById(i); | ||||
|             } | ||||
|  | ||||
|             @Override // androidx.fragment.app.FragmentContainer | ||||
|             public boolean onHasView() { | ||||
|                 return createFragmentContainer.onHasView() || DialogFragment.this.onHasView(); | ||||
|             } | ||||
|         }; | ||||
|     } | ||||
|  | ||||
|     View onFindViewById(int i) { | ||||
|         Dialog dialog = this.mDialog; | ||||
|         if (dialog != null) { | ||||
|             return dialog.findViewById(i); | ||||
|         } | ||||
|         return null; | ||||
|     } | ||||
|  | ||||
|     @Override // androidx.fragment.app.Fragment | ||||
|     public LayoutInflater onGetLayoutInflater(Bundle bundle) { | ||||
|         LayoutInflater onGetLayoutInflater = super.onGetLayoutInflater(bundle); | ||||
|         if (!this.mShowsDialog || this.mCreatingDialog) { | ||||
|             if (FragmentManager.isLoggingEnabled(2)) { | ||||
|                 String str = "getting layout inflater for DialogFragment " + this; | ||||
|                 if (!this.mShowsDialog) { | ||||
|                     Log.d("FragmentManager", "mShowsDialog = false: " + str); | ||||
|                 } else { | ||||
|                     Log.d("FragmentManager", "mCreatingDialog = true: " + str); | ||||
|                 } | ||||
|             } | ||||
|             return onGetLayoutInflater; | ||||
|         } | ||||
|         prepareDialog(bundle); | ||||
|         if (FragmentManager.isLoggingEnabled(2)) { | ||||
|             Log.d("FragmentManager", "get layout inflater for DialogFragment " + this + " from dialog context"); | ||||
|         } | ||||
|         Dialog dialog = this.mDialog; | ||||
|         return dialog != null ? onGetLayoutInflater.cloneInContext(dialog.getContext()) : onGetLayoutInflater; | ||||
|     } | ||||
|  | ||||
|     public void setupDialog(Dialog dialog, int i) { | ||||
|         if (i != 1 && i != 2) { | ||||
|             if (i != 3) { | ||||
|                 return; | ||||
|             } | ||||
|             Window window = dialog.getWindow(); | ||||
|             if (window != null) { | ||||
|                 window.addFlags(24); | ||||
|             } | ||||
|         } | ||||
|         dialog.requestWindowFeature(1); | ||||
|     } | ||||
|  | ||||
|     public Dialog onCreateDialog(Bundle bundle) { | ||||
|         if (FragmentManager.isLoggingEnabled(3)) { | ||||
|             Log.d("FragmentManager", "onCreateDialog called for DialogFragment " + this); | ||||
|         } | ||||
|         return new Dialog(requireContext(), getTheme()); | ||||
|     } | ||||
|  | ||||
|     @Override // android.content.DialogInterface.OnDismissListener | ||||
|     public void onDismiss(DialogInterface dialogInterface) { | ||||
|         if (this.mViewDestroyed) { | ||||
|             return; | ||||
|         } | ||||
|         if (FragmentManager.isLoggingEnabled(3)) { | ||||
|             Log.d("FragmentManager", "onDismiss called for DialogFragment " + this); | ||||
|         } | ||||
|         dismissInternal(true, true); | ||||
|     } | ||||
|  | ||||
|     private void prepareDialog(Bundle bundle) { | ||||
|         if (this.mShowsDialog && !this.mDialogCreated) { | ||||
|             try { | ||||
|                 this.mCreatingDialog = true; | ||||
|                 Dialog onCreateDialog = onCreateDialog(bundle); | ||||
|                 this.mDialog = onCreateDialog; | ||||
|                 if (this.mShowsDialog) { | ||||
|                     setupDialog(onCreateDialog, this.mStyle); | ||||
|                     Context context = getContext(); | ||||
|                     if (context instanceof Activity) { | ||||
|                         this.mDialog.setOwnerActivity((Activity) context); | ||||
|                     } | ||||
|                     this.mDialog.setCancelable(this.mCancelable); | ||||
|                     this.mDialog.setOnCancelListener(this.mOnCancelListener); | ||||
|                     this.mDialog.setOnDismissListener(this.mOnDismissListener); | ||||
|                     this.mDialogCreated = true; | ||||
|                 } else { | ||||
|                     this.mDialog = null; | ||||
|                 } | ||||
|             } finally { | ||||
|                 this.mCreatingDialog = false; | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     @Override // androidx.fragment.app.Fragment | ||||
|     public void onViewStateRestored(Bundle bundle) { | ||||
|         Bundle bundle2; | ||||
|         super.onViewStateRestored(bundle); | ||||
|         if (this.mDialog == null || bundle == null || (bundle2 = bundle.getBundle(SAVED_DIALOG_STATE_TAG)) == null) { | ||||
|             return; | ||||
|         } | ||||
|         this.mDialog.onRestoreInstanceState(bundle2); | ||||
|     } | ||||
|  | ||||
|     @Override // androidx.fragment.app.Fragment | ||||
|     public void onStart() { | ||||
|         super.onStart(); | ||||
|         Dialog dialog = this.mDialog; | ||||
|         if (dialog != null) { | ||||
|             this.mViewDestroyed = false; | ||||
|             dialog.show(); | ||||
|             View decorView = this.mDialog.getWindow().getDecorView(); | ||||
|             ViewTreeLifecycleOwner.set(decorView, this); | ||||
|             ViewTreeViewModelStoreOwner.set(decorView, this); | ||||
|             ViewTreeSavedStateRegistryOwner.set(decorView, this); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     @Override // androidx.fragment.app.Fragment | ||||
|     public void onSaveInstanceState(Bundle bundle) { | ||||
|         super.onSaveInstanceState(bundle); | ||||
|         Dialog dialog = this.mDialog; | ||||
|         if (dialog != null) { | ||||
|             Bundle onSaveInstanceState = dialog.onSaveInstanceState(); | ||||
|             onSaveInstanceState.putBoolean(SAVED_INTERNAL_DIALOG_SHOWING, false); | ||||
|             bundle.putBundle(SAVED_DIALOG_STATE_TAG, onSaveInstanceState); | ||||
|         } | ||||
|         int i = this.mStyle; | ||||
|         if (i != 0) { | ||||
|             bundle.putInt(SAVED_STYLE, i); | ||||
|         } | ||||
|         int i2 = this.mTheme; | ||||
|         if (i2 != 0) { | ||||
|             bundle.putInt(SAVED_THEME, i2); | ||||
|         } | ||||
|         boolean z = this.mCancelable; | ||||
|         if (!z) { | ||||
|             bundle.putBoolean(SAVED_CANCELABLE, z); | ||||
|         } | ||||
|         boolean z2 = this.mShowsDialog; | ||||
|         if (!z2) { | ||||
|             bundle.putBoolean(SAVED_SHOWS_DIALOG, z2); | ||||
|         } | ||||
|         int i3 = this.mBackStackId; | ||||
|         if (i3 != -1) { | ||||
|             bundle.putInt(SAVED_BACK_STACK_ID, i3); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     @Override // androidx.fragment.app.Fragment | ||||
|     public void onStop() { | ||||
|         super.onStop(); | ||||
|         Dialog dialog = this.mDialog; | ||||
|         if (dialog != null) { | ||||
|             dialog.hide(); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     @Override // androidx.fragment.app.Fragment | ||||
|     public void onDestroyView() { | ||||
|         super.onDestroyView(); | ||||
|         Dialog dialog = this.mDialog; | ||||
|         if (dialog != null) { | ||||
|             this.mViewDestroyed = true; | ||||
|             dialog.setOnDismissListener(null); | ||||
|             this.mDialog.dismiss(); | ||||
|             if (!this.mDismissed) { | ||||
|                 onDismiss(this.mDialog); | ||||
|             } | ||||
|             this.mDialog = null; | ||||
|             this.mDialogCreated = false; | ||||
|         } | ||||
|     } | ||||
| } | ||||
		Reference in New Issue
	
	Block a user