StandOut lets you easily create floating windows in your Android app.

Related tags

UI/UX StandOut
Overview
Comments
  • Update core functionality to higher APIs

    Update core functionality to higher APIs

    Give it a bit more of "Holo" look and usability.

    • Fix code styling based on Android guidelines
    • Changed DropDownItem by PopupMenu (I'm not sure if we can set icons, but it adapts to new APIs)
    • Window.hasMoved(), and Window.setMoved(boolean) methods. This helps to determine whether if window has been moved atleast once. It could be useful to implement custom onTouch methods (Example: A video player that play/stops on touch but you don't want it to play/stop when you're dragging and dropping it)
    • Renamed FLAG_ADD_FUNCTIONALITY_DROP_DOWN_DISABLE to FLAG_ADD_FUNCTIONALITY_POPUP_MENU_DISABLE (See above)
    • Add ability to pass data bundles on show() method (Ex: for apps willing to use intent filters)
    • Add ability to perform haptic feedback on MotionEvent.ACTION_DOWN for both body and title bar (also changed a bit behavior of FLAG_DECORATION_MOVE_DISABLE)
    • Remove hardcoded strings on most (all ?) of the places
    • Removed some drawables and use holo ones
    • Layout fixes (as updating fill_parent to match_parent)
    • Fix android doc on some methods
    • Updated some code following ide suggestions
    • Update API usage to min 15, target 16 (ICS, Jellybean)
    opened by jesdga95 10
  • Track topmost window.

    Track topmost window.

    Hi Wei,

    I am using your wonderful StandOut library for my latest project - a floating chessboard. My chessboard basically consists of a imageview. I track moves using the onTouch callback.

    Which is a problem (in my case).

    If I set the BRING_TO_FRONT_ON_TOUCH (/TAP) flags to have the library automatically bring my window to the front on touches/taps then the window will flicker everytime I move a piece on the chessboard. It's annoying.

    I then devised the following strategy ... Do not set the BRING_TO_FRONT_ON_TOUCH (or TAP) flags on the window. In the show() and bringToFront() methods I track which windowId have been shown or brought to the front.

    In my onTouch handler I then have:

        if (getTopmostWindowId() != id) {
            bringToFront(id);
        }
    

    ... and lo and behold. The flicker has gone!

    I hope you find the patch worthwhile for inclusion into the StandOut library - or, better yet, let it serve for a better implementation if possible :-)

    Anyway - thanks for a nice library. I expect tor release my chessboard app one of the days .... - and it wouldn't have been possible without your library!

    Best regards, Brian

    opened by bschau 3
  • Preferred way of getting Activity or Context from StandOutWindow?

    Preferred way of getting Activity or Context from StandOutWindow?

    I am wondering what is the preferred way of getting the current Activity or Context object into StandOutWindow? Or the other way around, how to access the FrameView of StandOutWindow from the Activity?

    Or did I do something wrong and there exists a development pattern that doesn't get you in such troubles?

    opened by gw0 2
  • RemoteServiceException for Android 9 and Android 10

    RemoteServiceException for Android 9 and Android 10

    It's working fine for Android 8 but error with Android 9 and Android 10.

    Fatal Exception: android.app.RemoteServiceException: Bad notification for startForeground: java.lang.RuntimeException: invalid channel for service notification: Notification(channel=null pri=0 contentView=null vibrate=null sound=null tick defaults=0x0 flags=0x60 color=0x00000000 vis=SECRET internalType=0 internalPriority=0 internalGroupPriority=0 internalFlag=0)
           at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1965)
           at android.os.Handler.dispatchMessage(Handler.java:106)
           at android.os.Looper.loop(Looper.java:224)
           at android.app.ActivityThread.main(ActivityThread.java:7081)
           at java.lang.reflect.Method.invoke(Method.java)
           at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:536)
           at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:928)
    

    Anyone find solutions for this ?

    opened by vsay01 1
  • Permission denied for this type of window at android 6.

    Permission denied for this type of window at android 6.

    Hey thank you for this library..

    I am facing this issue at Android 6.

    android.view.WindowManager$BadTokenException: Unable to add window android.view.ViewRootImpl$W@480c247 -- permission denied for this window type
    07-13 19:09:23.481 15732-15732/com.spoofer W/System.err:     at android.view.ViewRootImpl.setView(ViewRootImpl.java:599)
    07-13 19:09:23.481 15732-15732/com.spoofer W/System.err:     at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:310)
    07-13 19:09:23.481 15732-15732/com.spoofer W/System.err:     at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:85)
    07-13 19:09:23.481 15732-15732/com.spoofer W/System.err:     at com.spoofer.dp_widget.lib.StandOutWindow.show(StandOutWindow.java:1113)
    07-13 19:09:23.481 15732-15732/com.spoofer W/System.err:     at com.spoofer.dp_widget.lib.StandOutWindow.onStartCommand(StandOutWindow.java:386)
    07-13 19:09:23.481 15732-15732/com.spoofer W/System.err:     at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:3028)
    07-13 19:09:23.481 15732-15732/com.spoofer W/System.err:     at android.app.ActivityThread.access$2200(ActivityThread.java:157)
    
    opened by ch-muhammad-adil 1
  • Put Extra in activity

    Put Extra in activity

    Hi How put string in activity before show float windows, like:

    Bundle data = new Bundle(); data.putString("changedText", mapimg); StandOutWindow.sendData(view.getContext(), WidgetsWindow.class, StandOutWindow.DEFAULT_ID, DATA_CHANGED_TEXT, data, SimpleWindow.class, 1);

    This code show Null Thanks

    opened by malizadehq 1
  • Add support for building via Ant

    Add support for building via Ant

    Hi, I added support for building the library via ant by adding a standard build.xml file Also, one of the imports of an inner class in StandoutWindow.java was not required and causing me ant compilation issues, so I removed it. Also removed some resources that dont need to be in a library project.

    opened by jasonconnery 1
  • Flickering folder

    Flickering folder

    When i drag the folder around it flickers a lot on my HTC Desire Z (Android 2.3)

    Every time the folder "hits" the screen boarders it starts flickering and sometimes it then changes into the small icon. it should be docking at the screen boarder instead i would say?

    bug 
    opened by simonHeinen1 1
  • NullPointerException at FloatingFolder.onReceiveData(FloatingFolder.java:219)

    NullPointerException at FloatingFolder.onReceiveData(FloatingFolder.java:219)

    Ok when i wanted to open the app the second time i got:

    06-15 11:04:29.650: E/AndroidRuntime(13895): FATAL EXCEPTION: main 06-15 11:04:29.650: E/AndroidRuntime(13895): java.lang.RuntimeException: Unable to start service wei.mark.example.floatingfolders.FloatingFolder@405241e8 with Intent { act=SEND_DATA cmp=wei.mark.example/.floatingfolders.FloatingFolder (has extras) }: java.lang.NullPointerException 06-15 11:04:29.650: E/AndroidRuntime(13895): at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:2338) 06-15 11:04:29.650: E/AndroidRuntime(13895): at android.app.ActivityThread.access$2800(ActivityThread.java:132) 06-15 11:04:29.650: E/AndroidRuntime(13895): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1106) 06-15 11:04:29.650: E/AndroidRuntime(13895): at android.os.Handler.dispatchMessage(Handler.java:99) 06-15 11:04:29.650: E/AndroidRuntime(13895): at android.os.Looper.loop(Looper.java:143) 06-15 11:04:29.650: E/AndroidRuntime(13895): at android.app.ActivityThread.main(ActivityThread.java:4196) 06-15 11:04:29.650: E/AndroidRuntime(13895): at java.lang.reflect.Method.invokeNative(Native Method) 06-15 11:04:29.650: E/AndroidRuntime(13895): at java.lang.reflect.Method.invoke(Method.java:507) 06-15 11:04:29.650: E/AndroidRuntime(13895): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 06-15 11:04:29.650: E/AndroidRuntime(13895): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 06-15 11:04:29.650: E/AndroidRuntime(13895): at dalvik.system.NativeStart.main(Native Method) 06-15 11:04:29.650: E/AndroidRuntime(13895): Caused by: java.lang.NullPointerException 06-15 11:04:29.650: E/AndroidRuntime(13895): at wei.mark.example.floatingfolders.FloatingFolder.onReceiveData(FloatingFolder.java:219) 06-15 11:04:29.650: E/AndroidRuntime(13895): at wei.mark.standout.StandOutWindow.onStartCommand(StandOutWindow.java:505) 06-15 11:04:29.650: E/AndroidRuntime(13895): at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:2321) 06-15 11:04:29.650: E/AndroidRuntime(13895): ... 10 more

    opened by simonHeinen1 1
  • Layoutpara

    Layoutpara

    These values don't give the right side and the bottom of the screen if flag FLAG_WINDOW_EDGE_LIMITS_ENABLE Is not set.

        public static final int RIGHT = Integer.MAX_VALUE;
    

    1783 /** 1784 * Special value for y position that represents the bottom of the 1785 * screen. */ public static final int BOTTOM = Integer.MAX_VALUE;

    opened by waterdaan 0
  • Removed problematic already shown and hidden exceptions.

    Removed problematic already shown and hidden exceptions.

    When calling show and hide intents from another thread a race condition may appear causing multiple calls to window show and hide functions. It is unnecessary for those functions throw an exception, because it is obvious what should be achieved (window either shown or hidden).

    The proposed patch replaces the exceptions with a debugging notice and "does the right thing".

    opened by gw0 0
  • StandOutFlags.FLAG_WINDOW_EDGE_LIMITS_ENABLE and orientation change

    StandOutFlags.FLAG_WINDOW_EDGE_LIMITS_ENABLE and orientation change

    orientation change and StandOutFlags.FLAG_WINDOW_EDGE_LIMITS_ENABLE doesnot update limits for the window.

    When I start the app with portrait mode and then change to landscape it still has edge limit for portrait only, how can we update the limit when orientation is changed

    opened by pawaom 0
  • Cannot Play Video in Full Screen when window is floating idle

    Cannot Play Video in Full Screen when window is floating idle

    Hi, Im not able to play video in full screen when window is floating/idle. The same happens when i try to play video in youtube or any other App. Please Help

    opened by spawn08 0
  • Brought projects to current ver. Android Studio and Gradle

    Brought projects to current ver. Android Studio and Gradle

    Hello! Thank you for such an elegant and compact, yet powerful and well documented library. I had troubles building it with the old tools, so re-worked projects structure to work with the latest versions of Android Studio and Gradle. The test examples needed to deal with the new way of handling screen overlay permission under Android 6 and higher, which I added to the test app main activity class.

    Also made some small code corrections to remove depreciated or removed calls and classes, e.g. using now NotificationCompat.Builder.

    Consider merging it into your base fork, may help others quickly start with your library. I need it for my @Voice Aloud Reader app to make a floating Play/Pause button and maybe a few other buttons on a floating toolbar.

    opened by gregko 3
  • Play a youtube video inside a StandoutWindow

    Play a youtube video inside a StandoutWindow

    I tried to play a youtube video inside a standoutwindow using android youtube library. I don't think it's possible because youtube view needs a YouTubeBaseActivity, but StandoutWIndow is a Service, therefore YouTubePlayerView cannot be used here. Youtube player library also provides a YouTubePlayerFragment which also cannot be used because StandoutWindow cannot use fragments. I could place a WebView inside a StandOut window and play a youtube video with it. But using a webview is a bit clumsy and it works slower than youtube library.

    Also, did you try to play a video from a URL inside a StandoutWIndow?

    opened by alex199568 0
