package com.aero.control.fragments; import android.os.Bundle; import android.preference.Preference; import android.preference.PreferenceCategory; import android.preference.PreferenceScreen; import android.text.InputType; import android.widget.Toast; import com.aero.control.AeroActivity; import com.aero.control.R; import com.aero.control.helpers.Android.CustomListPreference; import com.aero.control.helpers.Android.CustomTextPreference; import com.aero.control.helpers.FilePath; /** * Created by Alexander Christ on 16.09.13. * This should replace the Defy Parts. */ public class DefyPartsFragment extends PlaceHolderFragment { /* TODO: - Simplify it! - Add checks for different kernel settings - Bring in other defy part features */ private CustomListPreference led_charging; private CustomListPreference multi_touch; private CustomTextPreference button_brightness; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // We have to load the xml layout first; addPreferencesFromResource(R.layout.defy_parts); PreferenceScreen root = this.getPreferenceScreen(); final PreferenceCategory defyParts = (PreferenceCategory) root.findPreference("defy_parts"); String charger = AeroActivity.shell.getRootInfo("getprop ", FilePath.PROP_CHARGE_LED_MODE); String multitouch = AeroActivity.shell.getRootInfo("getprop ", FilePath.PROP_TOUCH_POINTS); String brightness = AeroActivity.shell.getRootInfo("getprop", FilePath.PROP_BUTTON_BRIGHTNESS); led_charging = new CustomListPreference(getActivity()); led_charging.setName("led_charging"); led_charging.setSummary(R.string.pref_charging_led_sum); led_charging.setTitle(R.string.pref_charging_led); led_charging.setDialogTitle(R.string.pref_charging_led); led_charging.setOrder(1); defyParts.addPreference(led_charging); button_brightness = new CustomTextPreference(getActivity()); button_brightness.setName("button_brightness"); button_brightness.setPrefSummary(brightness); button_brightness.setPrefText(getText(R.string.pref_button_brightness).toString()); button_brightness.setDialogTitle(getText(R.string.pref_button_brightness).toString()); button_brightness.setSummary(brightness); button_brightness.setTitle(getText(R.string.pref_button_brightness).toString()); button_brightness.getEditText().setInputType(InputType.TYPE_CLASS_NUMBER); button_brightness.setOrder(5); defyParts.addPreference(button_brightness); multi_touch = new CustomListPreference(getActivity()); multi_touch.setName("multi_touch"); multi_touch.setSummary(R.string.pref_multitouch_sum); multi_touch.setTitle(R.string.pref_multitouch); multi_touch.setDialogTitle(R.string.pref_multitouch); multi_touch.setOrder(10); defyParts.addPreference(multi_touch); led_charging.setEntryValues(R.array.charge_led_mode_values); led_charging.setEntries(R.array.charge_led_mode_entries); if (charger.length() > 1) { led_charging.setValue(charger); led_charging.setSummary(charger); } else { led_charging.setEnabled(false); } multi_touch.setEntryValues(R.array.touch_point_values); multi_touch.setEntries(R.array.touch_point_values); if (charger.length() > 1) { multi_touch.setValue(multitouch); multi_touch.setSummary(multitouch); } else { multi_touch.setEnabled(false); } if (charger.length() > 1) { button_brightness.setText(brightness); } else { button_brightness.setEnabled(false); } led_charging.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() { @Override public boolean onPreferenceChange(Preference preference, Object o) { changePreference(preference, o, FilePath.PROP_CHARGE_LED_MODE); led_charging.setValue(o.toString()); led_charging.setSummary(o.toString()); return true; } }); multi_touch.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() { @Override public boolean onPreferenceChange(Preference preference, Object o) { changePreference(preference, o, FilePath.PROP_TOUCH_POINTS); multi_touch.setValue(o.toString()); multi_touch.setSummary(o.toString()); return true; } }); button_brightness.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() { @Override public boolean onPreferenceChange(Preference preference, Object o) { changePreference(preference, o, FilePath.PROP_BUTTON_BRIGHTNESS); button_brightness.setText(o.toString()); button_brightness.setPrefSummary(o.toString()); return true; } }); } private void changePreference(Preference preference, Object o, String file) { String[] command = new String[] { "setprop " + file + " " + o.toString() }; AeroActivity.shell.setRootInfo(command); Toast.makeText(getActivity(), R.string.need_reboot, Toast.LENGTH_SHORT).show(); } }