NfcAndPaymentFragmentController: fix crash
06-29 23:09:26.799 5606 5606 E AndroidRuntime: Caused by: java.lang.IllegalArgumentException: Receiver not registered: com.android.settings.connecteddevice.NfcAndPaymentFragmentController$1@95014d9 06-29 23:09:26.799 5606 5606 E AndroidRuntime: at android.app.LoadedApk.forgetReceiverDispatcher(LoadedApk.java:1695) 06-29 23:09:26.799 5606 5606 E AndroidRuntime: at android.app.ContextImpl.unregisterReceiver(ContextImpl.java:2025) 06-29 23:09:26.799 5606 5606 E AndroidRuntime: at android.content.ContextWrapper.unregisterReceiver(ContextWrapper.java:843) 06-29 23:09:26.799 5606 5606 E AndroidRuntime: at com.android.settings.connecteddevice.NfcAndPaymentFragmentController.onStop(NfcAndPaymentFragmentController.java:106) 06-29 23:09:26.799 5606 5606 E AndroidRuntime: at com.android.settingslib.core.lifecycle.Lifecycle.onStop(Lifecycle.java:169) 06-29 23:09:26.799 5606 5606 E AndroidRuntime: at com.android.settingslib.core.lifecycle.Lifecycle.-$$Nest$monStop(Lifecycle.java:0) 06-29 23:09:26.799 5606 5606 E AndroidRuntime: at com.android.settingslib.core.lifecycle.Lifecycle$LifecycleProxy.onLifecycleEvent(Lifecycle.java:231) Signed-off-by: Dmitrii <bankersenator@gmail.com>
This commit is contained in:
@@ -44,6 +44,8 @@ public class NfcAndPaymentFragmentController extends BasePreferenceController
|
||||
private final IntentFilter mIntentFilter;
|
||||
private Preference mPreference;
|
||||
|
||||
private boolean mIsReceiverRegistered = false;
|
||||
|
||||
private final BroadcastReceiver mReceiver = new BroadcastReceiver() {
|
||||
@Override
|
||||
public void onReceive(Context context, Intent intent) {
|
||||
@@ -99,20 +101,18 @@ public class NfcAndPaymentFragmentController extends BasePreferenceController
|
||||
|
||||
@Override
|
||||
public void onStop() {
|
||||
if (!isNfcAvailable()) {
|
||||
return;
|
||||
if (mIsReceiverRegistered) {
|
||||
mContext.unregisterReceiver(mReceiver);
|
||||
mIsReceiverRegistered = false;
|
||||
}
|
||||
|
||||
mContext.unregisterReceiver(mReceiver);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onResume() {
|
||||
if (!isNfcAvailable()) {
|
||||
return;
|
||||
if (isNfcAvailable() && !mIsReceiverRegistered) {
|
||||
mContext.registerReceiver(mReceiver, mIntentFilter);
|
||||
mIsReceiverRegistered = true;
|
||||
}
|
||||
|
||||
mContext.registerReceiver(mReceiver, mIntentFilter);
|
||||
}
|
||||
|
||||
private boolean isNfcAvailable() {
|
||||
|
||||
Reference in New Issue
Block a user