@Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.action_add_int: showPrefDialog(PreferenceType.INT); return true; case R.id.action_add_boolean: showPrefDialog(PreferenceType.BOOLEAN); return true; case R.id.action_add_string: showPrefDialog(PreferenceType.STRING); return true; case R.id.action_add_float: showPrefDialog(PreferenceType.FLOAT); return true; case R.id.action_add_long: showPrefDialog(PreferenceType.LONG); return true; case R.id.action_add_stringset: showPrefDialog(PreferenceType.STRINGSET); return true; case R.id.action_edit_file: if (preferenceFile == null) { if (getActivity() != null) { getActivity().finish(); } } Intent intent = new Intent(getActivity(), FileEditorActivity.class); intent.putExtra(ARG_NAME, mName); intent.putExtra(ARG_PATH, mPath); intent.putExtra(ARG_PACKAGE_NAME, mPackageName); startActivityForResult(intent, CODE_EDIT_FILE); return true; case R.id.action_sort_alpha: setSortType(PreferenceSortType.ALPHANUMERIC); return true; case R.id.action_sort_type: setSortType(PreferenceSortType.TYPE_AND_ALPHANUMERIC); return true; case R.id.action_backup_file: if (mListener != null) { mListener.onBackupFile(mFullPath); } return true; case R.id.action_restore_file: restoreBackup(); return true; default: return super.onOptionsItemSelected(item); } }
@SuppressWarnings("ConstantConditions") @Override public void onPrepareOptionsMenu(Menu menu) { menu.findItem(R.id.action_add) .setEnabled(preferenceFile != null && preferenceFile.isValidPreferenceFile()); menu.findItem(R.id.action_add) .setIcon( preferenceFile != null && preferenceFile.isValidPreferenceFile() ? R.drawable.ic_action_add : R.drawable.ic_action_add_disabled); menu.findItem(R.id.action_sort_alpha) .setChecked(PreferencesActivity.preferenceSortType == PreferenceSortType.ALPHANUMERIC); menu.findItem(R.id.action_sort_type) .setChecked( PreferencesActivity.preferenceSortType == PreferenceSortType.TYPE_AND_ALPHANUMERIC); menu.findItem(R.id.action_restore_file) .setVisible(mListener != null && mListener.canRestoreFile(mFullPath)); super.onPrepareOptionsMenu(menu); }
private void restoreBackup() { if (mListener != null) { RestoreDialogFragment.show( this, getFragmentManager(), mFullPath, mListener.getBackups(mFullPath)); } }