public final class LocationButton extends ViewGroup


A widget that provides a session-based precise location permission button. It either draws the button remotely rendered by the system on Build.VERSION_CODES.CINNAMON_BUN and above platforms, or falls back to a locally rendered button on platforms before Build.VERSION_CODES.CINNAMON_BUN.

On platforms before Build.VERSION_CODES.CINNAMON_BUN, the button click delegates to OnRequestPermissionsListener if provided, allowing the app to handle the click manually (e.g., by requesting permissions or displaying rationale). If no custom listener is provided, the library automatically requests location permissions.

Summary

Constants

static final int
static final int
static final int
static final int
static final int
static final int

Public constructors

LocationButton(
    @NonNull Context context,
    AttributeSet attrs,
    int defStyleAttr,
    int defStyleRes
)

Public methods

void
addView(View child)
void
addView(View child, int index)
void
void
addView(View child, int index, ViewGroup.LayoutParams params)
void
addView(View child, int width, int height)
final int

Gets the composition order of the underlying SurfaceView.

final Activity

The Activity that hosts this button.

void
setBackgroundColor(int color)
final void

Controls the composition order of the underlying SurfaceView.

final void
setCornerRadius(float radius)

Sets the corner radius of the button background.

final void
setIconTint(int color)

Sets the color tint applied to the location icon.

final void

Sets the listener to receive remote session errors on Build.VERSION_CODES.CINNAMON_BUN and above platforms.

final void

Sets the listener to receive permission results.

final void

Sets the listener to handle permission requests on platforms before Build.VERSION_CODES.CINNAMON_BUN.

void
setPadding(int left, int top, int right, int bottom)
void
setPaddingRelative(int start, int top, int end, int bottom)
final void

The Activity that hosts this button.

final void
setPressedCornerRadius(float radius)

Sets the corner radius of the button background when the user presses it.

final void
setStrokeColor(int color)

Sets the width of the button's outer stroke border.

final void
setStrokeWidth(int strokeWidth)

Sets the width of the button's outer stroke border.

final void
setTextColor(int color)

Sets the color of the text displayed inside the button.

final void
setTextType(int textType)

Sets the text content displayed inside the button.

Protected methods

boolean
addViewInLayout(View child, int index, ViewGroup.LayoutParams params)
void
void
void
void
onLayout(boolean changed, int left, int top, int right, int bottom)
void
onMeasure(int widthMeasureSpec, int heightMeasureSpec)
void
onSizeChanged(int w, int h, int oldw, int oldh)

Extension functions

final void

Sets the LocationButtonProvider to provide a location button.

Inherited methods

From android.view.accessibility.AccessibilityEventSource
From android.graphics.drawable.Drawable.Callback
void
void
scheduleDrawable(@NonNull Drawable who, @NonNull Runnable what, long when)
void
From android.view.KeyEvent.Callback
boolean
onKeyDown(int keyCode, @NonNull KeyEvent event)
boolean
onKeyLongPress(int keyCode, @NonNull KeyEvent event)
boolean
onKeyMultiple(int keyCode, int repeatCount, @NonNull KeyEvent event)
boolean
onKeyUp(int keyCode, @NonNull KeyEvent event)
From android.view.View
void
void
addExtraDataToAccessibilityNodeInfo(
    @NonNull AccessibilityNodeInfo info,
    @NonNull String extraDataKey,
    @Nullable Bundle arguments
)
void
addFocusables(@NonNull ArrayList<@NonNull View> views, int direction)
void
addFocusables(
    @NonNull ArrayList<@NonNull View> views,
    int direction,
    int focusableMode
)
void
addKeyboardNavigationClusters(
    @NonNull Collection<@NonNull View> views,
    int direction
)
void
void
void
void
@NonNull ViewPropertyAnimator
void

This method is deprecated. Deprecated in Java

void
void
boolean
boolean
awakenScrollBars(int startDelay)
boolean
awakenScrollBars(int startDelay, boolean invalidate)
void
void

This method is deprecated. Deprecated in Java

void
buildDrawingCache(boolean autoScale)

This method is deprecated. Deprecated in Java

void
boolean
boolean
boolean
boolean
boolean
canScrollHorizontally(int direction)
boolean
canScrollVertically(int direction)
final void
void
final void
boolean
void
void
void
void
int
int
int
void
@NonNull WindowInsets
computeSystemWindowInsets(
    @NonNull WindowInsets in,
    @NonNull Rect outLocalInsets
)
int
int
int
@NonNull AccessibilityNodeInfo
void
void

This method is deprecated. Deprecated in Java

@NonNull WindowInsets
boolean
void
void
dispatchCreateViewTranslationRequest(
    @NonNull Map<@NonNull AutofillId, @NonNull long[]> viewIds,
    @NonNull int[] supportedFormats,
    @Nullable TranslationCapability capability,
    @NonNull List<@NonNull ViewTranslationRequest> requests
)
void
boolean
void
void
dispatchDrawableHotspotChanged(float x, float y)
void
boolean
boolean
boolean
boolean
boolean
boolean
boolean
boolean
dispatchNestedFling(float velocityX, float velocityY, boolean consumed)
boolean
dispatchNestedPreFling(float velocityX, float velocityY)
boolean
dispatchNestedPrePerformAccessibilityAction(
    int action,
    @Nullable Bundle arguments
)
boolean
dispatchNestedPreScroll(
    int dx,
    int dy,
    @Nullable int[] consumed,
    @Nullable int[] offsetInWindow
)
boolean
dispatchNestedScroll(
    int dxConsumed,
    int dyConsumed,
    int dxUnconsumed,
    int dyUnconsumed,
    @Nullable int[] offsetInWindow
)
void
dispatchPointerCaptureChanged(boolean hasCapture)
boolean
void
dispatchProvideAutofillStructure(
    @NonNull ViewStructure structure,
    int flags
)
void
void
void
void
dispatchScrollCaptureSearch(
    @NonNull Rect localVisibleRect,
    @NonNull Point windowOffset,
    @NonNull Consumer<@NonNull ScrollCaptureTarget> targets
)
void
dispatchSetActivated(boolean activated)
void
dispatchSetPressed(boolean pressed)
void
dispatchSetSelected(boolean selected)
void
void

