From bc26f5fb6a13675b29239f1190f2b7852efeb90a Mon Sep 17 00:00:00 2001 From: Amith Yamasani Date: Tue, 19 Jul 2016 11:49:38 -0700 Subject: [PATCH] Allow calling in demo mode Allow outgoing calls, but clear the call log when the next demo session starts so that the next customer doesn't see any residue. Fixes: 30220132 Change-Id: Ice71ba750f43fb31bf657d6ae31da62abbd72cfc --- .../retaildemo/RetailDemoModeService.java | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/services/retaildemo/java/com/android/server/retaildemo/RetailDemoModeService.java b/services/retaildemo/java/com/android/server/retaildemo/RetailDemoModeService.java index c351e738a04f9..092d9e7f4d49f 100644 --- a/services/retaildemo/java/com/android/server/retaildemo/RetailDemoModeService.java +++ b/services/retaildemo/java/com/android/server/retaildemo/RetailDemoModeService.java @@ -26,6 +26,7 @@ import android.app.PendingIntent; import android.app.RetailDemoModeServiceInternal; import android.content.BroadcastReceiver; import android.content.ComponentName; +import android.content.ContentProvider; import android.content.ContentResolver; import android.content.Context; import android.content.DialogInterface; @@ -53,6 +54,7 @@ import android.os.RemoteException; import android.os.SystemClock; import android.os.UserHandle; import android.os.UserManager; +import android.provider.CallLog; import android.provider.MediaStore; import android.provider.Settings; import android.util.KeyValueListParser; @@ -327,6 +329,8 @@ public class RetailDemoModeService extends SystemService { um.setUserRestriction(UserManager.DISALLOW_USB_FILE_TRANSFER, true, user); um.setUserRestriction(UserManager.DISALLOW_MODIFY_ACCOUNTS, true, user); um.setUserRestriction(UserManager.DISALLOW_CONFIG_BLUETOOTH, true, user); + // Set this to false because the default is true on user creation + um.setUserRestriction(UserManager.DISALLOW_OUTGOING_CALLS, false, user); // Disallow rebooting in safe mode - controlled by user 0 getUserManager().setUserRestriction(UserManager.DISALLOW_SAFE_BOOT, true, UserHandle.SYSTEM); @@ -335,7 +339,8 @@ public class RetailDemoModeService extends SystemService { Settings.Secure.putIntForUser(getContext().getContentResolver(), Settings.Global.PACKAGE_VERIFIER_ENABLE, 0, userInfo.id); - grantRuntimePermissionToCamera(userInfo.getUserHandle()); + grantRuntimePermissionToCamera(user); + clearPrimaryCallLog(); } private void grantRuntimePermissionToCamera(UserHandle user) { @@ -353,7 +358,18 @@ public class RetailDemoModeService extends SystemService { } catch (Exception e) { // Ignore } + } + private void clearPrimaryCallLog() { + final ContentResolver resolver = getContext().getContentResolver(); + + // Deleting primary user call log so that it doesn't get copied to the new demo user + final Uri uri = CallLog.Calls.CONTENT_URI; + try { + resolver.delete(uri, null, null); + } catch (Exception e) { + Slog.w(TAG, "Deleting call log failed: " + e); + } } void logSessionDuration() {