Giter Site home page Giter Site logo

aviranabady / cookiebar2 Goto Github PK

View Code? Open in Web Editor NEW
667.0 20.0 76.0 429 KB

Android library for displaying text messages, notifications and alerts at the top or bottom of the screen. A great alternative for toast and snackbar alerts.

License: Apache License 2.0

Java 85.83% Kotlin 14.17%
android toast material-design android-library android-ui kotlin android-ui-widgets android-message android-toast android-toastmessage

cookiebar2's People

Contributors

aviranabady avatar halusstefan avatar sergeich avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

cookiebar2's Issues

Crash

This was reported in Google Play ANRs & crashes after I released my app with Prgouard and minifyEnabled true

Devices info's
Samsung Galaxy S8 (dreamlte), 3840MB RAM, Android 9
Samsung Galaxy S10 (beyond1), 7424MB RAM, Android 10
Vivo vivo 1902 (1902), 3840MB RAM, Android 9

java.lang.NullPointerException:
at org.aviran.cookiebar2.Cookie.a (Cookie.java:5)
at org.aviran.cookiebar2.Cookie.dismiss (Cookie.java:2)
at org.aviran.cookiebar2.Cookie$2$1.run (Cookie.java:2)
at android.os.Handler.handleCallback (Handler.java:873)
at android.os.Handler.dispatchMessage (Handler.java:99)
at android.os.Looper.loop (Looper.java:214)
at android.app.ActivityThread.main (ActivityThread.java:7050)
at java.lang.reflect.Method.invoke (Method.java)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:494)
at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:965)

Default Bar Layout Issue

Using the default cookie bar layout, there's margins issues. Specially between the image and text (including Title and Message). And if you want to show the the bar without a title, just having an icon and a message, overlap will be noticed.
I was using v1.0.9 and it was working fine.

Following are the code, removed original text for this issue:

CookieBar.build(activity) .setMessage("Test") .setBackgroundColor(R.color.winfooz_color_accent) .setIcon(R.drawable.ic_lock_unlocked_24dp) .setEnableAutoDismiss(false) .setSwipeToDismiss(true) .setAction("Action") { // Handle action } .show()

screenshot from 2019-01-28 10-14-20

Cannot display from layout

hey yo! this is my function for show the dialog custom view

  CookieBar.build(getActivity())
                .setCustomView(R.layout.dialog_settings)
                .setCustomViewInitializer(new CookieBar.CustomViewInitializer() {
                    @Override
                    public void initView(View view) {
                        Button logout = (Button) view.findViewById(R.id.logoutButton);

                        View.OnClickListener listener = new View.OnClickListener() {
                            @Override
                            public void onClick(View v) {
                                Button button = (Button) v;
//                                Utils.showLongSnackBar(getActivity(), "berhasil");
                                button.setText("checked");
                            }
                        };

                        logout.setOnClickListener(listener);
                    }

                })
                .setAction("Tutup", new OnActionClickListener() {
                    @Override
                    public void onClick() {
                        CookieBar.dismiss(getActivity());
                    }
                })
                .setTitle("Pengaturan Akun")
                .setMessage("Pilih Aksi")
                .setEnableAutoDismiss(false)
                .setSwipeToDismiss(true)
                .setCookiePosition(CookieBar.BOTTOM)
                .show();

crash

version 1.1.4
Fatal Exception: java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first.
at android.view.ViewGroup.addViewInner(ViewGroup.java:5235)
at android.view.ViewGroup.addView(ViewGroup.java:5064)
at android.view.ViewGroup.addView(ViewGroup.java:5004)
at android.view.ViewGroup.addView(ViewGroup.java:4976)
at org.aviran.cookiebar2.CookieBar$1.onDismiss(SourceFile:3)
at org.aviran.cookiebar2.Cookie.cookieListenerDismiss(SourceFile:87)
at org.aviran.cookiebar2.Cookie.access$400(SourceFile:3)
at org.aviran.cookiebar2.Cookie$3.onAnimationEnd(SourceFile:3)
at android.view.animation.Animation.dispatchAnimationEnd(Animation.java:1019)
at android.view.animation.AnimationSet.getTransformation(AnimationSet.java:397)
at android.view.animation.Animation.getTransformation(Animation.java:1038)
at android.view.View.applyLegacyAnimation(View.java:21903)
at android.view.View.draw(View.java:22019)
at android.view.ViewGroup.drawChild(ViewGroup.java:4516)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4277)
at android.view.View.draw(View.java:22353)
at com.android.internal.policy.DecorView.draw(DecorView.java:806)
at android.view.View.updateDisplayListIfDirty(View.java:21226)
at android.view.ThreadedRenderer.updateViewTreeDisplayList(ThreadedRenderer.java:559)
at android.view.ThreadedRenderer.updateRootDisplayList(ThreadedRenderer.java:565)
at android.view.ThreadedRenderer.draw(ThreadedRenderer.java:642)
at android.view.ViewRootImpl.draw(ViewRootImpl.java:4106)
at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:3833)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:3104)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1948)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:8177)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:972)
at android.view.Choreographer.doCallbacks(Choreographer.java:796)
at android.view.Choreographer.doFrame(Choreographer.java:731)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:957)
at android.os.Handler.handleCallback(Handler.java:938)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:223)