This method is deprecated. Deprecated in Java

boolean
boolean
boolean
dispatchUnhandledMove(@NonNull View focused, int direction)
void
dispatchVisibilityChanged(@NonNull View changedView, int visibility)
void
dispatchWindowFocusChanged(boolean hasFocus)
void
void
@NonNull WindowInsets
@NonNull WindowInsetsAnimation.Bounds
void

This method is deprecated. Deprecated in Java

void
void
draw(@NonNull Canvas canvas)
void
drawableHotspotChanged(float x, float y)
void
@NonNull View
final @Nullable OnBackInvokedDispatcher
final @NonNull T
<T extends View> findViewById(int id)
final @NonNull T
<T extends View> findViewWithTag(@NonNull Object tag)
void
findViewsWithText(
    @NonNull ArrayList<@NonNull View> outViews,
    @NonNull CharSequence text,
    int flags
)
boolean

This method is deprecated. Deprecated in Java

@NonNull View
focusSearch(int direction)
void
forceHasOverlappingRendering(boolean hasOverlappingRendering)
void
boolean
void
generateDisplayHash(
    @NonNull String hashAlgorithm,
    @Nullable Rect bounds,
    @NonNull Executor executor,
    @NonNull DisplayHashResultCallback callback
)
@NonNull View.AccessibilityDelegate
int
@NonNull AccessibilityNodeProvider
@Nullable CharSequence
int
int
@Nullable String
@Nullable String
float
@ViewDebug.ExportedProperty(category = "drawing")
getAlpha()
@NonNull Animation
@Nullable Matrix
@NonNull IBinder
@NonNull int[]
@NonNull Map<@NonNull Integer, @NonNull Integer>
@Nullable String[]
final @NonNull AutofillId
int
@Nullable AutofillValue
@NonNull Drawable
@Nullable BlendMode
@Nullable ColorStateList
@Nullable PorterDuff.Mode
int
@ViewDebug.ExportedProperty(category = "layout")
getBaseline()
final int
float
int
float
@NonNull Rect
final boolean
final @Nullable ContentCaptureSession
@NonNull CharSequence
@ViewDebug.ExportedProperty(category = "accessibility")
getContentDescription()
final int
final @NonNull Context
@NonNull ContextMenu.ContextMenuInfo
final boolean
@NonNull Display
final @NonNull int[]
@NonNull Bitmap

This method is deprecated. Deprecated in Java

int

This method is deprecated. Deprecated in Java

int

This method is deprecated. Deprecated in Java

