Balloon

Modernized and sophisticated tooltips, fully customizable with an arrow and animations for Android.

APACHE-2.0 License

Stars
3.7K

Bot releases are visible (Hide)

Balloon - 1.4.1

Published by skydoves almost 3 years ago

🎈 Balloon 1.4.1 has been released! 🎈

What's Changed

Full Changelog: https://github.com/skydoves/Balloon/compare/1.4.0...1.4.1

Balloon - 1.4.0

Published by skydoves almost 3 years ago

🎈 Balloon 1.4.0 has been released! 🎈

What's New?

  • Added: support for passing touch events to the anchor. (#268)
  • Updated: A constructor of the Balloon class changed as private.
  • Updated: Added missing JvmOverloads annotations to Highlight builder methods.
  • Updated: Removed JvmField annotations to expose getters of the Ballon.Builder on Java Side.
  • Updated: Downgrade JVM target to 1.8 of the balloon module. (#273)
Balloon - 1.3.9

Published by skydoves about 3 years ago

🎈 Released a new version 1.3.9! 🎈

What's New?

  • Added new highlighting animations.
HEARTBEAT SHAKE BREATH ROTATE

BalloonHighlightAnimation

We can give repeated dynamic animations to Balloon when it's showing.
The animation would work differently by the position of the arrow.

BalloonHighlightAnimation.NONE
BalloonHighlightAnimation.HEARTBEAT
BalloonHighlightAnimation.SHAKE
BalloonHighlightAnimation.BREATH
BalloonHighlightAnimation.ROTATE

.setBalloonHighlightAnimation(BalloonHighlightAnimation.SHAKE)
Balloon - 1.3.8

Published by skydoves about 3 years ago

🎈 Released a new version 1.3.8! 🎈

What's New?

  • New feature: A new showAtCenter() function. We can show up the Balloon over the anchor view align center. (#247).
    We can align the location of the Balloon using the BalloonCenterAlign parameter.
anchor.showAtCenter(balloon, xOff = 0, yOff = 0, centerAlign = BalloonCenterAlign.Bottom)
  • Deprecated: show() functions have been deprecated now. Use showAtCenter() or showAsDropDown() instead. (#247)
  • Fixed: RadiusLayout clips internal contents with the wrong radius size. (#220, #245)
  • New feature: We can clear every persisted data on the BalloonPersistence via balloon.clearAllPreferences() function. (#242)
  • Modified: We can access BalloonPersistence class: val balloonPersistence = BalloonPersistence.getInstance(context). (#242)
  • Refactored internal codes. (#244, #248)
Balloon - 1.3.7

Published by skydoves about 3 years ago

🎈 Released a new version 1.3.7! 🎈

What's New?

  • Updated: Now the bodyWindow and overlayWindow properties are accessible from the public.
  • Added: Added a new setIsAttachedInDecor method related #131
  • Fixed: The wrong references were used in getMeasuredTextWidth. (#219)
  • Updated: Making it possible to add color to the overlay padding. (#221)
  • Fixed: Drawing the overlay padding rectangle. (#223)
  • Fixed: Overlay is not redrawn on Balloon.update(anchor) call. (#229)
  • Fixed: min/max ratio inconsistency in getMeasuredTextWidth #226
  • Refactored: Size extensions. (#217)

Thanks to @JoePaul @vitkhudenko for contributions!

Balloon - 1.3.6

Published by skydoves about 3 years ago

🎈 Released a new version 1.3.6! 🎈

What's New?

  • Added support for gradient colors on the default arrow(#203)
  • Added onTouchListener option to the overlay popup (#204)
  • Added setOnBalloonOverlayTouchListener using a lambda(#205)
  • Added check to see if balloon should show up (#206)
  • Fixed Auto dismiss (#210) (#211)
  • Added minimum and maximum ratio for the Balloon (#214)
  • Fixed overlay padding units (#212) (#215)
  • Refactor measuring text sizes (#191) (#209)

Thanks, @DavidJsson @JoePaul

Balloon - 1.3.5

Published by skydoves over 3 years ago

🎈 Released a new version 1.3.5! 🎈

🎉 Balloon has been featured on the official Google Dev library.🎉

What's New?

  • Added: setPaddingHorizontal, setPaddingVertical, setMarginHorizontal, and setMarginVertical functions.
  • Fix: Lint shows error for dimen resource id. (#190)
  • Fix: Move post runner inside of the if conditional and check isAttachedToWindow (#192, #197)
  • Update: Invoke dismiss() instead of the onDestroy() on Pause lifecycle event. (#186)
  • Update: A lot of internal refactoring.
Balloon - 1.3.4

Published by skydoves over 3 years ago

🎉 Released a new version 1.3.4! 🎉

What's New?

  • Changed required min SDK 16 to 17.
  • Fixed: Balloon.isShowing is not set to false when ShowCounts is reached (#168)
  • Fixed: Balloon does not adapt to the height of a custom View on certain devices (#171)
  • Added: minWidth and maxWidth functions for setting range of the balloon width size. This functionality works only with the BalloonSizeSpec.WRAP].
  • Removed: isRtlSupport function and it will be applied automatically based on the default RTL LayoutDirection by a device.
  • Deprecated: IconGravity.LEFT and IconGravity.RIGHT are deprecated and there are new IconGravity.START and IconGravity.END gravities for RTL supports.
  • Added: getBalloonArrowView() function for getting a view of the balloon arrow. (#180)
Balloon - 1.3.3

Published by skydoves over 3 years ago

🎉 Released a new version 1.3.3! 🎉

What's New?

  • Fixed: Balloon does not adapt to the height of a custom View (#148)
  • Fixed: arrow visibility does not respect setIsVisibleArrow(false) (#162)
Balloon - 1.3.2

Published by skydoves over 3 years ago

🎉 Released a new version 1.3.2! 🎉

What's New?

  • Fixed: Arrow not placing the first time at the right position (#155)
  • Fixed: Balloon does not adapt to the height of a custom View (#148)
  • Refactored measuring text size of the balloon for calculating properly width size of the custom layout and the default VectorTextView.
  • Added some function documentations for explaining the purpose of parameters.
  • Removed internal JCenter publishing tasks and migrated to maven central.
  • Migrated androidx.lifecycle:lifecycle-compiler apt to androidx.lifecycle:lifecycle-common-java8 dependency for faster compilation.
  • Uses Java 1.8 compile options since this version.
Balloon - 1.3.1

Published by skydoves over 3 years ago

🎉 Released a new version 1.3.1! 🎉

What's New?

  • Fixed: Overlay does not position correctly in bottom sheet containers (#141)
  • Changed: balloon extension in the Fragment will not return nullable anymore. (non-nullable, thanks @svrlopatrik)
  • Rename: ArrowConstraints renamed to ArrowPositionRules.
  • Added: ArrowOrientationRules. (reference)
  • Added: BalloonHighlightAnimation for highlighting the balloon with animation. (thanks @svrlopatrik)
    We can set the highlight animation like the below.
.setBalloonHighlightAnimation(BalloonHighlightAnimation.HEARTBEAT)
  • Added: Balloon's setter functions with dimension resource parameter. (c9a900c, thanks @svrlopatrik)
  • Fixed: Shadow gets cut at the bottom of the tooltip (#150)
  • Fixed: Fatal Exception: java.lang.IllegalStateException (#149)
  • Fixed: Balloon does not adapt to the height of a custom View (#148).
  • Changed: Now we don't need to call the measureTextWidth() for measuring the TextView's exact size. It will be measured automatically.
  • Fixed: Option to switch arrow orientation based on the tooltip position (#122, #147)
  • Fixed: Arrow does not show elevation (#76)
Balloon - 1.3.0

Published by skydoves almost 4 years ago

🎉 Released a new version 1.3.0! 🎉

What's New?

  • Added new methods for the Balloon.Builder.
    • setSize(int width, int height)
    • setSizeResource(int width dimension resource, height dimension resource)
    • setIconWidth(int width), setIconHeight(int width)
  • Now the setLifecycleOwner will be called automatically in the internal logic. (92790dd)
  • Added and removed some methods related to the Persistence.
    • Removed unused methods in the BalloonPersistence.
    • Renamed setShowTime to setShowCounts.
    • Added a new method for the Balloon.Builder, runIfReachedShowCounts. The argument lambda will be invoked after the preference showing counts is reached the goal.
balloon.runIfReachedShowCounts {
 // do something after reached to show counts.
}
  • Refactored ViewBalloonLazy internally for getting an Activity.
  • Removed the cardview dependency in the balloon module.
  • Refactored internal balloon layout structures.
  • There is an unintended space between the arrow and the message box. (#139)
Balloon - 1.2.9

Published by skydoves almost 4 years ago

🎉 Released a new version 1.2.9! 🎉

What's New?

  • Fixed a balloon popup's shadow getting clipped (#134)

Added a BalloonSizeSpec (#135)

A specification interface for determining sizes of the Balloon materials.
We can wrap some materials depending on their size of content using this interface.

.setWidth(BalloonSizeSpec.WRAP)
.setHeight(BalloonSizeSpec.WRAP)
.setArrowSize(BalloonSizeSpec.WRAP)

Deprecated previous balloon lazy extension and added new extensions.

Previous (Deprecated)
private val customListBalloon by balloon(CustomListBalloonFactory::class)
After
private val customListBalloon by balloon<CustomListBalloonFactory>()
Balloon - 1.2.8

Published by skydoves almost 4 years ago

🎉 Released a new version 1.2.8! 🎉

What's New?

  • Added balloon extension for View class via ViewBalloonLazy.
    Now we can initialize the Balloon lazily using the Balloon.Factory in custom views.
  • Fixed wrong annotations ColorInt to ColorRes for the setIconColorResource.
  • Fixed setIconColor is not working properly (#130).
  • Renamed isArrowVisible() to isVisibleArrow() and fixed not working properly.
  • The circularReveal extensions are changed to the inline function.
  • Renamed BalloonDsl to BalloonInlineDsl internally.
Balloon - 1.2.7

Published by skydoves almost 4 years ago

🎉 Released a new version 1.2.7! 🎉

What's New?

  • Fixed: Arrow not showing if the parent of an anchor is rtl. (#125)
  • Fixed: Arrow is hidden behind Balloon If fitsSystemWindows` is true in theme styles. (#123)
  • Changed previous anim, drawable, and styles resources convention. (08f9723)
  • Changed previous layout and drawable resources naming convention. (30917cf)
  • Refactor show and relayShow functionalities for receiving xOff and yOff. (b7c9808)
Balloon - 1.2.6

Published by skydoves almost 4 years ago

🎉 Released a new version 1.2.6! 🎉

What's New?

  • Fix setPaddingResource and setMarginResource are applied as double size. (21dee54)
  • Prevent generating the BuildConfig class from the balloon module.
  • Changed visibility of the ActivityBalloonLazy and FragmentBalloonLazy class as internal.
  • Internal refactorings.
Balloon - 1.2.5

Published by skydoves almost 4 years ago

🎉 Released a new version 1.2.5! 🎉

What's New?

  • Hided void return-type setters in the Builders for Java APIs.
  • Migrate deprecated fromHtml to HtmlCompat and move applyIconForm. (f92b4e4)
  • Change isOutsideTouchable is always true of the bodyWindow. (#93)
  • Implement isFinishing() extension and check isFinishing an activity. (#92)
  • Refactor onDestroy and onPause functions by lifecycle events to dismiss. (#92)
  • Updated gradle build tool version to 4.1.0 and wrapper version to 6.6.1 internally.
Balloon - 1.2.4

Published by skydoves about 4 years ago

🎉 Released a new version 1.2.4! 🎉

What's New?

  • Added an overlay window for highlighting an anchor view.

We can show an overlay window over the whole screen except an anchor view.

.setIsVisibleOverlay(true) // sets the visibility of the overlay for highlighting an anchor.
.setOverlayColorResource(R.color.overlay) // background color of the overlay using a color resource.
.setOverlayPadding(6f) // sets a padding value of the overlay shape internally.
.setBalloonOverlayAnimation(BalloonOverlayAnimation.FADE) // default is fade.

We can change the shape of the highlighting using .setOverlayShape.

.setOverlayShape(BalloonOverlayOval) // default shape
.setOverlayShape(BalloonOverlayRect)
.setOverlayShape(BalloonOverlayCircle(radius = 36f))
.setOverlayShape(BalloonOverlayRoundRect(12f, 12f))

And we can set the specific position of the overlay shape using the below method.

.setOverlayPosition(Point(x, y)) // sets a specific position of the overlay shape.

overlay

Balloon - 1.2.3

Published by skydoves about 4 years ago

🎉 Released a new version 1.2.3! 🎉

What's New?

  • Used JvmSynthetic for supporting Java APIs without using kotlin dependency.
  • Added support for clickable HTML links by exposing the movementMethod attribute of TextView in builders (#97)
  • Added internal modifiers to some public APIs.
Balloon - 1.2.2

Published by skydoves about 4 years ago

🎉 Released a new version 1.2.2! 🎉

What's New?

  • Fixed - Setting larger arrow size causes text to be clipped (#89)
  • Support vector drawable for customized arrow drawable.
  • Removed setSpace function and added the below methods.
    If the location of the balloon according to the anchor is located at the boundaries on the screen,
    the balloon will be stick to the end of the screen. In that case, we can resolve by giving margins to the balloon.
.setMargin(12) // sets the margin on the balloon all directions.
.setMarginLeft(14) // sets the left margin on the balloon.
.setMarginRight(14) // sets the right margin on the balloon.
.setMarginTop(14)
.setMarginBottom(14)
  • Added measureTextWidth function for measuring the exact text size in the custom layout.
    measures the width of a TextView and set the measured with. If the width of the parent XML layout is wrapped content, and also the widths of TextViews in the parent layout is wrapped content, this functionality will measure the width exactly.
    We can use this method below way.
val myTextView = customProfileBalloon.getContentView().findViewById<TextView>(R.id.myTextView)
customProfileBalloon.measureTextWidth(myTextView)
  • Changed internal values to constant definitions.
  • Updated kotlin version to 1.4.0 stable and used single method abstract conversions internally.
  • Updated to compile SDK version to 30 internally.
Package Rankings
Top 10.69% on Repo1.maven.org
Badges
Extracted from project README
Maven Central Maven Central
Related Projects