global key observer lazy initialize

This commit is contained in:
hyb1996
2018-02-27 09:59:36 +08:00
parent 86c1371e93
commit ab121f23c3
3 changed files with 14 additions and 5 deletions

View File

@@ -81,7 +81,9 @@ public class App extends MultiDexApplication {
ThemeColorManager.setDefaultThemeColor(new ThemeColor(getResources().getColor(R.color.colorPrimary), getResources().getColor(R.color.colorPrimaryDark), getResources().getColor(R.color.colorAccent)));
ThemeColorManager.init(this);
AutoJs.initInstance(this);
GlobalKeyObserver.getSingleton();
if (Pref.isRunningVolumeControlEnabled()) {
GlobalKeyObserver.init();
}
setupDrawableImageLoader();
TimedTaskScheduler.setupRepeating(this);
}

View File

@@ -5,6 +5,7 @@ import android.content.SharedPreferences;
import android.preference.PreferenceManager;
import com.stardust.autojs.runtime.accessibility.AccessibilityConfig;
import com.stardust.scriptdroid.autojs.key.GlobalKeyObserver;
import java.util.concurrent.TimeUnit;
@@ -24,9 +25,12 @@ public class Pref {
private static SharedPreferences.OnSharedPreferenceChangeListener onSharedPreferenceChangeListener = new SharedPreferences.OnSharedPreferenceChangeListener() {
@Override
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
public void onSharedPreferenceChanged(SharedPreferences p, String key) {
if (key.equals(getString(R.string.key_guard_mode))) {
AccessibilityConfig.setIsUnintendedGuardEnabled(sharedPreferences.getBoolean(getString(R.string.key_guard_mode), false));
AccessibilityConfig.setIsUnintendedGuardEnabled(p.getBoolean(getString(R.string.key_guard_mode), false));
} else if ((key.equals(getString(R.string.key_use_volume_control_record)) || key.equals(getString(R.string.key_use_volume_control_running)))
&& p.getBoolean(key, false)) {
GlobalKeyObserver.init();
}
}
};

View File

@@ -25,7 +25,7 @@ public class GlobalKeyObserver implements OnKeyListener, ShellKeyObserver.KeyLis
private static final EventDispatcher.Event<OnVolumeDownListener> VOLUME_DOWN_EVENT = OnVolumeDownListener::onVolumeDown;
private static final String LOG_TAG = "GlobalKeyObserver";
private static final long EVENT_TIMEOUT = 200;
private static GlobalKeyObserver sSingleton = new GlobalKeyObserver();
private static GlobalKeyObserver sSingleton;
private EventDispatcher<OnVolumeDownListener> mVolumeDownEventDispatcher = new EventDispatcher<>();
private boolean mVolumeDownFromShell, mVolumeDownFromAccessibility;
private boolean mVolumeUpFromShell, mVolumeUpFromAccessibility;
@@ -39,11 +39,14 @@ public class GlobalKeyObserver implements OnKeyListener, ShellKeyObserver.KeyLis
}
public static GlobalKeyObserver getSingleton() {
if (sSingleton == null) {
sSingleton = new GlobalKeyObserver();
}
return sSingleton;
}
public static void init() {
//do nothing
getSingleton();
}
public void onVolumeUp() {