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

Commit ba4c43f7 authored by Scott Mertz's avatar Scott Mertz Committed by Adnan Begovic
Browse files

Settings: Change to CmHardwareService

Change-Id: Iab392aefa9476a2e956a697210f3f7e6426ff815
parent 306c2881
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -35,7 +35,6 @@ include frameworks/opt/setupwizard/library/common.mk
include frameworks/base/packages/SettingsLib/common.mk

LOCAL_JAVA_LIBRARIES += org.cyanogenmod.hardware

include $(BUILD_PACKAGE)

# Use the following include to make our test apk.
+2 −39
Original line number Diff line number Diff line
@@ -83,6 +83,7 @@
    <uses-permission android:name="android.permission.PEERS_MAC_ADDRESS"/>
    <uses-permission android:name="cyanogenmod.permission.FINISH_SETUP" />
    <uses-permission android:name="cyanogenmod.permission.MODIFY_PROFILES" />
    <uses-permission android:name="android.permission.HARDWARE_ABSTRACTION_ACCESS" />

    <application android:label="@string/settings_label"
            android:icon="@mipmap/ic_launcher_settings"
@@ -104,10 +105,6 @@
            android:screenOrientation="nosensor">
        </activity>

        <!-- Settings -->
        <uses-library android:name="org.cyanogenmod.hardware"
                android:required="false" />

        <activity android:name="Settings"
                android:taskAffinity="com.android.settings"
                android:label="@string/settings_label_launcher"
@@ -2215,40 +2212,6 @@
            </intent-filter>
        </activity>

<<<<<<< HEAD
        <!-- CyanogenMod activities End -->
=======
        <activity android:name=".cyanogenmod.ContributorsCloud" />

        <activity android:name=".cyanogenmod.SpamList" />

        <!-- "Blacklist settings" UI, used only on voice-capable phone devices. -->
        <activity android:name="Settings$BlacklistSettingsActivity"
                android:uiOptions="splitActionBarWhenNarrow"
                android:label="@string/blacklist_title"
                android:excludeFromRecents="true">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
            <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
                android:value="com.android.settings.blacklist.BlacklistSettings" />
            <meta-data android:name="com.android.settings.TOP_LEVEL_HEADER_ID"
                android:resource="@id/security_settings" />
        </activity>

        <activity-alias android:name=".blacklist.BlacklistSettings"
                android:taskAffinity="com.android.settings"
                android:label="@string/blacklist_title"
                android:targetActivity="Settings$BlacklistSettingsActivity"
                android:configChanges="orientation|keyboardHidden|screenSize"
                android:exported="true">
            <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
                       android:value="com.android.settings.blacklist.BlacklistSettings" />
            <meta-data android:name="com.android.settings.TOP_LEVEL_HEADER_ID"
                       android:resource="@id/security_settings" />
        </activity-alias>

        <!-- LiveDisplay settings -->
        <activity android:name="Settings$LiveDisplayActivity"
                android:label="@string/live_display_title"
@@ -2278,7 +2241,7 @@
            <meta-data android:name="com.android.settings.TOP_LEVEL_HEADER_ID"
                       android:resource="@id/display_and_lights_settings" />
        </activity-alias>
>>>>>>> eda58c5... livedisplay: Add LiveDisplay settings
        <!-- CyanogenMod activities End -->

        <!-- Pseudo-activity used to provide an intent-filter entry point to encryption settings -->
        <activity android:name="Settings$CryptKeeperSettingsActivity"
+19 −17
Original line number Diff line number Diff line
@@ -25,6 +25,7 @@ import android.content.pm.ResolveInfo;
import android.content.res.Resources;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.hardware.CmHardwareManager;
import android.os.Bundle;
import android.os.RemoteException;
import android.os.Handler;
@@ -49,6 +50,10 @@ import com.android.settings.Utils;
import com.android.settings.cyanogenmod.ButtonBacklightBrightness;

import org.cyanogenmod.hardware.KeyDisabler;
import com.android.settings.search.BaseSearchIndexProvider;
import com.android.settings.search.Indexable;

import java.util.List;