Easily create complex recyclerview adapters in android

?? Due to the nature of my job and growing popularity of Jetpack Compose, I lack the motivation to keep this project alive. Recyclerview is one of the

Riyaz Ahamed 823 Jan 6, 2023
Android library to create chat message view easily

ChatMessageView ChatMessageView helps you to create chat message view quickly like a typical chatting application. Its a container view, so you can ad

Himanshu Soni 641 Dec 24, 2022
Floating Notification for Android app - Facebook ChatHeads Notification system

FloatingView (Application Demo on Play Store) DEPRECATED SEE FloatingView Floating View for Android app - Facebook ChatHeads Notification system This

Fernandez Anthony 530 Nov 17, 2022
Floating Notification for Android app - Facebook ChatHeads Notification system

FloatingView (Application Demo on Play Store) DEPRECATED SEE FloatingView Floating View for Android app - Facebook ChatHeads Notification system This

Fernandez Anthony 530 Nov 17, 2022
FloatingView can make the target view floating above the anchor view with cool animation

FloatingView FloatingView can make the target view floating above the anchor view with cool animation Links 中文版 README Blog about FloatingView demo.ap

UFreedom 1.8k Dec 27, 2022
Floating label input widgets

Android Floating Label Widgets A set of input widgets with a hint label that floats when input is not empty. Demo A demo of the widget is worth a thou