void
long
float
@ViewDebug.ExportedProperty(category = "drawing")
getElevation()
int
boolean
boolean
int
@ViewDebug.ExportedProperty(category = "focus", mapping = [@ViewDebug.IntToString(from = 0, to = "NOT_FOCUSABLE"), @ViewDebug.IntToString(from = 1, to = "FOCUSABLE"), @ViewDebug.IntToString(from = 16, to = "FOCUSABLE_AUTO")])
getFocusable()
@NonNull ArrayList<@NonNull View>
getFocusables(int direction)
void
@NonNull Drawable
int
@Nullable BlendMode
@Nullable ColorStateList
@Nullable PorterDuff.Mode
float
final boolean
boolean
@NonNull Handler
float
float
float
float
int
@Nullable Runnable
final boolean
final int
@ViewDebug.ExportedProperty(category = "layout")
getHeight()
void
int
int
@Nullable Drawable
@Nullable Drawable
int
int
@ViewDebug.ExportedProperty(category = "accessibility", mapping = [@ViewDebug.IntToString(from = 0, to = "auto"), @ViewDebug.IntToString(from = 1, to = "yes"), @ViewDebug.IntToString(from = 2, to = "no"), @ViewDebug.IntToString(from = 4, to = "noHideDescendants")])
getImportantForAccessibility()
int
@ViewDebug.ExportedProperty(mapping = [@ViewDebug.IntToString(from = 0, to = "auto"), @ViewDebug.IntToString(from = 1, to = "yes"), @ViewDebug.IntToString(from = 2, to = "no"), @ViewDebug.IntToString(from = 4, to = "yesExcludeDescendants"), @ViewDebug.IntToString(from = 8, to = "noExcludeDescendants")])
getImportantForAutofill()
int
@ViewDebug.ExportedProperty(mapping = [@ViewDebug.IntToString(from = 0, to = "auto"), @ViewDebug.IntToString(from = 1, to = "yes"), @ViewDebug.IntToString(from = 2, to = "no"), @ViewDebug.IntToString(from = 4, to = "yesExcludeDescendants"), @ViewDebug.IntToString(from = 8, to = "noExcludeDescendants")])
getImportantForContentCapture()
boolean
@NonNull KeyEvent.DispatcherState
int
@ViewDebug.ExportedProperty(category = "accessibility")
getLabelFor()
int
@ViewDebug.ExportedProperty(category = "drawing", mapping = [@ViewDebug.IntToString(from = 0, to = "NONE"), @ViewDebug.IntToString(from = 1, to = "SOFTWARE"), @ViewDebug.IntToString(from = 2, to = "HARDWARE")])
getLayerType()
int
@ViewDebug.ExportedProperty(category = "layout", mapping = [@ViewDebug.IntToString(from = 0, to = "RESOLVED_DIRECTION_LTR"), @ViewDebug.IntToString(from = 1, to = "RESOLVED_DIRECTION_RTL")])
getLayoutDirection()
@NonNull ViewGroup.LayoutParams
@ViewDebug.ExportedProperty(deepExport = true, prefix = "layout_")
getLayoutParams()
final int
float
int
final boolean
void
getLocationInSurface(@NonNull int[] location)
void
getLocationInWindow(@NonNull int[] outLocation)
void
getLocationOnScreen(@NonNull int[] outLocation)
@NonNull Matrix
final int
final int
@ViewDebug.ExportedProperty(category = "measurement", flagMapping = [@ViewDebug.FlagToString(equals = 16777216, mask = -16777216, name = "MEASURED_STATE_TOO_SMALL")])
getMeasuredHeightAndState()
final int
final int
final int
@ViewDebug.ExportedProperty(category = "measurement", flagMapping = [@ViewDebug.FlagToString(equals = 16777216, mask = -16777216, name = "MEASURED_STATE_TOO_SMALL")])
getMeasuredWidthAndState()
int
int
int
int
int
int
int
int
@NonNull View.OnFocusChangeListener
int
@NonNull ViewOutlineProvider
int
int
int
int
int
int
int
int
final @NonNull ViewParent
@NonNull ViewParent
final @Nullable OutcomeReceiver<@NonNull GetCredentialResponse, @NonNull GetCredentialException>
final @Nullable GetCredentialRequest
float
@ViewDebug.ExportedProperty(category = "drawing")
getPivotX()
float
@ViewDebug.ExportedProperty(category = "drawing")
getPivotY()
@NonNull PointerIcon
final @NonNull List<@NonNull Rect>
@Nullable String[]
float
@NonNull Resources
final boolean
final int
float
int
@Nullable AttachedSurfaceControl
@NonNull View
@NonNull WindowInsets
float
@ViewDebug.ExportedProperty(category = "drawing")
getRotation()
float
@ViewDebug.ExportedProperty(category = "drawing")
getRotationX()
float
@ViewDebug.ExportedProperty(category = "drawing")
getRotationY()
float
@ViewDebug.ExportedProperty(category = "drawing")
getScaleX()
float
@ViewDebug.ExportedProperty(category = "drawing")
getScaleY()
int
int
int
int
@ViewDebug.ExportedProperty(mapping = [@ViewDebug.IntToString(from = 0, to = "INSIDE_OVERLAY"), @ViewDebug.IntToString(from = 16777216, to = "INSIDE_INSET"), @ViewDebug.IntToString(from = 33554432, to = "OUTSIDE_OVERLAY"), @ViewDebug.IntToString(from = 50331648, to = "OUTSIDE_INSET")])
getScrollBarStyle()
int
int
final int
final int
int
@ViewDebug.ExportedProperty(category = "drawing")
getSolidColor()
int
final @Nullable CharSequence
@ViewDebug.ExportedProperty(category = "accessibility")
getStateDescription()
@NonNull StateListAnimator
int
int
@Nullable CharSequence
@NonNull List<@NonNull Rect>
int

This method is deprecated. Deprecated in Java

@NonNull Object
int
@ViewDebug.ExportedProperty(category = "text", mapping = [@ViewDebug.IntToString(from = 0, to = "INHERIT"), @ViewDebug.IntToString(from = 1, to = "GRAVITY"), @ViewDebug.IntToString(from = 2, to = "TEXT_START"), @ViewDebug.IntToString(from = 3, to = "TEXT_END"), @ViewDebug.IntToString(from = 4, to = "CENTER"), @ViewDebug.IntToString(from = 5, to = "VIEW_START"), @ViewDebug.IntToString(from = 6, to = "VIEW_END")])
getTextAlignment()
int
@ViewDebug.ExportedProperty(category = "text", mapping = [@ViewDebug.IntToString(from = 0, to = "INHERIT"), @ViewDebug.IntToString(from = 1, to = "FIRST_STRONG"), @ViewDebug.IntToString(from = 2, to = "ANY_RTL"), @ViewDebug.IntToString(from = 3, to = "LTR"), @ViewDebug.IntToString(from = 4, to = "RTL"), @ViewDebug.IntToString(from = 5, to = "LOCALE"), @ViewDebug.IntToString(from = 6, to = "FIRST_STRONG_LTR"), @ViewDebug.IntToString(from = 7, to = "FIRST_STRONG_RTL")])
getTextDirection()
@Nullable CharSequence
final int
float
int
@NonNull TouchDelegate
@NonNull ArrayList<@NonNull View>
float
@NonNull String
float
float
float
long
int
int
@Nullable Drawable
@Nullable Drawable
int
@Nullable ViewTranslationResponse
@NonNull ViewTreeObserver
int
@ViewDebug.ExportedProperty(mapping = [@ViewDebug.IntToString(from = 0, to = "VISIBLE"), @ViewDebug.IntToString(from = 4, to = "INVISIBLE"), @ViewDebug.IntToString(from = 8, to = "GONE")])
getVisibility()
final int
@ViewDebug.ExportedProperty(category = "layout")
getWidth()
int
@NonNull WindowId
@Nullable WindowInsetsController
int

This method is deprecated. Deprecated in Java

