Save current tab
This commit is contained in:
parent
7673d505d8
commit
cd790c9978
2 changed files with 12 additions and 15 deletions
|
@ -1661,6 +1661,10 @@ public class OsmandSettings {
|
||||||
public static final int OSMAND_DARK_THEME = 0;
|
public static final int OSMAND_DARK_THEME = 0;
|
||||||
public static final int OSMAND_LIGHT_THEME = 1;
|
public static final int OSMAND_LIGHT_THEME = 1;
|
||||||
public static final int OSMAND_LIGHT_DARK_ACTIONBAR_THEME = 2;
|
public static final int OSMAND_LIGHT_DARK_ACTIONBAR_THEME = 2;
|
||||||
|
|
||||||
|
public final CommonPreference<Integer> SEARCH_TAB =
|
||||||
|
new IntPreference("SEARCH_TAB", 0).makeGlobal().cache();
|
||||||
|
|
||||||
public final CommonPreference<Integer> OSMAND_THEME =
|
public final CommonPreference<Integer> OSMAND_THEME =
|
||||||
new IntPreference("osmand_theme", OSMAND_DARK_THEME).makeGlobal().cache();
|
new IntPreference("osmand_theme", OSMAND_DARK_THEME).makeGlobal().cache();
|
||||||
|
|
||||||
|
|
|
@ -56,8 +56,6 @@ public class SearchActivity extends SherlockFragmentActivity implements OsmAndLo
|
||||||
public static final int HISTORY_TAB_INDEX = 3;
|
public static final int HISTORY_TAB_INDEX = 3;
|
||||||
public static final int TRANSPORT_TAB_INDEX = 4;
|
public static final int TRANSPORT_TAB_INDEX = 4;
|
||||||
|
|
||||||
public static final String TAB_INDEX_EXTRA = "TAB_INDEX_EXTRA";
|
|
||||||
|
|
||||||
protected static final int POSITION_CURRENT_LOCATION = 1;
|
protected static final int POSITION_CURRENT_LOCATION = 1;
|
||||||
protected static final int POSITION_LAST_MAP_VIEW = 2;
|
protected static final int POSITION_LAST_MAP_VIEW = 2;
|
||||||
protected static final int POSITION_FAVORITES = 3;
|
protected static final int POSITION_FAVORITES = 3;
|
||||||
|
@ -106,6 +104,7 @@ public class SearchActivity extends SherlockFragmentActivity implements OsmAndLo
|
||||||
getSupportActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);
|
getSupportActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);
|
||||||
setContentView(R.layout.search_main);
|
setContentView(R.layout.search_main);
|
||||||
settings = ((OsmandApplication) getApplication()).getSettings();
|
settings = ((OsmandApplication) getApplication()).getSettings();
|
||||||
|
Integer tab = settings.SEARCH_TAB.get();
|
||||||
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
|
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
|
||||||
getSupportActionBar().setTitle("");
|
getSupportActionBar().setTitle("");
|
||||||
// getSupportActionBar().setTitle(R.string.select_search_position);
|
// getSupportActionBar().setTitle(R.string.select_search_position);
|
||||||
|
@ -119,7 +118,7 @@ public class SearchActivity extends SherlockFragmentActivity implements OsmAndLo
|
||||||
tabHost.setup();
|
tabHost.setup();
|
||||||
|
|
||||||
ViewPager mViewPager = (ViewPager)findViewById(R.id.pager);
|
ViewPager mViewPager = (ViewPager)findViewById(R.id.pager);
|
||||||
mTabsAdapter = new TabsAdapter(this, tabHost, tabinfo, mViewPager);
|
mTabsAdapter = new TabsAdapter(this, tabHost, tabinfo, mViewPager, settings);
|
||||||
TabSpec poiTab = tabHost.newTabSpec(SEARCH_POI).setIndicator(getTabIndicator(tabHost, R.drawable.tab_search_poi_icon, R.string.poi));
|
TabSpec poiTab = tabHost.newTabSpec(SEARCH_POI).setIndicator(getTabIndicator(tabHost, R.drawable.tab_search_poi_icon, R.string.poi));
|
||||||
mTabsAdapter.addTab(poiTab, SearchPoiFilterActivity.class, null);
|
mTabsAdapter.addTab(poiTab, SearchPoiFilterActivity.class, null);
|
||||||
|
|
||||||
|
@ -135,22 +134,15 @@ public class SearchActivity extends SherlockFragmentActivity implements OsmAndLo
|
||||||
mTabsAdapter.addTab(historyTab, SearchHistoryFragment.class, null);
|
mTabsAdapter.addTab(historyTab, SearchHistoryFragment.class, null);
|
||||||
TabSpec transportTab = tabHost.newTabSpec(SEARCH_TRANSPORT).setIndicator(getTabIndicator(tabHost, R.drawable.tab_search_transport_icon, R.string.transport));
|
TabSpec transportTab = tabHost.newTabSpec(SEARCH_TRANSPORT).setIndicator(getTabIndicator(tabHost, R.drawable.tab_search_transport_icon, R.string.transport));
|
||||||
mTabsAdapter.addTab(transportTab, SearchTransportFragment.class, null);
|
mTabsAdapter.addTab(transportTab, SearchTransportFragment.class, null);
|
||||||
tabHost.setCurrentTab(POI_TAB_INDEX);
|
tabHost.setCurrentTab(tab);
|
||||||
if (savedInstanceState != null) {
|
|
||||||
tabHost.setCurrentTabByTag(savedInstanceState.getString("tab"));
|
|
||||||
}
|
|
||||||
|
|
||||||
setTopSpinner();
|
setTopSpinner();
|
||||||
|
|
||||||
Log.i("net.osmand", "Start on create " + (System.currentTimeMillis() - t ));
|
Log.i("net.osmand", "Start on create " + (System.currentTimeMillis() - t ));
|
||||||
|
|
||||||
Intent intent = getIntent();
|
Intent intent = getIntent();
|
||||||
int tabIndex = 0;
|
OsmandSettings settings = ((OsmandApplication) getApplication()).getSettings();
|
||||||
if (intent != null) {
|
if (intent != null) {
|
||||||
if(intent.hasExtra(TAB_INDEX_EXTRA)){
|
|
||||||
tabIndex = intent.getIntExtra(TAB_INDEX_EXTRA, POI_TAB_INDEX);
|
|
||||||
mTabsAdapter.mTabHost.setCurrentTab(tabIndex);
|
|
||||||
}
|
|
||||||
double lat = intent.getDoubleExtra(SEARCH_LAT, 0);
|
double lat = intent.getDoubleExtra(SEARCH_LAT, 0);
|
||||||
double lon = intent.getDoubleExtra(SEARCH_LON, 0);
|
double lon = intent.getDoubleExtra(SEARCH_LON, 0);
|
||||||
if (lat != 0 || lon != 0) {
|
if (lat != 0 || lon != 0) {
|
||||||
|
@ -234,7 +226,6 @@ public class SearchActivity extends SherlockFragmentActivity implements OsmAndLo
|
||||||
@Override
|
@Override
|
||||||
protected void onSaveInstanceState(Bundle outState) {
|
protected void onSaveInstanceState(Bundle outState) {
|
||||||
super.onSaveInstanceState(outState);
|
super.onSaveInstanceState(outState);
|
||||||
outState.putString("tab", mTabsAdapter.mTabHost.getCurrentTabTag());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -358,7 +349,6 @@ public class SearchActivity extends SherlockFragmentActivity implements OsmAndLo
|
||||||
// mTabsAdapter.notifyDataSetChanged();
|
// mTabsAdapter.notifyDataSetChanged();
|
||||||
// mTabsAdapter.mViewPager.invalidate();
|
// mTabsAdapter.mViewPager.invalidate();
|
||||||
Intent intent = getIntent();
|
Intent intent = getIntent();
|
||||||
intent.putExtra(TAB_INDEX_EXTRA, ADDRESS_TAB_INDEX);
|
|
||||||
finish();
|
finish();
|
||||||
startActivity(intent);
|
startActivity(intent);
|
||||||
}
|
}
|
||||||
|
@ -382,6 +372,7 @@ public class SearchActivity extends SherlockFragmentActivity implements OsmAndLo
|
||||||
private final ViewPager mViewPager;
|
private final ViewPager mViewPager;
|
||||||
private final ArrayList<TabInfo> mTabs = new ArrayList<TabInfo>();
|
private final ArrayList<TabInfo> mTabs = new ArrayList<TabInfo>();
|
||||||
private TextView tabInfo;
|
private TextView tabInfo;
|
||||||
|
private OsmandSettings osmSettings;
|
||||||
|
|
||||||
static final class TabInfo {
|
static final class TabInfo {
|
||||||
private final String tag;
|
private final String tag;
|
||||||
|
@ -411,12 +402,13 @@ public class SearchActivity extends SherlockFragmentActivity implements OsmAndLo
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public TabsAdapter(FragmentActivity activity, TabHost tabHost, TextView tabinfo, ViewPager pager) {
|
public TabsAdapter(FragmentActivity activity, TabHost tabHost, TextView tabinfo, ViewPager pager, OsmandSettings settings) {
|
||||||
super(activity.getSupportFragmentManager());
|
super(activity.getSupportFragmentManager());
|
||||||
mContext = activity;
|
mContext = activity;
|
||||||
mTabHost = tabHost;
|
mTabHost = tabHost;
|
||||||
tabInfo = tabinfo;
|
tabInfo = tabinfo;
|
||||||
mViewPager = pager;
|
mViewPager = pager;
|
||||||
|
osmSettings = settings;
|
||||||
mTabHost.setOnTabChangedListener(this);
|
mTabHost.setOnTabChangedListener(this);
|
||||||
mViewPager.setAdapter(this);
|
mViewPager.setAdapter(this);
|
||||||
mViewPager.setOnPageChangeListener(this);
|
mViewPager.setOnPageChangeListener(this);
|
||||||
|
@ -447,6 +439,7 @@ public class SearchActivity extends SherlockFragmentActivity implements OsmAndLo
|
||||||
@Override
|
@Override
|
||||||
public void onTabChanged(String tabId) {
|
public void onTabChanged(String tabId) {
|
||||||
int position = mTabHost.getCurrentTab();
|
int position = mTabHost.getCurrentTab();
|
||||||
|
osmSettings.SEARCH_TAB.set(position);
|
||||||
mViewPager.setCurrentItem(position);
|
mViewPager.setCurrentItem(position);
|
||||||
if (SEARCH_POI.equals(tabId)) {
|
if (SEARCH_POI.equals(tabId)) {
|
||||||
tabInfo.setText(R.string.poi_search_desc);
|
tabInfo.setText(R.string.poi_search_desc);
|
||||||
|
|
Loading…
Reference in a new issue