fix: switch state sync problem
This commit is contained in:
@@ -1,9 +1,6 @@
|
||||
package com.stardust.scriptdroid.ui;
|
||||
|
||||
import android.content.BroadcastReceiver;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.IntentFilter;
|
||||
import android.os.Bundle;
|
||||
import android.support.annotation.Nullable;
|
||||
import android.support.design.widget.Snackbar;
|
||||
@@ -14,6 +11,7 @@ import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
|
||||
import com.stardust.app.Fragment;
|
||||
import com.stardust.scriptdroid.App;
|
||||
import com.stardust.scriptdroid.DocumentActivity;
|
||||
import com.stardust.scriptdroid.R;
|
||||
import com.stardust.scriptdroid.droid.Droid;
|
||||
@@ -22,7 +20,8 @@ import com.stardust.view.ViewBinder;
|
||||
import com.stardust.view.ViewBinding;
|
||||
import com.stardust.view.accessibility.AccessibilityServiceUtils;
|
||||
|
||||
import static com.stardust.scriptdroid.droid.runtime.action.ActionPerformService.ACTION_CHANGE_ASSIST_MODE;
|
||||
import static com.stardust.scriptdroid.droid.runtime.action.ActionPerformService.KEY_ASSIST_MODE_ENABLE;
|
||||
import static com.stardust.scriptdroid.ui.AssistModeSwitchNotification.KEY_ASSIST_MODE_NOTIFICATION;
|
||||
|
||||
/**
|
||||
* Created by Stardust on 2017/1/30.
|
||||
@@ -37,7 +36,6 @@ public class SlideMenuFragment extends Fragment {
|
||||
}
|
||||
|
||||
private SwitchCompat mAutoOperateServiceSwitch, mAssistServiceSwitch, mAssistServiceNotificationSwitch;
|
||||
private Receiver mReceiver = new Receiver();
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
@@ -51,9 +49,6 @@ public class SlideMenuFragment extends Fragment {
|
||||
if (mAutoOperateServiceSwitch == null) {
|
||||
setUpSwitchCompat();
|
||||
ViewBinder.bind(this);
|
||||
IntentFilter filter = new IntentFilter();
|
||||
filter.addAction(ACTION_CHANGE_ASSIST_MODE);
|
||||
getContext().registerReceiver(mReceiver, filter);
|
||||
}
|
||||
syncSwitchState();
|
||||
}
|
||||
@@ -73,6 +68,8 @@ public class SlideMenuFragment extends Fragment {
|
||||
mAutoOperateServiceSwitch = $(R.id.sw_auto_operate_service);
|
||||
mAssistServiceSwitch = $(R.id.sw_assist_service);
|
||||
mAssistServiceNotificationSwitch = $(R.id.sw_assist_service_notification);
|
||||
App.getStateObserver().register(KEY_ASSIST_MODE_ENABLE, mAssistServiceSwitch);
|
||||
App.getStateObserver().register(KEY_ASSIST_MODE_NOTIFICATION, mAssistServiceNotificationSwitch);
|
||||
}
|
||||
|
||||
@ViewBinding.Click(R.id.syntax_and_api)
|
||||
@@ -97,7 +94,6 @@ public class SlideMenuFragment extends Fragment {
|
||||
@ViewBinding.Check(R.id.sw_assist_service)
|
||||
private void setAssistServiceEnable(boolean enable) {
|
||||
ActionPerformService.setAssistModeEnable(enable);
|
||||
AssistModeSwitchNotification.notifyAssistModeChanged();
|
||||
}
|
||||
|
||||
@ViewBinding.Click(R.id.assist_service)
|
||||
@@ -126,21 +122,7 @@ public class SlideMenuFragment extends Fragment {
|
||||
|
||||
@Override
|
||||
public void onDestroy() {
|
||||
getContext().unregisterReceiver(mReceiver);
|
||||
super.onDestroy();
|
||||
}
|
||||
|
||||
private class Receiver extends BroadcastReceiver {
|
||||
|
||||
|
||||
@Override
|
||||
public void onReceive(Context context, Intent intent) {
|
||||
if (intent.getAction().equals(ACTION_CHANGE_ASSIST_MODE)) {
|
||||
AssistModeSwitchNotification.notifyAssistModeChanged();
|
||||
mAssistServiceSwitch.setChecked(intent.getBooleanExtra("enable", false));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user