@NonNull IBinder
int
void
float
@ViewDebug.ExportedProperty(category = "drawing")
getX()
float
@ViewDebug.ExportedProperty(category = "drawing")
getY()
float
@ViewDebug.ExportedProperty(category = "drawing")
getZ()
boolean
boolean
boolean
boolean
boolean
boolean
boolean
boolean
boolean
boolean
void
void

This method is deprecated. Deprecated in Java

void
invalidate(int l, int t, int r, int b)

This method is deprecated. Deprecated in Java

void
boolean
boolean
boolean
boolean
boolean
boolean
boolean
final boolean
boolean
boolean

This method is deprecated. Deprecated in Java

boolean
boolean

This method is deprecated. Deprecated in Java

boolean
boolean
final boolean
@ViewDebug.ExportedProperty(category = "focus")
isFocusable()
final boolean
boolean
@ViewDebug.ExportedProperty(category = "focus")
isFocused()
final boolean
boolean
boolean
boolean
boolean
boolean
boolean
boolean
boolean
final boolean
final boolean
boolean
boolean
boolean
final boolean
boolean
boolean
boolean
boolean
boolean
boolean
@ViewDebug.ExportedProperty(category = "drawing")
isOpaque()
boolean
boolean
boolean
final boolean
boolean
boolean
boolean
boolean
boolean
boolean
boolean
final boolean
boolean
boolean
final boolean
boolean
boolean
boolean
boolean
boolean
void
@NonNull View
keyboardNavigationClusterSearch(
    @NonNull View currentCluster,
    int direction
)
final void
layout(int l, int t, int r, int b)
final void
measure(int widthMeasureSpec, int heightMeasureSpec)
void
offsetLeftAndRight(int offset)
void
offsetTopAndBottom(int offset)
void
void
@NonNull WindowInsets
void
boolean
boolean
void
@NonNull int[]
onCreateDrawableState(int extraSpace)
@NonNull InputConnection
void
onCreateViewTranslationRequest(
    @NonNull int[] supportedFormats,
    @NonNull Consumer<@NonNull ViewTranslationRequest> requestsCollector
)
void
onCreateVirtualViewTranslationRequests(
    @NonNull long[] virtualIds,
    @NonNull int[] supportedFormats,
    @NonNull Consumer<@NonNull ViewTranslationRequest> requestsCollector
)
void
onDisplayHint(int hint)
boolean
void
void
final void
boolean
void
void
void
onFocusChanged(
    boolean gainFocus,
    int direction,
    @Nullable Rect previouslyFocusedRect
)
boolean
void
onHoverChanged(boolean hovered)
boolean
void
void
boolean
onKeyPreIme(int keyCode, @NonNull KeyEvent event)
boolean
onKeyShortcut(int keyCode, @NonNull KeyEvent event)
void
onOverScrolled(
    int scrollX,
    int scrollY,
    boolean clampedX,
    boolean clampedY
)
void
onPointerCaptureChange(boolean hasCapture)
void
void
void
onProvideAutofillVirtualStructure(
    @NonNull ViewStructure structure,
    int flags
)
void
onProvideContentCaptureStructure(
    @NonNull ViewStructure structure,
    int flags
)
void
void
@Nullable ContentInfo
@NonNull PointerIcon
onResolvePointerIcon(@NonNull MotionEvent event, int pointerIndex)
void
void
onRtlPropertiesChanged(int layoutDirection)
@Nullable Parcelable
void
onScreenStateChanged(int screenState)
void
onScrollCaptureSearch(
    @NonNull Rect localVisibleRect,
    @NonNull Point windowOffset,
    @NonNull Consumer<@NonNull ScrollCaptureTarget> targets
)
void
onScrollChanged(int l, int t, int oldl, int oldt)
boolean
onSetAlpha(int alpha)
void
boolean
boolean
void
void
void
onVisibilityAggregated(boolean isVisible)
void
onVisibilityChanged(@NonNull View changedView, int visibility)
void
onWindowFocusChanged(boolean hasWindowFocus)
void

This method is deprecated. Deprecated in Java

void
onWindowVisibilityChanged(int visibility)
boolean
overScrollBy(
    int deltaX,
    int deltaY,
    int scrollX,
    int scrollY,
    int scrollRangeX,
    int scrollRangeY,
    int maxOverScrollX,
    int maxOverScrollY,
    boolean isTouchEvent
)
boolean
performAccessibilityAction(int action, @Nullable Bundle arguments)
boolean
boolean
boolean
performContextClick(float x, float y)
boolean
performHapticFeedback(int feedbackConstant)
boolean
boolean
performHapticFeedback(int feedbackConstant, int flags)
boolean
boolean
performLongClick(float x, float y)
@Nullable ContentInfo
void
playSoundEffect(int soundConstant)
boolean
boolean
postDelayed(@NonNull Runnable action, long delayMillis)
void
void
postInvalidate(int left, int top, int right, int bottom)
void
postInvalidateDelayed(long delayMilliseconds)
void
postInvalidateDelayed(
    long delayMilliseconds,
    int left,
    int top,
    int right,
    int bottom
)
void
void
postInvalidateOnAnimation(int left, int top, int right, int bottom)
void
void
postOnAnimationDelayed(@NonNull Runnable action, long delayMillis)
void
void
boolean
void
void
void
void
void
void

This method is deprecated. Deprecated in Java

