Skip to content
This repository was archived by the owner on Sep 3, 2024. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
44 changes: 42 additions & 2 deletions app/src/main/java/de/dlyt/yanndroid/oneuiexample/MainActivity.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.res.ColorStateList;
import android.content.res.Configuration;
import android.content.res.Resources;
import android.graphics.Color;
Expand All @@ -24,6 +25,8 @@
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentTransaction;

import com.google.android.material.floatingactionbutton.FloatingActionButton;

import de.dlyt.yanndroid.oneui.dialog.AlertDialog;
import de.dlyt.yanndroid.oneui.dialog.ClassicColorPickerDialog;
import de.dlyt.yanndroid.oneui.dialog.DetailedColorPickerDialog;
Expand All @@ -36,8 +39,11 @@
import de.dlyt.yanndroid.oneui.sesl.tabs.SamsungTabLayout;
import de.dlyt.yanndroid.oneui.sesl.utils.ReflectUtils;
import de.dlyt.yanndroid.oneui.utils.CustomButtonClickListener;
import de.dlyt.yanndroid.oneui.utils.OnSingleClickListener;
import de.dlyt.yanndroid.oneui.utils.ThemeUtil;
import de.dlyt.yanndroid.oneui.view.Snackbar;
import de.dlyt.yanndroid.oneui.view.TipPopup;
import de.dlyt.yanndroid.oneui.view.Tooltip;
import de.dlyt.yanndroid.oneui.widget.TabLayout;
import de.dlyt.yanndroid.oneuiexample.base.BaseThemeActivity;
import de.dlyt.yanndroid.oneuiexample.utils.TabsManager;
Expand All @@ -57,6 +63,7 @@ public class MainActivity extends BaseThemeActivity {
private DrawerLayout drawerLayout;
private TabLayout tabLayout;
private PopupMenu bnvPopupMenu;
private TipPopup tipPopup;

private ActivityResultLauncher<Intent> activityResultLauncher;

Expand Down Expand Up @@ -156,9 +163,40 @@ public void onVoiceInputClick(Intent intent) {
}
});

// TabLayout
tabLayout.setTabMode(SamsungTabLayout.SESL_MODE_FIXED_AUTO);
// FAB
FloatingActionButton fab = findViewById(R.id.sesl_fab);
fab.setRippleColor(getResources().getColor(mUseOUI4Theme ? R.color.sesl4_ripple_color : R.color.sesl_ripple_color));
// dummy colors
if (mUseOUI4Theme) {
fab.setBackgroundTintList(ColorStateList.valueOf(getResources().getColor(R.color.sesl_swipe_refresh_background)));
fab.setSupportImageTintList(ResourcesCompat.getColorStateList(getResources(), R.color.sesl_tablayout_selected_indicator_color, getTheme()));
} else {
fab.setBackgroundTintList(ResourcesCompat.getColorStateList(getResources(), R.color.sesl_tablayout_selected_indicator_color, getTheme()));
fab.setSupportImageTintList(ColorStateList.valueOf(getResources().getColor(R.color.sesl_white)));
}
Tooltip.setTooltipText(fab, "FAB");

fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (tipPopup != null && tipPopup.isShowing()) {
tipPopup.dismiss(true);
tipPopup = null;
} else {
tipPopup = new TipPopup(view, mUseOUI4Theme ? TipPopup.MODE_TRANSLUCENT : TipPopup.MODE_NORMAL);
tipPopup.setMessage("This is a TipPopup demo.");
tipPopup.setAction("Ok", new OnSingleClickListener() {
@Override
public void onSingleClick(View view) {
}
});
tipPopup.show(getResources().getConfiguration().getLayoutDirection() == View.LAYOUT_DIRECTION_RTL ? TipPopup.DIRECTION_TOP_RIGHT : TipPopup.DIRECTION_TOP_LEFT);

}
}
});