Swipe Listener

Hello,

Is there a way so that I can attach a listener on the swipe action from the user?

CookieBar does not show in a DialogFragment

Hi,
Great job at CookieBar.

However I am facing an issue. I have a DialogFragment that occupies full screens and when I try to show the cookieBar in it, it does not show up.

I might be wrong but I think this issue might be related to the Window of the Dialog as Dialog has its own Window, different from the Activity's, and I think you are using Activity's Window to show the CookieBar.

Looking forward to hearing from you.

IllegalStateException

Hi! Have an exception on the 1.1.5 version:

Fatal Exception: java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first.
at android.view.ViewGroup.addViewInner(ViewGroup.java:5212)
at android.view.ViewGroup.addView(ViewGroup.java:5035)
at android.view.ViewGroup.addView(ViewGroup.java:4972)
at android.view.ViewGroup.addView(ViewGroup.java:4945)
at org.aviran.cookiebar2.CookieBar$1.onDismiss(CookieBar.java:106)
at org.aviran.cookiebar2.Cookie.cookieListenerDismiss(Cookie.java:325)
at org.aviran.cookiebar2.Cookie.dismiss(Cookie.java:278)
at org.aviran.cookiebar2.Cookie.dismiss(Cookie.java:261)
at org.aviran.cookiebar2.Cookie$5.onAnimationEnd(Cookie.java:401)
at android.view.ViewPropertyAnimator$AnimatorEventListener.onAnimationEnd(ViewPropertyAnimator.java:1111)
at android.animation.Animator$AnimatorListener.onAnimationEnd(Animator.java:554)
at android.animation.ValueAnimator.endAnimation(ValueAnimator.java:1242)
at android.animation.ValueAnimator.doAnimationFrame(ValueAnimator.java:1484)
at android.animation.AnimationHandler.doAnimationFrame(AnimationHandler.java:146)
at android.animation.AnimationHandler.access$100(AnimationHandler.java:37)
at android.animation.AnimationHandler$1.doFrame(AnimationHandler.java:54)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1039)
at android.view.Choreographer.doCallbacks(Choreographer.java:860)
at android.view.Choreographer.doFrame(Choreographer.java:781)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1026)
at android.os.Handler.handleCallback(Handler.java:914)
at android.os.Handler.dispatchMessage(Handler.java:100)
at android.os.Looper.loop(Looper.java:225)
at android.app.ActivityThread.main(ActivityThread.java:7563)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:539)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:994)

Seems like it is related to #20 and #28.
Can't reproduce it by myself, but there are tons of them in our Crashlitycs. Just add a check parent.contains(view) here:
at org.aviran.cookiebar2.CookieBar$1.onDismiss(CookieBar.java:106)

Should probably fix an error. or assert with try-catch

View are not clickable

Till the time CookieBar is open the buttons and other views on the screen are not clickable
we need to wait for it to get auto-dismiss or manual dismiss, after that only view are accessible.

Cookiebar

How can i remove title from cookiebar?
I want to show only message not Title.

Your custom cookie view is missing one of the default required views

Your custom cookie view is missing one of the default required views.
When i add custom layout, i got this error.

