[android] Migrate to Material toolbar components

Signed-off-by: Jean-Baptiste Charron <jeanbaptiste.charron@outlook.fr>
This commit is contained in:
Jean-Baptiste
2025-06-09 12:21:10 +02:00
committed by Konstantin Pastbin
parent 6dee814ff5
commit 4e154fb10b
22 changed files with 58 additions and 47 deletions

View File

@@ -34,7 +34,6 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.annotation.StyleRes;
import androidx.annotation.UiThread;
import androidx.appcompat.widget.Toolbar;
import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;
import androidx.core.view.ViewCompat;
@@ -120,6 +119,8 @@ import app.organicmaps.widget.menu.MainMenu;
import app.organicmaps.widget.placepage.PlacePageController;
import app.organicmaps.widget.placepage.PlacePageData;
import app.organicmaps.widget.placepage.PlacePageViewModel;
import com.google.android.material.appbar.MaterialToolbar;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import com.google.android.material.floatingactionbutton.FloatingActionButton;
@@ -187,7 +188,7 @@ public class MwmActivity extends BaseMwmFragmentActivity
private MapFragment mMapFragment;
private View mPointChooser;
private Toolbar mPointChooserToolbar;
private MaterialToolbar mPointChooserToolbar;
private RoutingPlanInplaceController mRoutingPlanInplaceController;

View File

@@ -15,11 +15,12 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.annotation.StyleRes;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentFactory;
import androidx.fragment.app.FragmentManager;
import com.google.android.material.appbar.MaterialToolbar;
import app.organicmaps.MwmApplication;
import app.organicmaps.R;
import app.organicmaps.SplashActivity;
@@ -148,7 +149,7 @@ public abstract class BaseMwmFragmentActivity extends AppCompatActivity
onBackPressed();
}
protected Toolbar getToolbar()
protected MaterialToolbar getToolbar()
{
return findViewById(R.id.toolbar);
}

View File

