summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjrizzoli <joey@cyanogenmoditalia.it>2016-02-05 14:30:14 +0100
committerjrizzoli <joey@cyanogenmoditalia.it>2016-02-06 20:55:15 +0100
commit7924a0c4f90741e5e5620378760ad3e2b7dde7dc (patch)
treefc5ea07566b3cdafd02a8dbffac3aac0a56ce537
parentb7b51df6e24ebe0c4ddf1a1fdfa071c8e945fb24 (diff)
downloadandroid_packages_apps_Gello-7924a0c4f90741e5e5620378760ad3e2b7dde7dc.tar.gz
android_packages_apps_Gello-7924a0c4f90741e5e5620378760ad3e2b7dde7dc.tar.bz2
android_packages_apps_Gello-7924a0c4f90741e5e5620378760ad3e2b7dde7dc.zip
Gello: LookLock
Prevent apps from reading gello webview content by using FLAG_SECURE Change-Id: I7e3413104c4f71b11da4c55b45eeab05d133ea1f Signed-off-by: jrizzoli <joey@cyanogenmoditalia.it>
-rw-r--r--res/values/strings.xml4
-rw-r--r--res/xml/general_preferences.xml7
-rw-r--r--src/com/android/browser/BaseUi.java22
-rw-r--r--src/com/android/browser/BrowserSettings.java8
-rw-r--r--src/com/android/browser/PreferenceKeys.java1
5 files changed, 42 insertions, 0 deletions
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 80938248..1dc2c087 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -505,11 +505,15 @@
Swipe from the edge to navigate across history.\nThis feature may conflict with websites using edge-based actions</string>
<string name="pref_edge_enable">Enable</string>
<string name="pref_edge_disable">Disable</string>
+ <!-- Colored statusbar -->
<string name="pref_coloredsb_title">Colored statusbar</string>
<string name="pref_coloredsb_summary">Statusbar will change color basing on the visited page</string>
<!-- Title for accessibility settings [CHAR LIMIT=25] -->
<string name="pref_accessibility_title">Accessibility</string>
<string name="pref_accessibility_title_summary">Text size and zooming</string>
+ <!-- LookLock -->
+ <string name="pref_looklock_title">LookLock</string>
+ <string name="pref_looklock_summary">Prevent other apps from reading webview content from this app</string>
<!-- Font size settings category under accessibility settings [CHAR LIMIT=50] -->
<string name="pref_font_size_category">Text size</string>
<!-- Title for the fullscreen lab feature [CHAR LIMIT=40] -->
diff --git a/res/xml/general_preferences.xml b/res/xml/general_preferences.xml
index 74e24d3f..136e89f6 100644
--- a/res/xml/general_preferences.xml
+++ b/res/xml/general_preferences.xml
@@ -101,6 +101,13 @@
android:layout="@layout/swe_preference"
android:key="content_settings" />
+ <SwitchPreference
+ android:layout="@layout/swe_preference"
+ android:defaultValue="false"
+ android:key="looklock_key"
+ android:summary="@string/pref_looklock_summary"
+ android:title="@string/pref_looklock_title" />
+
</PreferenceCategory>
<PreferenceCategory android:title="@string/pref_extras_title"
diff --git a/src/com/android/browser/BaseUi.java b/src/com/android/browser/BaseUi.java
index c2e6050e..508d2c9a 100644
--- a/src/com/android/browser/BaseUi.java
+++ b/src/com/android/browser/BaseUi.java
@@ -49,6 +49,7 @@ import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.Toast;
import android.content.res.TypedArray;
+import android.util.Log;
import org.codeaurora.swe.BrowserCommandLine;
import org.codeaurora.swe.WebView;
@@ -137,6 +138,15 @@ public abstract class BaseUi implements UI {
.getDecorView().findViewById(android.R.id.content);
LayoutInflater.from(mActivity)
.inflate(R.layout.custom_screen, frameLayout);
+
+ // If looklock is enabled, set FLAG_SECURE
+ if (BrowserSettings.getInstance().isLookLockEnabled()) {
+ mActivity.getWindow().setFlags(WindowManager.LayoutParams.FLAG_SECURE,
+ WindowManager.LayoutParams.FLAG_SECURE);
+ } else {
+ mActivity.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_SECURE);
+ }
+
mContentView = (FrameLayout) frameLayout.findViewById(
R.id.main_content);
mCustomViewContainer = (FrameLayout) frameLayout.findViewById(
@@ -180,6 +190,12 @@ public abstract class BaseUi implements UI {
// lifecycle
public void onPause() {
+ if (BrowserSettings.getInstance().isLookLockEnabled()) {
+ mActivity.getWindow().setFlags(WindowManager.LayoutParams.FLAG_SECURE,
+ WindowManager.LayoutParams.FLAG_SECURE);
+ } else {
+ mActivity.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_SECURE);
+ }
if (isCustomViewShowing()) {
onHideCustomView();
}
@@ -192,6 +208,12 @@ public abstract class BaseUi implements UI {
public void onResume() {
mActivityPaused = false;
+ if (BrowserSettings.getInstance().isLookLockEnabled()) {
+ mActivity.getWindow().setFlags(WindowManager.LayoutParams.FLAG_SECURE,
+ WindowManager.LayoutParams.FLAG_SECURE);
+ } else {
+ mActivity.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_SECURE);
+ }
// check if we exited without setting active tab
// b: 5188145
setFullscreen(BrowserSettings.getInstance().useFullscreen());
diff --git a/src/com/android/browser/BrowserSettings.java b/src/com/android/browser/BrowserSettings.java
index 2bdfa0f6..1da2046a 100644
--- a/src/com/android/browser/BrowserSettings.java
+++ b/src/com/android/browser/BrowserSettings.java
@@ -909,6 +909,14 @@ public class BrowserSettings implements OnSharedPreferenceChangeListener,
mPrefs.edit().putBoolean(PREF_COLOREDSB_ENABLED, value).apply();
}
+ public boolean isLookLockEnabled() {
+ return mPrefs.getBoolean(PREF_LOOKLOCK_ENABLED, false);
+ }
+
+ public void setLookLockEnabled(boolean value) {
+ mPrefs.edit().putBoolean(PREF_LOOKLOCK_ENABLED, value).apply();
+ }
+
public boolean isPowerSaveModeEnabled() {
return mPrefs.getBoolean(PREF_POWERSAVE_ENABLED, false);
}
diff --git a/src/com/android/browser/PreferenceKeys.java b/src/com/android/browser/PreferenceKeys.java
index b4b2976e..9bd12dc0 100644
--- a/src/com/android/browser/PreferenceKeys.java
+++ b/src/com/android/browser/PreferenceKeys.java
@@ -63,6 +63,7 @@ public interface PreferenceKeys {
static final String PREF_HOMEPAGE = "homepage";
static final String PREF_POWERSAVE_ENABLED = "powersave_enabled";
static final String PREF_COLOREDSB_ENABLED = "coloredsb_enabled";
+ static final String PREF_LOOKLOCK_ENABLED = "looklock_key";
static final String PREF_NIGHTMODE_ENABLED = "nightmode_enabled";
static final String PREF_SYNC_WITH_CHROME = "sync_with_chrome";