MarvinLabs 450 Nov 25, 2022
Simple and lightweight UI library for user new experience, combining floating bottom navigation and bottom sheet behaviour. Simple and beautiful.

Simple and lightweight UI library for user new experience, combining floating bottom navigation and bottom sheet behaviour. Simple and beautiful.

Rizki Maulana 118 Dec 14, 2022
A Tinder-like Android library to create the swipe cards effect. You can swipe left or right to like or dislike the content.

Swipecards Travis master: A Tinder-like cards effect as of August 2014. You can swipe left or right to like or dislike the content. The library create

Dionysis Lorentzos 2.3k Dec 9, 2022
💳 A quick and easy flip view through which you can create views with two sides like credit cards, poker cards etc.

The article on how this library was created is now published. You can read it on this link here. →. ?? EasyFlipView Built with ❤︎ by Wajahat Karim and

Wajahat Karim 1.3k Dec 14, 2022
This library provides a simple way to add a draggable sliding up panel (popularized by Google Music and Google Maps) to your Android application. Brought to you by Umano.

Note: we are not actively responding to issues right now. If you find a bug, please submit a PR. Android Sliding Up Panel This library provides a simp

Umano: News Read To You 9.4k Dec 31, 2022
Android ImageView you pan by tilting your device.

WindowView Window as in windowsill. An Android ImageView that can be panned around by tilting your device, as if you were looking through a window. Us

