Change the style of the bottom app bar.

This commit is contained in:
Docile-Alligator 2022-12-28 17:25:48 -08:00
parent b97721a1e7
commit 8a6eb8e025
8 changed files with 159 additions and 194 deletions

View File

@ -363,7 +363,7 @@ public abstract class BaseActivity extends AppCompatActivity implements CustomFo
} }
protected void applyFABTheme(FloatingActionButton fab) { protected void applyFABTheme(FloatingActionButton fab) {
fab.setBackgroundTintList(ColorStateList.valueOf(customThemeWrapper.getColorPrimaryLightTheme())); fab.setBackgroundTintList(ColorStateList.valueOf(customThemeWrapper.getColorAccent()));
fab.setImageTintList(ColorStateList.valueOf(customThemeWrapper.getFABIconColor())); fab.setImageTintList(ColorStateList.valueOf(customThemeWrapper.getFABIconColor()));
} }

View File

@ -15,7 +15,6 @@ import android.os.Bundle;
import android.os.Handler; import android.os.Handler;
import android.text.Editable; import android.text.Editable;
import android.text.TextWatcher; import android.text.TextWatcher;
import android.util.Log;
import android.view.Gravity; import android.view.Gravity;
import android.view.KeyEvent; import android.view.KeyEvent;
import android.view.Menu; import android.view.Menu;
@ -25,15 +24,16 @@ import android.view.Window;
import android.view.WindowManager; import android.view.WindowManager;
import android.view.inputmethod.EditorInfo; import android.view.inputmethod.EditorInfo;
import android.view.inputmethod.InputMethodManager; import android.view.inputmethod.InputMethodManager;
import android.widget.LinearLayout;
import android.widget.Toast; import android.widget.Toast;
import androidx.activity.result.ActivityResultCallback;
import androidx.activity.result.ActivityResultLauncher; import androidx.activity.result.ActivityResultLauncher;
import androidx.activity.result.contract.ActivityResultContracts; import androidx.activity.result.contract.ActivityResultContracts;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import androidx.appcompat.app.ActionBarDrawerToggle; import androidx.appcompat.app.ActionBarDrawerToggle;
import androidx.appcompat.app.AppCompatDelegate; import androidx.appcompat.app.AppCompatDelegate;
import androidx.appcompat.widget.Toolbar;
import androidx.coordinatorlayout.widget.CoordinatorLayout; import androidx.coordinatorlayout.widget.CoordinatorLayout;
import androidx.core.app.ActivityCompat; import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat; import androidx.core.content.ContextCompat;
@ -54,6 +54,7 @@ import androidx.work.WorkManager;
import com.google.android.material.appbar.AppBarLayout; import com.google.android.material.appbar.AppBarLayout;
import com.google.android.material.appbar.CollapsingToolbarLayout; import com.google.android.material.appbar.CollapsingToolbarLayout;
import com.google.android.material.appbar.MaterialToolbar; import com.google.android.material.appbar.MaterialToolbar;
import com.google.android.material.bottomappbar.BottomAppBar;
import com.google.android.material.dialog.MaterialAlertDialogBuilder; import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import com.google.android.material.navigation.NavigationView; import com.google.android.material.navigation.NavigationView;
import com.google.android.material.tabs.TabLayout; import com.google.android.material.tabs.TabLayout;
@ -254,9 +255,7 @@ public class MainActivity extends BaseActivity implements SortTypeSelectionCallb
hideFab = mSharedPreferences.getBoolean(SharedPreferencesUtils.HIDE_FAB_IN_POST_FEED, false); hideFab = mSharedPreferences.getBoolean(SharedPreferencesUtils.HIDE_FAB_IN_POST_FEED, false);
showBottomAppBar = mSharedPreferences.getBoolean(SharedPreferencesUtils.BOTTOM_APP_BAR_KEY, false); showBottomAppBar = mSharedPreferences.getBoolean(SharedPreferencesUtils.BOTTOM_APP_BAR_KEY, false);
navigationWrapper = new NavigationWrapper(findViewById(R.id.bottom_app_bar_bottom_app_bar), findViewById(R.id.linear_layout_bottom_app_bar), navigationWrapper = new NavigationWrapper(findViewById(R.id.bottom_app_bar_bottom_app_bar),
findViewById(R.id.option_1_bottom_app_bar), findViewById(R.id.option_2_bottom_app_bar),
findViewById(R.id.option_3_bottom_app_bar), findViewById(R.id.option_4_bottom_app_bar),
findViewById(R.id.fab_main_activity), findViewById(R.id.fab_main_activity),
findViewById(R.id.navigation_rail), showBottomAppBar); findViewById(R.id.navigation_rail), showBottomAppBar);
@ -285,12 +284,13 @@ public class MainActivity extends BaseActivity implements SortTypeSelectionCallb
if (navBarHeight > 0) { if (navBarHeight > 0) {
if (navigationWrapper.navigationRailView == null) { if (navigationWrapper.navigationRailView == null) {
CoordinatorLayout.LayoutParams params = (CoordinatorLayout.LayoutParams) navigationWrapper.floatingActionButton.getLayoutParams(); CoordinatorLayout.LayoutParams params = (CoordinatorLayout.LayoutParams) navigationWrapper.floatingActionButton.getLayoutParams();
params.bottomMargin += navBarHeight; params.bottomMargin += (int) (navBarHeight - Utils.convertDpToPixel(4, this));
navigationWrapper.floatingActionButton.setLayoutParams(params); navigationWrapper.floatingActionButton.setLayoutParams(params);
} }
if (navigationWrapper.linearLayoutBottomAppBar != null) { if (navigationWrapper.bottomAppBar != null) {
navigationWrapper.linearLayoutBottomAppBar.setPadding(0, CoordinatorLayout.LayoutParams params = (CoordinatorLayout.LayoutParams) navigationWrapper.bottomAppBar.getLayoutParams();
navigationWrapper.linearLayoutBottomAppBar.getPaddingTop(), 0, navBarHeight); params.bottomMargin += navBarHeight;
navigationWrapper.bottomAppBar.setLayoutParams(params);
} }
navDrawerRecyclerView.setPadding(0, 0, 0, navBarHeight); navDrawerRecyclerView.setPadding(0, 0, 0, navBarHeight);
} }
@ -591,12 +591,16 @@ public class MainActivity extends BaseActivity implements SortTypeSelectionCallb
navigationWrapper.bindOptionDrawableResource(getBottomAppBarOptionDrawableResource(option1), getBottomAppBarOptionDrawableResource(option2)); navigationWrapper.bindOptionDrawableResource(getBottomAppBarOptionDrawableResource(option1), getBottomAppBarOptionDrawableResource(option2));
if (navigationWrapper.navigationRailView == null) { if (navigationWrapper.navigationRailView == null) {
navigationWrapper.option2BottomAppBar.setOnClickListener(view -> { navigationWrapper.bottomAppBar.setOnMenuItemClickListener(item -> {
int itemId = item.getItemId();
if (itemId == R.id.bottom_app_bar_option_1) {
bottomAppBarOptionAction(option1); bottomAppBarOptionAction(option1);
}); return true;
} else if (itemId == R.id.bottom_app_bar_option_2) {
navigationWrapper.option4BottomAppBar.setOnClickListener(view -> {
bottomAppBarOptionAction(option2); bottomAppBarOptionAction(option2);
return true;
}
return false;
}); });
} else { } else {
navigationWrapper.navigationRailView.setOnItemSelectedListener(item -> { navigationWrapper.navigationRailView.setOnItemSelectedListener(item -> {
@ -620,20 +624,22 @@ public class MainActivity extends BaseActivity implements SortTypeSelectionCallb
getBottomAppBarOptionDrawableResource(option4)); getBottomAppBarOptionDrawableResource(option4));
if (navigationWrapper.navigationRailView == null) { if (navigationWrapper.navigationRailView == null) {
navigationWrapper.option1BottomAppBar.setOnClickListener(view -> { navigationWrapper.bottomAppBar.setOnMenuItemClickListener(item -> {
int itemId = item.getItemId();
if (itemId == R.id.bottom_app_bar_option_1) {
bottomAppBarOptionAction(option1); bottomAppBarOptionAction(option1);
}); return true;
} else if (itemId == R.id.bottom_app_bar_option_2) {
navigationWrapper.option2BottomAppBar.setOnClickListener(view -> {
bottomAppBarOptionAction(option2); bottomAppBarOptionAction(option2);
}); return true;
} else if (itemId == R.id.bottom_app_bar_option_3) {
navigationWrapper.option3BottomAppBar.setOnClickListener(view -> {
bottomAppBarOptionAction(option3); bottomAppBarOptionAction(option3);
}); return true;
} else if (itemId == R.id.bottom_app_bar_option_4) {
navigationWrapper.option4BottomAppBar.setOnClickListener(view -> {
bottomAppBarOptionAction(option4); bottomAppBarOptionAction(option4);
return true;
}
return false;
}); });
} else { } else {
navigationWrapper.navigationRailView.setOnItemSelectedListener(item -> { navigationWrapper.navigationRailView.setOnItemSelectedListener(item -> {

View File

@ -163,9 +163,7 @@ public class ViewMultiRedditDetailActivity extends BaseActivity implements SortT
hideFab = mSharedPreferences.getBoolean(SharedPreferencesUtils.HIDE_FAB_IN_POST_FEED, false); hideFab = mSharedPreferences.getBoolean(SharedPreferencesUtils.HIDE_FAB_IN_POST_FEED, false);
showBottomAppBar = mSharedPreferences.getBoolean(SharedPreferencesUtils.BOTTOM_APP_BAR_KEY, false); showBottomAppBar = mSharedPreferences.getBoolean(SharedPreferencesUtils.BOTTOM_APP_BAR_KEY, false);
navigationWrapper = new NavigationWrapper(findViewById(R.id.bottom_app_bar_bottom_app_bar), findViewById(R.id.linear_layout_bottom_app_bar), navigationWrapper = new NavigationWrapper(findViewById(R.id.bottom_app_bar_bottom_app_bar),
findViewById(R.id.option_1_bottom_app_bar), findViewById(R.id.option_2_bottom_app_bar),
findViewById(R.id.option_3_bottom_app_bar), findViewById(R.id.option_4_bottom_app_bar),
findViewById(R.id.fab_view_multi_reddit_detail_activity), findViewById(R.id.fab_view_multi_reddit_detail_activity),
findViewById(R.id.navigation_rail), showBottomAppBar); findViewById(R.id.navigation_rail), showBottomAppBar);
@ -194,7 +192,7 @@ public class ViewMultiRedditDetailActivity extends BaseActivity implements SortT
if (navBarHeight > 0) { if (navBarHeight > 0) {
if (navigationWrapper.navigationRailView == null) { if (navigationWrapper.navigationRailView == null) {
CoordinatorLayout.LayoutParams params = (CoordinatorLayout.LayoutParams) navigationWrapper.floatingActionButton.getLayoutParams(); CoordinatorLayout.LayoutParams params = (CoordinatorLayout.LayoutParams) navigationWrapper.floatingActionButton.getLayoutParams();
params.bottomMargin += navBarHeight; params.bottomMargin += (int) (navBarHeight - Utils.convertDpToPixel(4, this));
navigationWrapper.floatingActionButton.setLayoutParams(params); navigationWrapper.floatingActionButton.setLayoutParams(params);
} }
} }
@ -242,12 +240,16 @@ public class ViewMultiRedditDetailActivity extends BaseActivity implements SortT
navigationWrapper.bindOptionDrawableResource(getBottomAppBarOptionDrawableResource(option1), getBottomAppBarOptionDrawableResource(option2)); navigationWrapper.bindOptionDrawableResource(getBottomAppBarOptionDrawableResource(option1), getBottomAppBarOptionDrawableResource(option2));
if (navigationWrapper.navigationRailView == null) { if (navigationWrapper.navigationRailView == null) {
navigationWrapper.option2BottomAppBar.setOnClickListener(view -> { navigationWrapper.bottomAppBar.setOnMenuItemClickListener(item -> {
int itemId = item.getItemId();
if (itemId == R.id.bottom_app_bar_option_1) {
bottomAppBarOptionAction(option1); bottomAppBarOptionAction(option1);
}); return true;
} else if (itemId == R.id.bottom_app_bar_option_2) {
navigationWrapper.option4BottomAppBar.setOnClickListener(view -> {
bottomAppBarOptionAction(option2); bottomAppBarOptionAction(option2);
return true;
}
return false;
}); });
} else { } else {
navigationWrapper.navigationRailView.setOnItemSelectedListener(item -> { navigationWrapper.navigationRailView.setOnItemSelectedListener(item -> {
@ -271,20 +273,22 @@ public class ViewMultiRedditDetailActivity extends BaseActivity implements SortT
getBottomAppBarOptionDrawableResource(option4)); getBottomAppBarOptionDrawableResource(option4));
if (navigationWrapper.navigationRailView == null) { if (navigationWrapper.navigationRailView == null) {
navigationWrapper.option1BottomAppBar.setOnClickListener(view -> { navigationWrapper.bottomAppBar.setOnMenuItemClickListener(item -> {
int itemId = item.getItemId();
if (itemId == R.id.bottom_app_bar_option_1) {
bottomAppBarOptionAction(option1); bottomAppBarOptionAction(option1);
}); return true;
} else if (itemId == R.id.bottom_app_bar_option_2) {
navigationWrapper.option2BottomAppBar.setOnClickListener(view -> {
bottomAppBarOptionAction(option2); bottomAppBarOptionAction(option2);
}); return true;
} else if (itemId == R.id.bottom_app_bar_option_3) {
navigationWrapper.option3BottomAppBar.setOnClickListener(view -> {
bottomAppBarOptionAction(option3); bottomAppBarOptionAction(option3);
}); return true;
} else if (itemId == R.id.bottom_app_bar_option_4) {
navigationWrapper.option4BottomAppBar.setOnClickListener(view -> {
bottomAppBarOptionAction(option4); bottomAppBarOptionAction(option4);
return true;
}
return false;
}); });
} else { } else {
navigationWrapper.navigationRailView.setOnItemSelectedListener(item -> { navigationWrapper.navigationRailView.setOnItemSelectedListener(item -> {

View File

@ -241,9 +241,7 @@ public class ViewSubredditDetailActivity extends BaseActivity implements SortTyp
hideFab = mSharedPreferences.getBoolean(SharedPreferencesUtils.HIDE_FAB_IN_POST_FEED, false); hideFab = mSharedPreferences.getBoolean(SharedPreferencesUtils.HIDE_FAB_IN_POST_FEED, false);
showBottomAppBar = mSharedPreferences.getBoolean(SharedPreferencesUtils.BOTTOM_APP_BAR_KEY, false); showBottomAppBar = mSharedPreferences.getBoolean(SharedPreferencesUtils.BOTTOM_APP_BAR_KEY, false);
navigationWrapper = new NavigationWrapper(findViewById(R.id.bottom_app_bar_bottom_app_bar), findViewById(R.id.linear_layout_bottom_app_bar), navigationWrapper = new NavigationWrapper(findViewById(R.id.bottom_app_bar_bottom_app_bar),
findViewById(R.id.option_1_bottom_app_bar), findViewById(R.id.option_2_bottom_app_bar),
findViewById(R.id.option_3_bottom_app_bar), findViewById(R.id.option_4_bottom_app_bar),
findViewById(R.id.fab_view_subreddit_detail_activity), findViewById(R.id.fab_view_subreddit_detail_activity),
findViewById(R.id.navigation_rail), showBottomAppBar); findViewById(R.id.navigation_rail), showBottomAppBar);
@ -270,7 +268,7 @@ public class ViewSubredditDetailActivity extends BaseActivity implements SortTyp
if (navBarHeight > 0) { if (navBarHeight > 0) {
if (navigationWrapper.navigationRailView == null) { if (navigationWrapper.navigationRailView == null) {
CoordinatorLayout.LayoutParams params = (CoordinatorLayout.LayoutParams) navigationWrapper.floatingActionButton.getLayoutParams(); CoordinatorLayout.LayoutParams params = (CoordinatorLayout.LayoutParams) navigationWrapper.floatingActionButton.getLayoutParams();
params.bottomMargin += navBarHeight; params.bottomMargin += (int) (navBarHeight - Utils.convertDpToPixel(4, this));
navigationWrapper.floatingActionButton.setLayoutParams(params); navigationWrapper.floatingActionButton.setLayoutParams(params);
} }
} }
@ -761,12 +759,16 @@ public class ViewSubredditDetailActivity extends BaseActivity implements SortTyp
navigationWrapper.bindOptionDrawableResource(getBottomAppBarOptionDrawableResource(option1), getBottomAppBarOptionDrawableResource(option2)); navigationWrapper.bindOptionDrawableResource(getBottomAppBarOptionDrawableResource(option1), getBottomAppBarOptionDrawableResource(option2));
if (navigationWrapper.navigationRailView == null) { if (navigationWrapper.navigationRailView == null) {
navigationWrapper.option2BottomAppBar.setOnClickListener(view -> { navigationWrapper.bottomAppBar.setOnMenuItemClickListener(item -> {
int itemId = item.getItemId();
if (itemId == R.id.bottom_app_bar_option_1) {
bottomAppBarOptionAction(option1); bottomAppBarOptionAction(option1);
}); return true;
} else if (itemId == R.id.bottom_app_bar_option_2) {
navigationWrapper.option4BottomAppBar.setOnClickListener(view -> {
bottomAppBarOptionAction(option2); bottomAppBarOptionAction(option2);
return true;
}
return false;
}); });
} else { } else {
navigationWrapper.navigationRailView.setOnItemSelectedListener(item -> { navigationWrapper.navigationRailView.setOnItemSelectedListener(item -> {
@ -790,21 +792,22 @@ public class ViewSubredditDetailActivity extends BaseActivity implements SortTyp
getBottomAppBarOptionDrawableResource(option4)); getBottomAppBarOptionDrawableResource(option4));
if (navigationWrapper.navigationRailView == null) { if (navigationWrapper.navigationRailView == null) {
navigationWrapper.option1BottomAppBar.setOnClickListener(view -> { navigationWrapper.bottomAppBar.setOnMenuItemClickListener(item -> {
int itemId = item.getItemId();
if (itemId == R.id.bottom_app_bar_option_1) {
bottomAppBarOptionAction(option1); bottomAppBarOptionAction(option1);
//Toast.makeText(this, "s " + collapsingToolbarLayout.getScrimVisibleHeightTrigger(), Toast.LENGTH_SHORT).show(); return true;
}); } else if (itemId == R.id.bottom_app_bar_option_2) {
navigationWrapper.option2BottomAppBar.setOnClickListener(view -> {
bottomAppBarOptionAction(option2); bottomAppBarOptionAction(option2);
}); return true;
} else if (itemId == R.id.bottom_app_bar_option_3) {
navigationWrapper.option3BottomAppBar.setOnClickListener(view -> {
bottomAppBarOptionAction(option3); bottomAppBarOptionAction(option3);
}); return true;
} else if (itemId == R.id.bottom_app_bar_option_4) {
navigationWrapper.option4BottomAppBar.setOnClickListener(view -> {
bottomAppBarOptionAction(option4); bottomAppBarOptionAction(option4);
return true;
}
return false;
}); });
} else { } else {
navigationWrapper.navigationRailView.setOnItemSelectedListener(item -> { navigationWrapper.navigationRailView.setOnItemSelectedListener(item -> {

View File

@ -243,9 +243,7 @@ public class ViewUserDetailActivity extends BaseActivity implements SortTypeSele
hideFab = mSharedPreferences.getBoolean(SharedPreferencesUtils.HIDE_FAB_IN_POST_FEED, false); hideFab = mSharedPreferences.getBoolean(SharedPreferencesUtils.HIDE_FAB_IN_POST_FEED, false);
showBottomAppBar = mSharedPreferences.getBoolean(SharedPreferencesUtils.BOTTOM_APP_BAR_KEY, false); showBottomAppBar = mSharedPreferences.getBoolean(SharedPreferencesUtils.BOTTOM_APP_BAR_KEY, false);
navigationWrapper = new NavigationWrapper(findViewById(R.id.bottom_app_bar_bottom_app_bar), findViewById(R.id.linear_layout_bottom_app_bar), navigationWrapper = new NavigationWrapper(findViewById(R.id.bottom_app_bar_bottom_app_bar),
findViewById(R.id.option_1_bottom_app_bar), findViewById(R.id.option_2_bottom_app_bar),
findViewById(R.id.option_3_bottom_app_bar), findViewById(R.id.option_4_bottom_app_bar),
findViewById(R.id.fab_view_user_detail_activity), findViewById(R.id.fab_view_user_detail_activity),
findViewById(R.id.navigation_rail), showBottomAppBar); findViewById(R.id.navigation_rail), showBottomAppBar);
@ -306,7 +304,7 @@ public class ViewUserDetailActivity extends BaseActivity implements SortTypeSele
if (navBarHeight > 0) { if (navBarHeight > 0) {
if (navigationWrapper.navigationRailView == null) { if (navigationWrapper.navigationRailView == null) {
CoordinatorLayout.LayoutParams params = (CoordinatorLayout.LayoutParams) navigationWrapper.floatingActionButton.getLayoutParams(); CoordinatorLayout.LayoutParams params = (CoordinatorLayout.LayoutParams) navigationWrapper.floatingActionButton.getLayoutParams();
params.bottomMargin += navBarHeight; params.bottomMargin += (int) (navBarHeight - Utils.convertDpToPixel(4, this));
navigationWrapper.floatingActionButton.setLayoutParams(params); navigationWrapper.floatingActionButton.setLayoutParams(params);
} }
} }
@ -725,12 +723,16 @@ public class ViewUserDetailActivity extends BaseActivity implements SortTypeSele
navigationWrapper.bindOptionDrawableResource(getBottomAppBarOptionDrawableResource(option1), getBottomAppBarOptionDrawableResource(option2)); navigationWrapper.bindOptionDrawableResource(getBottomAppBarOptionDrawableResource(option1), getBottomAppBarOptionDrawableResource(option2));
if (navigationWrapper.navigationRailView == null) { if (navigationWrapper.navigationRailView == null) {
navigationWrapper.option2BottomAppBar.setOnClickListener(view -> { navigationWrapper.bottomAppBar.setOnMenuItemClickListener(item -> {
int itemId = item.getItemId();
if (itemId == R.id.bottom_app_bar_option_1) {
bottomAppBarOptionAction(option1); bottomAppBarOptionAction(option1);
}); return true;
} else if (itemId == R.id.bottom_app_bar_option_2) {
navigationWrapper.option4BottomAppBar.setOnClickListener(view -> {
bottomAppBarOptionAction(option2); bottomAppBarOptionAction(option2);
return true;
}
return false;
}); });
} else { } else {
navigationWrapper.navigationRailView.setOnItemSelectedListener(item -> { navigationWrapper.navigationRailView.setOnItemSelectedListener(item -> {
@ -754,20 +756,22 @@ public class ViewUserDetailActivity extends BaseActivity implements SortTypeSele
getBottomAppBarOptionDrawableResource(option4)); getBottomAppBarOptionDrawableResource(option4));
if (navigationWrapper.navigationRailView == null) { if (navigationWrapper.navigationRailView == null) {
navigationWrapper.option1BottomAppBar.setOnClickListener(view -> { navigationWrapper.bottomAppBar.setOnMenuItemClickListener(item -> {
int itemId = item.getItemId();
if (itemId == R.id.bottom_app_bar_option_1) {
bottomAppBarOptionAction(option1); bottomAppBarOptionAction(option1);
}); return true;
} else if (itemId == R.id.bottom_app_bar_option_2) {
navigationWrapper.option2BottomAppBar.setOnClickListener(view -> {
bottomAppBarOptionAction(option2); bottomAppBarOptionAction(option2);
}); return true;
} else if (itemId == R.id.bottom_app_bar_option_3) {
navigationWrapper.option3BottomAppBar.setOnClickListener(view -> {
bottomAppBarOptionAction(option3); bottomAppBarOptionAction(option3);
}); return true;
} else if (itemId == R.id.bottom_app_bar_option_4) {
navigationWrapper.option4BottomAppBar.setOnClickListener(view -> {
bottomAppBarOptionAction(option4); bottomAppBarOptionAction(option4);
return true;
}
return false;
}); });
} else { } else {
navigationWrapper.navigationRailView.setOnItemSelectedListener(item -> { navigationWrapper.navigationRailView.setOnItemSelectedListener(item -> {

View File

@ -5,8 +5,6 @@ import android.content.res.ColorStateList;
import android.view.Menu; import android.view.Menu;
import android.view.MenuItem; import android.view.MenuItem;
import android.view.View; import android.view.View;
import android.widget.ImageView;
import android.widget.LinearLayout;
import androidx.appcompat.view.menu.MenuItemImpl; import androidx.appcompat.view.menu.MenuItemImpl;
import androidx.core.view.MenuItemCompat; import androidx.core.view.MenuItemCompat;
@ -19,26 +17,13 @@ import ml.docilealligator.infinityforreddit.R;
public class NavigationWrapper { public class NavigationWrapper {
public BottomAppBar bottomAppBar; public BottomAppBar bottomAppBar;
public LinearLayout linearLayoutBottomAppBar;
public ImageView option1BottomAppBar;
public ImageView option2BottomAppBar;
public ImageView option3BottomAppBar;
public ImageView option4BottomAppBar;
public NavigationRailView navigationRailView; public NavigationRailView navigationRailView;
public FloatingActionButton floatingActionButton; public FloatingActionButton floatingActionButton;
public NavigationWrapper(BottomAppBar bottomAppBar, LinearLayout linearLayoutBottomAppBar, public NavigationWrapper(BottomAppBar bottomAppBar, FloatingActionButton floatingActionButton,
ImageView option1BottomAppBar, ImageView option2BottomAppBar, NavigationRailView navigationRailView, boolean showBottomAppBar) {
ImageView option3BottomAppBar, ImageView option4BottomAppBar,
FloatingActionButton floatingActionButton, NavigationRailView navigationRailView,
boolean showBottomAppBar) {
this.bottomAppBar = bottomAppBar; this.bottomAppBar = bottomAppBar;
this.linearLayoutBottomAppBar = linearLayoutBottomAppBar;
this.option1BottomAppBar = option1BottomAppBar;
this.option2BottomAppBar = option2BottomAppBar;
this.option3BottomAppBar = option3BottomAppBar;
this.option4BottomAppBar = option4BottomAppBar;
this.navigationRailView = navigationRailView; this.navigationRailView = navigationRailView;
if (navigationRailView != null) { if (navigationRailView != null) {
if (showBottomAppBar) { if (showBottomAppBar) {
@ -54,11 +39,8 @@ public class NavigationWrapper {
public void applyCustomTheme(int bottomAppBarIconColor, int bottomAppBarBackgroundColor) { public void applyCustomTheme(int bottomAppBarIconColor, int bottomAppBarBackgroundColor) {
if (navigationRailView == null) { if (navigationRailView == null) {
option1BottomAppBar.setColorFilter(bottomAppBarIconColor, android.graphics.PorterDuff.Mode.SRC_IN);
option2BottomAppBar.setColorFilter(bottomAppBarIconColor, android.graphics.PorterDuff.Mode.SRC_IN);
option3BottomAppBar.setColorFilter(bottomAppBarIconColor, android.graphics.PorterDuff.Mode.SRC_IN);
option4BottomAppBar.setColorFilter(bottomAppBarIconColor, android.graphics.PorterDuff.Mode.SRC_IN);
bottomAppBar.setBackgroundTint(ColorStateList.valueOf(bottomAppBarBackgroundColor)); bottomAppBar.setBackgroundTint(ColorStateList.valueOf(bottomAppBarBackgroundColor));
applyMenuItemTheme(bottomAppBar.getMenu(), bottomAppBarIconColor);
} else { } else {
navigationRailView.setBackgroundColor(bottomAppBarBackgroundColor); navigationRailView.setBackgroundColor(bottomAppBarBackgroundColor);
applyMenuItemTheme(navigationRailView.getMenu(), bottomAppBarIconColor); applyMenuItemTheme(navigationRailView.getMenu(), bottomAppBarIconColor);
@ -84,12 +66,11 @@ public class NavigationWrapper {
if (imageResources.length == 2) { if (imageResources.length == 2) {
if (navigationRailView == null) { if (navigationRailView == null) {
linearLayoutBottomAppBar.setWeightSum(3); Menu menu = bottomAppBar.getMenu();
option1BottomAppBar.setVisibility(View.GONE); menu.findItem(R.id.bottom_app_bar_option_1).setIcon(imageResources[0]);
option3BottomAppBar.setVisibility(View.GONE); menu.findItem(R.id.bottom_app_bar_option_2).setIcon(imageResources[1]);
menu.findItem(R.id.bottom_app_bar_option_3).setVisible(false);
option2BottomAppBar.setImageResource(imageResources[0]); menu.findItem(R.id.bottom_app_bar_option_4).setVisible(false);
option4BottomAppBar.setImageResource(imageResources[1]);
} else { } else {
Menu menu = navigationRailView.getMenu(); Menu menu = navigationRailView.getMenu();
menu.findItem(R.id.navigation_rail_option_1).setIcon(imageResources[0]); menu.findItem(R.id.navigation_rail_option_1).setIcon(imageResources[0]);
@ -99,10 +80,11 @@ public class NavigationWrapper {
} }
} else { } else {
if (navigationRailView == null) { if (navigationRailView == null) {
option1BottomAppBar.setImageResource(imageResources[0]); Menu menu = bottomAppBar.getMenu();
option2BottomAppBar.setImageResource(imageResources[1]); menu.findItem(R.id.bottom_app_bar_option_1).setIcon(imageResources[0]);
option3BottomAppBar.setImageResource(imageResources[2]); menu.findItem(R.id.bottom_app_bar_option_2).setIcon(imageResources[1]);
option4BottomAppBar.setImageResource(imageResources[3]); menu.findItem(R.id.bottom_app_bar_option_3).setIcon(imageResources[2]);
menu.findItem(R.id.bottom_app_bar_option_4).setIcon(imageResources[3]);
} else { } else {
Menu menu = navigationRailView.getMenu(); Menu menu = navigationRailView.getMenu();
menu.findItem(R.id.navigation_rail_option_1).setIcon(imageResources[0]); menu.findItem(R.id.navigation_rail_option_1).setIcon(imageResources[0]);

View File

@ -3,64 +3,10 @@
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/bottom_app_bar_bottom_app_bar" android:id="@+id/bottom_app_bar_bottom_app_bar"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="48dp" android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:visibility="gone" android:visibility="gone"
app:fabAlignmentMode="center"> style="@style/Widget.Material3.BottomAppBar"
app:hideOnScroll="true"
<LinearLayout app:fabAlignmentMode="end"
android:id="@+id/linear_layout_bottom_app_bar" app:menu="@menu/bottom_app_bar" />
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="6dp"
android:weightSum="5">
<ImageView
android:id="@+id/option_1_bottom_app_bar"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:paddingTop="8dp"
android:paddingBottom="8dp"
android:background="?attr/selectableItemBackgroundBorderless" />
<ImageView
android:id="@+id/option_2_bottom_app_bar"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:paddingTop="8dp"
android:paddingBottom="8dp"
android:background="?attr/selectableItemBackgroundBorderless" />
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@android:color/transparent"/>
<ImageView
android:id="@+id/option_3_bottom_app_bar"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:paddingTop="8dp"
android:paddingBottom="8dp"
android:background="?attr/selectableItemBackgroundBorderless" />
<ImageView
android:id="@+id/option_4_bottom_app_bar"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_marginEnd="16dp"
android:paddingTop="8dp"
android:paddingBottom="8dp"
android:gravity="center"
android:background="?attr/selectableItemBackgroundBorderless" />
</LinearLayout>
</com.google.android.material.bottomappbar.BottomAppBar>

View File

@ -0,0 +1,20 @@
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/bottom_app_bar_option_1"
android:enabled="true"
app:showAsAction="always" />
<item
android:id="@+id/bottom_app_bar_option_2"
android:enabled="true"
app:showAsAction="always" />
<item
android:id="@+id/bottom_app_bar_option_3"
android:enabled="true"
app:showAsAction="always" />
<item
android:id="@+id/bottom_app_bar_option_4"
android:enabled="true"
app:showAsAction="always" />
</menu>