Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e2c0df0c authored by Sudheer Shanka's avatar Sudheer Shanka Committed by android-build-merger
Browse files

Merge \"Grant location permission to camera app.\" into nyc-mr1-dev

am: 400960a4

Change-Id: I3af88995a99ce846962c71454323f68ad527c401
parents dfc9007e 400960a4
Loading
Loading
Loading
Loading
+23 −0
Original line number Original line Diff line number Diff line
@@ -16,6 +16,7 @@


package com.android.server.retaildemo;
package com.android.server.retaildemo;


import android.Manifest;
import android.app.ActivityManagerInternal;
import android.app.ActivityManagerInternal;
import android.app.ActivityManagerNative;
import android.app.ActivityManagerNative;
import android.app.AppGlobals;
import android.app.AppGlobals;
@@ -32,6 +33,7 @@ import android.content.Intent;
import android.content.IntentFilter;
import android.content.IntentFilter;
import android.content.pm.IPackageManager;
import android.content.pm.IPackageManager;
import android.content.pm.PackageManager;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import android.content.pm.UserInfo;
import android.content.pm.UserInfo;
import android.content.res.Configuration;
import android.content.res.Configuration;
import android.database.ContentObserver;
import android.database.ContentObserver;
@@ -51,6 +53,7 @@ import android.os.RemoteException;
import android.os.SystemClock;
import android.os.SystemClock;
import android.os.UserHandle;
import android.os.UserHandle;
import android.os.UserManager;
import android.os.UserManager;
import android.provider.MediaStore;
import android.provider.Settings;
import android.provider.Settings;
import android.util.Slog;
import android.util.Slog;
import com.android.internal.os.BackgroundThread;
import com.android.internal.os.BackgroundThread;
@@ -250,6 +253,26 @@ public class RetailDemoModeService extends SystemService {
        um.setUserRestriction(UserManager.DISALLOW_MODIFY_ACCOUNTS, true, user);
        um.setUserRestriction(UserManager.DISALLOW_MODIFY_ACCOUNTS, true, user);
        Settings.Secure.putIntForUser(getContext().getContentResolver(),
        Settings.Secure.putIntForUser(getContext().getContentResolver(),
                Settings.Secure.SKIP_FIRST_USE_HINTS, 1, userInfo.id);
                Settings.Secure.SKIP_FIRST_USE_HINTS, 1, userInfo.id);

        grantRuntimePermissionToCamera(userInfo.getUserHandle());
    }

    private void grantRuntimePermissionToCamera(UserHandle user) {
        final Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
        final PackageManager pm = getContext().getPackageManager();
        final ResolveInfo handler = pm.resolveActivityAsUser(cameraIntent,
                PackageManager.MATCH_DIRECT_BOOT_AWARE | PackageManager.MATCH_DIRECT_BOOT_UNAWARE,
                user.getIdentifier());
        if (handler == null || handler.activityInfo == null) {
            return;
        }
        try {
            pm.grantRuntimePermission(handler.activityInfo.packageName,
                    Manifest.permission.ACCESS_FINE_LOCATION, user);
        } catch (Exception e) {
            // Ignore
        }

    }
    }


    void logSessionDuration() {
    void logSessionDuration() {