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

Commit c047ba53 authored by Altaf-Mahdi's avatar Altaf-Mahdi Committed by Steve Kondik
Browse files

Settings: enable/disable doze through Profiles (2/2)

* moved isDozeAvailable boolean to Utils so we can check for it in profiles

Change-Id: I5a768098b4ed00b28931bee58a58efa8280262a1
parent 74b88fb3
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -344,6 +344,12 @@
        <item>@string/profile_action_enable</item>
    </string-array>

    <string-array name="profile_doze_entries" translatable="false">
        <item>@string/profile_action_none</item>
        <item>@string/profile_action_enable</item>
        <item>@string/profile_action_disable</item>
    </string-array>

    <!-- Profile mode options. -->
     <string-array name="profile_entries" translatable="false">
         <item>@string/profile_entries_on</item>
+3 −11
Original line number Diff line number Diff line
@@ -71,6 +71,7 @@ import java.util.ArrayList;
import java.util.List;

import com.android.settings.cyanogenmod.DisplayRotation;
import com.android.settings.Utils;

public class DisplaySettings extends SettingsPreferenceFragment implements
        Preference.OnPreferenceChangeListener, OnPreferenceClickListener, Indexable {
@@ -229,7 +230,7 @@ public class DisplaySettings extends SettingsPreferenceFragment implements
        }

        mDozePreference = (SwitchPreference) findPreference(KEY_DOZE);
        if (mDozePreference != null && isDozeAvailable(activity)) {
        if (mDozePreference != null && Utils.isDozeAvailable(activity)) {
            mDozePreference.setOnPreferenceChangeListener(this);
        } else {
            if (displayPrefs != null && mDozePreference != null) {
@@ -268,15 +269,6 @@ public class DisplaySettings extends SettingsPreferenceFragment implements
        return sensors != null && sensors.getDefaultSensor(Sensor.TYPE_WAKE_GESTURE) != null;
    }

    private static boolean isDozeAvailable(Context context) {
        String name = Build.IS_DEBUGGABLE ? SystemProperties.get("debug.doze.component") : null;
        if (TextUtils.isEmpty(name)) {
            name = context.getResources().getString(
                    com.android.internal.R.string.config_dozeComponent);
        }
        return !TextUtils.isEmpty(name);
    }

    private static boolean isAutomaticBrightnessAvailable(Resources res) {
        return res.getBoolean(com.android.internal.R.bool.config_automatic_brightness_available);
    }
@@ -715,7 +707,7 @@ public class DisplaySettings extends SettingsPreferenceFragment implements
                    if (!isLiftToWakeAvailable(context)) {
                        result.add(KEY_LIFT_TO_WAKE);
                    }
                    if (!isDozeAvailable(context)) {
                    if (!Utils.isDozeAvailable(context)) {
                        result.add(KEY_DOZE);
                    }
                    return result;
+11 −0
Original line number Diff line number Diff line
@@ -50,9 +50,11 @@ import android.net.ConnectivityManager;
import android.net.LinkProperties;
import android.net.Uri;
import android.os.BatteryManager;
import android.os.Build;
import android.os.Bundle;
import android.os.IBinder;
import android.os.RemoteException;
import android.os.SystemProperties;
import android.os.UserHandle;
import android.os.UserManager;
import android.preference.Preference;
@@ -1334,4 +1336,13 @@ public final class Utils {
        }
        activity.setRequestedOrientation(frozenRotation);
    }

    public static boolean isDozeAvailable(Context context) {
        String name = Build.IS_DEBUGGABLE ? SystemProperties.get("debug.doze.component") : null;
        if (TextUtils.isEmpty(name)) {
            name = context.getResources().getString(
                    com.android.internal.R.string.config_dozeComponent);
        }
        return !TextUtils.isEmpty(name);
    }
}
+43 −0
Original line number Diff line number Diff line
@@ -75,6 +75,7 @@ import com.android.settings.profiles.actions.item.AirplaneModeItem;
import com.android.settings.profiles.actions.item.AppGroupItem;
import com.android.settings.profiles.actions.item.BrightnessItem;
import com.android.settings.profiles.actions.item.ConnectionOverrideItem;
import com.android.settings.profiles.actions.item.DozeModeItem;
import com.android.settings.profiles.actions.item.Header;
import com.android.settings.profiles.actions.item.Item;
import com.android.settings.profiles.actions.item.LockModeItem;
@@ -82,6 +83,7 @@ import com.android.settings.profiles.actions.item.ProfileNameItem;
import com.android.settings.profiles.actions.item.RingModeItem;
import com.android.settings.profiles.actions.item.TriggerItem;
import com.android.settings.profiles.actions.item.VolumeStreamItem;
import com.android.settings.Utils;

import java.util.ArrayList;
import java.util.List;
@@ -120,6 +122,11 @@ public class SetupActionsFragment extends SettingsPreferenceFragment
        Profile.ExpandedDesktopMode.ENABLE,
        Profile.ExpandedDesktopMode.DISABLE
    };
    private static final int[] DOZE_MAPPING = new int[] {
        Profile.DozeMode.DEFAULT,
        Profile.DozeMode.ENABLE,
        Profile.DozeMode.DISABLE
    };
    private List<Item> mItems = new ArrayList<Item>();

    public static SetupActionsFragment newInstance(Profile profile, boolean newProfile) {
@@ -213,6 +220,11 @@ public class SetupActionsFragment extends SettingsPreferenceFragment
        mItems.add(new LockModeItem(mProfile));
        mItems.add(new BrightnessItem(mProfile.getBrightness()));

        final Activity activity = getActivity();
        if (Utils.isDozeAvailable(activity)) {
            mItems.add(new DozeModeItem(mProfile));
        }

        // app groups
        if (SettingsActivity.showAdvancedPreferences(getActivity())) {
            mItems.add(new Header(getString(R.string.profile_app_group_category_title)));
@@ -519,6 +531,35 @@ public class SetupActionsFragment extends SettingsPreferenceFragment
        builder.show();
    }

    private void requestDozeModeDialog() {
        AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
        final String[] dozeEntries =
                getResources().getStringArray(R.array.profile_doze_entries);

        int defaultIndex = 0; // no action
        for (int i = 0; i < DOZE_MAPPING.length; i++) {
            if (DOZE_MAPPING[i] == mProfile.getDozeMode()) {
                defaultIndex = i;
                break;
            }
        }

        builder.setTitle(R.string.doze_title);
        builder.setSingleChoiceItems(dozeEntries, defaultIndex,
                new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int item) {
                mProfile.setDozeMode(DOZE_MAPPING[item]);
                updateProfile();
                mAdapter.notifyDataSetChanged();
                dialog.dismiss();
            }
        });

        builder.setNegativeButton(android.R.string.cancel, null);
        builder.show();
    }

    private void requestAirplaneModeDialog(final AirplaneModeSettings setting) {
        AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
        final String[] connectionNames =
@@ -930,6 +971,8 @@ public class SetupActionsFragment extends SettingsPreferenceFragment
            requestBrightnessDialog(item.getSettings());
        } else if (itemAtPosition instanceof LockModeItem) {
            requestLockscreenModeDialog();
        } else if (itemAtPosition instanceof DozeModeItem) {
            requestDozeModeDialog();
        } else if (itemAtPosition instanceof RingModeItem) {
            RingModeItem item = (RingModeItem) itemAtPosition;
            requestRingModeDialog(item.getSettings());
+2 −1
Original line number Diff line number Diff line
@@ -37,7 +37,8 @@ public class ItemListAdapter extends ArrayAdapter<Item> {
        LOCKSCREENMODE_ITEM,
        TRIGGER_ITEM,
        APP_GROUP_ITEM,
        BRIGHTNESS_ITEM
        BRIGHTNESS_ITEM,
        DOZEMODE_ITEM
    }

    public ItemListAdapter(Context context, List<Item> items) {
Loading