diff options
author | Diogo Ferreira <defer@cyngn.com> | 2016-03-03 15:39:51 +0000 |
---|---|---|
committer | Diogo Ferreira <defer@cyngn.com> | 2016-03-03 15:39:51 +0000 |
commit | 7aff8c29f1f954e4a4b794cbc0e81b2b8b4afe1c (patch) | |
tree | 38d6912fde9bcdca6044fef8f52566fb16d62d89 /src | |
parent | 2fc265b534f7cd83c5c7b7e8e33c8262f45d8476 (diff) | |
download | android_packages_apps_Screencast-7aff8c29f1f954e4a4b794cbc0e81b2b8b4afe1c.tar.gz android_packages_apps_Screencast-7aff8c29f1f954e4a4b794cbc0e81b2b8b4afe1c.tar.bz2 android_packages_apps_Screencast-7aff8c29f1f954e4a4b794cbc0e81b2b8b4afe1c.zip |
Screencast: Don't show touches for non-owners
Non-owner users can't toggle the show touches settings and attempting to
do so would trigger permission checks and crash the application. Fix
that by removing the show touch functionality for non-owners.
Change-Id: Id2c55f866766cd0870154b17bdaeaa39877fc144
Ticket: CYNGNOS-2170
Diffstat (limited to 'src')
-rw-r--r-- | src/org/cyanogenmod/screencast/ScreencastService.java | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/src/org/cyanogenmod/screencast/ScreencastService.java b/src/org/cyanogenmod/screencast/ScreencastService.java index 2e26005..2fc8d7b 100644 --- a/src/org/cyanogenmod/screencast/ScreencastService.java +++ b/src/org/cyanogenmod/screencast/ScreencastService.java @@ -29,6 +29,7 @@ import android.hardware.display.VirtualDisplay; import android.net.Uri; import android.os.Environment; import android.os.IBinder; +import android.os.Process; import android.os.RemoteException; import android.os.StatFs; import android.os.SystemClock; @@ -164,7 +165,9 @@ public class ScreencastService extends Service { getSharedPreferences(ScreencastService.PREFS, 0) .edit().putBoolean(ScreencastService.KEY_RECORDING, false).apply(); // clean show_touches settings if user enable show_touches in this activity - Settings.System.putInt(getContentResolver(), SHOW_TOUCHES, 0); + if (Process.myUserHandle().isOwner()) { + Settings.System.putInt(getContentResolver(), SHOW_TOUCHES, 0); + } cleanup(); if (!hasAvailableSpace()) { @@ -192,8 +195,11 @@ public class ScreencastService extends Service { startTime = SystemClock.elapsedRealtime(); registerScreencaster(); mBuilder = createNotificationBuilder(); - Settings.System.putInt(getContentResolver(), SHOW_TOUCHES, 1); - addNotificationTouchButton(true); + + if (Process.myUserHandle().isOwner()) { + Settings.System.putInt(getContentResolver(), SHOW_TOUCHES, 1); + addNotificationTouchButton(true); + } timer = new Timer(); timer.scheduleAtFixedRate(new TimerTask() { |