copy release notes
This commit is contained in:
parent
1aa59110eb
commit
cfdc192c3e
|
@ -0,0 +1,144 @@
|
|||
package app.fedilab.android.helper;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.graphics.drawable.Drawable;
|
||||
|
||||
import android.view.Gravity;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.FrameLayout;
|
||||
|
||||
import com.oguzdev.circularfloatingactionmenu.library.FloatingActionButton;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import app.fedilab.android.R;
|
||||
|
||||
public class MenuFloating extends com.oguzdev.circularfloatingactionmenu.library.FloatingActionButton {
|
||||
|
||||
public static List<String> tags;
|
||||
|
||||
public MenuFloating(Activity activity, LayoutParams layoutParams, int theme, Drawable backgroundDrawable, int position, View contentView, FrameLayout.LayoutParams contentParams, View attachedTo, String tag) {
|
||||
super(activity, layoutParams, theme, backgroundDrawable, position, null, contentParams);
|
||||
super.detach();
|
||||
setPosition(position, layoutParams);
|
||||
// If no custom backgroundDrawable is specified, use the background drawable of the theme.
|
||||
if (backgroundDrawable == null) {
|
||||
if (theme == THEME_LIGHT)
|
||||
backgroundDrawable = activity.getResources().getDrawable(R.drawable.button_action_selector);
|
||||
else
|
||||
backgroundDrawable = activity.getResources().getDrawable(R.drawable.button_action_dark_selector);
|
||||
}
|
||||
setBackgroundResource(backgroundDrawable);
|
||||
|
||||
if (tags == null || !tags.contains(tag)) {
|
||||
if (tags == null)
|
||||
tags = new ArrayList<>();
|
||||
if (contentView != null) {
|
||||
setContentView(contentView, contentParams);
|
||||
}
|
||||
setClickable(true);
|
||||
attach(attachedTo, layoutParams);
|
||||
tags.add(tag);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Attaches it to the content view with specified LayoutParams.
|
||||
* @param view View
|
||||
* @param layoutParams ViewGroup.LayoutParams
|
||||
*/
|
||||
public void attach(View view, ViewGroup.LayoutParams layoutParams) {
|
||||
if (this.getParent() != null)
|
||||
((ViewGroup) this.getParent()).removeView(this);
|
||||
((ViewGroup) view).addView(this, layoutParams);
|
||||
}
|
||||
|
||||
private void setBackgroundResource(Drawable drawable) {
|
||||
setBackground(drawable);
|
||||
}
|
||||
|
||||
/**
|
||||
* A builder for {@link MenuFloating} in conventional Java Builder format
|
||||
*/
|
||||
public static class Builder {
|
||||
|
||||
private Activity activity;
|
||||
private FloatingActionButton.LayoutParams layoutParams;
|
||||
private int theme;
|
||||
private Drawable backgroundDrawable;
|
||||
private int position;
|
||||
private View contentView;
|
||||
private LayoutParams contentParams;
|
||||
private View targetedView;
|
||||
private String tag;
|
||||
|
||||
public Builder(Activity activity) {
|
||||
this.activity = activity;
|
||||
|
||||
// Default MenuFloating settings
|
||||
int size = activity.getResources().getDimensionPixelSize(R.dimen.action_button_size);
|
||||
int margin = activity.getResources().getDimensionPixelSize(R.dimen.action_button_margin);
|
||||
FloatingActionButton.LayoutParams layoutParams = new LayoutParams(size, size, Gravity.BOTTOM | Gravity.END);
|
||||
layoutParams.setMargins(margin, margin, margin, margin);
|
||||
setLayoutParams(layoutParams);
|
||||
setTheme(FloatingActionButton.THEME_LIGHT);
|
||||
setPosition(FloatingActionButton.POSITION_BOTTOM_RIGHT);
|
||||
}
|
||||
|
||||
public Builder intoView(View view) {
|
||||
this.targetedView = view;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setLayoutParams(FloatingActionButton.LayoutParams params) {
|
||||
this.layoutParams = params;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setTheme(int theme) {
|
||||
this.theme = theme;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setBackgroundDrawable(Drawable backgroundDrawable) {
|
||||
this.backgroundDrawable = backgroundDrawable;
|
||||
return this;
|
||||
}
|
||||
|
||||
|
||||
public Builder setPosition(int position) {
|
||||
this.position = position;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setContentView(View contentView) {
|
||||
return setContentView(contentView, null);
|
||||
}
|
||||
|
||||
public Builder setContentView(View contentView, LayoutParams contentParams) {
|
||||
this.contentView = contentView;
|
||||
this.contentParams = contentParams;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setTag(String tag) {
|
||||
this.tag = tag;
|
||||
return this;
|
||||
}
|
||||
|
||||
public MenuFloating build() {
|
||||
return new MenuFloating(activity,
|
||||
layoutParams,
|
||||
theme,
|
||||
backgroundDrawable,
|
||||
position,
|
||||
contentView,
|
||||
contentParams,
|
||||
targetedView, tag);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in New Issue