diff --git a/app/src/main/java/com/hippo/ehviewer/Settings.java b/app/src/main/java/com/hippo/ehviewer/Settings.java
index 91e345734..77a6bc309 100755
--- a/app/src/main/java/com/hippo/ehviewer/Settings.java
+++ b/app/src/main/java/com/hippo/ehviewer/Settings.java
@@ -575,6 +575,19 @@ public class Settings {
putInt(KEY_SCREEN_LIGHTNESS, value);
}
+ /********************
+ ****** Privacy and Security
+ ********************/
+ public static final String KEY_SEC_SECURITY = "enabled_secure";
+ public static final boolean VALUE_SEC_SECURITY = false;
+
+ public static boolean getEnabledSecurity() {
+ return getBoolean(KEY_SEC_SECURITY, VALUE_SEC_SECURITY);
+ }
+ public static void putEnabledSecurity(boolean value) {
+ putBoolean(KEY_READING_FULLSCREEN, value);
+ }
+
/********************
****** Download
********************/
diff --git a/app/src/main/java/com/hippo/ehviewer/ui/DirPickerActivity.java b/app/src/main/java/com/hippo/ehviewer/ui/DirPickerActivity.java
index 59dac07ad..798c8205c 100644
--- a/app/src/main/java/com/hippo/ehviewer/ui/DirPickerActivity.java
+++ b/app/src/main/java/com/hippo/ehviewer/ui/DirPickerActivity.java
@@ -23,10 +23,12 @@ import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.view.MenuItem;
import android.view.View;
+import android.view.WindowManager;
import android.widget.TextView;
import android.widget.Toast;
import com.hippo.ehviewer.R;
+import com.hippo.ehviewer.Settings;
import com.hippo.ripple.Ripple;
import com.hippo.widget.DirExplorer;
import com.hippo.yorozuya.ViewUtils;
@@ -149,4 +151,15 @@ public class DirPickerActivity extends ToolbarActivity
mPath.setText(dir.getPath());
}
}
+
+ @Override
+ protected void onResume() {
+ super.onResume();
+ if(Settings.getEnabledSecurity()){
+ getWindow().setFlags(WindowManager.LayoutParams.FLAG_SECURE,
+ WindowManager.LayoutParams.FLAG_SECURE);
+ }else{
+ getWindow().clearFlags(WindowManager.LayoutParams.FLAG_SECURE);
+ }
+ }
}
diff --git a/app/src/main/java/com/hippo/ehviewer/ui/GalleryActivity.java b/app/src/main/java/com/hippo/ehviewer/ui/GalleryActivity.java
index 2910c148f..dd9b273cf 100644
--- a/app/src/main/java/com/hippo/ehviewer/ui/GalleryActivity.java
+++ b/app/src/main/java/com/hippo/ehviewer/ui/GalleryActivity.java
@@ -407,6 +407,12 @@ public class GalleryActivity extends EhActivity implements SeekBar.OnSeekBarChan
if (mGLRootView != null) {
mGLRootView.onResume();
}
+ if(Settings.getEnabledSecurity()){
+ getWindow().setFlags(WindowManager.LayoutParams.FLAG_SECURE,
+ WindowManager.LayoutParams.FLAG_SECURE);
+ }else{
+ getWindow().clearFlags(WindowManager.LayoutParams.FLAG_SECURE);
+ }
}
@Override
diff --git a/app/src/main/java/com/hippo/ehviewer/ui/LicenseActivity.java b/app/src/main/java/com/hippo/ehviewer/ui/LicenseActivity.java
index 17a1f3c85..0f39c3ce0 100644
--- a/app/src/main/java/com/hippo/ehviewer/ui/LicenseActivity.java
+++ b/app/src/main/java/com/hippo/ehviewer/ui/LicenseActivity.java
@@ -19,9 +19,11 @@ package com.hippo.ehviewer.ui;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.view.MenuItem;
+import android.view.WindowManager;
import android.webkit.WebView;
import com.hippo.ehviewer.R;
+import com.hippo.ehviewer.Settings;
public class LicenseActivity extends ToolbarActivity {
@@ -59,4 +61,15 @@ public class LicenseActivity extends ToolbarActivity {
return super.onOptionsItemSelected(item);
}
}
+
+ @Override
+ protected void onResume() {
+ super.onResume();
+ if(Settings.getEnabledSecurity()){
+ getWindow().setFlags(WindowManager.LayoutParams.FLAG_SECURE,
+ WindowManager.LayoutParams.FLAG_SECURE);
+ }else{
+ getWindow().clearFlags(WindowManager.LayoutParams.FLAG_SECURE);
+ }
+ }
}
diff --git a/app/src/main/java/com/hippo/ehviewer/ui/MainActivity.java b/app/src/main/java/com/hippo/ehviewer/ui/MainActivity.java
index f0032a5c9..7d30ab3c5 100644
--- a/app/src/main/java/com/hippo/ehviewer/ui/MainActivity.java
+++ b/app/src/main/java/com/hippo/ehviewer/ui/MainActivity.java
@@ -36,6 +36,7 @@ import android.text.TextUtils;
import android.view.Gravity;
import android.view.MenuItem;
import android.view.View;
+import android.view.WindowManager;
import android.widget.FrameLayout;
import android.widget.TextView;
import android.widget.Toast;
@@ -392,6 +393,13 @@ public final class MainActivity extends StageActivity
super.onResume();
setNavCheckedItem(mNavCheckedItem);
+
+ if(Settings.getEnabledSecurity()){
+ getWindow().setFlags(WindowManager.LayoutParams.FLAG_SECURE,
+ WindowManager.LayoutParams.FLAG_SECURE);
+ }else{
+ getWindow().clearFlags(WindowManager.LayoutParams.FLAG_SECURE);
+ }
}
@Override
diff --git a/app/src/main/java/com/hippo/ehviewer/ui/SetSecurityActivity.java b/app/src/main/java/com/hippo/ehviewer/ui/SetSecurityActivity.java
index e17ca11a0..a678c4da6 100755
--- a/app/src/main/java/com/hippo/ehviewer/ui/SetSecurityActivity.java
+++ b/app/src/main/java/com/hippo/ehviewer/ui/SetSecurityActivity.java
@@ -22,6 +22,7 @@ import android.support.annotation.Nullable;
import android.text.TextUtils;
import android.view.MenuItem;
import android.view.View;
+import android.view.WindowManager;
import android.widget.CheckBox;
import com.hippo.ehviewer.R;
@@ -108,4 +109,15 @@ public class SetSecurityActivity extends ToolbarActivity implements View.OnClick
finish();
}
}
+
+ @Override
+ protected void onResume() {
+ super.onResume();
+ if(Settings.getEnabledSecurity()){
+ getWindow().setFlags(WindowManager.LayoutParams.FLAG_SECURE,
+ WindowManager.LayoutParams.FLAG_SECURE);
+ }else{
+ getWindow().clearFlags(WindowManager.LayoutParams.FLAG_SECURE);
+ }
+ }
}
diff --git a/app/src/main/java/com/hippo/ehviewer/ui/SettingsActivity.java b/app/src/main/java/com/hippo/ehviewer/ui/SettingsActivity.java
index 4c0d61dba..e50549a9e 100644
--- a/app/src/main/java/com/hippo/ehviewer/ui/SettingsActivity.java
+++ b/app/src/main/java/com/hippo/ehviewer/ui/SettingsActivity.java
@@ -30,14 +30,17 @@ import android.view.LayoutInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
+import android.view.WindowManager;
import android.widget.ListAdapter;
import com.hippo.ehviewer.R;
+import com.hippo.ehviewer.Settings;
import com.hippo.ehviewer.ui.fragment.AboutFragment;
import com.hippo.ehviewer.ui.fragment.AdvancedFragment;
import com.hippo.ehviewer.ui.fragment.DownloadFragment;
import com.hippo.ehviewer.ui.fragment.EhFragment;
import com.hippo.ehviewer.ui.fragment.ReadFragment;
+import com.hippo.ehviewer.ui.fragment.SecFragment;
import com.hippo.util.DrawableManager;
import java.lang.reflect.Field;
@@ -53,6 +56,7 @@ public final class SettingsActivity extends EhPreferenceActivity {
DownloadFragment.class.getName(),
AdvancedFragment.class.getName(),
AboutFragment.class.getName(),
+ SecFragment.class.getName(),
};
private class FakeLayoutInflater extends LayoutInflater {
@@ -195,4 +199,15 @@ public final class SettingsActivity extends EhPreferenceActivity {
super.onActivityResult(requestCode, resultCode, data);
}
}
+
+ @Override
+ protected void onResume() {
+ super.onResume();
+ if(Settings.getEnabledSecurity()){
+ getWindow().setFlags(WindowManager.LayoutParams.FLAG_SECURE,
+ WindowManager.LayoutParams.FLAG_SECURE);
+ }else{
+ getWindow().clearFlags(WindowManager.LayoutParams.FLAG_SECURE);
+ }
+ }
}
diff --git a/app/src/main/java/com/hippo/ehviewer/ui/UConfigActivity.java b/app/src/main/java/com/hippo/ehviewer/ui/UConfigActivity.java
index 736f815da..f20a065cd 100644
--- a/app/src/main/java/com/hippo/ehviewer/ui/UConfigActivity.java
+++ b/app/src/main/java/com/hippo/ehviewer/ui/UConfigActivity.java
@@ -32,6 +32,7 @@ import android.support.v7.app.AlertDialog;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
+import android.view.WindowManager;
import android.webkit.CookieManager;
import android.webkit.CookieSyncManager;
import android.webkit.JsPromptResult;
@@ -43,6 +44,7 @@ import android.widget.EditText;
import android.widget.TextView;
import com.hippo.ehviewer.EhApplication;
import com.hippo.ehviewer.R;
+import com.hippo.ehviewer.Settings;
import com.hippo.ehviewer.client.EhCookieStore;
import com.hippo.ehviewer.client.EhUrl;
import com.hippo.widget.ProgressView;
@@ -248,4 +250,15 @@ public class UConfigActivity extends ToolbarActivity {
return true;
}
}
+
+ @Override
+ protected void onResume() {
+ super.onResume();
+ if(Settings.getEnabledSecurity()){
+ getWindow().setFlags(WindowManager.LayoutParams.FLAG_SECURE,
+ WindowManager.LayoutParams.FLAG_SECURE);
+ }else{
+ getWindow().clearFlags(WindowManager.LayoutParams.FLAG_SECURE);
+ }
+ }
}
diff --git a/app/src/main/java/com/hippo/ehviewer/ui/fragment/AdvancedFragment.java b/app/src/main/java/com/hippo/ehviewer/ui/fragment/AdvancedFragment.java
index ebd490f26..23aa503cd 100644
--- a/app/src/main/java/com/hippo/ehviewer/ui/fragment/AdvancedFragment.java
+++ b/app/src/main/java/com/hippo/ehviewer/ui/fragment/AdvancedFragment.java
@@ -42,7 +42,6 @@ public class AdvancedFragment extends PreferenceFragment implements Preference.O
private static final String KEY_DUMP_LOGCAT = "dump_logcat";
private static final String KEY_CLEAR_MEMORY_CACHE = "clear_memory_cache";
- private static final String KEY_PATTERN_PROTECTION = "pattern_protection";
private static final String KEY_EXPORT_DATA = "export_data";
private static final String KEY_IMPORT_DATA = "import_data";
@@ -65,11 +64,6 @@ public class AdvancedFragment extends PreferenceFragment implements Preference.O
@Override
public void onResume() {
super.onResume();
-
- Preference patternProtection = findPreference(KEY_PATTERN_PROTECTION);
- patternProtection.setSummary(TextUtils.isEmpty(Settings.getSecurity()) ?
- R.string.settings_advanced_pattern_protection_not_set :
- R.string.settings_advanced_pattern_protection_set);
}
@Override
diff --git a/app/src/main/java/com/hippo/ehviewer/ui/fragment/SecFragment.java b/app/src/main/java/com/hippo/ehviewer/ui/fragment/SecFragment.java
new file mode 100644
index 000000000..5e464e5d2
--- /dev/null
+++ b/app/src/main/java/com/hippo/ehviewer/ui/fragment/SecFragment.java
@@ -0,0 +1,30 @@
+package com.hippo.ehviewer.ui.fragment;
+
+import android.os.Bundle;
+import android.preference.Preference;
+import android.preference.PreferenceFragment;
+import android.text.TextUtils;
+
+import com.hippo.ehviewer.R;
+import com.hippo.ehviewer.Settings;
+
+/**
+ * Created by Mo10 on 2018/2/10.
+ */
+
+public class SecFragment extends PreferenceFragment {
+ private static final String KEY_PATTERN_PROTECTION = "pattern_protection";
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ addPreferencesFromResource(R.xml.secure_settings);
+ }
+ @Override
+ public void onResume() {
+ super.onResume();
+ Preference patternProtection = findPreference(KEY_PATTERN_PROTECTION);
+ patternProtection.setSummary(TextUtils.isEmpty(Settings.getSecurity()) ?
+ R.string.settings_advanced_pattern_protection_not_set :
+ R.string.settings_advanced_pattern_protection_set);
+ }
+}
diff --git a/app/src/main/res/drawable/v_sec_primary_x24.xml b/app/src/main/res/drawable/v_sec_primary_x24.xml
new file mode 100644
index 000000000..290d428a0
--- /dev/null
+++ b/app/src/main/res/drawable/v_sec_primary_x24.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml
index ba0395797..0f5e784af 100644
--- a/app/src/main/res/values-es/strings.xml
+++ b/app/src/main/res/values-es/strings.xml
@@ -617,5 +617,8 @@
La contraseña no puede estar vacía
Ocurrió algo malo
H@H Downloader
+ Privacidad y seguridad
+ Captura de pantalla no permitida
+ Si está habilitado, no puede tomar capturas de pantalla de la aplicación, y el sistema no mostrará el contenido de la aplicación en el selector de tareas
diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml
index 73f38c5ad..e680c0778 100755
--- a/app/src/main/res/values-zh-rCN/strings.xml
+++ b/app/src/main/res/values-zh-rCN/strings.xml
@@ -627,5 +627,8 @@
无法下载压缩包
压缩包
下载压缩包需要 H@H 客户端
+ 隐私和安全
+ 不允许屏幕抓取
+ 启用后,将不能截取该应用的屏幕截图,同时,将不会在系统任务切换器中显示该应用的内容预览\n\n重新启动应用以生效此更改
diff --git a/app/src/main/res/values-zh-rHK/strings.xml b/app/src/main/res/values-zh-rHK/strings.xml
index 709559c0d..b233e590a 100755
--- a/app/src/main/res/values-zh-rHK/strings.xml
+++ b/app/src/main/res/values-zh-rHK/strings.xml
@@ -627,5 +627,8 @@
無法下載壓縮包
壓縮包
下載壓縮包需要 H@H 客户端
+ 隱私和安全
+ 不允許荧幕抓取
+ 啟用後,將不能截取該應用的螢幕截圖,同時,將不會在系統任務切換器中顯示該應用的內容預覽\n\n重新啟動應用以生效此更改
diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml
index c8ee8eaaa..9d6028fa8 100755
--- a/app/src/main/res/values-zh-rTW/strings.xml
+++ b/app/src/main/res/values-zh-rTW/strings.xml
@@ -627,5 +627,8 @@
下載失敗
壓縮檔
下載壓縮檔需要 H@H 客戶端
+ 隱私和安全
+ 不允許荧幕抓取
+ 啟用後,將不能截取該應用的螢幕截圖,同時,將不會在系統任務切換器中顯示該應用的內容預覽\n\n重新啟動應用以生效此更改
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index e4e1ea38a..d2715c942 100755
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -678,5 +678,8 @@
Failed to download archive
Archive
Need H@H client for archive download
+ Privacy and Security
+ Not Allowed Screen Capture
+ If enabled, you cannot take screenshots of the app, and the system will not display app contents in the task switcher\n\nNeed to restart the app for this to take effect
diff --git a/app/src/main/res/xml/advanced_settings.xml b/app/src/main/res/xml/advanced_settings.xml
index e351ccf68..3d57ca03c 100644
--- a/app/src/main/res/xml/advanced_settings.xml
+++ b/app/src/main/res/xml/advanced_settings.xml
@@ -48,12 +48,6 @@
app:entryValues="@array/read_cache_size_entry_values"
android:defaultValue="160"/>
-
-
+
+
+
+
+
+
diff --git a/app/src/main/res/xml/settings_headers.xml b/app/src/main/res/xml/settings_headers.xml
index a1c82f418..d3750e12c 100644
--- a/app/src/main/res/xml/settings_headers.xml
+++ b/app/src/main/res/xml/settings_headers.xml
@@ -33,6 +33,11 @@
android:title="@string/settings_download"
android:icon="@drawable/v_download_primary_x24"/>
+
+