From 6d2c0363d512dd72675272cf50ec30d46ec71928 Mon Sep 17 00:00:00 2001 From: Modificator Date: Sat, 13 Apr 2019 14:53:46 +0800 Subject: [PATCH] =?UTF-8?q?#=20This=20is=20a=20combination=20of=204=20comm?= =?UTF-8?q?its.=20#=20This=20is=20the=201st=20commit=20message:=20?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=20E-Ink=20=E6=A8=A1=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit # This is the commit message #2: 去除页面跳转动画 # This is the commit message #3: 开启E-Ink模式后自动设置阅读文字为白底黑字 # This is the commit message #4: 去除退出页面动画 --- .../com/kunfei/bookshelf/MApplication.java | 2 ++ .../kunfei/bookshelf/base/MBaseActivity.java | 24 +++++++++++++ .../com/kunfei/bookshelf/utils/Prefs.java | 35 +++++++++++++++++++ .../bookshelf/view/activity/MainActivity.java | 13 +++++-- .../view/fragment/ThemeSettingsFragment.java | 7 +++- app/src/main/res/anim/anim_none.xml | 4 +++ app/src/main/res/values/strings.xml | 2 ++ app/src/main/res/xml/pref_settings_theme.xml | 12 +++++++ gradlew | 0 9 files changed, 95 insertions(+), 4 deletions(-) create mode 100644 app/src/main/java/com/kunfei/bookshelf/utils/Prefs.java create mode 100644 app/src/main/res/anim/anim_none.xml mode change 100644 => 100755 gradlew diff --git a/app/src/main/java/com/kunfei/bookshelf/MApplication.java b/app/src/main/java/com/kunfei/bookshelf/MApplication.java index ff6344f2bf..7927fca6e2 100644 --- a/app/src/main/java/com/kunfei/bookshelf/MApplication.java +++ b/app/src/main/java/com/kunfei/bookshelf/MApplication.java @@ -17,6 +17,7 @@ import com.kunfei.bookshelf.help.CrashHandler; import com.kunfei.bookshelf.help.FileHelp; import com.kunfei.bookshelf.model.UpLastChapterModel; +import com.kunfei.bookshelf.utils.Prefs; import com.kunfei.bookshelf.utils.theme.ThemeStore; import java.io.File; @@ -96,6 +97,7 @@ public void onBack() { } } }); + Prefs.init(this); } diff --git a/app/src/main/java/com/kunfei/bookshelf/base/MBaseActivity.java b/app/src/main/java/com/kunfei/bookshelf/base/MBaseActivity.java index 9f839de5e2..b440022d22 100644 --- a/app/src/main/java/com/kunfei/bookshelf/base/MBaseActivity.java +++ b/app/src/main/java/com/kunfei/bookshelf/base/MBaseActivity.java @@ -2,6 +2,7 @@ package com.kunfei.bookshelf.base; import android.annotation.SuppressLint; +import android.content.Intent; import android.content.SharedPreferences; import android.content.pm.ActivityInfo; import android.content.res.Configuration; @@ -22,6 +23,7 @@ import com.kunfei.bookshelf.R; import com.kunfei.bookshelf.constant.RxBusTag; import com.kunfei.bookshelf.utils.ColorUtil; +import com.kunfei.bookshelf.utils.Prefs; import com.kunfei.bookshelf.utils.bar.ImmersionBar; import com.kunfei.bookshelf.utils.theme.MaterialValueHelper; import com.kunfei.bookshelf.utils.theme.ThemeStore; @@ -241,5 +243,27 @@ public void hideSnackBar() { } } + @Override + public void startActivity(Intent intent) { + super.startActivity(intent); + if (Prefs.isEInkMode){ + overridePendingTransition(R.anim.anim_none,R.anim.anim_none); + } + } + + @Override + public void startActivityForResult(Intent intent, int requestCode, @Nullable Bundle options) { + super.startActivityForResult(intent, requestCode, options); + if (Prefs.isEInkMode){ + overridePendingTransition(R.anim.anim_none,R.anim.anim_none); + } + } + @Override + public void finish() { + super.finish(); + if (Prefs.isEInkMode){ + overridePendingTransition(R.anim.anim_none, R.anim.anim_none); + } + } } diff --git a/app/src/main/java/com/kunfei/bookshelf/utils/Prefs.java b/app/src/main/java/com/kunfei/bookshelf/utils/Prefs.java new file mode 100644 index 0000000000..bffd5e75be --- /dev/null +++ b/app/src/main/java/com/kunfei/bookshelf/utils/Prefs.java @@ -0,0 +1,35 @@ +package com.kunfei.bookshelf.utils; + +import android.content.Context; +import android.content.SharedPreferences; +import android.util.Log; + +import com.kunfei.bookshelf.help.ReadBookControl; + +public class Prefs { + + public static final String PREFS_KEY_E_INK_MODE = "prefs_key_e_ink_mode"; + public static boolean isEInkMode = false; + + public static void init(Context context) { + isEInkMode = getConfigStorage(context).getBoolean(PREFS_KEY_E_INK_MODE, false); + } + + public static void setEInkModeStatus(Context context, boolean enable) { + isEInkMode = enable; + getConfigStorage(context).edit().putBoolean(PREFS_KEY_E_INK_MODE, enable).apply(); + ReadBookControl.getInstance().setPageMode(4); + ReadBookControl.getInstance().setTextColor(1,0xFF000000); + ReadBookControl.getInstance().setBgColor(1,0xFFFFFFFF); + ReadBookControl.getInstance().setTextDrawableIndex(0); + ReadBookControl.getInstance().initTextDrawableIndex(); + } + + public static SharedPreferences getConfigStorage(Context context) { + return getStorage(context, "CONFIG"); + } + + public static SharedPreferences getStorage(Context context, String storage) { + return context.getSharedPreferences(storage, Context.MODE_PRIVATE); + } +} diff --git a/app/src/main/java/com/kunfei/bookshelf/view/activity/MainActivity.java b/app/src/main/java/com/kunfei/bookshelf/view/activity/MainActivity.java index 4c9760b754..b48ee8917e 100644 --- a/app/src/main/java/com/kunfei/bookshelf/view/activity/MainActivity.java +++ b/app/src/main/java/com/kunfei/bookshelf/view/activity/MainActivity.java @@ -9,6 +9,8 @@ import android.os.AsyncTask; import android.os.Bundle; import android.os.Handler; +import android.util.Log; +import android.view.Gravity; import android.view.KeyEvent; import android.view.LayoutInflater; import android.view.Menu; @@ -36,6 +38,7 @@ import com.kunfei.bookshelf.presenter.MainPresenter; import com.kunfei.bookshelf.presenter.contract.MainContract; import com.kunfei.bookshelf.utils.PermissionUtils; +import com.kunfei.bookshelf.utils.Prefs; import com.kunfei.bookshelf.utils.StringUtils; import com.kunfei.bookshelf.utils.theme.ATH; import com.kunfei.bookshelf.utils.theme.NavigationViewUtil; @@ -422,7 +425,7 @@ public void onAlreadyTurnedDownAndNoAsk(String... permission) { ) { drawer.closeDrawers(); } else { - drawer.openDrawer(GravityCompat.START); + drawer.openDrawer(GravityCompat.START, !Prefs.isEInkMode); } break; } @@ -481,7 +484,11 @@ private void setUpNavigationView() { upThemeVw(); vwNightTheme.setOnClickListener(view -> setNightTheme(!isNightTheme())); navigationView.setNavigationItemSelectedListener(menuItem -> { - drawer.closeDrawers(); + if (Prefs.isEInkMode){ + drawer.closeDrawer(Gravity.LEFT,false); + }else { + drawer.closeDrawers(); + } switch (menuItem.getItemId()) { case R.id.action_book_source_manage: handler.postDelayed(() -> BookSourceActivity.startThis(this), 200); @@ -696,7 +703,7 @@ public boolean onKeyDown(int keyCode, KeyEvent event) { } else { if (keyCode == KeyEvent.KEYCODE_BACK) { if (drawer.isDrawerOpen(GravityCompat.START)) { - drawer.closeDrawers(); + drawer.closeDrawer(Gravity.LEFT, !Prefs.isEInkMode); return true; } exit(); diff --git a/app/src/main/java/com/kunfei/bookshelf/view/fragment/ThemeSettingsFragment.java b/app/src/main/java/com/kunfei/bookshelf/view/fragment/ThemeSettingsFragment.java index 02cb8551d1..0cf304281e 100644 --- a/app/src/main/java/com/kunfei/bookshelf/view/fragment/ThemeSettingsFragment.java +++ b/app/src/main/java/com/kunfei/bookshelf/view/fragment/ThemeSettingsFragment.java @@ -14,6 +14,7 @@ import com.kunfei.bookshelf.R; import com.kunfei.bookshelf.constant.RxBusTag; import com.kunfei.bookshelf.utils.ColorUtil; +import com.kunfei.bookshelf.utils.Prefs; import com.kunfei.bookshelf.utils.theme.ATH; import com.kunfei.bookshelf.view.activity.ThemeSettingActivity; @@ -74,6 +75,9 @@ public void onPause() { public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) { AlertDialog alertDialog; switch (key) { + case "E-InkMode": + Prefs.setEInkModeStatus(getActivity(), sharedPreferences.getBoolean(key, false)); + break; case "immersionStatusBar": case "navigationBarColorChange": settingActivity.initImmersionBar(); @@ -147,7 +151,8 @@ public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preferen MApplication.getInstance().upThemeStore(); RxBus.get().post(RxBusTag.RECREATE, true); }) - .setNegativeButton(R.string.cancel, (dialogInterface, i) -> {}) + .setNegativeButton(R.string.cancel, (dialogInterface, i) -> { + }) .show(); ATH.setAlertDialogTint(alertDialog); } diff --git a/app/src/main/res/anim/anim_none.xml b/app/src/main/res/anim/anim_none.xml new file mode 100644 index 0000000000..751d2da5ea --- /dev/null +++ b/app/src/main/res/anim/anim_none.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 64746c1637..b4a5fb48c2 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -405,4 +405,6 @@ Tip边距 字距 + E-Ink 模式 + 去除动画,优化电纸书使用体验 diff --git a/app/src/main/res/xml/pref_settings_theme.xml b/app/src/main/res/xml/pref_settings_theme.xml index b355fbf3bd..67ad30b6ef 100644 --- a/app/src/main/res/xml/pref_settings_theme.xml +++ b/app/src/main/res/xml/pref_settings_theme.xml @@ -2,6 +2,18 @@ + + + +