CookieBar.build(DancingFrameActivity.this)
                .setCustomView(R.layout.devices_list)
                .setCustomViewInitializer(new CookieBar.CustomViewInitializer() {
                    @Override
                    public void initView(View v) {
                        devicelist = v.findViewById(R.id.listView);
                        pairedDevices = myBluetooth.getBondedDevices();
                        ArrayList list = new ArrayList();
                        if (pairedDevices.size() > 0) {
                            for (BluetoothDevice bt : pairedDevices) {
                                list.add(bt.getName() + "\n" + bt.getAddress()); //Get the device's name and the address
                            }
                        } else {
                            Toast.makeText(getApplicationContext(), "No Paired Bluetooth Devices Found.", Toast.LENGTH_LONG).show();
                        }

                        final ArrayAdapter adapter = new ArrayAdapter(DancingFrameActivity.this, android.R.layout.simple_list_item_1, list);
                        devicelist.setAdapter(adapter);
                    }
                })
                .setAction("Close", new OnActionClickListener() {
                    @Override
                    public void onClick() {
                        CookieBar.dismiss(DancingFrameActivity.this);
                    }
                })
                .setEnableAutoDismiss(false)
                .setSwipeToDismiss(false)
                .setCookiePosition(CookieBar.BOTTOM)
                .show();

Layout:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingLeft="10dp"
    android:paddingRight="10dp"
    android:paddingTop="10dp"
    android:paddingBottom="10dp">
    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Paired Devices"
        android:id="@+id/textView"
        android:drawableLeft="@drawable/ic_bluetooth"
        android:drawablePadding="10dp"
        android:layout_alignParentTop="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true" />
    <ListView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/listView"
        android:paddingLeft="30dp"
        android:paddingRight="30dp"
        android:layout_centerHorizontal="true"
        android:layout_below="@+id/textView" />
</RelativeLayout>

Suggestion: click on anywhere instead of button

I really appreciate your work,and it works nicely on my current project. And it would be better if i can click on the bar instead of a button, and the button seems a little bit too small.

Crash

  • Version

v 1.1.3

  • Exception
java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first.
        at android.view.ViewGroup.addViewInner(ViewGroup.java:5106)
        at android.view.ViewGroup.addView(ViewGroup.java:4935)
        at android.view.ViewGroup.addView(ViewGroup.java:4875)
        at android.view.ViewGroup.addView(ViewGroup.java:4848)
        at org.aviran.cookiebar2.CookieBar$1.onDismiss(CookieBar.java:105)
        at org.aviran.cookiebar2.CookieBar$1.onDismiss(CookieBar.java:103)
        at org.aviran.cookiebar2.Cookie.cookieListenerDismiss(Cookie.java:318)
        at org.aviran.cookiebar2.Cookie.access$600(Cookie.java:26)
        at org.aviran.cookiebar2.Cookie$3.onAnimationEnd(Cookie.java:293)
        at android.view.animation.Animation.dispatchAnimationEnd(Animation.java:1011)
        at android.view.animation.AnimationSet.getTransformation(AnimationSet.java:397)
        at android.view.animation.Animation.getTransformation(Animation.java:1030)
        at android.view.View.applyLegacyAnimation(View.java:20975)
        at android.view.View.draw(View.java:21091)
        at android.view.ViewGroup.drawChild(ViewGroup.java:4388)
        at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4149)
        at android.view.View.draw(View.java:21424)
        at com.android.internal.policy.DecorView.draw(DecorView.java:806)
        at android.view.View.updateDisplayListIfDirty(View.java:20298)
        at android.view.ThreadedRenderer.updateViewTreeDisplayList(ThreadedRenderer.java:575)
        at android.view.ThreadedRenderer.updateRootDisplayList(ThreadedRenderer.java:581)
        at android.view.ThreadedRenderer.draw(ThreadedRenderer.java:654)
        at android.view.ViewRootImpl.draw(ViewRootImpl.java:3610)
        at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:3418)
        at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2755)
        at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1721)
        at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:7598)
        at android.view.Choreographer$CallbackRecord.run(Choreographer.java:966)
        at android.view.Choreographer.doCallbacks(Choreographer.java:790)
        at android.view.Choreographer.doFrame(Choreographer.java:725)
        at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:951)
        at android.os.Handler.handleCallback(Handler.java:883)
        at android.os.Handler.dispatchMessage(Handler.java:100)
        at android.os.Looper.loop(Looper.java:214)
        at android.app.ActivityThread.main(ActivityThread.java:7356)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.