From 02a9091ddb34e3116cf00bae03fa588f7cd865e2 Mon Sep 17 00:00:00 2001 From: hyb1996 <946994919@qq.com> Date: Sat, 28 Oct 2017 15:07:22 +0800 Subject: [PATCH] add: floating window switch saves state on exit --- app/src/main/java/com/stardust/scriptdroid/Pref.java | 9 +++++++++ .../stardust/scriptdroid/ui/floating/CircularMenu.java | 2 +- .../com/stardust/scriptdroid/ui/main/MainActivity.java | 2 +- .../scriptdroid/ui/main/drawer/DrawerFragment.java | 8 +++++++- 4 files changed, 18 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/stardust/scriptdroid/Pref.java b/app/src/main/java/com/stardust/scriptdroid/Pref.java index db034126..8e0f17b0 100644 --- a/app/src/main/java/com/stardust/scriptdroid/Pref.java +++ b/app/src/main/java/com/stardust/scriptdroid/Pref.java @@ -18,6 +18,7 @@ public class Pref { private static final String KEY_SHOULD_SHOW_ANNUNCIATION = "Sing about all the things you forgot, things you are not"; private static final String KEY_FIRST_SHOW_AD = "En, Today is 17.7.7, but, I'm still love you so...."; private static final String KEY_LAST_SHOW_AD_MILLIS = "But... it seems that...you will not come back any more..."; + private static final String KEY_FLOATING_MENU_SHOWN = "17.10.28 I have idea of what you think...maybe...I'm overthinking..."; private static SharedPreferences.OnSharedPreferenceChangeListener onSharedPreferenceChangeListener = new SharedPreferences.OnSharedPreferenceChangeListener() { @Override public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) { @@ -147,4 +148,12 @@ public class Pref { public static String getDocumentationUrl() { return "file:///android_asset/docs/"; } + + public static boolean isFloatingMenuShown() { + return def().getBoolean(KEY_FLOATING_MENU_SHOWN, false); + } + + public static void setFloatingMenuShown(boolean checked) { + def().edit().putBoolean(KEY_FLOATING_MENU_SHOWN, checked).apply(); + } } diff --git a/app/src/main/java/com/stardust/scriptdroid/ui/floating/CircularMenu.java b/app/src/main/java/com/stardust/scriptdroid/ui/floating/CircularMenu.java index ef8a59a5..fcc4b76c 100644 --- a/app/src/main/java/com/stardust/scriptdroid/ui/floating/CircularMenu.java +++ b/app/src/main/java/com/stardust/scriptdroid/ui/floating/CircularMenu.java @@ -246,7 +246,7 @@ public class CircularMenu implements Recorder.OnStateChangedListener { } @Optional - @OnClick(R.id.package_name) + @OnClick(R.id.class_name) void copyActivityName() { dismissSettingsDialog(); if (TextUtils.isEmpty(mRunningActivity)) diff --git a/app/src/main/java/com/stardust/scriptdroid/ui/main/MainActivity.java b/app/src/main/java/com/stardust/scriptdroid/ui/main/MainActivity.java index 719fd3ec..d28a39ba 100644 --- a/app/src/main/java/com/stardust/scriptdroid/ui/main/MainActivity.java +++ b/app/src/main/java/com/stardust/scriptdroid/ui/main/MainActivity.java @@ -184,10 +184,10 @@ public class MainActivity extends BaseActivity implements OnActivityResultDelega @Click(R.id.exit) public void exitCompletely() { + finish(); FloatyWindowManger.hideCircularMenu(); stopService(new Intent(this, FloatyService.class)); AutoJs.getInstance().getScriptEngineService().stopAll(); - finish(); } @Override diff --git a/app/src/main/java/com/stardust/scriptdroid/ui/main/drawer/DrawerFragment.java b/app/src/main/java/com/stardust/scriptdroid/ui/main/drawer/DrawerFragment.java index 316ba074..27d198f1 100644 --- a/app/src/main/java/com/stardust/scriptdroid/ui/main/drawer/DrawerFragment.java +++ b/app/src/main/java/com/stardust/scriptdroid/ui/main/drawer/DrawerFragment.java @@ -89,7 +89,6 @@ public class DrawerFragment extends android.support.v4.app.Fragment { @ViewById(R.id.default_cover) View mDefaultCover; - private Disposable mConnectionStateDisposable; @@ -101,6 +100,7 @@ public class DrawerFragment extends android.support.v4.app.Fragment { .doOnNext(connected -> mConnectionItem.getSwitchCompat().setChecked(connected)) .subscribe(); EventBus.getDefault().register(this); + } @Override @@ -118,6 +118,9 @@ public class DrawerFragment extends android.support.v4.app.Fragment { @AfterViews void setUpViews() { ThemeColorManager.addViewBackground(mHeaderView); + if (Pref.isFloatingMenuShown()) { + mFloatingWindowItem.getSwitchCompat().setChecked(true); + } } private void syncUserInfo() { @@ -204,6 +207,9 @@ public class DrawerFragment extends android.support.v4.app.Fragment { void showOrDismissFloatingWindow() { boolean isFloatingWindowShowing = FloatyWindowManger.isCircularMenuShowing(); boolean checked = mFloatingWindowItem.getSwitchCompat().isChecked(); + if (getActivity() != null && !getActivity().isFinishing()) { + Pref.setFloatingMenuShown(checked); + } if (checked && !isFloatingWindowShowing) { FloatyWindowManger.showCircularMenu(); enableAccessibilityServiceByRootIfNeeded();