refactoring 2

This commit is contained in:
madwasp79 2019-06-25 10:03:58 +03:00
parent e34ed50487
commit d83f80d65e
3 changed files with 48 additions and 48 deletions

View file

@ -146,9 +146,7 @@ public class NotesFragment extends OsmAndListFragment implements FragmentStateHo
listAdapter.setListener(createAdapterListener());
listAdapter.setPortrait(portrait);
listView.setAdapter(listAdapter);
if (getActivity() != null && getActivity() instanceof FavoritesActivity) {
restoreState(((FavoritesActivity) getActivity()).getItemPosition());
}
restoreState(getArguments());
}
@Override
@ -577,8 +575,10 @@ public class NotesFragment extends OsmAndListFragment implements FragmentStateHo
getMyApplication().getSettings().setMapLocationToShow(recording.getLatitude(), recording.getLongitude(), 15,
new PointDescription(recording.getSearchHistoryType(), recording.getName(getActivity(), true)),
true, recording);
Bundle b = itemPosition >= 0 ? storeState(NOTE_TAB, itemPosition) : null;
MapActivity.launchMapActivityMoveToTop(getActivity(), b);
Bundle b = new Bundle();
b.putInt(SCROLL_POSITION, itemPosition);
b.putInt(TAB_TO_OPEN, NOTE_TAB);
MapActivity.launchMapActivityMoveToTop(getActivity(), storeState(b));
}
private void editNote(final Recording recording) {
@ -619,15 +619,14 @@ public class NotesFragment extends OsmAndListFragment implements FragmentStateHo
}
@Override
public Bundle storeState(int tabId, int itemPosition) {
Bundle b = new Bundle();
b.putInt(SCROLL_POSITION, itemPosition);
b.putInt(TAB_TO_OPEN, tabId);
return b;
public Bundle storeState(Bundle bundle) {
return bundle;
}
@Override
public void restoreState(int position) {
public void restoreState(Bundle bundle) {
if (bundle != null && bundle.containsKey(SCROLL_POSITION)) {
int position= bundle.getInt(SCROLL_POSITION, 0);
int itemsCount = getListView().getAdapter().getCount();
if (itemsCount > 0 && itemsCount > position) {
if (position == 1) {
@ -637,4 +636,5 @@ public class NotesFragment extends OsmAndListFragment implements FragmentStateHo
}
}
}
}
}

View file

@ -102,6 +102,7 @@ public class FavoritesActivity extends TabActivity {
int tab = intent.getIntExtra(TAB_TO_OPEN, FAV_TAB);
if (mTabs.get(n).mTitle.equals(getString(tab))) {
mViewPager.setCurrentItem(n, false);
break;
}
}
@ -209,6 +210,11 @@ public class FavoritesActivity extends TabActivity {
@Override
public void onAttachFragment(Fragment fragment) {
if (fragment instanceof FragmentStateHolder && getIntent() != null) {
Bundle b = new Bundle();
b.putInt(SCROLL_POSITION, getIntent().getIntExtra(SCROLL_POSITION, 0));
fragment.setArguments(b);
}
fragList.add(new WeakReference<>(fragment));
}
@ -269,15 +275,9 @@ public class FavoritesActivity extends TabActivity {
public interface FragmentStateHolder {
Bundle storeState(int tabId, int itemPosition);
Bundle storeState(Bundle bundle);
void restoreState(int position);
}
public int getItemPosition() {
int p = itemPosition;
itemPosition = 0;
return p;
void restoreState(Bundle bundle);
}
}

View file

@ -1,5 +1,6 @@
package net.osmand.plus.osmedit;
import static net.osmand.plus.myplaces.FavoritesActivity.NOTE_TAB;
import static net.osmand.plus.myplaces.FavoritesActivity.OSM_TAB;
import static net.osmand.plus.myplaces.FavoritesActivity.SCROLL_POSITION;
import static net.osmand.plus.myplaces.FavoritesActivity.TAB_TO_OPEN;
@ -409,9 +410,7 @@ public class OsmEditsFragment extends OsmAndListFragment implements SendPoiDialo
public void onResume() {
super.onResume();
fetchData();
if (getActivity() != null && getActivity() instanceof FavoritesActivity) {
restoreState(((FavoritesActivity) getActivity()).getItemPosition());
}
restoreState(getArguments());
}
@Override
@ -656,7 +655,10 @@ public class OsmEditsFragment extends OsmAndListFragment implements SendPoiDialo
String name = (isOsmPoint ? ((OpenstreetmapPoint) osmPoint).getName() : ((OsmNotesPoint) osmPoint).getText());
getMyApplication().getSettings().setMapLocationToShow(osmPoint.getLatitude(), osmPoint.getLongitude(), 15,
new PointDescription(type, name), true, osmPoint); //$NON-NLS-1$
MapActivity.launchMapActivityMoveToTop(getActivity(), storeState(OSM_TAB, itemPosition));
Bundle b = new Bundle();
b.putInt(SCROLL_POSITION, itemPosition);
b.putInt(TAB_TO_OPEN, OSM_TAB);
MapActivity.launchMapActivityMoveToTop(getActivity(), storeState(b));
}
private void deletePoint(OsmPoint osmPoint) {
@ -902,17 +904,14 @@ public class OsmEditsFragment extends OsmAndListFragment implements SendPoiDialo
}
}
@Override
public Bundle storeState(int tabId, int itemPosition) {
Bundle b = new Bundle();
b.putInt(SCROLL_POSITION, itemPosition);
b.putInt(TAB_TO_OPEN, tabId);
return b;
public Bundle storeState(Bundle bundle) {
return bundle;
}
@Override
public void restoreState(int position) {
public void restoreState(Bundle bundle) {
if (bundle != null && bundle.containsKey(SCROLL_POSITION)) {
int position= bundle.getInt(SCROLL_POSITION, 0);
int itemsCount = getListView().getAdapter().getCount();
if (itemsCount > 0 && itemsCount > position) {
if (position == 1) {
@ -922,4 +921,5 @@ public class OsmEditsFragment extends OsmAndListFragment implements SendPoiDialo
}
}
}
}
}