x13thangelx

lockscreensettings.java

Apr 19th, 2012
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 26.13 KB | None | 0 0
  1.  
  2. package com.android.settings;
  3.  
  4. import android.app.Activity;
  5. import android.app.AlertDialog;
  6. import android.app.Dialog;
  7. import android.content.DialogInterface;
  8. import android.content.Intent;
  9. import android.os.Bundle;
  10. import android.preference.CheckBoxPreference;
  11. import android.preference.ListPreference;
  12. import android.preference.Preference;
  13. import android.preference.PreferenceActivity;
  14. import android.preference.PreferenceCategory;
  15. import android.preference.PreferenceScreen;
  16. import android.preference.Preference.OnPreferenceChangeListener;
  17. import android.provider.Settings;
  18. import android.provider.Settings.SettingNotFoundException;
  19. import android.util.Log;
  20.  
  21. import com.android.settings.util.ShortcutPickerHelper;
  22. import com.android.settings.R;
  23.  
  24. import java.util.ArrayList;
  25.  
  26. public class LockscreenSettings extends SettingsPreferenceFragment implements
  27. ShortcutPickerHelper.OnPickListener, OnPreferenceChangeListener {
  28.  
  29. private static final String GENERAL_CATEGORY = "general_category";
  30. private static final String UNLOCK_CATEGORY = "unlock_category";
  31. private static final String CUSTOM_APP= "custom_app";
  32. private static final String LOCKSCREEN_EXTRA = "lockscreen_extra";
  33. private static final String LOCKSCREEN_BATTERY = "lockscreen_battery";
  34. private static final String LOCKSCREEN_BEFORE_UNLOCK = "lockscreen_before_unlock";
  35. private static final String QUICK_PASSWORD_UNLOCK = "quick_password_unlock";
  36. private static final String VOLUME_WAKE = "volume_wake";
  37. private static final String LOCKSCREEN_CUSTOM_1 = "lockscreen_custom_1";
  38. private static final String LOCKSCREEN_CUSTOM_2 = "lockscreen_custom_2";
  39. private static final String LOCKSCREEN_CUSTOM_3 = "lockscreen_custom_3";
  40. private static final String SOUND_OR_CAMERA = "sound_or_camera";
  41. private static final String LOCKSCREEN_STYLES = "lockscreen_styles";
  42. private static final String ROTARY_ARROWS = "rotary_arrows";
  43. private static final String ROTARY_DOWN = "rotary_down";
  44. private static final String LOCKSCREEN_MUSIC_WIDGET = "lockscreen_music_widget";
  45.  
  46. private PreferenceCategory mCategoryGeneral;
  47. private PreferenceCategory mCategoryUnlock;
  48. private PreferenceCategory mCategoryCustom;
  49.  
  50. private CheckBoxPreference mLockExtra;
  51. private CheckBoxPreference mLockBattery;
  52. private CheckBoxPreference mLockBeforeUnlock;
  53. private CheckBoxPreference mQuickUnlock;
  54. private CheckBoxPreference mVolumeWake;
  55. private CheckBoxPreference mRotaryArrows;
  56. private CheckBoxPreference mRotaryDown;
  57. private ListPreference mSoundCamera;
  58. private ListPreference mLockStyle;
  59. private ListPreference mMusicStyle;
  60. private Preference mCustomApp1;
  61. private Preference mCustomApp2;
  62. private Preference mCustomApp3;
  63.  
  64. private Preference mCurrentCustomActivityPreference;
  65. private String mCurrentCustomActivityString;
  66.  
  67. private int mWhichApp = -1;
  68. private int mMaxRingCustomApps = Settings.System.LOCKSCREEN_CUSTOM_RING_APP_ACTIVITIES.length;
  69.  
  70. private ShortcutPickerHelper mPicker;
  71.  
  72. @Override
  73. public void onCreate(Bundle savedInstanceState) {
  74. super.onCreate(savedInstanceState);
  75. addPreferencesFromResource(R.xml.lockscreen_settings);
  76. PreferenceScreen prefSet = getPreferenceScreen();
  77.  
  78. mCategoryGeneral = (PreferenceCategory) prefSet.findPreference(GENERAL_CATEGORY);
  79. mCategoryUnlock = (PreferenceCategory) prefSet.findPreference(UNLOCK_CATEGORY);
  80. mCategoryCustom = (PreferenceCategory) prefSet.findPreference(CUSTOM_APP);
  81.  
  82. mLockStyle = (ListPreference) findPreference(LOCKSCREEN_STYLES);
  83. mLockStyle.setOnPreferenceChangeListener(this);
  84. mLockStyle.setValue(Settings.System.getInt(getActivity().getContentResolver(), Settings.System.LOCKSCREEN_TYPE,
  85. 0) + "");
  86.  
  87. mMusicStyle = (ListPreference) findPreference(LOCKSCREEN_MUSIC_WIDGET);
  88. mMusicStyle.setOnPreferenceChangeListener(this);
  89. mMusicStyle.setValue(Settings.System.getInt(getActivity().getContentResolver(), Settings.System.MUSIC_WIDGET_TYPE,
  90. 0) + "");
  91.  
  92. mRotaryArrows = (CheckBoxPreference) prefSet.findPreference(ROTARY_ARROWS);
  93. mRotaryArrows.setChecked(Settings.System.getInt(getContentResolver(),
  94. Settings.System.LOCKSCREEN_HIDE_ARROWS, 0) == 1);
  95.  
  96. mRotaryDown = (CheckBoxPreference) prefSet.findPreference(ROTARY_DOWN);
  97. mRotaryDown.setChecked(Settings.System.getInt(getContentResolver(),
  98. Settings.System.LOCKSCREEN_ROTARY_UNLOCK_DOWN, 0) == 1);
  99.  
  100. mLockExtra = (CheckBoxPreference) prefSet.findPreference(LOCKSCREEN_EXTRA);
  101. mLockExtra.setChecked(Settings.System.getInt(getContentResolver(),
  102. Settings.System.LOCKSCREEN_EXTRA_ICONS, 0) == 1);
  103.  
  104. mLockBattery = (CheckBoxPreference) prefSet.findPreference(LOCKSCREEN_BATTERY);
  105. mLockBattery.setChecked(Settings.System.getInt(getContentResolver(),
  106. Settings.System.LOCKSCREEN_BATTERY, 0) == 1);
  107.  
  108. mLockBeforeUnlock = (CheckBoxPreference) prefSet
  109. .findPreference(LOCKSCREEN_BEFORE_UNLOCK);
  110. mLockBeforeUnlock.setChecked(Settings.System.getInt(getContentResolver(),
  111. Settings.System.LOCKSCREEN_BEFORE_UNLOCK, 0) == 1);
  112.  
  113. mQuickUnlock = (CheckBoxPreference) prefSet
  114. .findPreference(QUICK_PASSWORD_UNLOCK);
  115. mQuickUnlock.setChecked(Settings.System.getInt(getContentResolver(),
  116. Settings.System.LOCKSCREEN_QUICK_UNLOCK_CONTROL, 0) == 1);
  117.  
  118. mVolumeWake = (CheckBoxPreference) prefSet.findPreference(VOLUME_WAKE);
  119. mVolumeWake.setChecked(Settings.System.getInt(getContentResolver(),
  120. Settings.System.VOLUME_WAKE, 0) == 1);
  121.  
  122. mCustomApp1 = (Preference) prefSet.findPreference(LOCKSCREEN_CUSTOM_1);
  123. mCustomApp2 = (Preference) prefSet.findPreference(LOCKSCREEN_CUSTOM_2);
  124. mCustomApp3 = (Preference) prefSet.findPreference(LOCKSCREEN_CUSTOM_3);
  125.  
  126. mPicker = new ShortcutPickerHelper(this, this);
  127.  
  128. mSoundCamera = (ListPreference) findPreference(SOUND_OR_CAMERA);
  129. mSoundCamera.setOnPreferenceChangeListener(this);
  130. mSoundCamera.setValue(Settings.System.getInt(getActivity().getContentResolver(), Settings.System.LOCKSCREEN_FORCE_SOUND_ICON,
  131. 0) + "");
  132.  
  133. int lockScreenCurrent = Settings.System.getInt(getActivity().getContentResolver(), Settings.System.LOCKSCREEN_TYPE, 0);
  134. whatLock(lockScreenCurrent);
  135. }
  136.  
  137. public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen,
  138. Preference preference) {
  139. boolean value;
  140. if (preference == mLockBattery) {
  141. value = mLockBattery.isChecked();
  142. Settings.System.putInt(getContentResolver(),
  143. Settings.System.LOCKSCREEN_BATTERY, value ? 1 : 0);
  144. return true;
  145. } else if (preference == mLockExtra) {
  146. value = mLockExtra.isChecked();
  147. Settings.System.putInt(getContentResolver(),
  148. Settings.System.LOCKSCREEN_EXTRA_ICONS, value ? 1 : 0);
  149. if(Settings.System.getInt(getActivity().getContentResolver(), Settings.System.LOCKSCREEN_TYPE, 0) == 0 || Settings.System.getInt(getActivity().getContentResolver(), Settings.System.LOCKSCREEN_TYPE, 0) == 1
  150. || Settings.System.getInt(getActivity().getContentResolver(), Settings.System.LOCKSCREEN_TYPE, 0) == 5)
  151. updateCustomAppPickers(value);
  152. return true;
  153. } else if (preference == mLockBeforeUnlock) {
  154. value = mLockBeforeUnlock.isChecked();
  155. Settings.System.putInt(getContentResolver(),
  156. Settings.System.LOCKSCREEN_BEFORE_UNLOCK, value ? 1 : 0);
  157. return true;
  158. } else if (preference == mQuickUnlock) {
  159. value = mQuickUnlock.isChecked();
  160. Settings.System.putInt(getContentResolver(),
  161. Settings.System.LOCKSCREEN_QUICK_UNLOCK_CONTROL, value ? 1 : 0);
  162. return true;
  163. } else if (preference == mVolumeWake) {
  164. value = mVolumeWake.isChecked();
  165. Settings.System.putInt(getContentResolver(),
  166. Settings.System.VOLUME_WAKE, value ? 1 : 0);
  167. return true;
  168. } else if (preference == mRotaryArrows) {
  169. value = mRotaryArrows.isChecked();
  170. Settings.System.putInt(getContentResolver(),
  171. Settings.System.LOCKSCREEN_HIDE_ARROWS, value ? 1 : 0);
  172. return true;
  173. } else if (preference == mRotaryDown) {
  174. value = mRotaryDown.isChecked();
  175. Settings.System.putInt(getContentResolver(),
  176. Settings.System.LOCKSCREEN_ROTARY_UNLOCK_DOWN, value ? 1 : 0);
  177. return true;
  178. } else if (preference == mCustomApp1) {
  179. if ((Settings.System.getInt(getActivity().getContentResolver(), Settings.System.LOCKSCREEN_TYPE, 0) == 5) ||
  180. (Settings.System.getInt(getActivity().getContentResolver(), Settings.System.LOCKSCREEN_TYPE, 0) == 6)) {
  181. final String[] items = getCustomRingAppItems();
  182.  
  183. if (items.length == 0) {
  184. mWhichApp = 0;
  185. mPicker.pickShortcut();
  186. } else {
  187. AlertDialog.Builder builder = new AlertDialog.Builder(this.getActivity());
  188. builder.setTitle(R.string.pref_lockscreen_ring_custom_apps_dialog_title_set);
  189. builder.setItems(items, new Dialog.OnClickListener() {
  190. @Override
  191. public void onClick(DialogInterface dialog, int which) {
  192. dialog.dismiss();
  193. mWhichApp = which;
  194. mPicker.pickShortcut();
  195. }
  196. });
  197. if (items.length < mMaxRingCustomApps) {
  198. builder.setPositiveButton(R.string.pref_lockscreen_ring_custom_apps_dialog_add,
  199. new Dialog.OnClickListener() {
  200. @Override
  201. public void onClick(DialogInterface dialog, int which) {
  202. dialog.dismiss();
  203. mWhichApp = items.length;
  204. mPicker.pickShortcut();
  205. }
  206. });
  207. }
  208. builder.setNeutralButton(R.string.pref_lockscreen_ring_custom_apps_dialog_remove,
  209. new Dialog.OnClickListener() {
  210. @Override
  211. public void onClick(DialogInterface dialog, int which) {
  212. dialog.dismiss();
  213.  
  214. AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
  215. builder.setTitle(R.string.pref_lockscreen_ring_custom_apps_dialog_title_unset);
  216. builder.setItems(items, new Dialog.OnClickListener() {
  217. @Override
  218. public void onClick(DialogInterface dialog, int which) {
  219. dialog.dismiss();
  220. Settings.System.putString(getContentResolver(), Settings.System.LOCKSCREEN_CUSTOM_RING_APP_ACTIVITIES[which], null);
  221.  
  222. for (int q = which + 1; q < mMaxRingCustomApps; q++) {
  223. Settings.System.putString(getContentResolver(),
  224. Settings.System.LOCKSCREEN_CUSTOM_RING_APP_ACTIVITIES[q - 1],
  225. Settings.System.getString(getContentResolver(),
  226. Settings.System.LOCKSCREEN_CUSTOM_RING_APP_ACTIVITIES[q]));
  227. Settings.System.putString(getContentResolver(),
  228. Settings.System.LOCKSCREEN_CUSTOM_RING_APP_ACTIVITIES[q], null);
  229. }
  230. mCustomApp1.setSummary(getCustomRingAppSummary());
  231. }
  232. });
  233. builder.setNegativeButton(R.string.pref_lockscreen_ring_custom_apps_dialog_cancel,
  234. new Dialog.OnClickListener() {
  235. @Override
  236. public void onClick(DialogInterface dialog, int which) {
  237. dialog.dismiss();
  238. }
  239. });
  240. builder.setCancelable(true);
  241. builder.create().show();
  242. }
  243. });
  244. builder.setNegativeButton(R.string.pref_lockscreen_ring_custom_apps_dialog_cancel,
  245. new Dialog.OnClickListener() {
  246. @Override
  247. public void onClick(DialogInterface dialog, int which) {
  248. dialog.dismiss();
  249. }
  250. });
  251. builder.setCancelable(true);
  252. builder.create().show();
  253. }
  254. } else {
  255. mCurrentCustomActivityPreference = preference;
  256. mCurrentCustomActivityString = Settings.System.LOCKSCREEN_CUSTOM_ONE;
  257. mPicker.pickShortcut();
  258. }
  259. return true;
  260. } else if (preference == mCustomApp2) {
  261. mCurrentCustomActivityPreference = preference;
  262. mCurrentCustomActivityString = Settings.System.LOCKSCREEN_CUSTOM_TWO;
  263. mPicker.pickShortcut();
  264. return true;
  265. } else if (preference == mCustomApp3) {
  266. mCurrentCustomActivityPreference = preference;
  267. mCurrentCustomActivityString = Settings.System.LOCKSCREEN_CUSTOM_THREE;
  268. mPicker.pickShortcut();
  269. return true;
  270. }
  271. return false;
  272. }
  273.  
  274. public boolean onPreferenceChange(Preference preference, Object newValue) {
  275. if (preference == mSoundCamera) {
  276. Settings.System.putInt(getActivity().getContentResolver(), Settings.System.LOCKSCREEN_FORCE_SOUND_ICON, Integer.parseInt((String) newValue));
  277. return true;
  278. } else if (preference == mLockStyle) {
  279. Settings.System.putInt(getActivity().getContentResolver(), Settings.System.LOCKSCREEN_TYPE, Integer.parseInt((String) newValue));
  280. try {
  281. whatLock(Settings.System.getInt(getContentResolver(), Settings.System.LOCKSCREEN_TYPE));
  282. } catch (SettingNotFoundException e) {
  283. }
  284. return true;
  285. } else if (preference == mMusicStyle) {
  286. Settings.System.putInt(getActivity().getContentResolver(), Settings.System.MUSIC_WIDGET_TYPE, Integer.parseInt((String) newValue));
  287. return true;
  288. }
  289. return false;
  290. }
  291.  
  292. private void updateCustomAppPickers(boolean bool) {
  293. if (bool) {
  294. mCustomApp1.setEnabled(true);
  295. mCustomApp2.setEnabled(true);
  296. mCustomApp3.setEnabled(true);
  297. } else {
  298. mCustomApp1.setEnabled(false);
  299. mCustomApp2.setEnabled(false);
  300. mCustomApp3.setEnabled(false);
  301. }
  302. }
  303.  
  304. private void whatLock(int lock) {
  305. ArrayList<Preference> lsGen = new ArrayList<Preference>();
  306. ArrayList<Boolean> lsGenEnable = new ArrayList<Boolean>();
  307. ArrayList<Preference> lsUnlock = new ArrayList<Preference>();
  308. ArrayList<Boolean> lsUnlockEnable = new ArrayList<Boolean>();
  309. ArrayList<Preference> lsApp = new ArrayList<Preference>();
  310. ArrayList<Boolean> lsAppEnable = new ArrayList<Boolean>();
  311.  
  312. PreferenceScreen prefSet = getPreferenceScreen();
  313. prefSet.removeAll();
  314. prefSet.addPreference(mCategoryGeneral);
  315. prefSet.addPreference(mCategoryUnlock);
  316. prefSet.addPreference(mCategoryCustom);
  317.  
  318. mCategoryGeneral.setTitle(mLockStyle.getEntries()[mLockStyle.
  319. findIndexOfValue("" + (Settings.System.getInt(getActivity().getContentResolver(), Settings.System.LOCKSCREEN_TYPE, 0)))] + " " + "Settings");
  320. mCategoryUnlock.setTitle("Unlocking Options");
  321. mCategoryCustom.setTitle("Custom Apps");
  322.  
  323. switch (lock) {
  324. case 0:
  325. lsGen.add(mLockStyle);
  326. lsGenEnable.add(true);
  327. lsGen.add(mLockExtra);
  328. lsGenEnable.add(true);
  329. lsGen.add(mLockBattery);
  330. lsGenEnable.add(true);
  331. lsGen.add(mMusicStyle);
  332. lsGenEnable.add(true);
  333. lsUnlock.add(mLockBeforeUnlock);
  334. lsUnlockEnable.add(true);
  335. lsUnlock.add(mQuickUnlock);
  336. lsUnlockEnable.add(true);
  337. lsUnlock.add(mVolumeWake);
  338. lsUnlockEnable.add(true);
  339. lsApp.add(mCustomApp1);
  340. lsAppEnable.add(mLockExtra.isChecked());
  341. lsApp.add(mCustomApp2);
  342. lsAppEnable.add(mLockExtra.isChecked());
  343. lsApp.add(mCustomApp3);
  344. lsAppEnable.add(mLockExtra.isChecked());
  345. lsApp.add(mSoundCamera);
  346. lsAppEnable.add(true);
  347. break;
  348. case 1:
  349. lsGen.add(mLockStyle);
  350. lsGenEnable.add(true);
  351. lsGen.add(mLockExtra);
  352. lsGenEnable.add(true);
  353. lsGen.add(mLockBattery);
  354. lsGenEnable.add(true);
  355. lsGen.add(mMusicStyle);
  356. lsGenEnable.add(true);
  357. lsUnlock.add(mLockBeforeUnlock);
  358. lsUnlockEnable.add(true);
  359. lsUnlock.add(mQuickUnlock);
  360. lsUnlockEnable.add(true);
  361. lsUnlock.add(mVolumeWake);
  362. lsUnlockEnable.add(true);
  363. lsApp.add(mCustomApp1);
  364. lsAppEnable.add(mLockExtra.isChecked());
  365. lsApp.add(mSoundCamera);
  366. lsAppEnable.add(true);
  367. break;
  368. case 2:
  369. lsGen.add(mLockStyle);
  370. lsGenEnable.add(true);
  371. lsGen.add(mRotaryArrows);
  372. lsGenEnable.add(true);
  373. lsGen.add(mLockBattery);
  374. lsGenEnable.add(true);
  375. lsGen.add(mMusicStyle);
  376. lsGenEnable.add(true);
  377. lsUnlock.add(mLockBeforeUnlock);
  378. lsUnlockEnable.add(true);
  379. lsUnlock.add(mQuickUnlock);
  380. lsUnlockEnable.add(true);
  381. lsUnlock.add(mVolumeWake);
  382. lsUnlockEnable.add(true);
  383. lsApp.add(mSoundCamera);
  384. lsAppEnable.add(true);
  385. break;
  386. case 3:
  387. lsGen.add(mLockStyle);
  388. lsGenEnable.add(true);
  389. lsGen.add(mRotaryArrows);
  390. lsGenEnable.add(true);
  391. lsGen.add(mRotaryDown);
  392. lsGenEnable.add(true);
  393. lsGen.add(mLockBattery);
  394. lsGenEnable.add(true);
  395. lsGen.add(mMusicStyle);
  396. lsGenEnable.add(true);
  397. lsUnlock.add(mLockBeforeUnlock);
  398. lsUnlockEnable.add(true);
  399. lsUnlock.add(mQuickUnlock);
  400. lsUnlockEnable.add(true);
  401. lsUnlock.add(mVolumeWake);
  402. lsUnlockEnable.add(true);
  403. lsApp.add(mCustomApp1);
  404. lsAppEnable.add(true);
  405. lsApp.add(mSoundCamera);
  406. lsAppEnable.add(true);
  407. break;
  408. case 4:
  409. lsGen.add(mLockStyle);
  410. lsGenEnable.add(true);
  411. lsGen.add(mLockBattery);
  412. lsGenEnable.add(true);
  413. lsGen.add(mMusicStyle);
  414. lsGenEnable.add(true);
  415. lsUnlock.add(mLockBeforeUnlock);
  416. lsUnlockEnable.add(true);
  417. lsUnlock.add(mQuickUnlock);
  418. lsUnlockEnable.add(true);
  419. lsUnlock.add(mVolumeWake);
  420. lsUnlockEnable.add(true);
  421. break;
  422. case 5:
  423. lsGen.add(mLockStyle);
  424. lsGenEnable.add(true);
  425. lsGen.add(mLockExtra);
  426. lsGenEnable.add(true);
  427. lsGen.add(mLockBattery);
  428. lsGenEnable.add(true);
  429. lsGen.add(mMusicStyle);
  430. lsGenEnable.add(true);
  431. lsUnlock.add(mLockBeforeUnlock);
  432. lsUnlockEnable.add(true);
  433. lsUnlock.add(mQuickUnlock);
  434. lsUnlockEnable.add(true);
  435. lsUnlock.add(mVolumeWake);
  436. lsUnlockEnable.add(true);
  437. lsApp.add(mCustomApp1);
  438. lsAppEnable.add(mLockExtra.isChecked());
  439. lsApp.add(mSoundCamera);
  440. lsAppEnable.add(true);
  441. break;
  442. case 6:
  443. lsGen.add(mLockStyle);
  444. lsGenEnable.add(true);
  445. lsGen.add(mLockBattery);
  446. lsGenEnable.add(true);
  447. lsGen.add(mMusicStyle);
  448. lsGenEnable.add(true);
  449. lsUnlock.add(mLockBeforeUnlock);
  450. lsUnlockEnable.add(true);
  451. lsUnlock.add(mQuickUnlock);
  452. lsUnlockEnable.add(true);
  453. lsUnlock.add(mVolumeWake);
  454. lsUnlockEnable.add(true);
  455. lsApp.add(mCustomApp1);
  456. lsAppEnable.add(true);
  457. break;
  458. }
  459.  
  460. mCategoryGeneral.removeAll();
  461. for (int q = 0; q < lsGen.size(); q++) {
  462. Preference pref = lsGen.get(q);
  463. boolean enabled = lsGenEnable.get(q);
  464.  
  465. mCategoryGeneral.addPreference(pref);
  466. pref.setEnabled(enabled);
  467. if (!enabled && pref instanceof CheckBoxPreference) {
  468. ((CheckBoxPreference) pref).setChecked(false);
  469. }
  470. }
  471.  
  472. mCategoryUnlock.removeAll();
  473. for (int q = 0; q < lsUnlock.size(); q++) {
  474. Preference pref = lsUnlock.get(q);
  475. boolean enabled = lsUnlockEnable.get(q);
  476.  
  477. mCategoryUnlock.addPreference(pref);
  478. pref.setEnabled(enabled);
  479. if (!enabled && pref instanceof CheckBoxPreference) {
  480. ((CheckBoxPreference) pref).setChecked(false);
  481. }
  482. }
  483.  
  484. mCategoryCustom.removeAll();
  485. for (int q = 0; q < lsApp.size(); q++) {
  486. Preference pref = lsApp.get(q);
  487. boolean enabled = lsAppEnable.get(q);
  488.  
  489. mCategoryCustom.addPreference(pref);
  490. pref.setEnabled(enabled);
  491. if (!enabled && pref instanceof CheckBoxPreference) {
  492. ((CheckBoxPreference) pref).setChecked(false);
  493. }
  494. }
  495.  
  496. if (lsApp.size() < 1)
  497. prefSet.removePreference(mCategoryCustom);
  498. }
  499.  
  500. @Override
  501. public void onResume() {
  502. super.onResume();
  503. refreshSettings();
  504. }
  505.  
  506. public void refreshSettings() {
  507. if (Settings.System.getInt(getActivity().getContentResolver(), Settings.System.LOCKSCREEN_TYPE, 0) == 5 ||
  508. Settings.System.getInt(getActivity().getContentResolver(), Settings.System.LOCKSCREEN_TYPE, 0) == 6) {
  509. mCustomApp1.setSummary(getCustomRingAppSummary());
  510. } else {
  511. mCustomApp1.setSummary(mPicker.getFriendlyNameForUri(Settings.System.getString(getActivity().getContentResolver(),
  512. Settings.System.LOCKSCREEN_CUSTOM_ONE)));
  513. mCustomApp2.setSummary(mPicker.getFriendlyNameForUri(Settings.System.getString(getActivity().getContentResolver(),
  514. Settings.System.LOCKSCREEN_CUSTOM_TWO)));
  515. mCustomApp3.setSummary(mPicker.getFriendlyNameForUri(Settings.System.getString(getActivity().getContentResolver(),
  516. Settings.System.LOCKSCREEN_CUSTOM_THREE)));
  517. }
  518.  
  519. }
  520.  
  521. @Override
  522. public void shortcutPicked(String uri, String friendlyName, boolean isApplication) {
  523. if (mWhichApp == -1) {
  524. if (Settings.System.putString(getActivity().getContentResolver(), mCurrentCustomActivityString, uri)) {
  525. mCurrentCustomActivityPreference.setSummary(friendlyName);
  526. refreshSettings();
  527. }
  528. } else {
  529. Settings.System.putString(getContentResolver(),
  530. Settings.System.LOCKSCREEN_CUSTOM_RING_APP_ACTIVITIES[mWhichApp], uri);
  531. mCustomApp1.setSummary(getCustomRingAppSummary());
  532. mWhichApp = -1;
  533. }
  534. }
  535.  
  536. private String getCustomRingAppSummary() {
  537. String summary = "";
  538. String[] items = getCustomRingAppItems();
  539.  
  540. for (int q = 0; q < items.length; q++) {
  541. if (q != 0) {
  542. summary += ", ";
  543. }
  544. summary += items[q];
  545. }
  546.  
  547. return summary;
  548. }
  549.  
  550. private String[] getCustomRingAppItems() {
  551. ArrayList<String> items = new ArrayList<String>();
  552. for (int q = 0; q < mMaxRingCustomApps; q++) {
  553. String uri = Settings.System.getString(getContentResolver(),
  554. Settings.System.LOCKSCREEN_CUSTOM_RING_APP_ACTIVITIES[q]);
  555. if (uri != null) {
  556. items.add(mPicker.getFriendlyNameForUri(uri));
  557. }
  558. }
  559. return items.toArray(new String[0]);
  560. }
  561.  
  562. @Override
  563. public void onActivityResult(int requestCode, int resultCode, Intent data) {
  564. mPicker.onActivityResult(requestCode, resultCode, data);
  565. }
  566. }
Advertisement
Add Comment
Please, Sign In to add comment