public void close() { myScreen.getDialog().dismiss(); ZLPreferenceActivity.this.getListView().invalidateViews(); }
@Override public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) { // customize the sub-preference title according the selected profile String title = ""; if (preference.getKey() != null && preference instanceof PreferenceScreen && SettingsActivity.SCREEN_ID_NAVIGATION_SETTINGS.equals(preference.getKey())) { final ApplicationMode appMode = osmandSettings.getApplicationMode(); PreferenceScreen scr = (PreferenceScreen) preference; title = scr.getTitle().toString(); if (title.startsWith("-")) { title = title.substring(1); } Builder builder = new AlertDialog.Builder(this); View view = getLayoutInflater().inflate(R.layout.navigate_mode, null); builder.setView(view); final AlertDialog dlg = builder.show(); final Button[] buttons = new Button[ApplicationMode.values().length]; buttons[ApplicationMode.CAR.ordinal()] = (Button) view.findViewById(R.id.CarButton); buttons[ApplicationMode.BICYCLE.ordinal()] = (Button) view.findViewById(R.id.BicycleButton); buttons[ApplicationMode.PEDESTRIAN.ordinal()] = (Button) view.findViewById(R.id.PedestrianButton); final Dialog scrDialog = scr.getDialog(); final String tlt = " " + title; for (int i = 0; i < buttons.length; i++) { if (buttons[i] != null) { final int ind = i; final Button b = buttons[i]; b.setOnClickListener( new View.OnClickListener() { @Override public void onClick(View v) { ApplicationMode selected = ApplicationMode.values()[ind]; osmandSettings.APPLICATION_MODE.set(selected); updateAllSettings(); scrDialog.setTitle( tlt + " [" + selected.toHumanString(SettingsActivity.this) + "]"); dlg.dismiss(); } }); } } scrDialog.setTitle(tlt + " [" + appMode + "] "); scr.getDialog() .setOnDismissListener( new OnDismissListener() { @Override public void onDismiss(DialogInterface dialog) { osmandSettings.APPLICATION_MODE.set(appMode); updateAllSettings(); } }); } else if (preference instanceof PreferenceScreen) { final PreferenceScreen scr = (PreferenceScreen) preference; title = scr.getTitle().toString(); scr.getDialog().setTitle(" " + title); } if (preference instanceof PreferenceScreen) { final PreferenceScreen scr = (PreferenceScreen) preference; CustomTitleBarView titleBar = new CustomTitleBarView(title, R.drawable.tab_settings_screen_icon, null) { @Override public void backPressed() { scr.getDialog().dismiss(); } }; View titleView = getLayoutInflater().inflate(titleBar.getTitleBarLayout(), null); titleBar.init(titleView); // View decorView = scr.getDialog().getWindow().getDecorView(); // LinearLayout ll = new LinearLayout(titleView.getContext()); // scr.getDialog().getWindow().setContentView(ll); View dv = scr.getDialog().getWindow().getDecorView(); ListView ls = (ListView) dv.findViewById(android.R.id.list); if (ls != null) { ls.addFooterView(titleView); } // LayoutParams lp = new ViewGroup.LayoutParams(LayoutParams.WRAP_CONTENT, // LayoutParams.WRAP_CONTENT); // scr.getDialog().addContentView(titleView, lp); // ll.setOrientation(LinearLayout.VERTICAL); // ll.addView(titleView); // ll.addView(decorView); } if (preference == applicationDir) { return true; } return super.onPreferenceTreeClick(preferenceScreen, preference); }