package com.hdweiss.morgand.gui.edit; import android.os.Bundle; import android.text.TextUtils; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.view.WindowManager; import android.widget.ArrayAdapter; import android.widget.AutoCompleteTextView; import android.widget.TextView; import com.hdweiss.morgand.R; import com.hdweiss.morgand.data.dao.OrgNode; import com.hdweiss.morgand.settings.PreferenceUtils; import com.hdweiss.morgand.utils.Utils; import java.util.HashSet; public class EditHeadingFragment extends BaseEditFragment { private AutoCompleteTextView headingView; private TextView inheritedTagsView; private AutoCompleteTextView tagsView; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.edit_heading_fragment, container, false); tagsView = (AutoCompleteTextView) view.findViewById(R.id.tags); inheritedTagsView = (TextView) view.findViewById(R.id.inheritedTags); headingView = (AutoCompleteTextView) view.findViewById(R.id.heading); headingView.setOnEditorActionListener(this); headingView.setThreshold(0); headingView.requestFocus(); getDialog().getWindow().setSoftInputMode( WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE); return view; } @Override public void onViewCreated(View view, Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); if (controller == null) return; OrgNode node = controller.getNode(); populateView(node.getTitle(), node.tags, node.inheritedTags); populateAutocompletion(); switch (controller.getMode()) { case Add: getDialog().setTitle(R.string.action_capture); break; case Edit: getDialog().setTitle(R.string.action_edit); break; } } private void populateView(String heading, String tags, String inheritedTags) { if (heading != null) { headingView.setText(heading); headingView.setSelection(headingView.getText().length()); } if (TextUtils.isEmpty(inheritedTags)) inheritedTagsView.setVisibility(View.GONE); else { inheritedTagsView.setVisibility(View.VISIBLE); inheritedTagsView.setText(inheritedTags); } if (tags != null) tagsView.setText(tags); } private void populateAutocompletion() { HashSet<String> todoKeywords = PreferenceUtils.getAllTodoKeywords(); if (todoKeywords.size() == 0) return; ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_dropdown_item_1line, Utils.toList(todoKeywords)); headingView.setAdapter(adapter); } @Override public OrgNode getEditedNode() { OrgNode editNode = controller.getNode(); editNode.title = headingView.getText().toString(); editNode.tags = tagsView.getText().toString(); return editNode; } }