@@ -10,11 +10,13 @@ import androidx.annotation.CallSuper;
import androidx.annotation.LayoutRes;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.widget.Toolbar;
import androidx.core.view.ViewCompat;
import androidx.fragment.app.Fragment;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.google.android.material.appbar.MaterialToolbar;
import app.organicmaps.R;
import app.organicmaps.util.UiUtils;
import app.organicmaps.util.Utils;
@@ -23,7 +25,7 @@ import app.organicmaps.widget.PlaceholderView;
public abstract class BaseMwmRecyclerFragment<T extends RecyclerView.Adapter> extends Fragment
{
private Toolbar mToolbar;
private MaterialToolbar mToolbar;
@SuppressWarnings("NotNullFieldNotInitialized")
@NonNull

View File

@@ -6,11 +6,13 @@ import androidx.annotation.CallSuper;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.annotation.StringRes;
import androidx.appcompat.widget.Toolbar;
import androidx.core.view.ViewCompat;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentFactory;
import androidx.fragment.app.FragmentManager;
import com.google.android.material.appbar.MaterialToolbar;
import app.organicmaps.R;
import app.organicmaps.util.UiUtils;
import app.organicmaps.util.WindowInsetUtils.PaddingInsetsListener;
@@ -26,7 +28,7 @@ public abstract class BaseToolbarActivity extends BaseMwmFragmentActivity
{
super.onSafeCreate(savedInstanceState);
Toolbar toolbar = getToolbar();
MaterialToolbar toolbar = getToolbar();
if (toolbar != null)
{
int title = getToolbarTitle();
@@ -42,7 +44,7 @@ public abstract class BaseToolbarActivity extends BaseMwmFragmentActivity
}
}
protected void setupHomeButton(@NonNull Toolbar toolbar)
protected void setupHomeButton(@NonNull MaterialToolbar toolbar)
{
UiUtils.showHomeUpButton(toolbar);
}
@@ -92,7 +94,7 @@ public abstract class BaseToolbarActivity extends BaseMwmFragmentActivity
if (title != null)
{
Toolbar toolbar = getToolbar();
MaterialToolbar toolbar = getToolbar();
if (toolbar != null && toolbar.getTitle() != null)
{
mLastTitle = toolbar.getTitle().toString();

View File

@@ -16,7 +16,6 @@ import androidx.activity.result.contract.ActivityResultContracts;
import androidx.annotation.CallSuper;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.widget.Toolbar;
import androidx.core.view.ViewCompat;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
@@ -47,6 +46,7 @@ import app.organicmaps.util.WindowInsetUtils;
import app.organicmaps.widget.PlaceholderView;
import app.organicmaps.widget.SearchToolbarController;
import com.google.android.material.appbar.AppBarLayout;
import com.google.android.material.appbar.MaterialToolbar;
import com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton;
import com.google.android.material.tabs.TabLayout;
@@ -226,7 +226,7 @@ public class SearchFragment extends BaseMwmFragment
private void updateFrames()
{
final boolean hasQuery = mToolbarController.hasQuery();
Toolbar toolbar = mToolbarController.getToolbar();
MaterialToolbar toolbar = mToolbarController.getToolbar();
AppBarLayout.LayoutParams lp = (AppBarLayout.LayoutParams) toolbar.getLayoutParams();
lp.setScrollFlags(hasQuery ? AppBarLayout.LayoutParams.SCROLL_FLAG_ENTER_ALWAYS
| AppBarLayout.LayoutParams.SCROLL_FLAG_SCROLL : 0);

View File

@@ -27,7 +27,6 @@ import androidx.annotation.DimenRes;
import androidx.annotation.IdRes;
import androidx.annotation.NonNull;
import androidx.annotation.StringRes;
import androidx.appcompat.widget.Toolbar;
import androidx.core.content.ContextCompat;
import androidx.core.content.res.ResourcesCompat;
import androidx.core.graphics.Insets;
@@ -37,6 +36,8 @@ import androidx.core.view.WindowInsetsControllerCompat;
import androidx.recyclerview.widget.RecyclerView;
import app.organicmaps.MwmApplication;
import app.organicmaps.R;
import com.google.android.material.appbar.MaterialToolbar;
import com.google.android.material.textfield.TextInputLayout;
import java.util.Objects;
@@ -193,7 +194,7 @@ public final class UiUtils
hide(tv);
}
public static void showHomeUpButton(Toolbar toolbar)
public static void showHomeUpButton(MaterialToolbar toolbar)
{
toolbar.setNavigationIcon(ThemeUtils.getResource(toolbar.getContext(), androidx.appcompat.R.attr.homeAsUpIndicator));
}
@@ -297,7 +298,7 @@ public final class UiUtils
systemInsets.right, view.getPaddingBottom());
}
public static void setupNavigationIcon(@NonNull Toolbar toolbar,
public static void setupNavigationIcon(@NonNull MaterialToolbar toolbar,
@NonNull View.OnClickListener listener)
{
View customNavigationButton = toolbar.findViewById(R.id.back);
@@ -311,14 +312,14 @@ public final class UiUtils
}
}
public static void setupHomeUpButtonAsNavigationIcon(@NonNull Toolbar toolbar,
public static void setupHomeUpButtonAsNavigationIcon(@NonNull MaterialToolbar toolbar,
@NonNull View.OnClickListener listener)
{
UiUtils.showHomeUpButton(toolbar);
toolbar.setNavigationOnClickListener(listener);
}
public static void clearHomeUpButton(@NonNull Toolbar toolbar)
public static void clearHomeUpButton(@NonNull MaterialToolbar toolbar)
{
toolbar.setNavigationIcon(null);
toolbar.setNavigationOnClickListener(null);

View File

@@ -9,8 +9,10 @@ import androidx.annotation.Nullable;
import androidx.annotation.StringRes;
import androidx.appcompat.app.ActionBar;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;
import androidx.core.view.ViewCompat;
import com.google.android.material.appbar.MaterialToolbar;
import app.organicmaps.R;
import app.organicmaps.util.UiUtils;
import app.organicmaps.util.Utils;
@@ -21,7 +23,7 @@ public class ToolbarController
@Nullable
private Activity mActivity;
@NonNull
private final Toolbar mToolbar;
private final MaterialToolbar mToolbar;
@NonNull
protected final View.OnClickListener mNavigationClickListener = view -> onUpClick();
@@ -39,7 +41,7 @@ public class ToolbarController
setSupportActionBar(activity, mToolbar);
}
private void setSupportActionBar(@NonNull Activity activity, @NonNull Toolbar toolbar)
private void setSupportActionBar(@NonNull Activity activity, @NonNull MaterialToolbar toolbar)
{
AppCompatActivity appCompatActivity = (AppCompatActivity) activity;
appCompatActivity.setSupportActionBar(toolbar);
@@ -86,7 +88,7 @@ public class ToolbarController
}
@NonNull
public Toolbar getToolbar()
public MaterialToolbar getToolbar()
{
return mToolbar;
}

View File

@@ -14,7 +14,6 @@ import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.widget.Toolbar;
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowCompat;
import androidx.core.view.WindowInsetsCompat;
@@ -33,6 +32,8 @@ import app.organicmaps.util.Graphics;
import app.organicmaps.util.InputUtils;
import app.organicmaps.util.UiUtils;
import app.organicmaps.util.WindowInsetUtils.PaddingInsetsListener;
import com.google.android.material.appbar.MaterialToolbar;
import com.google.android.material.textfield.TextInputEditText;
import com.google.android.material.textfield.TextInputLayout;
@@ -203,7 +204,7 @@ public class EditBookmarkFragment extends BaseMwmDialogFragment implements View.
private void initToolbar(View view)
{
Toolbar toolbar = view.findViewById(R.id.toolbar);
MaterialToolbar toolbar = view.findViewById(R.id.toolbar);
ViewCompat.setOnApplyWindowInsetsListener(toolbar, PaddingInsetsListener.excludeBottom());

View File

@@ -18,7 +18,6 @@ import android.widget.TextView;
import androidx.annotation.IdRes;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.widget.Toolbar;
import androidx.core.content.ContextCompat;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
@@ -52,6 +51,8 @@ import app.organicmaps.widget.placepage.sections.PlacePageOpeningHoursFragment;
import app.organicmaps.widget.placepage.sections.PlacePagePhoneFragment;
import app.organicmaps.widget.placepage.sections.PlacePageProductsFragment;
import app.organicmaps.widget.placepage.sections.PlacePageWikipediaFragment;
import com.google.android.material.appbar.MaterialToolbar;
import com.google.android.material.button.MaterialButton;
import java.util.ArrayList;
@@ -86,7 +87,7 @@ public class PlacePageView extends Fragment implements View.OnClickListener,
private View mFrame;
// Preview.
private ViewGroup mPreview;
private Toolbar mToolbar;
private MaterialToolbar mToolbar;
private TextView mTvTitle;
private TextView mTvSecondaryTitle;
private TextView mTvSubtitle;