final boolean
final boolean
requestFocus(int direction)
boolean
requestFocus(int direction, @NonNull Rect previouslyFocusedRect)
final boolean
void
void
void
boolean
boolean
requestRectangleOnScreen(@NonNull Rect rectangle, boolean immediate)
boolean
requestRectangleOnScreen(
    @NonNull Rect rectangle,
    boolean immediate,
    int source
)
final void
final void
final @NonNull T
<T extends View> requireViewById(int id)
void
boolean
void
final void
saveAttributeDataForStyleable(
    @NonNull Context context,
    @NonNull int[] styleable,
    @Nullable AttributeSet attrs,
    @NonNull TypedArray t,
    int defStyleAttr,
    int defStyleRes
)
void
void
scrollBy(int x, int y)
void
scrollTo(int x, int y)
void
setAccessibilityDataSensitive(int accessibilityDataSensitive)
void
void
setAccessibilityHeading(boolean isHeading)
void
void
void
void
void
setActivated(boolean activated)
void
setAllowClickWhenDisabled(boolean clickableWhenDisabled)
void
void
void
setAlpha(float alpha)
void
void
void
setAutoHandwritingEnabled(boolean enabled)
void
setAutofillHints(@Nullable String... autofillHints)
void
void
void

This method is deprecated. Deprecated in Java

void
void
void
void
final void
setBottom(int bottom)
void
setCameraDistance(float distance)
void
setClickable(boolean clickable)
void
setClipBounds(@NonNull Rect clipBounds)
void
setClipToOutline(boolean clipToOutline)
void
void
final void
void
setContextClickable(boolean contextClickable)
void
setDefaultFocusHighlightEnabled(boolean defaultFocusHighlightEnabled)
void

This method is deprecated. Deprecated in Java

void
setDrawingCacheEnabled(boolean enabled)

This method is deprecated. Deprecated in Java

void

This method is deprecated. Deprecated in Java

void
void
setElevation(float elevation)
void
setEnabled(boolean enabled)
void
setFadingEdgeLength(int length)
void
void
setFitsSystemWindows(boolean fitSystemWindows)
void
setFocusable(boolean focusable)
void
setFocusable(int focusable)
void
setFocusableInTouchMode(boolean focusableInTouchMode)
void
setFocusedByDefault(boolean isFocusedByDefault)
void
setForceDarkAllowed(boolean allow)
void
void
setForegroundGravity(int gravity)
void
void
void
void
setFrameContentVelocity(float pixelsPerSecond)
void
setHandwritingBoundsOffsets(
    float offsetLeft,
    float offsetTop,
    float offsetRight,
    float offsetBottom
)
void
void
void
setHapticFeedbackEnabled(boolean hapticFeedbackEnabled)
void
setHasTransientState(boolean hasTransientState)
void
setHorizontalFadingEdgeEnabled(boolean horizontalFadingEdgeEnabled)
void
setHorizontalScrollBarEnabled(boolean horizontalScrollBarEnabled)
void
void
void
setHovered(boolean hovered)
void
setId(int id)
void
void
void
void
setIsCredential(boolean isCredential)

This method is deprecated. Deprecated in Java

void
setIsHandwritingDelegate(boolean isHandwritingDelegate)
void
setKeepScreenOn(boolean keepScreenOn)
void
setKeyboardNavigationCluster(boolean isCluster)
void
setLabelFor(int id)
void
void
setLayerType(int layerType, @Nullable Paint paint)
void
setLayoutDirection(int layoutDirection)
void
final void
setLeft(int left)
final void
setLeftTopRightBottom(int left, int top, int right, int bottom)
void
setLongClickable(boolean longClickable)
final void
setMeasuredDimension(int measuredWidth, int measuredHeight)
void
setMinimumHeight(int minHeight)
void
setMinimumWidth(int minWidth)
void
setNestedScrollingEnabled(boolean enabled)
void
setNextClusterForwardId(int nextClusterForwardId)
void
setNextFocusDownId(int nextFocusDownId)
void
setNextFocusForwardId(int nextFocusForwardId)
void
setNextFocusLeftId(int nextFocusLeftId)
void
setNextFocusRightId(int nextFocusRightId)
void
setNextFocusUpId(int nextFocusUpId)
void
void
void
void
void
void
void
void
void
void
void
void
setOnReceiveContentListener(
    @Nullable String[] mimeTypes,
    @Nullable OnReceiveContentListener listener
)
void
void

This method is deprecated. Deprecated in Java

void
void
void
void
void
setOverScrollMode(int overScrollMode)
void
void
setPivotX(float pivotX)
void
setPivotY(float pivotY)
void
final void
setPreferKeepClear(boolean preferKeepClear)
final void
void
setPressed(boolean pressed)
void
final void
setRevealOnFocusHint(boolean revealOnFocus)
final void
setRight(int right)
void
setRotation(float rotation)
void
setRotationX(float rotationX)
void
setRotationY(float rotationY)
void
setSaveEnabled(boolean enabled)
void
setSaveFromParentEnabled(boolean enabled)
void
setScaleX(float scaleX)
void
setScaleY(float scaleY)
void
setScreenReaderFocusable(boolean screenReaderFocusable)
void
setScrollBarDefaultDelayBeforeFade(
    int scrollBarDefaultDelayBeforeFade
)
void
setScrollBarFadeDuration(int scrollBarFadeDuration)
void
setScrollBarSize(int scrollBarSize)
void
setScrollBarStyle(int style)
final void
void
void
setScrollContainer(boolean isScrollContainer)
void
setScrollIndicators(int indicators)
void
setScrollX(int value)
void
setScrollY(int value)
void
setScrollbarFadingEnabled(boolean fadeScrollbars)
void
setSelected(boolean selected)
void
setSoundEffectsEnabled(boolean soundEffectsEnabled)
void
void
void
setSupplementalDescription(
    @Nullable CharSequence supplementalDescription
)
void
void
setSystemUiVisibility(int visibility)

