Skip to content

Commit

Permalink
Added two new Method
Browse files Browse the repository at this point in the history
.AddNewButton(int,String,MaDialogListener);
.setButtonOrientation(int);
  • Loading branch information
umairayub79 committed Jul 10, 2019
1 parent 2d40efb commit 6d6c8f3
Show file tree
Hide file tree
Showing 3 changed files with 91 additions and 52 deletions.
30 changes: 11 additions & 19 deletions app/src/main/java/umairayub/madialogdemoapp/MainActivity.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.LinearLayout;

import androidx.appcompat.app.AppCompatActivity;

Expand All @@ -14,6 +15,7 @@
public class MainActivity extends AppCompatActivity {

Button btn1, btn2, btn3, btn4, btn5, btn6, btn7;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Expand All @@ -27,7 +29,6 @@ protected void onCreate(Bundle savedInstanceState) {
btn7 = (Button) findViewById(R.id.btn7);



btn1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Expand All @@ -51,15 +52,14 @@ public void onClick(View view) {
public void onClick(View view) {
new MaDialog.Builder(MainActivity.this)
.setMessage("Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis scelerisque, turpis et fringilla malesuada, leo velit ullamcorper enim, quis iaculis metus urna ut ligula. Sed malesuada lacinia massa, a accumsan justo condimentum vel.")
.setPositiveButtonText("Yes")
.setNegativeButtonText("Cancel")
.setPositiveButtonListener(new MaDialogListener() {
.setButtonOrientation(LinearLayout.HORIZONTAL)
.AddNewButton(R.style.AppTheme, "Yes", new MaDialogListener() {
@Override
public void onClick() {

}
})
.setNegativeButtonListener(new MaDialogListener() {
.AddNewButton(R.style.AppTheme, "No", new MaDialogListener() {
@Override
public void onClick() {

Expand All @@ -75,15 +75,13 @@ public void onClick(View view) {

.setTitle("Basic with Title + Buttons")
.setMessage("Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis scelerisque, turpis et fringilla malesuada, leo velit ullamcorper enim, quis iaculis metus urna ut ligula. Sed malesuada lacinia massa, a accumsan justo condimentum vel. ")
.setPositiveButtonText("Yes")
.setNegativeButtonText("Cancel")
.setPositiveButtonListener(new MaDialogListener() {
.AddNewButton(R.style.AppTheme, "Yes", new MaDialogListener() {
@Override
public void onClick() {

}
})
.setNegativeButtonListener(new MaDialogListener() {
.AddNewButton(R.style.AppTheme, "Cancel", new MaDialogListener() {
@Override
public void onClick() {

Expand All @@ -99,15 +97,13 @@ public void onClick(View view) {
.setTitle("Basic with Image + Title + Buttons")
.setMessage("Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis scelerisque, turpis et fringilla malesuada, leo velit ullamcorper enim, quis iaculis metus urna ut ligula. Sed malesuada lacinia massa, a accumsan justo condimentum vel.")
.setImage(R.drawable.image)
.setPositiveButtonText("Yes")
.setNegativeButtonText("Cancel")
.setPositiveButtonListener(new MaDialogListener() {
.AddNewButton(R.style.AppTheme, "Yes", new MaDialogListener() {
@Override
public void onClick() {

}
})
.setNegativeButtonListener(new MaDialogListener() {
.AddNewButton(R.style.AppTheme, "Cancel", new MaDialogListener() {
@Override
public void onClick() {

Expand All @@ -123,17 +119,13 @@ public void onClick(View view) {
.setTitle("Basic with GIF + Title + Buttons")
.setMessage("Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis scelerisque, turpis et fringilla malesuada, leo velit ullamcorper enim, quis iaculis metus urna ut ligula. Sed malesuada lacinia massa, a accumsan justo condimentum vel.")
.setGif(R.drawable.dragon)
.setPositiveButtonText("Yes")
.setNegativeButtonText("Cancel")
.setCustomFont(R.font.press_start_2p)

.setPositiveButtonListener(new MaDialogListener() {
.AddNewButton(R.style.AppTheme, "Yes", new MaDialogListener() {
@Override
public void onClick() {

}
})
.setNegativeButtonListener(new MaDialogListener() {
.AddNewButton(R.style.AppTheme, "Cancel", new MaDialogListener() {
@Override
public void onClick() {

Expand Down
99 changes: 73 additions & 26 deletions madialog/src/main/java/umairayub/madialog/MaDialog.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@
import android.graphics.Color;
import android.graphics.Typeface;
import android.graphics.drawable.ColorDrawable;
import android.os.Build;
import android.view.ContextThemeWrapper;
import android.view.LayoutInflater;
import android.view.View;
import android.view.Window;
Expand All @@ -13,14 +15,19 @@
import android.widget.LinearLayout;
import android.widget.TextView;

import androidx.annotation.StyleRes;
import androidx.core.content.res.ResourcesCompat;

import com.bumptech.glide.Glide;

import java.util.ArrayList;
import java.util.List;

public class MaDialog {

public static class Builder {

AlertDialog alertDialog;
private MaDialogListener
positiveButtonListener,
negativeButtonListener;
Expand All @@ -38,7 +45,10 @@ public static class Builder {
backgroundColor,
image,
gif,
font_id;
font_id,
buttonOrientation;

private List<Button> Buttons = new ArrayList<>();

private boolean
cancelOnOutsideTouch = true;
Expand All @@ -50,7 +60,6 @@ public Builder(Context context) {
}



public Builder setTitle(String title) {
this.title = title;
return this;
Expand All @@ -66,15 +75,6 @@ public Builder setCustomFont(int font_id) {
return this;
}

public Builder setPositiveButtonText(String positiveButtonText) {
this.positiveButtonText = positiveButtonText;
return this;
}

public Builder setCancelableOnOutsideTouch(boolean cancelOnOutsideTouch) {
this.cancelOnOutsideTouch = cancelOnOutsideTouch;
return this;
}
public Builder setPositiveButtonListener(MaDialogListener positiveButtonListener) {
this.positiveButtonListener = positiveButtonListener;
return this;
Expand All @@ -90,8 +90,8 @@ public Builder setNegativeButtonText(String negativeButtonText) {
return this;
}

public Builder setBackgroundColor(int backgroundColor) {
this.backgroundColor = backgroundColor;
public Builder setPositiveButtonText(String positiveButtonText) {
this.positiveButtonText = positiveButtonText;
return this;
}

Expand All @@ -100,6 +100,18 @@ public Builder setButtonTextColor(int buttonTextColor) {
return this;
}

public Builder setCancelableOnOutsideTouch(boolean cancelOnOutsideTouch) {
this.cancelOnOutsideTouch = cancelOnOutsideTouch;
return this;
}


public Builder setBackgroundColor(int backgroundColor) {
this.backgroundColor = backgroundColor;
return this;
}


public Builder setMessageTextColor(int messageTextColor) {
this.messageTextColor = messageTextColor;
return this;
Expand All @@ -109,22 +121,48 @@ public Builder setGif(int gif) {
this.gif = gif;
return this;
}

public Builder setImage(int image) {
this.image = image;

return this;
}

public Builder setButtonOrientation(int buttonOrientation) {
this.buttonOrientation = buttonOrientation;
return this;
}

public Builder setTitleTextColor(int titleTextColor) {
this.titleTextColor = titleTextColor;
return this;
}

public Builder AddNewButton(@StyleRes int style, String btnText, final MaDialogListener clickListener) {
Button addbutton = new Button(new ContextThemeWrapper(context, style), null, style);
LinearLayout.LayoutParams LayoutParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT, 1f);
LayoutParams.setMargins(8, 8, 8, 8);
addbutton.setLayoutParams(LayoutParams);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
addbutton.setTextAlignment(View.TEXT_ALIGNMENT_CENTER);
}
addbutton.setText(btnText);
addbutton.setTextSize(16);
addbutton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
clickListener.onClick();
alertDialog.dismiss();

}
});
Buttons.add(addbutton);
return this;
}

public void build() {

final AlertDialog alertDialog = new AlertDialog.Builder(context).create();
alertDialog = new AlertDialog.Builder(context).create();

View view = LayoutInflater.from(context).inflate(R.layout.madialog, null);
alertDialog.setView(view);
Expand All @@ -134,20 +172,29 @@ public void build() {
alertDialog.getWindow().requestFeature(Window.FEATURE_NO_TITLE);
TextView tvTitle = (TextView) view.findViewById(R.id.tvTitleDisplay);
TextView tvMessage = (TextView) view.findViewById(R.id.tvMessageDisplay);
Button btnPositve = (Button) view.findViewById(R.id.btnPositive);
Button btnNegative = (Button) view.findViewById(R.id.btnNegative);
Button btnPositve = (Button) view.findViewById(R.id.btn_positive);
Button btnNegative = (Button) view.findViewById(R.id.btn_negative);
ImageView imageView = (ImageView) view.findViewById(R.id.imageView);
LinearLayout root = (LinearLayout) view.findViewById(R.id.rootly);
LinearLayout ButtonContainer = view.findViewById(R.id.buttonLayout);

if (buttonOrientation != 0) {
ButtonContainer.setOrientation(buttonOrientation);
}
for (int i = 0; i < Buttons.size(); i++) {
ButtonContainer.addView(Buttons.get(i));
}


if (message != null){
if (message != null) {
tvMessage.setVisibility(View.VISIBLE);
}
if (title != null){
if (title != null) {
tvTitle.setVisibility(View.VISIBLE);
}
tvMessage.setText(message);
tvTitle.setText(title);
if (image != 0){
if (image != 0) {
imageView.setVisibility(View.VISIBLE);
imageView.setImageResource(image);
}
Expand All @@ -172,7 +219,7 @@ public void build() {
if (titleTextColor != 0) {
tvTitle.setTextColor(titleTextColor);
}
if (backgroundColor != 0){
if (backgroundColor != 0) {
root.setBackgroundResource(backgroundColor);
}
if (buttonTextColor != 0) {
Expand All @@ -186,7 +233,7 @@ public void build() {
btnPositve.setText(positiveButtonText);
}

if (negativeButtonListener != null){
if (negativeButtonListener != null) {
btnNegative.setVisibility(View.VISIBLE);
btnNegative.setOnClickListener(new View.OnClickListener() {
@Override
Expand All @@ -195,11 +242,11 @@ public void onClick(View view) {
alertDialog.dismiss();
}
});
}else {
} else {
btnNegative.setVisibility(View.GONE);

}
if (positiveButtonListener != null){
if (positiveButtonListener != null) {
btnPositve.setVisibility(View.VISIBLE);
btnPositve.setOnClickListener(new View.OnClickListener() {
@Override
Expand All @@ -208,13 +255,13 @@ public void onClick(View view) {
alertDialog.dismiss();
}
});
}else {
} else {
btnPositve.setVisibility(View.GONE);

}
if (cancelOnOutsideTouch){
if (cancelOnOutsideTouch) {
alertDialog.setCanceledOnTouchOutside(true);
}else {
} else {
alertDialog.setCanceledOnTouchOutside(false);

}
Expand Down
14 changes: 7 additions & 7 deletions madialog/src/main/res/layout/madialog.xml
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@
android:paddingStart="16dp"/>

<LinearLayout
android:id="@+id/buttonLayout"
android:layout_marginBottom="8dp"
android:layout_marginEnd="8dp"
android:layout_marginTop="8dp"
Expand All @@ -61,18 +62,17 @@
android:orientation="horizontal">

<Button
android:padding="8dp"
android:id="@+id/btnNegative"
android:id="@+id/btn_positive"
android:background="@android:color/transparent"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@android:color/transparent" />

android:visibility="gone" />
<Button
android:padding="8dp"
android:id="@+id/btnPositive"
android:id="@+id/btn_negative"
android:background="@android:color/transparent"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@android:color/transparent" />
android:visibility="gone" />
</LinearLayout>
</LinearLayout>
</ScrollView>
Expand Down

0 comments on commit 6d6c8f3

Please sign in to comment.