Justas Medeišis 265 Nov 11, 2022
A simple library to let you sign (or draw lines) smoothly with your finger into a view and save it.

FingerSignView Introduction FingerSignView is a simple library that lets you finger, or draw lines, smoothly with your finger into a View and save it

Agnaldo Pereira 25 Nov 20, 2022
🪄 It's a library that helps you customize your notification bar

NotificationBarCustom ?? It's a library that helps you customize your notification bar Demo Contrast(white) Contrast(black) Transparent Setup Add it i

박상선 8 Sep 7, 2022
Android library used to create an awesome Android UI based on a draggable element similar to the last YouTube graphic component.

Draggable Panel DEPRECATED. This project is not maintained anymore. Draggable Panel is an Android library created to build a draggable user interface

Pedro Vicente Gómez Sánchez 3k Dec 6, 2022
💳 CreditCardView is an Android library that allows developers to create the UI which replicates an actual Credit Card.

CreditCard View CreditCardView is an Android library that allows developers to create the UI which replicates an actual Credit Card. Displaying and en

Vinay Gaba 769 Dec 14, 2022
Create an header for com.google.android.material.navigation.NavigationView

Header View This is a view for NavigationView in android.support.design library Import At the moment the library is in my personal maven repo reposito

Raphaël Bussa 106 Nov 25, 2022
Android view that allows the user to create drawings. Customize settings like color, width or tools. Undo or redo actions. Zoom into DrawView and add a background.

DrawView Android view that allows the user to create drawings. Draw anything you like in your Android device from simple view. Customize draw settings

Oscar Gilberto Medina Cruz 839 Dec 28, 2022
This is a sample Android Studio project that shows the necessary code to create a note list widget, And it's an implementation of a lesson on the Pluralsight platform, but with some code improvements

NoteKeeper-Custom-Widgets This is a sample Android Studio project that shows the necessary code to create a note list widget, And it's an implementati

Ibrahim Mushtaha 3 Oct 29, 2022
Bubbles for Android is an Android library to provide chat heads capabilities on your apps. With a fast way to integrate with your development.

Bubbles for Android Bubbles for Android is an Android library to provide chat heads capabilities on your apps. With a fast way to integrate with your

Txus Ballesteros 1.5k Jan 2, 2023