This method is deprecated. Deprecated in Java

void
void
setTextAlignment(int textAlignment)
void
setTextDirection(int textDirection)
void
final void
setTop(int top)
void
void
setTransitionAlpha(float alpha)
final void
setTransitionName(@NonNull String transitionName)
void
setTransitionVisibility(int visibility)
void
setTranslationX(float translationX)
void
setTranslationY(float translationY)
void
setTranslationZ(float translationZ)
void
setVerticalFadingEdgeEnabled(boolean verticalFadingEdgeEnabled)
void
setVerticalScrollBarEnabled(boolean verticalScrollBarEnabled)
void
void
void
void
void
setVisibility(int visibility)
void
setWillNotCacheDrawing(boolean willNotCacheDrawing)

This method is deprecated. Deprecated in Java

void
setWillNotDraw(boolean willNotDraw)
void
void
setX(float x)
void
setY(float y)
void
setZ(float z)
boolean
boolean
showContextMenu(float x, float y)
@NonNull ActionMode
@NonNull ActionMode
void
final boolean
startDrag(
    @NonNull ClipData data,
    @NonNull View.DragShadowBuilder shadowBuilder,
    @NonNull Object myLocalState,
    int flags
)

This method is deprecated. Deprecated in Java

final boolean
startDragAndDrop(
    @NonNull ClipData data,
    @NonNull View.DragShadowBuilder shadowBuilder,
    @NonNull Object myLocalState,
    int flags
)
boolean
void
void
void
void
final void
boolean
boolean

This method is deprecated. Deprecated in Java

boolean
@ViewDebug.ExportedProperty(category = "drawing")
willNotDraw()
From android.view.ViewGroup
boolean
boolean
addViewInLayout(
    @NonNull View child,
    int index,
    @NonNull ViewGroup.LayoutParams params,
    boolean preventRequestLayout
)
void
attachLayoutAnimationParameters(
    @NonNull View child,
    @NonNull ViewGroup.LayoutParams params,
    int index,
    int count
)
void
attachViewToParent(
    @NonNull View child,
    int index,
    @NonNull ViewGroup.LayoutParams params
)
boolean
boolean
void
void
void
debug(int depth)
void
void
void
void
detachViewsFromParent(int start, int count)
void
void
boolean
drawChild(@NonNull Canvas canvas, @NonNull View child, long drawingTime)
void
@NonNull ViewGroup.LayoutParams
@NonNull ViewGroup.LayoutParams
@NonNull ViewGroup.LayoutParams
@NonNull CharSequence
@NonNull View
getChildAt(int index)
int
final int
getChildDrawingOrder(int drawingPosition)
int
getChildDrawingOrder(int childCount, int drawingPosition)
boolean
boolean
boolean
int
@ViewDebug.ExportedProperty(category = "focus", mapping = [@ViewDebug.IntToString(from = 131072, to = "FOCUS_BEFORE_DESCENDANTS"), @ViewDebug.IntToString(from = 262144, to = "FOCUS_AFTER_DESCENDANTS"), @ViewDebug.IntToString(from = 393216, to = "FOCUS_BLOCK_DESCENDANTS")])
getDescendantFocusability()
@NonNull View
@NonNull LayoutAnimationController
@NonNull Animation.AnimationListener
int
@ViewDebug.ExportedProperty(category = "layout", mapping = [@ViewDebug.IntToString(from = 0, to = "RESOLVED_DIRECTION_LTR"), @ViewDebug.IntToString(from = 1, to = "RESOLVED_DIRECTION_RTL")])
getLayoutDirection()
int
@NonNull LayoutTransition
int
@NonNull ViewGroupOverlay
final @NonNull ViewParent
@NonNull ViewParent
int
@ViewDebug.ExportedProperty(category = "drawing", mapping = [@ViewDebug.IntToString(from = 0, to = "NONE"), @ViewDebug.IntToString(from = 1, to = "ANIMATION"), @ViewDebug.IntToString(from = 2, to = "SCROLLING"), @ViewDebug.IntToString(from = 3, to = "ALL")])
getPersistentDrawingCache()

This method is deprecated. Deprecated in Java

int
@ViewDebug.ExportedProperty(category = "text", mapping = [@ViewDebug.IntToString(from = 0, to = "INHERIT"), @ViewDebug.IntToString(from = 1, to = "GRAVITY"), @ViewDebug.IntToString(from = 2, to = "TEXT_START"), @ViewDebug.IntToString(from = 3, to = "TEXT_END"), @ViewDebug.IntToString(from = 4, to = "CENTER"), @ViewDebug.IntToString(from = 5, to = "VIEW_START"), @ViewDebug.IntToString(from = 6, to = "VIEW_END")])
getTextAlignment()
int
@ViewDebug.ExportedProperty(category = "text", mapping = [@ViewDebug.IntToString(from = 0, to = "INHERIT"), @ViewDebug.IntToString(from = 1, to = "FIRST_STRONG"), @ViewDebug.IntToString(from = 2, to = "ANY_RTL"), @ViewDebug.IntToString(from = 3, to = "LTR"), @ViewDebug.IntToString(from = 4, to = "RTL"), @ViewDebug.IntToString(from = 5, to = "LOCALE"), @ViewDebug.IntToString(from = 6, to = "FIRST_STRONG_LTR"), @ViewDebug.IntToString(from = 7, to = "FIRST_STRONG_RTL")])
getTextDirection()
boolean
int
boolean

This method is deprecated. Deprecated in Java

boolean

