forked from organicmaps/organicmaps
[android] Added checking of custom back button in toolbar before setting the system nativation back/home button and refatored this code to reuse it everywhere
This commit is contained in:
parent
8667ecc3e0
commit
4da5e9eacf
4 changed files with 41 additions and 53 deletions
|
@ -2,10 +2,10 @@ package com.mapswithme.maps.base;
|
|||
|
||||
import android.content.Context;
|
||||
import android.os.Bundle;
|
||||
import androidx.fragment.app.ListFragment;
|
||||
import androidx.appcompat.widget.Toolbar;
|
||||
import android.view.View;
|
||||
|
||||
import androidx.appcompat.widget.Toolbar;
|
||||
import androidx.fragment.app.ListFragment;
|
||||
import com.mapswithme.maps.R;
|
||||
import com.mapswithme.util.UiUtils;
|
||||
import com.mapswithme.util.Utils;
|
||||
|
@ -27,18 +27,10 @@ public abstract class BaseMwmListFragment extends ListFragment
|
|||
{
|
||||
super.onViewCreated(view, savedInstanceState);
|
||||
|
||||
mToolbar = (Toolbar) view.findViewById(R.id.toolbar);
|
||||
mToolbar = view.findViewById(R.id.toolbar);
|
||||
if (mToolbar != null)
|
||||
{
|
||||
UiUtils.showHomeUpButton(mToolbar);
|
||||
mToolbar.setNavigationOnClickListener(new View.OnClickListener()
|
||||
{
|
||||
@Override
|
||||
public void onClick(View v)
|
||||
{
|
||||
Utils.navigateToParent(getActivity());
|
||||
}
|
||||
});
|
||||
UiUtils.setupNavigationUpListener(mToolbar, v -> Utils.navigateToParent(getActivity()));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -52,7 +44,7 @@ public abstract class BaseMwmListFragment extends ListFragment
|
|||
{
|
||||
super.onResume();
|
||||
org.alohalytics.Statistics.logEvent("$onResume", getClass().getSimpleName() + ":" +
|
||||
UiUtils.deviceOrientationAsString(getActivity()));
|
||||
UiUtils.deviceOrientationAsString(requireActivity()));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -2,18 +2,18 @@ package com.mapswithme.maps.base;
|
|||
|
||||
import android.content.Context;
|
||||
import android.os.Bundle;
|
||||
import androidx.annotation.CallSuper;
|
||||
import androidx.annotation.LayoutRes;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
import androidx.appcompat.widget.Toolbar;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
|
||||
import androidx.annotation.CallSuper;
|
||||
import androidx.annotation.LayoutRes;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.appcompat.widget.Toolbar;
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
import com.mapswithme.maps.R;
|
||||
import com.mapswithme.maps.widget.PlaceholderView;
|
||||
import com.mapswithme.util.UiUtils;
|
||||
|
@ -23,17 +23,21 @@ public abstract class BaseMwmRecyclerFragment<T extends RecyclerView.Adapter> ex
|
|||
{
|
||||
private Toolbar mToolbar;
|
||||
|
||||
@SuppressWarnings("NullableProblems")
|
||||
@SuppressWarnings("NotNullFieldNotInitialized")
|
||||
@NonNull
|
||||
private RecyclerView mRecycler;
|
||||
|
||||
@Nullable
|
||||
private PlaceholderView mPlaceholder;
|
||||
|
||||
@SuppressWarnings("NullableProblems")
|
||||
@SuppressWarnings("NotNullFieldNotInitialized")
|
||||
@NonNull
|
||||
private T mAdapter;
|
||||
|
||||
@NonNull
|
||||
private final View.OnClickListener mNavigationClickListener
|
||||
= view -> Utils.navigateToParent(getActivity());
|
||||
|
||||
@NonNull
|
||||
protected abstract T createAdapter();
|
||||
|
||||
|
@ -70,10 +74,7 @@ public abstract class BaseMwmRecyclerFragment<T extends RecyclerView.Adapter> ex
|
|||
|
||||
mToolbar = view.findViewById(R.id.toolbar);
|
||||
if (mToolbar != null)
|
||||
{
|
||||
UiUtils.showHomeUpButton(mToolbar);
|
||||
mToolbar.setNavigationOnClickListener(v -> Utils.navigateToParent(getActivity()));
|
||||
}
|
||||
UiUtils.setupNavigationUpListener(mToolbar, mNavigationClickListener);
|
||||
|
||||
mRecycler = view.findViewById(R.id.recycler);
|
||||
if (mRecycler == null)
|
||||
|
@ -112,7 +113,7 @@ public abstract class BaseMwmRecyclerFragment<T extends RecyclerView.Adapter> ex
|
|||
{
|
||||
super.onResume();
|
||||
org.alohalytics.Statistics.logEvent("$onResume", this.getClass().getSimpleName()
|
||||
+ ":" + UiUtils.deviceOrientationAsString(getActivity()));
|
||||
+ ":" + UiUtils.deviceOrientationAsString(requireActivity()));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -1,14 +1,14 @@
|
|||
package com.mapswithme.maps.widget;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.view.View;
|
||||
|
||||
import androidx.annotation.IdRes;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.StringRes;
|
||||
import androidx.appcompat.app.ActionBar;
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import androidx.appcompat.widget.Toolbar;
|
||||
import android.view.View;
|
||||
|
||||
import com.mapswithme.maps.R;
|
||||
import com.mapswithme.util.UiUtils;
|
||||
import com.mapswithme.util.Utils;
|
||||
|
@ -19,14 +19,8 @@ public class ToolbarController
|
|||
private final Activity mActivity;
|
||||
@NonNull
|
||||
private final Toolbar mToolbar;
|
||||
private final View.OnClickListener mNavigationClickListener = new View.OnClickListener()
|
||||
{
|
||||
@Override
|
||||
public void onClick(View view)
|
||||
{
|
||||
onUpClick();
|
||||
}
|
||||
};
|
||||
@NonNull
|
||||
private final View.OnClickListener mNavigationClickListener = view -> onUpClick();
|
||||
|
||||
public ToolbarController(@NonNull View root, @NonNull Activity activity)
|
||||
{
|
||||
|
@ -35,7 +29,7 @@ public class ToolbarController
|
|||
|
||||
if (useExtendedToolbar())
|
||||
UiUtils.extendViewWithStatusBar(getToolbar());
|
||||
setupNavigationListener();
|
||||
UiUtils.setupNavigationUpListener(mToolbar, mNavigationClickListener);
|
||||
setSupportActionBar();
|
||||
}
|
||||
|
||||
|
@ -50,20 +44,6 @@ public class ToolbarController
|
|||
return true;
|
||||
}
|
||||
|
||||
private void setupNavigationListener()
|
||||
{
|
||||
View customNavigationButton = getToolbar().findViewById(R.id.back);
|
||||
if (customNavigationButton != null)
|
||||
{
|
||||
customNavigationButton.setOnClickListener(mNavigationClickListener);
|
||||
}
|
||||
else
|
||||
{
|
||||
UiUtils.showHomeUpButton(getToolbar());
|
||||
getToolbar().setNavigationOnClickListener(mNavigationClickListener);
|
||||
}
|
||||
}
|
||||
|
||||
@IdRes
|
||||
private int getToolbarId()
|
||||
{
|
||||
|
|
|
@ -476,6 +476,21 @@ public final class UiUtils
|
|||
window.setStatusBarColor(ContextCompat.getColor(activity, statusBarColor));
|
||||
}
|
||||
|
||||
public static void setupNavigationUpListener(@NonNull Toolbar toolbar,
|
||||
@NonNull View.OnClickListener listener)
|
||||
{
|
||||
View customNavigationButton = toolbar.findViewById(R.id.back);
|
||||
if (customNavigationButton != null)
|
||||
{
|
||||
customNavigationButton.setOnClickListener(listener);
|
||||
}
|
||||
else
|
||||
{
|
||||
UiUtils.showHomeUpButton(toolbar);
|
||||
toolbar.setNavigationOnClickListener(listener);
|
||||
}
|
||||
}
|
||||
|
||||
public static int getCompassYOffset(@NonNull Context context)
|
||||
{
|
||||
return getStatusBarHeight(context);
|
||||
|
|
Loading…
Add table
Reference in a new issue