package de.mateware.snackysample;

import com.google.android.material.snackbar.Snackbar;

import android.graphics.Color;
import android.graphics.Typeface;
import android.os.Bundle;
import android.view.Gravity;
import android.view.View;
import android.widget.Toast;

import de.mateware.snacky.Snacky;

import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;

public class ExampleActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_example);
        Toolbar toolbar = findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);

        findViewById(R.id.fab).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Snacky.builder()
                      .setView(view)
                      .setText("You have to use CoordinatorLayout as usual to have a FAB floating with the Snackbar.")
                      .setDuration(Snacky.LENGTH_SHORT)
                      .build()
                      .show();
            }
        });

        findViewById(R.id.button_default).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Snacky.builder()
                      .setActivity(ExampleActivity.this)
                      .setActionText("ACTION")
                      .setActionClickListener(new View.OnClickListener() {
                          @Override
                          public void onClick(View v) {
                              //do something
                          }
                      })
                      .setText("Snackbar text is not cut after two lines, you can use setMaxLines(int) to achieve this")
                      .setDuration(Snacky.LENGTH_INDEFINITE)
                      .build()
                      .show();
            }
        });

        findViewById(R.id.button_success).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Snacky.builder()
                      .setActivity(ExampleActivity.this)
                      .setText("Success")
                      .setDuration(Snacky.LENGTH_SHORT)
                      .success()
                      .show();
            }
        });
        findViewById(R.id.button_info).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Snacky.builder()
                      .setView(v)
                      .setText("Info (with centered text)")
                      .centerText()
                      .setDuration(Snacky.LENGTH_LONG)
                      .info()
                      .show();
            }
        });
        findViewById(R.id.button_warning).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Snackbar warningSnackBar = Snacky.builder()
                                                 .setActivity(ExampleActivity.this)
                                                 .setText("Warning with Snackbar.Callback")
                                                 .setDuration(Snacky.LENGTH_LONG)
                                                 .warning();
                warningSnackBar.addCallback(new Snackbar.Callback() {
                    @Override
                    public void onShown(Snackbar sb) {
                        Toast toast = Toast.makeText(sb.getContext(), "onShown Callback", Toast.LENGTH_SHORT);
                        toast.setGravity(Gravity.CENTER, 0, 0);
                        toast.show();
                    }

                    @Override
                    public void onDismissed(Snackbar sb, int event) {
                        Toast toast = Toast.makeText(sb.getContext(), "onDismissed Callback, event:" + event, Toast.LENGTH_SHORT);
                        toast.setGravity(Gravity.CENTER, 0, 0);
                        toast.show();
                    }
                });
                warningSnackBar.show();
            }
        });

        findViewById(R.id.button_error).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Snacky.builder()
                      .setView(v)
                      .setText("Error")
                      .setDuration(Snacky.LENGTH_INDEFINITE)
                      .setActionText(android.R.string.ok)
                      .error()
                      .show();
            }
        });

        findViewById(R.id.button_custom).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Snacky.builder()
                      .setBackgroundColor(Color.parseColor("#0077CC"))
                      .setTextSize(18)
                      .setTextColor(Color.parseColor("#FFFFFF"))
                      .setTextTypefaceStyle(Typeface.ITALIC)
                      .setText(
                              "This is a custom Snackbar with all possibilities of customization and an icon. It will be cutted after 4 lines of text, so it depends on your test device if you can read all of this")
                      .setMaxLines(4)
                      .centerText()
                      .setActionText("YEAH!")
                      .setActionTextColor(Color.parseColor("#66FFFFFF"))
                      .setActionTextSize(20)
                      .setActionTextTypefaceStyle(Typeface.BOLD)
                      .setIcon(R.mipmap.ic_launcher)
                      .setActivity(ExampleActivity.this)
                      .setDuration(Snacky.LENGTH_INDEFINITE)
                      .build()
                      .show();


            }
        });

    }

}