forked from organicmaps/organicmaps
[android] Fix NPE in PlacePage*.destroy()
Follow up 73391ad
Fixes #4606
Signed-off-by: Roman Tsisyk <roman@tsisyk.com>
This commit is contained in:
parent
d4bf7a73da
commit
f599894041
7 changed files with 48 additions and 48 deletions
|
@ -37,7 +37,7 @@ public class PlacePageBookmarkFragment extends Fragment implements View.OnClickL
|
|||
@Nullable
|
||||
private WebView mWvBookmarkNote;
|
||||
|
||||
private PlacePageViewModel viewModel;
|
||||
private PlacePageViewModel mViewModel;
|
||||
|
||||
private Bookmark currentBookmark;
|
||||
|
||||
|
@ -45,6 +45,7 @@ public class PlacePageBookmarkFragment extends Fragment implements View.OnClickL
|
|||
@Override
|
||||
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState)
|
||||
{
|
||||
mViewModel = new ViewModelProvider(requireActivity()).get(PlacePageViewModel.class);
|
||||
return inflater.inflate(R.layout.place_page_bookmark_fragment, container, false);
|
||||
}
|
||||
|
||||
|
@ -59,8 +60,7 @@ public class PlacePageBookmarkFragment extends Fragment implements View.OnClickL
|
|||
final View editBookmarkBtn = mFrame.findViewById(R.id.tv__bookmark_edit);
|
||||
editBookmarkBtn.setOnClickListener(this);
|
||||
|
||||
viewModel = new ViewModelProvider(requireActivity()).get(PlacePageViewModel.class);
|
||||
viewModel.getMapObject().observe(requireActivity(), this);
|
||||
mViewModel.getMapObject().observe(requireActivity(), this);
|
||||
}
|
||||
|
||||
private void initWebView()
|
||||
|
@ -75,10 +75,10 @@ public class PlacePageBookmarkFragment extends Fragment implements View.OnClickL
|
|||
}
|
||||
|
||||
@Override
|
||||
public void onDestroy()
|
||||
public void onDestroyView()
|
||||
{
|
||||
super.onDestroy();
|
||||
viewModel.getMapObject().removeObserver(this);
|
||||
super.onDestroyView();
|
||||
mViewModel.getMapObject().removeObserver(this);
|
||||
}
|
||||
|
||||
private void updateBookmarkDetails()
|
||||
|
@ -154,6 +154,6 @@ public class PlacePageBookmarkFragment extends Fragment implements View.OnClickL
|
|||
Bookmark updatedBookmark = BookmarkManager.INSTANCE.updateBookmarkPlacePage(bookmarkId);
|
||||
if (updatedBookmark == null)
|
||||
return;
|
||||
viewModel.setMapObject(updatedBookmark);
|
||||
mViewModel.setMapObject(updatedBookmark);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -30,12 +30,13 @@ public final class PlacePageButtons extends Fragment implements Observer<List<Pl
|
|||
|
||||
private PlacePageButtonClickListener mItemListener;
|
||||
private ViewGroup mButtonsContainer;
|
||||
private PlacePageViewModel viewModel;
|
||||
private PlacePageViewModel mViewModel;
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState)
|
||||
{
|
||||
mViewModel = new ViewModelProvider(requireActivity()).get(PlacePageViewModel.class);
|
||||
return inflater.inflate(R.layout.pp_buttons_fragment, container, false);
|
||||
}
|
||||
|
||||
|
@ -49,9 +50,8 @@ public final class PlacePageButtons extends Fragment implements Observer<List<Pl
|
|||
return windowInsets;
|
||||
});
|
||||
mMaxButtons = getResources().getInteger(R.integer.pp_buttons_max);
|
||||
viewModel = new ViewModelProvider(requireActivity()).get(PlacePageViewModel.class);
|
||||
viewModel.getCurrentButtons().observe(requireActivity(), this);
|
||||
createButtons(viewModel.getCurrentButtons().getValue());
|
||||
mViewModel.getCurrentButtons().observe(requireActivity(), this);
|
||||
createButtons(mViewModel.getCurrentButtons().getValue());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -69,10 +69,10 @@ public final class PlacePageButtons extends Fragment implements Observer<List<Pl
|
|||
}
|
||||
|
||||
@Override
|
||||
public void onDestroy()
|
||||
public void onDestroyView()
|
||||
{
|
||||
super.onDestroy();
|
||||
viewModel.getCurrentButtons().removeObserver(this);
|
||||
super.onDestroyView();
|
||||
mViewModel.getCurrentButtons().removeObserver(this);
|
||||
}
|
||||
|
||||
private @NonNull
|
||||
|
|
|
@ -65,7 +65,7 @@ public class PlacePageController implements Initializable<Activity>,
|
|||
private final AppCompatActivity mMwmActivity;
|
||||
private final int mButtonsHeight;
|
||||
private final int mMaxButtons;
|
||||
private final PlacePageViewModel viewModel;
|
||||
private final PlacePageViewModel mViewModel;
|
||||
private int mPreviewHeight;
|
||||
private int mFrameHeight;
|
||||
private boolean mDeactivateMapSelection = true;
|
||||
|
@ -135,7 +135,7 @@ public class PlacePageController implements Initializable<Activity>,
|
|||
mButtonsHeight = (int) mMwmActivity.getResources()
|
||||
.getDimension(R.dimen.place_page_buttons_height);
|
||||
mMaxButtons = mMwmActivity.getResources().getInteger(R.integer.pp_buttons_max);
|
||||
viewModel = new ViewModelProvider(mMwmActivity).get(PlacePageViewModel.class);
|
||||
mViewModel = new ViewModelProvider(mMwmActivity).get(PlacePageViewModel.class);
|
||||
|
||||
ViewCompat.setOnApplyWindowInsetsListener(mPlacePage, (view, windowInsets) -> {
|
||||
mCurrentWindowInsets = windowInsets;
|
||||
|
@ -186,7 +186,7 @@ public class PlacePageController implements Initializable<Activity>,
|
|||
@Nullable
|
||||
public ArrayList<MenuBottomSheetItem> getMenuBottomSheetItems(String id)
|
||||
{
|
||||
final List<PlacePageButtons.ButtonType> currentItems = viewModel.getCurrentButtons().getValue();
|
||||
final List<PlacePageButtons.ButtonType> currentItems = mViewModel.getCurrentButtons().getValue();
|
||||
if (currentItems == null || currentItems.size() <= mMaxButtons)
|
||||
return null;
|
||||
ArrayList<MenuBottomSheetItem> items = new ArrayList<>();
|
||||
|
@ -206,10 +206,10 @@ public class PlacePageController implements Initializable<Activity>,
|
|||
{
|
||||
mDeactivateMapSelection = true;
|
||||
MapObject mapObject = (MapObject) data;
|
||||
final MapObject previousMapObject = viewModel.getMapObject().getValue();
|
||||
final MapObject previousMapObject = mViewModel.getMapObject().getValue();
|
||||
// Only collapse the place page if the data is different from the one already available
|
||||
mShouldCollapse = PlacePageUtils.isHiddenState(mPlacePageBehavior.getState()) || !MapObject.same(previousMapObject, mapObject);
|
||||
viewModel.setMapObject(mapObject);
|
||||
mViewModel.setMapObject(mapObject);
|
||||
}
|
||||
|
||||
private void resetPlacePageHeightBounds()
|
||||
|
@ -401,7 +401,7 @@ public class PlacePageController implements Initializable<Activity>,
|
|||
.remove(placePageFragment)
|
||||
.commitNow();
|
||||
}
|
||||
viewModel.setMapObject(null);
|
||||
mViewModel.setMapObject(null);
|
||||
}
|
||||
|
||||
private void createPlacePageFragments()
|
||||
|
@ -459,7 +459,7 @@ public class PlacePageController implements Initializable<Activity>,
|
|||
}
|
||||
buttons.add(PlacePageButtons.ButtonType.SHARE);
|
||||
}
|
||||
viewModel.setCurrentButtons(buttons);
|
||||
mViewModel.setCurrentButtons(buttons);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -480,13 +480,13 @@ public class PlacePageController implements Initializable<Activity>,
|
|||
public void initialize(@Nullable Activity activity)
|
||||
{
|
||||
Objects.requireNonNull(activity);
|
||||
viewModel.getMapObject().observe((MwmActivity) activity, this);
|
||||
mViewModel.getMapObject().observe((MwmActivity) activity, this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void destroy()
|
||||
{
|
||||
viewModel.getMapObject().removeObserver(this);
|
||||
mViewModel.getMapObject().removeObserver(this);
|
||||
}
|
||||
|
||||
public interface SlideListener
|
||||
|
|
|
@ -56,7 +56,7 @@ public class PlacePageLinksFragment extends Fragment implements Observer<MapObje
|
|||
private View mWikimedia;
|
||||
private TextView mTvWikimedia;
|
||||
|
||||
private PlacePageViewModel viewModel;
|
||||
private PlacePageViewModel mViewModel;
|
||||
private MapObject mMapObject;
|
||||
|
||||
private static void refreshMetadataOrHide(String metadata, View metaLayout, TextView metaTv)
|
||||
|
@ -85,6 +85,7 @@ public class PlacePageLinksFragment extends Fragment implements Observer<MapObje
|
|||
@Override
|
||||
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState)
|
||||
{
|
||||
mViewModel = new ViewModelProvider(requireActivity()).get(PlacePageViewModel.class);
|
||||
return inflater.inflate(R.layout.place_page_links_fragment, container, false);
|
||||
}
|
||||
|
||||
|
@ -134,8 +135,7 @@ public class PlacePageLinksFragment extends Fragment implements Observer<MapObje
|
|||
mLinePage.setOnClickListener((v) -> openUrl(Metadata.MetadataType.FMD_CONTACT_LINE));
|
||||
mLinePage.setOnLongClickListener((v) -> copyUrl(mLinePage, Metadata.MetadataType.FMD_CONTACT_LINE));
|
||||
|
||||
viewModel = new ViewModelProvider(requireActivity()).get(PlacePageViewModel.class);
|
||||
viewModel.getMapObject().observe(requireActivity(), this);
|
||||
mViewModel.getMapObject().observe(requireActivity(), this);
|
||||
}
|
||||
|
||||
private boolean isSocialUsername(Metadata.MetadataType type)
|
||||
|
@ -218,10 +218,10 @@ public class PlacePageLinksFragment extends Fragment implements Observer<MapObje
|
|||
}
|
||||
|
||||
@Override
|
||||
public void onDestroy()
|
||||
public void onDestroyView()
|
||||
{
|
||||
super.onDestroy();
|
||||
viewModel.getMapObject().removeObserver(this);
|
||||
super.onDestroyView();
|
||||
mViewModel.getMapObject().removeObserver(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -38,12 +38,13 @@ public class PlacePageOpeningHoursFragment extends Fragment implements Observer<
|
|||
private RecyclerView mFullWeekOpeningHours;
|
||||
private PlaceOpeningHoursAdapter mOpeningHoursAdapter;
|
||||
|
||||
private PlacePageViewModel viewModel;
|
||||
private PlacePageViewModel mViewModel;
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState)
|
||||
{
|
||||
mViewModel = new ViewModelProvider(requireActivity()).get(PlacePageViewModel.class);
|
||||
return inflater.inflate(R.layout.place_page_opening_hours_fragment, container, false);
|
||||
}
|
||||
|
||||
|
@ -59,8 +60,7 @@ public class PlacePageOpeningHoursFragment extends Fragment implements Observer<
|
|||
mOpeningHoursAdapter = new PlaceOpeningHoursAdapter();
|
||||
mFullWeekOpeningHours.setAdapter(mOpeningHoursAdapter);
|
||||
|
||||
viewModel = new ViewModelProvider(requireActivity()).get(PlacePageViewModel.class);
|
||||
viewModel.getMapObject().observe(requireActivity(), this);
|
||||
mViewModel.getMapObject().observe(requireActivity(), this);
|
||||
}
|
||||
|
||||
private void refreshTodayNonBusinessTime(Timespan[] closedTimespans)
|
||||
|
@ -92,7 +92,7 @@ public class PlacePageOpeningHoursFragment extends Fragment implements Observer<
|
|||
|
||||
private void refreshOpeningHours()
|
||||
{
|
||||
final String ohStr = viewModel.getMapObject()
|
||||
final String ohStr = mViewModel.getMapObject()
|
||||
.getValue()
|
||||
.getMetadata(Metadata.MetadataType.FMD_OPEN_HOURS);
|
||||
final Timetable[] timetables = OpeningHours.nativeTimetablesFromString(ohStr);
|
||||
|
@ -180,10 +180,10 @@ public class PlacePageOpeningHoursFragment extends Fragment implements Observer<
|
|||
}
|
||||
|
||||
@Override
|
||||
public void onDestroy()
|
||||
public void onDestroyView()
|
||||
{
|
||||
super.onDestroy();
|
||||
viewModel.getMapObject().removeObserver(this);
|
||||
super.onDestroyView();
|
||||
mViewModel.getMapObject().removeObserver(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -19,12 +19,13 @@ public class PlacePagePhoneFragment extends Fragment implements Observer<MapObje
|
|||
{
|
||||
private PlacePhoneAdapter mPhoneAdapter;
|
||||
|
||||
private PlacePageViewModel viewModel;
|
||||
private PlacePageViewModel mViewModel;
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState)
|
||||
{
|
||||
mViewModel = new ViewModelProvider(requireActivity()).get(PlacePageViewModel.class);
|
||||
return inflater.inflate(R.layout.place_page_phone_fragment, container, false);
|
||||
}
|
||||
|
||||
|
@ -36,15 +37,14 @@ public class PlacePagePhoneFragment extends Fragment implements Observer<MapObje
|
|||
mPhoneAdapter = new PlacePhoneAdapter();
|
||||
phoneRecycler.setAdapter(mPhoneAdapter);
|
||||
|
||||
viewModel = new ViewModelProvider(requireActivity()).get(PlacePageViewModel.class);
|
||||
viewModel.getMapObject().observe(requireActivity(), this);
|
||||
mViewModel.getMapObject().observe(requireActivity(), this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDestroy()
|
||||
public void onDestroyView()
|
||||
{
|
||||
super.onDestroy();
|
||||
viewModel.getMapObject().removeObserver(this);
|
||||
super.onDestroyView();
|
||||
mViewModel.getMapObject().removeObserver(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -25,7 +25,7 @@ public class PlacePageWikipediaFragment extends Fragment implements Observer<Map
|
|||
|
||||
private TextView mPlaceDescriptionView;
|
||||
|
||||
private PlacePageViewModel viewModel;
|
||||
private PlacePageViewModel mViewModel;
|
||||
|
||||
private MapObject mMapObject;
|
||||
|
||||
|
@ -35,6 +35,7 @@ public class PlacePageWikipediaFragment extends Fragment implements Observer<Map
|
|||
@Override
|
||||
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState)
|
||||
{
|
||||
mViewModel = new ViewModelProvider(requireActivity()).get(PlacePageViewModel.class);
|
||||
return inflater.inflate(R.layout.place_page_wikipedia_fragment, container, false);
|
||||
}
|
||||
|
||||
|
@ -52,8 +53,7 @@ public class PlacePageWikipediaFragment extends Fragment implements Observer<Map
|
|||
mPlaceDescriptionView.setOnClickListener(v -> showDescriptionScreen());
|
||||
mWiki = view.findViewById(R.id.ll__place_wiki);
|
||||
|
||||
viewModel = new ViewModelProvider(requireActivity()).get(PlacePageViewModel.class);
|
||||
viewModel.getMapObject().observe(requireActivity(), this);
|
||||
mViewModel.getMapObject().observe(requireActivity(), this);
|
||||
}
|
||||
|
||||
private void showDescriptionScreen()
|
||||
|
@ -97,10 +97,10 @@ public class PlacePageWikipediaFragment extends Fragment implements Observer<Map
|
|||
}
|
||||
|
||||
@Override
|
||||
public void onDestroy()
|
||||
public void onDestroyView()
|
||||
{
|
||||
super.onDestroy();
|
||||
viewModel.getMapObject().removeObserver(this);
|
||||
super.onDestroyView();
|
||||
mViewModel.getMapObject().removeObserver(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
Loading…
Add table
Reference in a new issue