This method is deprecated. Deprecated in Java

boolean
boolean

This method is deprecated. Deprecated in Java

boolean
boolean
boolean
boolean
boolean
boolean
boolean
void
measureChild(
    @NonNull View child,
    int parentWidthMeasureSpec,
    int parentHeightMeasureSpec
)
void
measureChildWithMargins(
    @NonNull View child,
    int parentWidthMeasureSpec,
    int widthUsed,
    int parentHeightMeasureSpec,
    int heightUsed
)
void
measureChildren(int widthMeasureSpec, int heightMeasureSpec)
final void
offsetDescendantRectToMyCoords(
    @NonNull View descendant,
    @NonNull Rect rect
)
final void
offsetRectIntoDescendantCoords(
    @NonNull View descendant,
    @NonNull Rect rect
)
boolean
boolean
boolean
onRequestFocusInDescendants(
    int direction,
    @NonNull Rect previouslyFocusedRect
)
boolean
void
void
void
propagateRequestedFrameRate(float frameRate, boolean forceOverride)
void
void
void
removeDetachedView(@NonNull View child, boolean animate)
void
removeViewAt(int index)
void
void
removeViews(int start, int count)
void
removeViewsInLayout(int start, int count)
void
void
setAddStatesFromChildren(boolean addsStates)
void

This method is deprecated. Deprecated in Java

void
setAnimationCacheEnabled(boolean enabled)

This method is deprecated. Deprecated in Java

void

This method is deprecated. Deprecated in Java

void
void

This method is deprecated. Deprecated in Java

void
setClipChildren(boolean clipChildren)
void
setClipToPadding(boolean clipToPadding)
void
setDescendantFocusability(int focusability)
void
void
void
setLayoutMode(int layoutMode)
void
void
void
void
setPersistentDrawingCache(int drawingCacheToKeep)

This method is deprecated. Deprecated in Java

void
setRequestedFrameRate(float frameRate)
void
void
setTouchscreenBlocksFocus(boolean touchscreenBlocksFocus)
void
setTransitionGroup(boolean isTransitionGroup)
boolean
void
void
void
suppressLayout(boolean suppress)
From android.view.ViewManager
void
void
From android.view.ViewParent
void
void
void
childHasTransientStateChanged(
    @NonNull View child,
    boolean childHasTransientState
)
void
@Nullable OnBackInvokedDispatcher
findOnBackInvokedDispatcherForChild(
    @NonNull View child,
    @NonNull View requester
)
@NonNull View
focusSearch(@NonNull View focused, int direction)
void
boolean
getChildVisibleRect(
    @NonNull View child,
    @NonNull Rect r,
    @NonNull Point offset
)
final void

This method is deprecated. Deprecated in Java

@NonNull ViewParent
invalidateChildInParent(@NonNull int[] location, @NonNull Rect dirty)

This method is deprecated. Deprecated in Java

void
notifySubtreeAccessibilityStateChanged(
    @NonNull View child,
    @NonNull View source,
    int changeType
)
void
boolean
onNestedFling(
    @NonNull View target,
    float velocityX,
    float velocityY,
    boolean consumed
)
boolean
onNestedPreFling(@NonNull View target, float velocityX, float velocityY)
boolean
onNestedPrePerformAccessibilityAction(
    @NonNull View target,
    int action,
    Bundle args
)
void
onNestedPreScroll(
    @NonNull View target,
    int dx,
    int dy,
    @NonNull int[] consumed
)
void
onNestedScroll(
    @NonNull View target,
    int dxConsumed,
    int dyConsumed,
    int dxUnconsumed,
    int dyUnconsumed
)
void
onNestedScrollAccepted(@NonNull View child, @NonNull View target, int axes)
boolean
onStartNestedScroll(
    @NonNull View child,
    @NonNull View target,
    int nestedScrollAxes
)
void
void
void
boolean
requestChildRectangleOnScreen(
    @NonNull View child,
    @NonNull Rect rectangle,
    boolean immediate
)
boolean
requestChildRectangleOnScreen(
    @NonNull View child,
    @NonNull Rect rectangle,
    boolean immediate,
    int source
)
void
requestDisallowInterceptTouchEvent(boolean disallowIntercept)
boolean
void
boolean
boolean
showContextMenuForChild(@NonNull View originalView, float x, float y)
@NonNull ActionMode
startActionModeForChild(
    @NonNull View originalView,
    @NonNull ActionMode.Callback callback
)
@NonNull ActionMode
startActionModeForChild(
    @NonNull View originalView,
    @NonNull ActionMode.Callback callback,
    int type
)

Constants

TEXT_TYPE_NEAR_MY_PRECISE_LOCATION

public static final int TEXT_TYPE_NEAR_MY_PRECISE_LOCATION

TEXT_TYPE_NEAR_YOUR_PRECISE_LOCATION

public static final int TEXT_TYPE_NEAR_YOUR_PRECISE_LOCATION

TEXT_TYPE_NONE

public static final int TEXT_TYPE_NONE

TEXT_TYPE_PRECISE_LOCATION

public static final int TEXT_TYPE_PRECISE_LOCATION

TEXT_TYPE_SHARE_PRECISE_LOCATION

public static final int TEXT_TYPE_SHARE_PRECISE_LOCATION

TEXT_TYPE_USE_PRECISE_LOCATION

public static final int TEXT_TYPE_USE_PRECISE_LOCATION

Public constructors

LocationButton

Added in 1.0.0-alpha01
public LocationButton(
    @NonNull Context context,
    AttributeSet attrs,
    int defStyleAttr,
    int defStyleRes
)

