@TargetApi(Build.VERSION_CODES.HONEYCOMB) @Override public View onCreateView( LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { final View view = inflater.inflate(R.layout.fragment_edit_poi, container, false); final OsmandSettings settings = getMyApplication().getSettings(); boolean isLightTheme = settings.OSMAND_THEME.get() == OsmandSettings.OSMAND_LIGHT_THEME; if (savedInstanceState != null) { Map<String, String> mp = (Map<String, String>) savedInstanceState.getSerializable(TAGS_LIST); editPoiData.updateTags(mp); } Toolbar toolbar = (Toolbar) view.findViewById(R.id.toolbar); toolbar.setTitle(R.string.poi_create_title); toolbar.setNavigationIcon(R.drawable.abc_ic_ab_back_mtrl_am_alpha); toolbar.setNavigationOnClickListener( new View.OnClickListener() { @Override public void onClick(View v) { dismissCheckForChanges(); } }); viewPager = (ViewPager) view.findViewById(R.id.viewpager); String basicTitle = getResources().getString(R.string.tab_title_basic); String extendedTitle = getResources().getString(R.string.tab_title_advanced); final MyAdapter pagerAdapter = new MyAdapter(getChildFragmentManager(), basicTitle, extendedTitle); viewPager.setAdapter(pagerAdapter); viewPager.addOnPageChangeListener( new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int i, float v, int i1) {} @Override public void onPageSelected(int i) { ((OnFragmentActivatedListener) pagerAdapter.getItem(i)).onFragmentActivated(); } @Override public void onPageScrollStateChanged(int i) {} }); final TabLayout tabLayout = (TabLayout) view.findViewById(R.id.tab_layout); tabLayout.setTabMode(TabLayout.MODE_SCROLLABLE); // Hack due to bug in design support library v22.2.1 // https://code.google.com/p/android/issues/detail?id=180462 // TODO remove in new version if (ViewCompat.isLaidOut(tabLayout)) { tabLayout.setupWithViewPager(viewPager); } else { tabLayout.addOnLayoutChangeListener( new View.OnLayoutChangeListener() { @Override public void onLayoutChange( View v, int left, int top, int right, int bottom, int oldLeft, int oldTop, int oldRight, int oldBottom) { tabLayout.setupWithViewPager(viewPager); tabLayout.removeOnLayoutChangeListener(this); } }); } ImageButton onlineDocumentationButton = (ImageButton) view.findViewById(R.id.onlineDocumentationButton); onlineDocumentationButton.setOnClickListener( new View.OnClickListener() { @Override public void onClick(View v) { getActivity() .startActivity( new Intent( Intent.ACTION_VIEW, Uri.parse("https://wiki.openstreetmap.org/wiki/Map_Features"))); } }); final int colorId = isLightTheme ? R.color.inactive_item_orange : R.color.dash_search_icon_dark; final int color = getResources().getColor(colorId); onlineDocumentationButton.setImageDrawable( getMyApplication().getIconsCache().getPaintedContentIcon(R.drawable.ic_action_help, color)); final ImageButton poiTypeButton = (ImageButton) view.findViewById(R.id.poiTypeButton); poiTypeButton.setOnClickListener( new View.OnClickListener() { @Override public void onClick(View v) { DialogFragment fragment = PoiTypeDialogFragment.createInstance(editPoiData.amenity); fragment.show(getChildFragmentManager(), "PoiTypeDialogFragment"); } }); EditText poiNameEditText = (EditText) view.findViewById(R.id.poiNameEditText); poiNameEditText.addTextChangedListener( new TextWatcher() { @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) {} @Override public void onTextChanged(CharSequence s, int start, int before, int count) {} @Override public void afterTextChanged(Editable s) { if (!getEditPoiData().isInEdit()) { if (!TextUtils.isEmpty(s)) { getEditPoiData().putTag(OSMSettings.OSMTagKey.NAME.getValue(), s.toString()); } else { getEditPoiData().removeTag(OSMSettings.OSMTagKey.NAME.getValue()); } } } }); poiNameEditText.setText(node.getTag(OSMSettings.OSMTagKey.NAME)); poiTypeTextInputLayout = (TextInputLayout) view.findViewById(R.id.poiTypeTextInputLayout); poiTypeEditText = (AutoCompleteTextView) view.findViewById(R.id.poiTypeEditText); poiTypeEditText.addTextChangedListener( new TextWatcher() { @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) {} @Override public void onTextChanged(CharSequence s, int start, int before, int count) {} @Override public void afterTextChanged(Editable s) { if (!getEditPoiData().isInEdit()) { getEditPoiData().putTag(EditPoiData.POI_TYPE_TAG, s.toString()); } } }); poiNameEditText.setOnEditorActionListener(mOnEditorActionListener); poiTypeEditText.setOnEditorActionListener(mOnEditorActionListener); poiTypeEditText.setText(editPoiData.amenity.getSubType()); Button saveButton = (Button) view.findViewById(R.id.saveButton); saveButton.setText(R.string.shared_string_save); saveButton.setOnClickListener( new View.OnClickListener() { @Override public void onClick(View v) { save(); } }); Button cancelButton = (Button) view.findViewById(R.id.cancelButton); cancelButton.setOnClickListener( new View.OnClickListener() { @Override public void onClick(View v) { FragmentManager fragmentManager = getActivity().getSupportFragmentManager(); fragmentManager.beginTransaction().remove(EditPoiDialogFragment.this).commit(); fragmentManager.popBackStack(); } }); setAdapterForPoiTypeEditText(); setCancelable(false); return view; }