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

Commit fbf0ecab authored by Svetoslav's avatar Svetoslav Committed by Svet Ganov
Browse files

Add camera app op - framework

Change-Id: I17736a8abe2c6775e990b88fb3eab963f47167d0
parent 4971de2a
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -1638,6 +1638,12 @@ public final class ActivityThread {
        return sCurrentActivityThread;
    }

    public static String currentOpPackageName() {
        ActivityThread am = currentActivityThread();
        return (am != null && am.getApplication() != null)
                ? am.getApplication().getOpPackageName() : null;
    }

    public static String currentPackageName() {
        ActivityThread am = currentActivityThread();
        return (am != null && am.mBoundApplication != null)
+2 −3
Original line number Diff line number Diff line
@@ -460,9 +460,8 @@ public class Camera {
            mEventHandler = null;
        }

        String packageName = ActivityThread.currentPackageName();

        return native_setup(new WeakReference<Camera>(this), cameraId, halVersion, packageName);
        return native_setup(new WeakReference<Camera>(this), cameraId, halVersion,
                ActivityThread.currentOpPackageName());
    }

    private int cameraInitNormal(int cameraId) {
+3 −3
Original line number Diff line number Diff line
@@ -38,13 +38,13 @@ interface ICameraService
    int getCameraInfo(int cameraId, out CameraInfo info);

    int connect(ICameraClient client, int cameraId,
                    String clientPackageName,
                    String opPackageName,
                    int clientUid,
                    // Container for an ICamera object
                    out BinderHolder device);

    int connectDevice(ICameraDeviceCallbacks callbacks, int cameraId,
                              String clientPackageName,
                              String opPackageName,
                              int clientUid,
                              // Container for an ICameraDeviceUser object
                              out BinderHolder device);
@@ -69,7 +69,7 @@ interface ICameraService

    int connectLegacy(ICameraClient client, int cameraId,
                    int halVersion,
                    String clientPackageName,
                    String opPackageName,
                    int clientUid,
                    // Container for an ICamera object
                    out BinderHolder device);
+1 −1
Original line number Diff line number Diff line
@@ -314,7 +314,7 @@ public final class CameraManager {
                                "Camera service is currently unavailable");
                        }
                        cameraService.connectDevice(callbacks, id,
                                mContext.getPackageName(), USE_CALLING_UID, holder);
                                mContext.getOpPackageName(), USE_CALLING_UID, holder);
                        cameraUser = ICameraDeviceUser.Stub.asInterface(holder.getBinder());
                    } else {
                        // Use legacy camera implementation for HAL1 devices
+1 −13
Original line number Diff line number Diff line
@@ -27,7 +27,6 @@ import android.annotation.IntDef;
import android.annotation.NonNull;
import android.annotation.SystemApi;
import android.app.ActivityThread;
import android.app.Application;
import android.os.Binder;
import android.os.Handler;
import android.os.IBinder;
@@ -380,7 +379,7 @@ public class AudioRecord
        int initResult = native_setup( new WeakReference<AudioRecord>(this),
                mAudioAttributes, mSampleRate, mChannelMask, mChannelIndexMask,
                mAudioFormat, mNativeBufferSizeInBytes,
                session, getMyOpPackageName());
                session, ActivityThread.currentOpPackageName());
        if (initResult != SUCCESS) {
            loge("Error code "+initResult+" when initializing native AudioRecord object.");
            return; // with mState == STATE_UNINITIALIZED
@@ -1500,15 +1499,4 @@ public class AudioRecord
    private static void loge(String msg) {
        Log.e(TAG, msg);
    }

    private static String getMyOpPackageName() {
        ActivityThread activityThread = ActivityThread.currentActivityThread();
        if (activityThread != null) {
            Application application = activityThread.getApplication();
            if (application != null) {
                return application.getOpPackageName();
            }
        }
        throw new IllegalStateException("Cannot create AudioRecord outside of an app");
    }
}
Loading