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

Commit 11179290 authored by Emilian Peev's avatar Emilian Peev Committed by android-build-merger
Browse files

Merge "Settings: Add laser sensor preference" into oc-mr1-dev

am: 22eb007e

Change-Id: I34ab89bd2a175aa77a78a9a46aea75f148bab284
parents 55b71cf2 22eb007e
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -44,6 +44,9 @@
    <!-- Whether to show Camera HAL HDR+ switch in Developer Options -->
    <bool name="config_show_camera_hal_hdrplus">false</bool>

    <!-- Whether to show Camera laser sensor switch in Developer Options -->
    <bool name="config_show_camera_laser_sensor">false</bool>

    <!-- Fully-qualified class name for the implementation of the FeatureFactory to be instantiated. -->
    <string name="config_featureFactory" translatable="false">com.android.settings.overlay.FeatureFactoryImpl</string>

+3 −0
Original line number Diff line number Diff line
@@ -8238,6 +8238,9 @@
    <!-- Toast message letting the user know how to enable Camera HAL HDR+ -->
    <string name="camera_hal_hdrplus_toast">To apply Camera HAL HDR+ change, reboot device</string>
    <!-- Title for Camera laser sensor switch [CHAR LIMIT=NONE] -->
    <string name="camera_laser_sensor_switch">Camera Laser Sensor</string>
    <!-- Name of the setting to disable the automatic update -->
    <string name="ota_disable_automatic_update">Automatic system updates</string>
+4 −0
Original line number Diff line number Diff line
@@ -163,6 +163,10 @@
            android:title="@string/telephony_monitor_switch"
            android:summary="@string/telephony_monitor_switch_summary"/>

        <SwitchPreference
            android:key="camera_laser_sensor_switch"
            android:title="@string/camera_laser_sensor_switch" />

        <SwitchPreference
            android:key="camera_hal_hdrplus_switch"
            android:title="@string/camera_hal_hdrplus_switch" />