public class ButtonSettings extends SettingsPreferenceFragment implements
        Preference.OnPreferenceChangeListener {
@@ -195,10 +200,13 @@ public class ButtonSettings extends SettingsPreferenceFragment implements
        mNavigationRecentsLongPressAction =
                initRecentsLongPressAction(KEY_NAVIGATION_RECENTS_LONG_PRESS);

        final CmHardwareManager cmHardwareManager =
                (CmHardwareManager) context.getSystemService(Context.CMHW_SERVICE);

        // Only visible on devices that does not have a navigation bar already,
        // and don't even try unless the existing keys can be disabled
        boolean needsNavigationBar = false;
        if (isKeyDisablerSupported()) {
        if (cmHardwareManager.isSupported(CmHardwareManager.FEATURE_KEY_DISABLE)) {
            try {
                IWindowManager wm = WindowManagerGlobal.getWindowManagerService();
                needsNavigationBar = wm.needsNavigationBar();
@@ -361,9 +369,8 @@ public class ButtonSettings extends SettingsPreferenceFragment implements
                mNavigationPreferencesCat.removePreference(mNavigationBarLeftPref);
            }

            if ((!hasNavBar && (needsNavigationBar || !isKeyDisablerSupported())) ||
                (mNavigationPreferencesCat.getPreferenceCount() == 0)
            ) {
            if (!hasNavBar && (needsNavigationBar ||
                    !cmHardwareManager.isSupported(CmHardwareManager.FEATURE_KEY_DISABLE))) {
                // Hide navigation bar category
                prefScreen.removePreference(mNavigationPreferencesCat);
            }
@@ -563,9 +570,11 @@ public class ButtonSettings extends SettingsPreferenceFragment implements
        final int defaultBrightness = context.getResources().getInteger(
                com.android.internal.R.integer.config_buttonBrightnessSettingDefault);

        Settings.System.putInt(context.getContentResolver(),
                Settings.System.DEV_FORCE_SHOW_NAVBAR, enabled ? 1 : 0);
        KeyDisabler.setActive(enabled);
        Settings.Secure.putInt(context.getContentResolver(),
                Settings.Secure.DEV_FORCE_SHOW_NAVBAR, enabled ? 1 : 0);
        CmHardwareManager cmHardwareManager =
                (CmHardwareManager) context.getSystemService(Context.CMHW_SERVICE);
        cmHardwareManager.set(CmHardwareManager.FEATURE_KEY_DISABLE, enabled);

        /* Save/restore button timeouts to disable them in softkey mode */
        Editor editor = prefs.edit();
@@ -639,7 +648,9 @@ public class ButtonSettings extends SettingsPreferenceFragment implements
    }

    public static void restoreKeyDisabler(Context context) {
        if (!isKeyDisablerSupported()) {
        CmHardwareManager cmHardwareManager =
                (CmHardwareManager) context.getSystemService(Context.CMHW_SERVICE);
        if (!cmHardwareManager.isSupported(CmHardwareManager.FEATURE_KEY_DISABLE)) {
            return;
        }

@@ -680,15 +691,6 @@ public class ButtonSettings extends SettingsPreferenceFragment implements
        return super.onPreferenceTreeClick(preferenceScreen, preference);
    }

    private static boolean isKeyDisablerSupported() {
        try {
            return KeyDisabler.isSupported();
        } catch (NoClassDefFoundError e) {
            // Hardware abstraction framework not installed
            return false;
        }
    }

    private void handleTogglePowerButtonEndsCallPreferenceClick() {
        Settings.Secure.putInt(getContentResolver(),
                Settings.Secure.INCALL_POWER_BUTTON_BEHAVIOR, (mPowerEndCall.isChecked()
+19 −27
Original line number Diff line number Diff line
@@ -24,8 +24,8 @@ import com.android.internal.view.RotationPolicy;
import com.android.settings.DropDownPreference.Callback;
import com.android.settings.search.BaseSearchIndexProvider;
import com.android.settings.search.Indexable;

import static android.provider.Settings.Secure.DOUBLE_TAP_TO_WAKE;
import static android.hardware.CmHardwareManager.FEATURE_TAP_TO_WAKE;
import static android.provider.Settings.Secure.DOZE_ENABLED;
import static android.provider.Settings.Secure.WAKE_GESTURE_ENABLED;
import static android.provider.Settings.System.SCREEN_BRIGHTNESS_MODE;
@@ -45,6 +45,7 @@ import android.content.pm.PackageManager.NameNotFoundException;
import android.content.res.Configuration;
import android.content.res.Resources;
import android.content.SharedPreferences;
import android.hardware.CmHardwareManager;
import android.hardware.Sensor;
import android.hardware.SensorManager;
import android.os.Build;
@@ -71,8 +72,6 @@ import java.util.List;
import com.android.settings.Utils;
import com.android.settings.cyanogenmod.DisplayRotation;

import org.cyanogenmod.hardware.TapToWake;

public class DisplaySettings extends SettingsPreferenceFragment implements
        Preference.OnPreferenceChangeListener, OnPreferenceClickListener, Indexable {
    private static final String TAG = "DisplaySettings";
@@ -113,6 +112,8 @@ public class DisplaySettings extends SettingsPreferenceFragment implements
    private SwitchPreference mTapToWake;
    private SwitchPreference mWakeWhenPluggedOrUnplugged;

    private CmHardwareManager mCmHardwareManager;

    private ContentObserver mAccelerometerRotationObserver =
            new ContentObserver(new Handler()) {
        @Override
@@ -140,6 +141,7 @@ public class DisplaySettings extends SettingsPreferenceFragment implements
        final Activity activity = getActivity();
        final ContentResolver resolver = activity.getContentResolver();
        addPreferencesFromResource(R.xml.display_settings);
        mCmHardwareManager = (CmHardwareManager) activity.getSystemService(Context.CMHW_SERVICE);

        mDisplayRotationPreference = (PreferenceScreen) findPreference(KEY_DISPLAY_ROTATION);

@@ -207,7 +209,8 @@ public class DisplaySettings extends SettingsPreferenceFragment implements
        }

        mTapToWake = (SwitchPreference) findPreference(KEY_TAP_TO_WAKE);
        if (!isTapToWakeSupported()) {

        if (!mCmHardwareManager.isSupported(FEATURE_TAP_TO_WAKE)) {
            advancedPrefs.removePreference(mTapToWake);
            mTapToWake = null;
        }
@@ -362,7 +365,7 @@ public class DisplaySettings extends SettingsPreferenceFragment implements
        updateDisplayRotationPreferenceDescription();

        if (mTapToWake != null) {
            mTapToWake.setChecked(TapToWake.isEnabled());
            mTapToWake.setChecked(mCmHardwareManager.get(FEATURE_TAP_TO_WAKE));
        }

        RotationPolicy.registerRotationPolicyListener(getActivity(),
@@ -448,15 +451,6 @@ public class DisplaySettings extends SettingsPreferenceFragment implements
        }
    }

    private static boolean isTapToWakeSupported() {
        try {
            return TapToWake.isSupported();
        } catch (NoClassDefFoundError e) {
            // Hardware abstraction framework not installed
            return false;
        }
    }

    /**
     * Reads the current font size and sets the value in the summary text
     */
@@ -485,7 +479,7 @@ public class DisplaySettings extends SettingsPreferenceFragment implements
    @Override
    public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) {
        if (preference == mTapToWake) {
            return TapToWake.setEnabled(mTapToWake.isChecked());
            return mCmHardwareManager.set(FEATURE_TAP_TO_WAKE, mTapToWake.isChecked());
        } else if (preference == mWakeWhenPluggedOrUnplugged) {
            Settings.Global.putInt(getContentResolver(),
                    Settings.Global.WAKE_WHEN_PLUGGED_OR_UNPLUGGED,
@@ -561,15 +555,18 @@ public class DisplaySettings extends SettingsPreferenceFragment implements

    /**
     * Restore the properties associated with this preference on boot
       @param ctx A valid context
     *
     * @param ctx A valid context
     */
    public static void restore(Context ctx) {
        final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(ctx);
        if (isTapToWakeSupported()) {
        CmHardwareManager cmHardwareManager =
            (CmHardwareManager) ctx.getSystemService(Context.CMHW_SERVICE);
        if (cmHardwareManager.isSupported(FEATURE_TAP_TO_WAKE)) {
            final boolean enabled = prefs.getBoolean(KEY_TAP_TO_WAKE,
                TapToWake.isEnabled());
                cmHardwareManager.get(FEATURE_TAP_TO_WAKE));

            if (!TapToWake.setEnabled(enabled)) {
            if (!cmHardwareManager.set(FEATURE_TAP_TO_WAKE, enabled)) {
                Log.e(TAG, "Failed to restore tap-to-wake settings.");
            } else {
                Log.d(TAG, "Tap-to-wake settings restored.");
@@ -579,12 +576,6 @@ public class DisplaySettings extends SettingsPreferenceFragment implements

    public static final Indexable.SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
            new BaseSearchIndexProvider() {
                private boolean mHasTapToWake;

                @Override
                public void prepare() {
                    mHasTapToWake = isTapToWakeSupported();
                }

                @Override
                public List<SearchIndexableResource> getXmlResourcesToIndex(Context context,
@@ -601,6 +592,8 @@ public class DisplaySettings extends SettingsPreferenceFragment implements

                @Override
                public List<String> getNonIndexableKeys(Context context) {
                    CmHardwareManager cmHardwareManager =
                        (CmHardwareManager) context.getSystemService(Context.CMHW_SERVICE);
                    ArrayList<String> result = new ArrayList<String>();
                    if (!context.getResources().getBoolean(
                            com.android.internal.R.bool.config_dreamsSupported)) {
@@ -610,10 +603,9 @@ public class DisplaySettings extends SettingsPreferenceFragment implements
                            com.android.internal.R.bool.config_proximityCheckOnWake)) {
                        result.add(KEY_PROXIMITY_WAKE);
                    }
                    if (!mHasTapToWake) {
                    if (!cmHardwareManager.isSupported(FEATURE_TAP_TO_WAKE)) {
                        result.add(KEY_TAP_TO_WAKE);
                    }

                    if (!isAutomaticBrightnessAvailable(context.getResources())) {
                        result.add(KEY_AUTO_BRIGHTNESS);
                    }
+2 −0
Original line number Diff line number Diff line
@@ -24,6 +24,7 @@ import com.android.settings.DisplaySettings;
import com.android.settings.R;
import com.android.settings.Utils;
import com.android.settings.hardware.VibratorIntensity;
import com.android.settings.inputmethod.InputMethodAndLanguageSettings;
import com.android.settings.livedisplay.DisplayGamma;

public class BootReceiver extends BroadcastReceiver {
@@ -38,5 +39,6 @@ public class BootReceiver extends BroadcastReceiver {
        DisplayGamma.restore(ctx);
        VibratorIntensity.restore(ctx);
        DisplaySettings.restore(ctx);
        InputMethodAndLanguageSettings.restore(ctx);
    }
}
Loading