// TabLayout
for (String s : mTabsTitleName) {
tabLayout.addTab(tabLayout.newTab().setText(s));
}
Expand Down Expand Up @@ -199,6 +237,7 @@ private void setCurrentItem() {

if (tabPosition == 0) {
// MainActivityFirstFragment
findViewById(R.id.sesl_fab).setVisibility(View.VISIBLE);
drawerLayout.setSubtitle("Design");
drawerLayout.setNavigationButtonVisible(true);
drawerLayout.getToolbarMenu().findItem(R.id.search).setVisible(true);
Expand All @@ -207,6 +246,7 @@ private void setCurrentItem() {
tabLayout.seslShowDotBadge(1, true);
} else {
// MainActivitySecondFragment
findViewById(R.id.sesl_fab).setVisibility(View.GONE);
drawerLayout.setSubtitle("Preferences");
drawerLayout.setNavigationButtonVisible(false);
drawerLayout.getToolbarMenu().findItem(R.id.search).setVisible(false);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,16 +6,21 @@
import android.view.View;
import android.view.ViewGroup;

import androidx.annotation.NonNull;
import androidx.fragment.app.Fragment;

import de.dlyt.yanndroid.oneui.view.ViewPager;
import com.google.android.material.floatingactionbutton.FloatingActionButton;

import de.dlyt.yanndroid.oneui.sesl.tabs.SamsungTabLayout;
import de.dlyt.yanndroid.oneui.sesl.tabs.TabLayoutMediator;
import de.dlyt.yanndroid.oneui.sesl.viewpager2.widget.SeslViewPager2;
import de.dlyt.yanndroid.oneui.view.ViewPager2;
import de.dlyt.yanndroid.oneui.widget.TabLayout;
import de.dlyt.yanndroid.oneuiexample.R;
import de.dlyt.yanndroid.oneuiexample.base.BaseThemeActivity;
import de.dlyt.yanndroid.oneuiexample.tabs.ViewPagerAdapter;
import de.dlyt.yanndroid.oneuiexample.tabs.ViewPager2Adapter;

public class MainActivityFirstFragment extends Fragment {

private BaseThemeActivity mActivity;
private Context mContext;
private View mRootView;
Expand All @@ -40,11 +45,48 @@ public void onViewCreated(View view, Bundle savedInstanceState) {
getView().setBackgroundColor(getResources().getColor(mActivity.mUseOUI4Theme ? R.color.sesl4_round_and_bgcolor : R.color.sesl_round_and_bgcolor));

// TabLayout and ViewPager
FloatingActionButton fab = mActivity.findViewById(R.id.sesl_fab);
TabLayout subTabs = mRootView.findViewById(R.id.sub_tabs);
subTabs.seslSetSubTabStyle();
ViewPager viewPager = mRootView.findViewById(R.id.viewPager);
viewPager.setAdapter(new ViewPagerAdapter(getChildFragmentManager()));
subTabs.setupWithViewPager(viewPager);
ViewPager2 viewPager2 = mRootView.findViewById(R.id.viewPager2);
viewPager2.setAdapter(new ViewPager2Adapter(this));
viewPager2.registerOnPageChangeCallback(new SeslViewPager2.OnPageChangeCallback() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
if (position == 0) {
fab.show();
} else {
fab.hide();
}
}

@Override
public void onPageSelected(int position) {
if (position == 0) {
fab.show();
} else {
fab.hide();
}
}

@Override
public void onPageScrollStateChanged(int state) {
if (state == ViewPager2.SCROLL_STATE_IDLE && viewPager2.getCurrentItem() == 0) {
fab.show();
} else {
fab.hide();
}
}
});

TabLayoutMediator tlm = new TabLayoutMediator(subTabs, viewPager2, new TabLayoutMediator.TabConfigurationStrategy() {
@Override
public void onConfigureTab(@NonNull SamsungTabLayout.Tab tab, int position) {
String[] tabTitle = {"Views", "Icons", "Nothing"};
tab.setText(tabTitle[position]);
}
});
tlm.attach();
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@
import de.dlyt.yanndroid.oneui.sesl.recyclerview.LinearLayoutManager;
import de.dlyt.yanndroid.oneui.view.IndexScrollView;
import de.dlyt.yanndroid.oneui.view.RecyclerView;
import de.dlyt.yanndroid.oneui.view.ViewPager;
import de.dlyt.yanndroid.oneui.view.ViewPager2;
import de.dlyt.yanndroid.oneui.widget.TabLayout;
import de.dlyt.yanndroid.oneuiexample.R;

Expand Down Expand Up @@ -336,7 +336,7 @@ public void setSelecting(boolean enabled) {
DrawerLayout drawerLayout = ((DrawerLayout) getActivity().findViewById(R.id.drawer_view));
TabLayout subTabs = getActivity().findViewById(R.id.sub_tabs);
TabLayout mainTabs = getActivity().findViewById(R.id.main_samsung_tabs);
ViewPager viewPager = getActivity().findViewById(R.id.viewPager);
ViewPager2 viewPager2 = getActivity().findViewById(R.id.viewPager2);

if (enabled) {
mSelecting = true;
Expand All @@ -360,7 +360,7 @@ public void setSelecting(boolean enabled) {
});
subTabs.setEnabled(false);
mainTabs.setEnabled(false);
viewPager.setPagingEnabled(false);
viewPager2.setUserInputEnabled(false);
onBackPressedCallback.setEnabled(true);
} else {
mSelecting = false;
Expand All @@ -371,7 +371,7 @@ public void setSelecting(boolean enabled) {
drawerLayout.dismissSelectMode();
subTabs.setEnabled(true);
mainTabs.setEnabled(true);
viewPager.setPagingEnabled(true);
viewPager2.setUserInputEnabled(true);
onBackPressedCallback.setEnabled(false);
}
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
package de.dlyt.yanndroid.oneuiexample.tabs;

import androidx.annotation.NonNull;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentActivity;

import de.dlyt.yanndroid.oneui.sesl.viewpager2.adapter.FragmentStateAdapter;

public class ViewPager2Adapter extends FragmentStateAdapter {
public ViewPager2Adapter(@NonNull Fragment fragment) {
super(fragment);
}

@NonNull
@Override
public Fragment createFragment(int position) {
Fragment fragment = null;
switch (position) {
case 0:
fragment = new ViewsTab();
break;
case 1:
fragment = new IconsTab();
break;
case 2:
fragment = new NothingTab();
break;
}

return fragment;
}

@Override
public int getItemCount() {
return 3;
}
}

This file was deleted.

9 changes: 5 additions & 4 deletions app/src/main/res/layout/activity_main.xml
Original file line number Diff line number Diff line change
Expand Up @@ -22,12 +22,13 @@
<include layout="@layout/content_drawer" />

<com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/sesl_fab"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|end"
android:layout_marginEnd="24dp"
android:layout_marginBottom="24dp"
app:layout_location="root"
app:srcCompat="@drawable/ic_samsung_favorite_on" />
android:layout_margin="24.0dip"
android:elevation="4.0dip"
app:srcCompat="@drawable/ic_samsung_list_add"
app:layout_location="root" />

</de.dlyt.yanndroid.oneui.layout.DrawerLayout>
11 changes: 5 additions & 6 deletions app/src/main/res/layout/fragment_first.xml
Original file line number Diff line number Diff line change
Expand Up @@ -10,18 +10,17 @@
android:layout_width="match_parent"
android:layout_height="wrap_content" />

<de.dlyt.yanndroid.oneui.widget.RoundLinearLayout
<de.dlyt.yanndroid.oneui.widget.RoundFrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
app:roundedCorners="top_left|top_right">

<de.dlyt.yanndroid.oneui.view.ViewPager
android:id="@+id/viewPager"
<de.dlyt.yanndroid.oneui.view.ViewPager2
android:id="@+id/viewPager2"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:overScrollMode="never" />
android:layout_height="match_parent" />

</de.dlyt.yanndroid.oneui.widget.RoundLinearLayout>
</de.dlyt.yanndroid.oneui.widget.RoundFrameLayout>

</LinearLayout>
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,11 @@

import androidx.annotation.RestrictTo;

@RestrictTo({RestrictTo.Scope.LIBRARY_GROUP})
class SeslElasticInterpolator implements Interpolator {
public class SeslElasticInterpolator implements Interpolator {
private float mAmplitude;
private float mPeriod;

SeslElasticInterpolator(float f, float f2) {
public SeslElasticInterpolator(float f, float f2) {
this.mAmplitude = f;
this.mPeriod = f2;
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package de.dlyt.yanndroid.oneui.sesl.support;

import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Context;
import android.content.res.Configuration;
Expand All @@ -23,14 +24,15 @@ public static int getSmallestDeviceWidthDp(Context context) {
return Math.round(Math.min(((float) displayMetrics.heightPixels) / displayMetrics.density, ((float) displayMetrics.widthPixels) / displayMetrics.density));
}

@SuppressLint("WrongConstant")
public static void hideStatusBarForLandscape(Activity activity, int orientation) {
if (!DeviceInfo.isTabletDevice(activity.getApplicationContext()) && !SeslConfigurationReflector.isDexEnabled(activity.getResources().getConfiguration())) {
WindowManager.LayoutParams params = activity.getWindow().getAttributes();
if (orientation == Configuration.ORIENTATION_LANDSCAPE) {
if (!isMultiWindowMode(activity)) {
params.flags |= WindowManager.LayoutParams.FLAG_FULLSCREEN;
} else {
params.flags &= -WindowManager.LayoutParams.FLAG_FULLSCREEN | WindowManager.LayoutParams.LAYOUT_CHANGED;
params.flags &= -WindowManager.LayoutParams.FLAG_FULLSCREEN | WindowManager.LayoutParams.FLAG_ALLOW_LOCK_WHILE_SCREEN_ON;
}

ReflectUtils.genericInvokeMethod(params, "semAddExtensionFlags", 1 /* WindowManager.LayoutParams.SEM_EXTENSION_FLAG_RESIZE_FULLSCREEN_WINDOW_ON_SOFT_INPUT */);
Expand Down
Loading