Skip to content

Commit

Permalink
feat(android): use material themed toolbars
Browse files Browse the repository at this point in the history
Fixes TIMOB-28086
  • Loading branch information
jquick-axway authored and sgtcoolguy committed Mar 5, 2021
1 parent ed22a7d commit 1c1431d
Show file tree
Hide file tree
Showing 4 changed files with 39 additions and 34 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
android:layout_width="match_parent"
android:layout_height="match_parent">

<androidx.appcompat.widget.Toolbar
<com.google.android.material.appbar.MaterialToolbar
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/drawer_layout_toolbar"
android:visibility="gone"
Expand Down
2 changes: 1 addition & 1 deletion android/modules/ui/res/layout/titanium_ui_toolbar.xml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.appcompat.widget.Toolbar
<com.google.android.material.appbar.MaterialToolbar
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:android="http://schemas.android.com/apk/res/android"
android:visibility="gone"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,10 @@
import android.graphics.Color;
import android.graphics.Rect;

import androidx.appcompat.widget.Toolbar;
import android.view.View;
import android.view.Window;
import android.view.WindowInsets;

import com.google.android.material.appbar.MaterialToolbar;
import org.appcelerator.kroll.KrollDict;
import org.appcelerator.kroll.KrollProxy;
import org.appcelerator.titanium.TiApplication;
Expand All @@ -30,7 +29,7 @@ public class TiToolbar extends TiUIView
private final int BACKGROUND_SOLID_VALUE = 255;
//endregion
//region private Object fields
private Toolbar toolbar;
private MaterialToolbar toolbar;
private Object logo = null;
private Object navigationIcon = null;
private Object overflowMenuIcon = null;
Expand All @@ -45,7 +44,7 @@ public class TiToolbar extends TiUIView
public TiToolbar(TiViewProxy proxy)
{
super(proxy);
toolbar = new Toolbar(proxy.getActivity()) {
toolbar = new MaterialToolbar(proxy.getActivity()) {
@Override
protected void onConfigurationChanged(Configuration newConfig)
{
Expand Down Expand Up @@ -202,11 +201,17 @@ public void setTranslucent(boolean value)
private View convertLayoutParamsForView(TiUIView source)
{
View res = source.getNativeView();
int width = MaterialToolbar.LayoutParams.WRAP_CONTENT;
TiDimension widthDimension = source.getLayoutParams().optionWidth;
int width = widthDimension != null ? widthDimension.getAsPixels(toolbar) : Toolbar.LayoutParams.WRAP_CONTENT;
if (widthDimension != null) {
width = widthDimension.getAsPixels(toolbar);
}
int height = MaterialToolbar.LayoutParams.WRAP_CONTENT;
TiDimension heightDimension = source.getLayoutParams().optionHeight;
int height = heightDimension != null ? heightDimension.getAsPixels(toolbar) : Toolbar.LayoutParams.WRAP_CONTENT;
res.setLayoutParams(new Toolbar.LayoutParams(width, height));
if (heightDimension != null) {
height = heightDimension.getAsPixels(toolbar);
}
res.setLayoutParams(new MaterialToolbar.LayoutParams(width, height));
return res;
}

Expand All @@ -215,15 +220,15 @@ private View convertLayoutParamsForView(TiUIView source)
*/
public void showOverFlowMenu()
{
((Toolbar) getNativeView()).showOverflowMenu();
((MaterialToolbar) getNativeView()).showOverflowMenu();
}

/**
* Hides the overflow menu if there is one.
*/
public void hideOverFlowMenu()
{
((Toolbar) getNativeView()).hideOverflowMenu();
((MaterialToolbar) getNativeView()).hideOverflowMenu();
}

/**
Expand All @@ -234,7 +239,7 @@ public void setLogo(Object object)
{
logo = object;
TiDrawableReference tiDrawableReference = TiDrawableReference.fromObject(proxy, object);
((Toolbar) getNativeView()).setLogo(tiDrawableReference.getDrawable());
((MaterialToolbar) getNativeView()).setLogo(tiDrawableReference.getDrawable());
}

/**
Expand All @@ -254,7 +259,7 @@ public void setNavigationIcon(Object object)
{
navigationIcon = object;
TiDrawableReference tiDrawableReference = TiDrawableReference.fromObject(proxy, object);
((Toolbar) getNativeView()).setNavigationIcon(tiDrawableReference.getDrawable());
((MaterialToolbar) getNativeView()).setNavigationIcon(tiDrawableReference.getDrawable());
}

/**
Expand All @@ -274,7 +279,7 @@ public void setOverflowMenuIcon(Object object)
{
overflowMenuIcon = object;
TiDrawableReference tiDrawableReference = TiDrawableReference.fromObject(proxy, object);
((Toolbar) getNativeView()).setOverflowIcon(tiDrawableReference.getDrawable());
((MaterialToolbar) getNativeView()).setOverflowIcon(tiDrawableReference.getDrawable());
}

/**
Expand All @@ -291,7 +296,7 @@ public Object getOverflowMenuIcon()
*/
public void dismissPopupMenus()
{
((Toolbar) getNativeView()).dismissPopupMenus();
((MaterialToolbar) getNativeView()).dismissPopupMenus();
}

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,8 @@
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.app.ActionBarDrawerToggle;
import androidx.appcompat.widget.Toolbar;
import androidx.core.view.GravityCompat;
import android.util.Log;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
Expand Down Expand Up @@ -166,7 +166,7 @@ private void drawerSlideEvent(View drawerView, float slideOffset)

public void toggleLeft()
{
if (layout.isDrawerOpen(Gravity.START)) {
if (layout.isDrawerOpen(GravityCompat.START)) {
closeLeft();
} else {
openLeft();
Expand All @@ -175,17 +175,17 @@ public void toggleLeft()

public void openLeft()
{
layout.openDrawer(Gravity.START);
layout.openDrawer(GravityCompat.START);
}

public void closeLeft()
{
layout.closeDrawer(Gravity.START);
layout.closeDrawer(GravityCompat.START);
}

public void toggleRight()
{
if (layout.isDrawerOpen(Gravity.END)) {
if (layout.isDrawerOpen(GravityCompat.END)) {
closeRight();
} else {
openRight();
Expand All @@ -194,32 +194,32 @@ public void toggleRight()

public void openRight()
{
layout.openDrawer(Gravity.END);
layout.openDrawer(GravityCompat.END);
}

public void closeRight()
{
layout.closeDrawer(Gravity.END);
layout.closeDrawer(GravityCompat.END);
}

public boolean isLeftOpen()
{
return layout.isDrawerOpen(Gravity.START);
return layout.isDrawerOpen(GravityCompat.START);
}

public boolean isRightOpen()
{
return layout.isDrawerOpen(Gravity.END);
return layout.isDrawerOpen(GravityCompat.END);
}

public boolean isLeftVisible()
{
return layout.isDrawerVisible(Gravity.START);
return layout.isDrawerVisible(GravityCompat.START);
}

public boolean isRightVisible()
{
return layout.isDrawerVisible(Gravity.END);
return layout.isDrawerVisible(GravityCompat.END);
}

private void initDrawerToggle()
Expand Down Expand Up @@ -280,7 +280,7 @@ private void initLeft()
leftFrame = new FrameLayout(proxy.getActivity());

LayoutParams frameLayout = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.MATCH_PARENT);
frameLayout.gravity = Gravity.START;
frameLayout.gravity = GravityCompat.START;
leftFrame.setLayoutParams(frameLayout);

layout.addView(leftFrame);
Expand All @@ -298,7 +298,7 @@ private void initRight()
rightFrame = new FrameLayout(proxy.getActivity());

LayoutParams frameLayout = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.MATCH_PARENT);
frameLayout.gravity = Gravity.END;
frameLayout.gravity = GravityCompat.END;
rightFrame.setLayoutParams(frameLayout);

layout.addView(rightFrame);
Expand Down Expand Up @@ -419,10 +419,10 @@ public void processProperties(KrollDict d)
layout.setDrawerLockMode(TiConvert.toInt(d.get(TiC.PROPERTY_DRAWER_LOCK_MODE)));
}
if (d.containsKey(TiC.PROPERTY_LEFT_DRAWER_LOCK_MODE)) {
layout.setDrawerLockMode(TiConvert.toInt(d.get(TiC.PROPERTY_LEFT_DRAWER_LOCK_MODE)), Gravity.START);
layout.setDrawerLockMode(TiConvert.toInt(d.get(TiC.PROPERTY_LEFT_DRAWER_LOCK_MODE)), GravityCompat.START);
}
if (d.containsKey(TiC.PROPERTY_RIGHT_DRAWER_LOCK_MODE)) {
layout.setDrawerLockMode(TiConvert.toInt(d.get(TiC.PROPERTY_RIGHT_DRAWER_LOCK_MODE)), Gravity.END);
layout.setDrawerLockMode(TiConvert.toInt(d.get(TiC.PROPERTY_RIGHT_DRAWER_LOCK_MODE)), GravityCompat.END);
}
// If theme has default ActionBar ignore `toolbarEnabled` and `toolbar` properties
if (!this.themeHasActionBar) {
Expand Down Expand Up @@ -520,7 +520,7 @@ public void propertyChanged(String key, Object oldValue, Object newValue, KrollP
}

LayoutParams leftFrameLayout = new LayoutParams(leftWidth, LayoutParams.MATCH_PARENT);
leftFrameLayout.gravity = Gravity.START;
leftFrameLayout.gravity = GravityCompat.START;
this.leftFrame.setLayoutParams(leftFrameLayout);

} else if (key.equals(TiC.PROPERTY_RIGHT_WIDTH)) {
Expand All @@ -538,15 +538,15 @@ public void propertyChanged(String key, Object oldValue, Object newValue, KrollP
}

LayoutParams rightFrameLayout = new LayoutParams(rightWidth, LayoutParams.MATCH_PARENT);
rightFrameLayout.gravity = Gravity.END;
rightFrameLayout.gravity = GravityCompat.END;
this.rightFrame.setLayoutParams(rightFrameLayout);

} else if (key.equals(TiC.PROPERTY_DRAWER_LOCK_MODE)) {
layout.setDrawerLockMode(TiConvert.toInt(newValue));
} else if (key.equals(TiC.PROPERTY_LEFT_DRAWER_LOCK_MODE)) {
layout.setDrawerLockMode(TiConvert.toInt(newValue), Gravity.START);
layout.setDrawerLockMode(TiConvert.toInt(newValue), GravityCompat.START);
} else if (key.equals(TiC.PROPERTY_RIGHT_DRAWER_LOCK_MODE)) {
layout.setDrawerLockMode(TiConvert.toInt(newValue), Gravity.END);
layout.setDrawerLockMode(TiConvert.toInt(newValue), GravityCompat.END);
} else if (key.equals(TiC.PROPERTY_DRAWER_INDICATOR_ENABLED)) {
if (drawerToggle != null) {
drawerToggle.setDrawerIndicatorEnabled((Boolean) newValue);
Expand Down

0 comments on commit 1c1431d

Please sign in to comment.