Skip to content
This repository was archived by the owner on Sep 3, 2024. It is now read-only.

Commit c970375

Browse files
committed
- toolbarlayout improvments
1 parent d2e852a commit c970375

File tree

12 files changed

+267
-136
lines changed

12 files changed

+267
-136
lines changed

app/src/main/java/de/dlyt/yanndroid/oneuiexample/MainActivity.java

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,6 @@ public class MainActivity extends BaseThemeActivity {
5353
private TabsManager mTabsManager;
5454

5555
private DrawerLayout drawerLayout;
56-
private ToolbarLayout toolbarLayout;
5756
private BottomNavigationView bnvLayout;
5857
private PopupMenu bnvPopupMenu;
5958

@@ -67,7 +66,7 @@ protected void onCreate(Bundle savedInstanceState) {
6766
mContext = this;
6867
setContentView(R.layout.activity_main);
6968

70-
activityResultLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), result -> toolbarLayout.onSearchModeVoiceInputResult(result));
69+
activityResultLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), result -> drawerLayout.onSearchModeVoiceInputResult(result));
7170

7271
init();
7372
}
@@ -113,7 +112,6 @@ private void init() {
113112
ViewSupport.semSetRoundedCorners(getWindow().getDecorView(), 0);
114113

115114
drawerLayout = findViewById(R.id.drawer_view);
116-
toolbarLayout = drawerLayout.getToolbarLayout();
117115
bnvLayout = findViewById(R.id.main_samsung_tabs);
118116

119117
sharedPrefName = "mainactivity_tabs";
@@ -131,7 +129,7 @@ private void init() {
131129
drawerLayout.setDrawerButtonTooltip(getText(R.string.app_info));
132130
drawerLayout.setButtonBadges(ToolbarLayout.N_BADGE, DrawerLayout.N_BADGE);
133131

134-
toolbarLayout.getAppBarLayout().addOnOffsetChangedListener((layout, verticalOffset) -> {
132+
drawerLayout.getAppBarLayout().addOnOffsetChangedListener((layout, verticalOffset) -> {
135133
int totalScrollRange = layout.getTotalScrollRange();
136134
int inputMethodWindowVisibleHeight = (int) ReflectUtils.genericInvokeMethod(InputMethodManager.class, mContext.getSystemService(INPUT_METHOD_SERVICE), "getInputMethodWindowVisibleHeight");
137135
LinearLayout nothingLayout = findViewById(R.id.nothing_layout);
@@ -144,12 +142,12 @@ private void init() {
144142
}
145143
});
146144

147-
toolbarLayout.inflateToolbarMenu(R.menu.main);
148-
toolbarLayout.getToolbarMenu().findItem(R.id.theme_toggle).setTitle(mUseOUI4Theme ? "Switch to OneUI 3 Theme" : "Switch to OneUI 4 Theme");
149-
toolbarLayout.setOnToolbarMenuItemClickListener(item -> {
145+
drawerLayout.inflateToolbarMenu(R.menu.main);
146+
drawerLayout.getToolbarMenu().findItem(R.id.theme_toggle).setTitle(mUseOUI4Theme ? "Switch to OneUI 3 Theme" : "Switch to OneUI 4 Theme");
147+
drawerLayout.setOnToolbarMenuItemClickListener(item -> {
150148
switch (item.getItemId()) {
151149
case R.id.search:
152-
toolbarLayout.showSearchMode();
150+
drawerLayout.showSearchMode();
153151
item.setBadge(item.getBadge() + 1);
154152
break;
155153
case R.id.info:
@@ -163,7 +161,7 @@ private void init() {
163161

164162
return true;
165163
});
166-
toolbarLayout.setSearchModeListener(new ToolbarLayout.SearchModeListener() {
164+
drawerLayout.setSearchModeListener(new ToolbarLayout.SearchModeListener() {
167165
@Override
168166
public void onKeyboardSearchClick(CharSequence s) {
169167
Toast.makeText(mContext, s, Toast.LENGTH_SHORT).show();
@@ -215,15 +213,17 @@ private void setCurrentItem() {
215213

216214
if (tabPosition == 0) {
217215
// MainActivityFirstFragment
218-
toolbarLayout.setSubtitle("Design");
219-
toolbarLayout.setNavigationButtonVisible(true);
220-
toolbarLayout.getToolbarMenu().findItem(R.id.search).setVisible(true);
216+
drawerLayout.setSubtitle("Design");
217+
drawerLayout.setNavigationButtonVisible(true);
218+
drawerLayout.getToolbarMenu().findItem(R.id.search).setVisible(true);
219+
drawerLayout.setImmersiveScroll(false);
221220
((androidx.drawerlayout.widget.DrawerLayout) drawerLayout.findViewById(R.id.drawerLayout)).setDrawerLockMode(androidx.drawerlayout.widget.DrawerLayout.LOCK_MODE_UNLOCKED);
222221
} else {
223222
// MainActivitySecondFragment
224-
toolbarLayout.setSubtitle("Preferences");
225-
toolbarLayout.setNavigationButtonVisible(false);
226-
toolbarLayout.getToolbarMenu().findItem(R.id.search).setVisible(false);
223+
drawerLayout.setSubtitle("Preferences");
224+
drawerLayout.setNavigationButtonVisible(false);
225+
drawerLayout.getToolbarMenu().findItem(R.id.search).setVisible(false);
226+
drawerLayout.setImmersiveScroll(true);
227227
((androidx.drawerlayout.widget.DrawerLayout) drawerLayout.findViewById(R.id.drawerLayout)).setDrawerLockMode(androidx.drawerlayout.widget.DrawerLayout.LOCK_MODE_LOCKED_CLOSED);
228228
}
229229

app/src/main/java/de/dlyt/yanndroid/oneuiexample/SwitchBarActivity.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
import android.widget.Toast;
77

88
import de.dlyt.yanndroid.oneui.layout.SwitchBarLayout;
9-
import de.dlyt.yanndroid.oneui.layout.ToolbarLayout;
109
import de.dlyt.yanndroid.oneui.widget.Switch;
1110
import de.dlyt.yanndroid.oneui.widget.SwitchBar;
1211
import de.dlyt.yanndroid.oneuiexample.base.BaseThemeActivity;
@@ -20,10 +19,9 @@ protected void onCreate(Bundle savedInstanceState) {
2019
setContentView(R.layout.activity_switchbar);
2120

2221
SwitchBarLayout switchBarLayout = findViewById(R.id.switchbarlayout_switchbaractivity);
23-
ToolbarLayout toolbarLayout = switchBarLayout.getToolbarLayout();
2422

25-
toolbarLayout.inflateToolbarMenu(R.menu.switchpreferencescreen_menu);
26-
toolbarLayout.setOnToolbarMenuItemClickListener(item -> {
23+
switchBarLayout.inflateToolbarMenu(R.menu.switchpreferencescreen_menu);
24+
switchBarLayout.setOnToolbarMenuItemClickListener(item -> {
2725
Toast.makeText(this, "Item clicked", Toast.LENGTH_SHORT).show();
2826
return true;
2927
});

app/src/main/java/de/dlyt/yanndroid/oneuiexample/tabs/IconsTab.java

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -25,12 +25,11 @@
2525
import java.util.List;
2626

2727
import de.dlyt.yanndroid.oneui.layout.DrawerLayout;
28-
import de.dlyt.yanndroid.oneui.layout.ToolbarLayout;
2928
import de.dlyt.yanndroid.oneui.sesl.recyclerview.LinearLayoutManager;
29+
import de.dlyt.yanndroid.oneui.view.IndexScrollView;
3030
import de.dlyt.yanndroid.oneui.view.RecyclerView;
3131
import de.dlyt.yanndroid.oneui.view.ViewPager;
3232
import de.dlyt.yanndroid.oneui.widget.BottomNavigationView;
33-
import de.dlyt.yanndroid.oneui.view.IndexScrollView;
3433
import de.dlyt.yanndroid.oneui.widget.TabLayout;
3534
import de.dlyt.yanndroid.oneuiexample.R;
3635

@@ -333,21 +332,21 @@ public void handleOnBackPressed() {
333332

334333

335334
public void setSelecting(boolean enabled) {
336-
ToolbarLayout toolbarLayout = ((DrawerLayout) getActivity().findViewById(R.id.drawer_view)).getToolbarLayout();
335+
DrawerLayout drawerLayout = getActivity().findViewById(R.id.drawer_view);
337336
TabLayout tabLayout = getActivity().findViewById(R.id.tabLayout);
338337
BottomNavigationView bnv = getActivity().findViewById(R.id.main_samsung_tabs);
339338
ViewPager viewPager = getActivity().findViewById(R.id.viewPager);
340339

341340
if (enabled) {
342341
mSelecting = true;
343342
imageAdapter.notifyItemRangeChanged(0, imageAdapter.getItemCount() - 1);
344-
toolbarLayout.setSelectModeBottomMenu(R.menu.select_mode_menu, item -> {
343+
drawerLayout.setSelectModeBottomMenu(R.menu.select_mode_menu, item -> {
345344
item.setBadge(item.getBadge() + 1);
346345
Toast.makeText(mContext, item.getTitle(), Toast.LENGTH_SHORT).show();
347346
return true;
348347
});
349-
toolbarLayout.showSelectMode();
350-
toolbarLayout.setSelectModeAllCheckedChangeListener((buttonView, isChecked) -> {
348+
drawerLayout.showSelectMode();
349+
drawerLayout.setSelectModeAllCheckedChangeListener((buttonView, isChecked) -> {
351350
if (checkAllListening) {
352351
for (int i = 0; i < imageAdapter.getItemCount() - 1; i++) {
353352
selected.put(i, isChecked);
@@ -356,7 +355,7 @@ public void setSelecting(boolean enabled) {
356355
}
357356
int count = 0;
358357
for (Boolean b : selected.values()) if (b) count++;
359-
toolbarLayout.setSelectModeCount(count);
358+
drawerLayout.setSelectModeCount(count);
360359
});
361360
tabLayout.setEnabled(false);
362361
bnv.setEnabled(false);
@@ -367,8 +366,8 @@ public void setSelecting(boolean enabled) {
367366
for (int i = 0; i < imageAdapter.getItemCount() - 1; i++) selected.put(i, false);
368367
imageAdapter.notifyItemRangeChanged(0, imageAdapter.getItemCount() - 1);
369368

370-
toolbarLayout.setSelectModeCount(0);
371-
toolbarLayout.dismissSelectMode();
369+
drawerLayout.setSelectModeCount(0);
370+
drawerLayout.dismissSelectMode();
372371
tabLayout.setEnabled(true);
373372
bnv.setEnabled(true);
374373
viewPager.setPagingEnabled(true);
@@ -383,9 +382,9 @@ public void toggleItemSelected(int position) {
383382
checkAllListening = false;
384383
int count = 0;
385384
for (Boolean b : selected.values()) if (b) count++;
386-
ToolbarLayout toolbarLayout = ((DrawerLayout) getActivity().findViewById(R.id.drawer_view)).getToolbarLayout();
387-
toolbarLayout.setSelectModeAllChecked(count == imageAdapter.getItemCount() - 1);
388-
toolbarLayout.setSelectModeCount(count);
385+
DrawerLayout drawerLayout = getActivity().findViewById(R.id.drawer_view);
386+
drawerLayout.setSelectModeAllChecked(count == imageAdapter.getItemCount() - 1);
387+
drawerLayout.setSelectModeCount(count);
389388
checkAllListening = true;
390389
}
391390

app/src/main/res/layout/activity_main.xml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,4 +21,13 @@
2121

2222
<include layout="@layout/content_drawer" />
2323

24+
<!--<com.google.android.material.floatingactionbutton.FloatingActionButton
25+
android:layout_width="wrap_content"
26+
android:layout_height="wrap_content"
27+
android:layout_gravity="bottom|end"
28+
android:layout_marginEnd="16dp"
29+
android:layout_marginBottom="16dp"
30+
app:layout_location="root"
31+
app:srcCompat="@drawable/ic_samsung_favorite_on" />-->
32+
2433
</de.dlyt.yanndroid.oneui.layout.DrawerLayout>

yanndroid/oneui/src/main/java/de/dlyt/yanndroid/oneui/layout/DrawerLayout.java

Lines changed: 13 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@
3333
import de.dlyt.yanndroid.oneui.R;
3434
import de.dlyt.yanndroid.oneui.sesl.widget.ToolbarImageButton;
3535

36-
public class DrawerLayout extends LinearLayout {
36+
public class DrawerLayout extends ToolbarLayoutWrapper {
3737

3838
private boolean mIsOneUI4;
3939
public static final int N_BADGE = -1;
@@ -63,6 +63,7 @@ public DrawerLayout(Context context, @Nullable AttributeSet attrs) {
6363
mContext = context;
6464
mActivity = getActivity();
6565

66+
6667
TypedArray attr = context.getTheme().obtainStyledAttributes(attrs, R.styleable.DrawerLayout, 0, 0);
6768

6869
try {
@@ -80,12 +81,13 @@ public DrawerLayout(Context context, @Nullable AttributeSet attrs) {
8081

8182
drawer_container = findViewById(R.id.drawer_container);
8283
toolbarLayout = findViewById(R.id.drawer_toolbarlayout);
84+
setToolbarLayout(toolbarLayout);
8385

8486
toolbarLayout.syncWithDrawer(this);
85-
toolbarLayout.setTitle(mToolbarTitle);
86-
toolbarLayout.setSubtitle(mToolbarSubtitle);
87-
toolbarLayout.setNavigationButtonTooltip(getResources().getText(R.string.sesl_navigation_drawer));
88-
toolbarLayout.setExpanded(mToolbarExpanded, false);
87+
setTitle(mToolbarTitle);
88+
setSubtitle(mToolbarSubtitle);
89+
setNavigationButtonTooltip(getResources().getText(R.string.sesl_navigation_drawer));
90+
setExpanded(mToolbarExpanded, false);
8991
drawerButtonContainer = findViewById(R.id.drawer_layout_drawerButton_container);
9092
drawerButton = findViewById(R.id.drawer_layout_drawerButton);
9193

@@ -150,7 +152,7 @@ public void onDrawerSlide(View drawerView, float slideOffset) {
150152
}
151153
};
152154
drawerLayout.addDrawerListener(actionBarDrawerToggle);
153-
toolbarLayout.setNavigationButtonOnClickListener(v -> drawerLayout.openDrawer(drawer, true));
155+
setNavigationButtonOnClickListener(v -> drawerLayout.openDrawer(drawer, true));
154156

155157
}
156158
}
@@ -183,10 +185,6 @@ private void setDrawerWidth() {
183185
//
184186
// Drawer methods
185187
//
186-
public ToolbarLayout getToolbarLayout() {
187-
return toolbarLayout;
188-
}
189-
190188
public void setDrawerButtonOnClickListener(OnClickListener listener) {
191189
drawerButton.setOnClickListener(listener);
192190
}
@@ -195,24 +193,8 @@ public void setDrawerButtonTooltip(CharSequence tooltipText) {
195193
drawerButton.setTooltipText(tooltipText);
196194
}
197195

198-
public void setToolbarTitle(CharSequence title) {
199-
toolbarLayout.setTitle(title);
200-
}
201-
202-
public void setToolbarTitle(CharSequence expandedTitle, CharSequence collapsedTitle) {
203-
toolbarLayout.setTitle(expandedTitle, collapsedTitle);
204-
}
205-
206-
public void setToolbarSubtitle(String subtitle) {
207-
toolbarLayout.setSubtitle(subtitle);
208-
}
209-
210-
public void setToolbarExpanded(boolean expanded, boolean animate) {
211-
toolbarLayout.setExpanded(expanded, animate);
212-
}
213-
214196
public void setButtonBadges(int navigationIcon, int drawerIcon) {
215-
toolbarLayout.setNavigationButtonBadge(navigationIcon);
197+
setNavigationButtonBadge(navigationIcon);
216198
setDrawerButtonBadge(drawerIcon);
217199
}
218200

@@ -260,14 +242,6 @@ public void setDrawerOpen(Boolean open, Boolean animate) {
260242

261243
}
262244

263-
public void setImmersiveScroll(boolean activate) {
264-
toolbarLayout.setImmersiveScroll(activate);
265-
}
266-
267-
public boolean isImmersiveScroll() {
268-
return toolbarLayout.isImmersiveScroll();
269-
}
270-
271245
//
272246
// others
273247
//
@@ -287,23 +261,22 @@ public void addView(View child, int index, ViewGroup.LayoutParams params) {
287261
if (toolbarLayout == null || drawer_container == null) {
288262
super.addView(child, index, params);
289263
} else {
290-
ToolbarLayout.Drawer_Toolbar_LayoutParams lp = (ToolbarLayout.Drawer_Toolbar_LayoutParams) params;
291-
switch (lp.layout_location) {
264+
switch (((ToolbarLayout.Drawer_Toolbar_LayoutParams) params).layout_location) {
292265
case 0:
293266
case 1:
294267
case 2:
295268
case 3:
296-
toolbarLayout.addView(child, index, params);
269+
toolbarLayout.addView(child, params);
297270
break;
298271
case 4:
299-
drawer_container.addView(child, index, params);
272+
drawer_container.addView(child, params);
300273
break;
301274
}
302275
}
303276
}
304277

305278
@Override
306-
protected LayoutParams generateDefaultLayoutParams() {
279+
public LayoutParams generateDefaultLayoutParams() {
307280
return new ToolbarLayout.Drawer_Toolbar_LayoutParams(getContext(), null);
308281
}
309282

yanndroid/oneui/src/main/java/de/dlyt/yanndroid/oneui/layout/SwitchBarLayout.java

Lines changed: 7 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -9,20 +9,18 @@
99
import android.view.View;
1010
import android.view.ViewGroup;
1111
import android.widget.FrameLayout;
12-
import android.widget.LinearLayout;
1312

1413
import androidx.annotation.Nullable;
1514

1615
import de.dlyt.yanndroid.oneui.R;
1716
import de.dlyt.yanndroid.oneui.widget.SwitchBar;
1817

19-
public class SwitchBarLayout extends LinearLayout {
18+
public class SwitchBarLayout extends ToolbarLayoutWrapper {
2019

2120
private int mLayout;
2221
private String mToolbarTitle;
2322
private String mToolbarSubtitle;
2423
private Boolean mToolbarExpanded;
25-
private ToolbarLayout toolbarLayout;
2624
private SwitchBar switchBar;
2725
private FrameLayout mainContainer;
2826

@@ -42,13 +40,13 @@ public SwitchBarLayout(Context context, @Nullable AttributeSet attrs) {
4240
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
4341
inflater.inflate(mLayout, this, true);
4442

45-
toolbarLayout = findViewById(R.id.toolbar_switchbarlayout);
43+
setToolbarLayout(findViewById(R.id.toolbar_switchbarlayout));
4644

47-
toolbarLayout.setTitle(mToolbarTitle);
48-
toolbarLayout.setSubtitle(mToolbarSubtitle);
49-
toolbarLayout.setExpanded(mToolbarExpanded, false);
50-
toolbarLayout.setNavigationButtonTooltip(getResources().getText(R.string.sesl_navigate_up));
51-
toolbarLayout.setNavigationButtonOnClickListener(v -> getActivity().onBackPressed());
45+
setTitle(mToolbarTitle);
46+
setSubtitle(mToolbarSubtitle);
47+
setExpanded(mToolbarExpanded, false);
48+
setNavigationButtonTooltip(getResources().getText(R.string.sesl_navigate_up));
49+
setNavigationButtonOnClickListener(v -> getActivity().onBackPressed());
5250

5351
switchBar = findViewById(R.id.switchbar_switchbarlayout);
5452

@@ -59,26 +57,6 @@ public SwitchBar getSwitchBar() {
5957
return switchBar;
6058
}
6159

62-
public ToolbarLayout getToolbarLayout() {
63-
return toolbarLayout;
64-
}
65-
66-
public void setToolbarTitle(CharSequence title) {
67-
toolbarLayout.setTitle(title);
68-
}
69-
70-
public void setToolbarTitle(CharSequence expandedTitle, CharSequence collapsedTitle) {
71-
toolbarLayout.setTitle(expandedTitle, collapsedTitle);
72-
}
73-
74-
public void setToolbarSubtitle(String subtitle) {
75-
toolbarLayout.setSubtitle(subtitle);
76-
}
77-
78-
public void setToolbarExpanded(boolean expanded, boolean animate) {
79-
toolbarLayout.setExpanded(expanded, animate);
80-
}
81-
8260
@Override
8361
public void addView(View child, int index, ViewGroup.LayoutParams params) {
8462
if (mainContainer == null) {

0 commit comments

Comments
 (0)