Public methods

addView

public void addView(View child)

addView

public void addView(View child, int index)

addView

public void addView(View child, ViewGroup.LayoutParams params)

addView

public void addView(View child, int index, ViewGroup.LayoutParams params)

addView

public void addView(View child, int width, int height)

getCompositionOrder

Added in 1.0.0-alpha01
public final int getCompositionOrder()

Gets the composition order of the underlying SurfaceView.

Returns
int

The exact Z-order integer.

getParentActivity

Added in 1.0.0-alpha01
public final Activity getParentActivity()

The Activity that hosts this button.

This activity is used to host the location button. If not explicitly set, the library will attempt to resolve the hosting activity by traversing the Context wrapper chain of the context passed to the constructor.

setBackgroundColor

public void setBackgroundColor(int color)

setCompositionOrder

Added in 1.0.0-alpha01
public final void setCompositionOrder(int order)

Controls the composition order of the underlying SurfaceView.

By default, this is set on Top in Z-order, as this button is a secure system component.

  • For developers migrating from legacy SurfaceView APIs:

  • setZOrderOnTop(true) is equivalent to passing 1.

  • setZOrderOnTop(false) is equivalent to passing -2.

Parameters
int order

The exact Z-order integer. Default is 1 (on top of the app window).

setCornerRadius

Added in 1.0.0-alpha01
public final void setCornerRadius(float radius)

Sets the corner radius of the button background.

Parameters
float radius

The desired corner radius in pixels.

setIconTint

Added in 1.0.0-alpha01
public final void setIconTint(int color)

Sets the color tint applied to the location icon.

Parameters
int color

The resolved ARGB color integer.

setOnErrorListener

Added in 1.0.0-alpha01
public final void setOnErrorListener(OnErrorListener listener)

Sets the listener to receive remote session errors on Build.VERSION_CODES.CINNAMON_BUN and above platforms.

Parameters
OnErrorListener listener

The OnErrorListener that will handle callbacks, or null to clear a previously set listener.

setOnPermissionResultListener

Added in 1.0.0-alpha01
public final void setOnPermissionResultListener(OnPermissionResultListener listener)

Sets the listener to receive permission results.

Note: On platforms before Build.VERSION_CODES.CINNAMON_BUN, if you rely on the default permission request flow (i.e. you do not provide a custom OnRequestPermissionsListener), the hosting Activity must implement androidx.activity.result.ActivityResultRegistryOwner and the LocationButton must have an android:id to deliver the permission result to this listener.

Parameters
OnPermissionResultListener listener

The OnPermissionResultListener that will handle callbacks, or null to clear a previously set listener.

setOnRequestPermissionsListener

Added in 1.0.0-alpha01
public final void setOnRequestPermissionsListener(OnRequestPermissionsListener listener)

Sets the listener to handle permission requests on platforms before Build.VERSION_CODES.CINNAMON_BUN.

Provide this listener if you want to customize the permission request flow (e.g. to show rationale) or if the hosting Activity does not implement androidx.activity.result.ActivityResultRegistryOwner on platforms before Build.VERSION_CODES.CINNAMON_BUN.

Parameters
OnRequestPermissionsListener listener

The OnRequestPermissionsListener that will handle callbacks, or null to clear a previously set listener.

setPadding

public void setPadding(int left, int top, int right, int bottom)

setPaddingRelative

public void setPaddingRelative(int start, int top, int end, int bottom)

setParentActivity

Added in 1.0.0-alpha01
public final void setParentActivity(Activity value)

The Activity that hosts this button.

This activity is used to host the location button. If not explicitly set, the library will attempt to resolve the hosting activity by traversing the Context wrapper chain of the context passed to the constructor.

setPressedCornerRadius

Added in 1.0.0-alpha01
public final void setPressedCornerRadius(float radius)

Sets the corner radius of the button background when the user presses it.

Parameters
float radius

The desired pressed-state corner radius in pixels.

setStrokeColor

Added in 1.0.0-alpha01
public final void setStrokeColor(int color)

Sets the width of the button's outer stroke border.

Parameters
int color

The resolved ARGB color integer.

setStrokeWidth

Added in 1.0.0-alpha01
public final void setStrokeWidth(int strokeWidth)

Sets the width of the button's outer stroke border.

Parameters
int strokeWidth

The desired stroke width in pixels.

setTextColor

Added in 1.0.0-alpha01
public final void setTextColor(int color)

Sets the color of the text displayed inside the button.

Parameters
int color

The resolved ARGB color integer.

setTextType

Added in 1.0.0-alpha01
public final void setTextType(int textType)

Sets the text content displayed inside the button.

Parameters
int textType

The predefined LocationButtonTextType identifier.

Protected methods

addViewInLayout

protected boolean addViewInLayout(View child, int index, ViewGroup.LayoutParams params)

onAttachedToWindow

protected void onAttachedToWindow()

onConfigurationChanged

protected void onConfigurationChanged(Configuration newConfig)

onDetachedFromWindow

protected void onDetachedFromWindow()

onLayout

protected void onLayout(boolean changed, int left, int top, int right, int bottom)

onMeasure

protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec)

onSizeChanged

protected void onSizeChanged(int w, int h, int oldw, int oldh)

Extension functions

LocationButtonCompat.setLocationButtonProvider

@RequiresApi(value = 37)
public final void LocationButtonCompat.setLocationButtonProvider(
    @NonNull LocationButton receiver,
    LocationButtonProvider provider
)

Sets the LocationButtonProvider to provide a location button.

Parameters
LocationButtonProvider provider

The LocationButtonProvider to use, or null to clear.