+104 −0
Original line number Diff line number Diff line
/*
 * Copyright (C) 2017 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package com.android.settings.development;

import android.content.Context;
import android.os.SystemProperties;
import android.support.v14.preference.SwitchPreference;
import android.support.v7.preference.Preference;
import android.support.v7.preference.PreferenceScreen;
import android.widget.Toast;

import com.android.internal.annotations.VisibleForTesting;
import com.android.settings.R;
import com.android.settings.core.PreferenceControllerMixin;
import com.android.settingslib.core.AbstractPreferenceController;

public class CameraLaserSensorPreferenceController extends AbstractPreferenceController
        implements PreferenceControllerMixin {

    private static final String KEY_CAMERA_LASER_SENSOR_SWITCH = "camera_laser_sensor_switch";
    @VisibleForTesting
    static final String BUILD_TYPE = "ro.build.type";
    @VisibleForTesting
    static final String PROPERTY_CAMERA_LASER_SENSOR = "persist.camera.stats.disablehaf";
    @VisibleForTesting
    static final int ENABLED = 0;
    @VisibleForTesting
    static final int DISABLED = 2;

    private SwitchPreference mPreference;

    public CameraLaserSensorPreferenceController(Context context) {
        super(context);
    }

    @Override
    public void displayPreference(PreferenceScreen screen) {
        super.displayPreference(screen);
        mPreference = (SwitchPreference) screen.findPreference(KEY_CAMERA_LASER_SENSOR_SWITCH);
        updatePreference();
    }

    @Override
    public String getPreferenceKey() {
        return KEY_CAMERA_LASER_SENSOR_SWITCH;
    }

    @Override
    public boolean isAvailable() {
        String buildType = SystemProperties.get(BUILD_TYPE);
        return mContext.getResources().getBoolean(R.bool.config_show_camera_laser_sensor) &&
               (buildType.equals("userdebug") || buildType.equals("eng"));
    }

    @Override
    public void updateState(Preference preference) {
        updatePreference();
    }

    @Override
    public boolean handlePreferenceTreeClick(Preference preference) {
        if (KEY_CAMERA_LASER_SENSOR_SWITCH.equals(preference.getKey())) {
            final SwitchPreference switchPreference = (SwitchPreference)preference;
            String value = Integer.toString(switchPreference.isChecked() ? ENABLED : DISABLED);
            SystemProperties.set(PROPERTY_CAMERA_LASER_SENSOR, value);
            return true;
        }
        return false;
    }

    public void enablePreference(boolean enabled) {
        if (isAvailable()) {
            mPreference.setEnabled(enabled);
        }
    }

    public boolean updatePreference() {
        if (!isAvailable()) {
            return false;
        }
        final boolean enabled = isLaserSensorEnabled();
        mPreference.setChecked(enabled);
        return enabled;
    }

    private boolean isLaserSensorEnabled() {
        String prop = SystemProperties.get(PROPERTY_CAMERA_LASER_SENSOR, Integer.toString(ENABLED));
        return prop.equals(Integer.toString(ENABLED));
    }
}
+10 −0
Original line number Diff line number Diff line
@@ -365,6 +365,7 @@ public class DevelopmentSettings extends RestrictedSettingsFragment
    private BugReportInPowerPreferenceController mBugReportInPowerController;
    private TelephonyMonitorPreferenceController mTelephonyMonitorController;
    private CameraHalHdrplusPreferenceController mCameraHalHdrplusController;
    private CameraLaserSensorPreferenceController mCameraLaserSensorController;

    private BroadcastReceiver mEnableAdbReceiver;

@@ -406,6 +407,7 @@ public class DevelopmentSettings extends RestrictedSettingsFragment
        mWebViewAppPrefController = new WebViewAppPreferenceController(getActivity());
        mVerifyAppsOverUsbController = new VerifyAppsOverUsbPreferenceController(getActivity());
        mCameraHalHdrplusController = new CameraHalHdrplusPreferenceController(getActivity());
        mCameraLaserSensorController = new CameraLaserSensorPreferenceController(getActivity());

        setIfOnlyAvailableForAdmins(true);
        if (isUiRestricted() || !Utils.isDeviceProvisioned(getActivity())) {
@@ -441,6 +443,8 @@ public class DevelopmentSettings extends RestrictedSettingsFragment
        mCameraHalHdrplusController.displayPreference(getPreferenceScreen());
        mEnableAdbController.displayPreference(getPreferenceScreen());

        mCameraLaserSensorController.displayPreference(getPreferenceScreen());

        mKeepScreenOn = (RestrictedSwitchPreference) findAndInitSwitchPref(KEEP_SCREEN_ON);
        mBtHciSnoopLog = findAndInitSwitchPref(BT_HCI_SNOOP_LOG);
        mEnableOemUnlock = (RestrictedSwitchPreference) findAndInitSwitchPref(ENABLE_OEM_UNLOCK);
@@ -660,6 +664,7 @@ public class DevelopmentSettings extends RestrictedSettingsFragment
        mTelephonyMonitorController.enablePreference(enabled);
        mWebViewAppPrefController.enablePreference(enabled);
        mCameraHalHdrplusController.enablePreference(enabled);
        mCameraLaserSensorController.enablePreference(enabled);
        updateAllOptions();
    }

@@ -794,6 +799,7 @@ public class DevelopmentSettings extends RestrictedSettingsFragment
        mHaveDebugSettings |= mBugReportInPowerController.updatePreference();
        mHaveDebugSettings |= mTelephonyMonitorController.updatePreference();
        mHaveDebugSettings |= mCameraHalHdrplusController.updatePreference();
        mHaveDebugSettings |= mCameraLaserSensorController.updatePreference();
        updateSwitchPreference(mKeepScreenOn, Settings.Global.getInt(cr,
                Settings.Global.STAY_ON_WHILE_PLUGGED_IN, 0) != 0);
        updateSwitchPreference(mBtHciSnoopLog, SystemProperties.getBoolean(
@@ -2471,6 +2477,10 @@ public class DevelopmentSettings extends RestrictedSettingsFragment
            return true;
        }

        if (mCameraLaserSensorController.handlePreferenceTreeClick(preference)) {
            return true;
        }

        if (preference == mClearAdbKeys) {
            if (mAdbKeysDialog != null) dismissDialogs();
            mAdbKeysDialog = new AlertDialog.Builder(getActivity())
Loading