[MOD][XPOSED] Flying Android

Search This thread

tkgktyk

Senior Member
Jan 27, 2014
185
390
39
**THIS MOD IS NO LONGER BEING MAINTAINED**
Use Niwatori - One-Handed Mode.


Flying Android - an Xposed module to move the window of Android.
ic_launcher.png
I support the one-handed operation!
Flying Android (FA) is a module of Xposed. FA introduces a movable mode called "Flying" to any screens. In the Flying mode, you can move the window of apps because drag events are intercepted and the whole window containing the Action Bar is dragged. On the other hand, click events are processed normally.

Features
  • Move the window of activities, dialogs and expanded status bar.
  • Pin the window after moving.

User Interface
  • Activities start as the normal mode (the same as before installing FA).
  • Launch "FA Toggle" to toggle mode, and drag to move.
  • Tap the outside of apps to back to the normal mode after moving.
  • Tap the pin to fix position of the window.
FA Toggle just sends a broadcast "jp.tkgktyk.flyingandroid.ACTION_TOGGLE". Because it is an Activity (but no display), you'll feel a time lag until toggle is done. If you want to avoid this time lag, use a background service (other app) to send ACTION_TOGGLE.

Settings
Flying

Speed
Choice the speed in the Flying mode.

Initial position...
Move to this position when you launch FA Toggle. Drag to change the position and press back key to save.

Notify flying
If checked, draw boundary of application while flying.

Flying dialog
If checked, you can fly dialogs. Note that IME is also dialog.
Pinning

Use pin
If checked, other settings for pinning are enabled.

Always show pin
Pin is always shown on apps regardless of whether flying.

Pin position...
Show a pin button on this position while flying. You can edit this position by dragging.

Auto pin
Window is pinned automatically. Select a behavior from disabled, when takeoff or after moving.

White list...
Select applications that apply pinning. If not check anything, pin is shown in all apps.

Flying status bar
If checked, you can fly (expanded) status bar.

Reset when collapsed
This is an option for Flying status bar. If checked, reset the state of Flying when status bar is collapsed. This requires Android 4.2 or later.
Troubleshooting

Force set black background...
Check apps for clear background if you encounterd a ghost on the outside of app after moving. I saw ghosts on Chrom, Firefox and Feedly.

Black list...
Select applications that don't apply Flying Android for avoiding trouble.

TODO
  • Transparent background -> Pending
  • Problem (reported): scrolling is partially while pinned.
  • Problem (reported): black / white lists don't work correctly.

Download
http://repo.xposed.info/module/jp.tkgktyk.flyingandroid

Full Changelog
https://sites.google.com/site/tkgktyk/android/flying-android

Source code
https://github.com/tkgktyk/FlyingAndroid

Special thanks
  • Xposed framework by rovo89
Reference mods (A-Z):
  • GravityBox by C3C076
  • SwipeBack by PeterCxy
  • XHaloFloatingWindow by zst123
And there is a full text on https://sites.google.com/site/tkgktyk/android/flying-android.

Demo
Demonstration movie for version 0.5.x (on Youtube).

Screenshots
screenshot1.png

-> after moving
screenshot2.png

Flying Status Bar
screenshot3.png

Flying Dialog
screenshot4.png
 
Last edited:

tkgktyk

Senior Member
Jan 27, 2014
185
390
39
Release / Status

version 1.1.0 (stable)
Changes:
* Added: notification toggle (thanks to Joe R.)
* Added: animation when takeoff or go home
* Added: Chinese text (zh-rCH, zh-rHK and zh-rTW; thanks to CodeingBoy)
* Added: Japanese text
* Modified: use two-pane layout for settings on the large display devices.
* Changed: the speed setting from list box to edit text.
* Modified: behavior of pin which is always displayed.
 
Last edited:
  • Like
Reactions: Wind07

tkgktyk

Senior Member
Jan 27, 2014
185
390
39
Tips

For launchers (such as LMT)
You might not be able to launch FA Toggle from launcher if it is registered as app (activity). In such a case, try register as a shortcut. FA supports creating shortcut to FA Toggle from version 0.6.5.

VPN setting
You must add VpnDialogs (com.android.vpndialogs) into blacklist for using VPN setting.

For Feedly
"FA Toggle" and Feedly are not well-matched. Display pin always by setting "always show pin" as workaround.

Appear ghosts on background
Check the problem app in "Force set black background" setting. If checked, the outside of the app after moving is overwritten by black solid to clear background. I saw a ghost on Chrome, Firefox and Feedly.
 
Last edited:

Aashuk Mehta

Senior Member
Sep 4, 2012
2,756
1,074
29
Mumbai
Redmi Note 10
Took so long to come to xda well better late than never. Finally you are here and more people will know about your awesome xposed module☺

Sent from my Nexus 4 using Tapatalk
 

Jimmy34742

Senior Member
Jul 1, 2011
879
243
成都
I just flashed a completely different ROM to upgrade my S4 to 4.4.2 (CM 11.0), and I still have the same white and black list problem and the same partial-scroll-while-pinned problem.

EDIT: I had to revert to 0.6.2 because the app kept flying my keyboard app, Kii. I always type by swiping, and the flying keyboard made that impossible, which is why I need to black list it. 0.6.2 allows me to black list apps, no problem.
 
Last edited:
  • Like
Reactions: tkgktyk

tkgktyk

Senior Member
Jan 27, 2014
185
390
39
I just flashed a completely different ROM to upgrade my S4 to 4.4.2 (CM 11.0), and I still have the same white and black list problem and the same partial-scroll-while-pinned problem.

EDIT: I had to revert to 0.6.2 because the app kept flying my keyboard app, Kii. I always type by swiping, and the flying keyboard made that impossible, which is why I need to black list it. 0.6.2 allows me to black list apps, no problem.

Implementation became so complicated by some options, I rewrote hooks for FA. Owing to this, options menu problem is fixed on my phone. I hope that the partial-scroll problem is also fixed. And, I adjusted lists with reference to 0.6.2. But if list's problem is caused by reloading settings without rebooting...
 

Jimmy34742

Senior Member
Jul 1, 2011
879
243
成都
0.6.7: no improvements. I still have the partial-scroll-while-pinned problem, the white and black lists can't be modified, and the new "Reset when collapsed" feature has no effect.

Here's something I discovered: when I install 0.6.2, I can modify the black list. If I then install 0.6.7 without manually clearing data or uninstalling, then 0.6.7 will inherit 0.6.2's black list, and will operate with those apps blacklisted. But 0.6.7 still can't add to or subtract from the black list, and of course I can't use 0.6.2 to edit the white list. If I clear the FA's data and uninstall it using Android Tuner, then reboot, then install 0.6.7, then reboot, it still behaves the same way.

By the way, when testing, I reboot after making any change in the options.
 
  • Like
Reactions: tkgktyk

tkgktyk

Senior Member
Jan 27, 2014
185
390
39
0.6.7: no improvements. I still have the partial-scroll-while-pinned problem, the white and black lists can't be modified, and the new "Reset when collapsed" feature has no effect.

Here's something I discovered: when I install 0.6.2, I can modify the black list. If I then install 0.6.7 without manually clearing data or uninstalling, then 0.6.7 will inherit 0.6.2's black list, and will operate with those apps blacklisted. But 0.6.7 still can't add to or subtract from the black list, and of course I can't use 0.6.2 to edit the white list. If I clear the FA's data and uninstall it using Android Tuner, then reboot, then install 0.6.7, then reboot, it still behaves the same way.

By the way, when testing, I reboot after making any change in the options.

"Reset when collapsed" feature hooks a method "PhoneStatusBarView#onAllPanelsCollapsed". Android 4.1.2 or earlier don't have this method, so not work. Does your ROM have this method? if not so, FA will log "PhoneStatusBarView#onAllPanelsCollapsed is not found." via Xposed framework.

For the partial-scroll-while-pinned problem, does your ROM customize how to render views? Is the scroll region clamped by the edge of the screen?

For lists problem, I found an another difference between 0.6.2 and newer. It is flag when open preferences. In 0.6.2, preferences is opened with MODE_PRIVATE flag, but new versions use MODE_WORLD_READABLE flag to reload settings without reboot. Are there similar troubles at your ROM's community? Especially about get/putStringSet with MODE_WORLD_READABLE flag.
 

Jimmy34742

Senior Member
Jul 1, 2011
879
243
成都
"Reset when collapsed" feature hooks a method "PhoneStatusBarView#onAllPanelsCollapsed". Android 4.1.2 or earlier don't have this method, so not work. Does your ROM have this method? if not so, FA will log "PhoneStatusBarView#onAllPanelsCollapsed is not found." via Xposed framework.

For the partial-scroll-while-pinned problem, does your ROM customize how to render views? Is the scroll region clamped by the edge of the screen?

For lists problem, I found an another difference between 0.6.2 and newer. It is flag when open preferences. In 0.6.2, preferences is opened with MODE_PRIVATE flag, but new versions use MODE_WORLD_READABLE flag to reload settings without reboot. Are there similar troubles at your ROM's community? Especially about get/putStringSet with MODE_WORLD_READABLE flag.
All my system info is in my signature:
Galaxy S 4 I9500 (CM 11.0 ROM (Android 4.4.2), PhilZ Touch CWM 6.0.4.7)
Galaxy Note 2 N7100 (CM 11.0 ROM (Android 4.4.2), PhilZ CWM Touch 6.0.4.5)

I'm not sure what you mean my "clamped by the edge of the screen." My fly position is at the bottom, and the pin position is center left. Everything looks normal, except the scroll amount is limited to the same number of slots that would have scrolled without flying.

The settings problem is the most serious, so maybe it would be best to try to fix that first. I don't have issues with settings in any other app. Perhaps make it a user option to have immediate settings changes or settings that require reboot? The user would know to choose which option depending on whether or not there are problems. Currently, if I check a box in the black (or white) list and then press "show only black (or white)," it shows nothing, and then the checkbox is cleared when I go back to the regular view. I've never seen this problem anywhere before, and have never seen CyanogenMod users talking about it. The problem is the same on both of my phones.
 
  • Like
Reactions: tkgktyk

tkgktyk

Senior Member
Jan 27, 2014
185
390
39
All my system info is in my signature:
Galaxy S 4 I9500 (CM 11.0 ROM (Android 4.4.2), PhilZ Touch CWM 6.0.4.7)
Galaxy Note 2 N7100 (CM 11.0 ROM (Android 4.4.2), PhilZ CWM Touch 6.0.4.5)

I'm not sure what you mean my "clamped by the edge of the screen." My fly position is at the bottom, and the pin position is center left. Everything looks normal, except the scroll amount is limited to the same number of slots that would have scrolled without flying.

The settings problem is the most serious, so maybe it would be best to try to fix that first. I don't have issues with settings in any other app. Perhaps make it a user option to have immediate settings changes or settings that require reboot? The user would know to choose which option depending on whether or not there are problems. Currently, if I check a box in the black (or white) list and then press "show only black (or white)," it shows nothing, and then the checkbox is cleared when I go back to the regular view. I've never seen this problem anywhere before, and have never seen CyanogenMod users talking about it. The problem is the same on both of my phones.

You can see Xposed's logs at "Xposed Installer" -> "Logs". Is there "PhoneStatusBarView#onAllPanelsCollapsed is not found." ?

A question "clamped by the edge of the screen." is an example, sorry. My main question about the partial-scroll-while-pinned problem is previous one. I want to know whether custom ROM has potential of causing this (or these) problem or not.

And for settings... honestly, I don't know what to do if the cause is not CM 11.0.
 

Jimmy34742

Senior Member
Jul 1, 2011
879
243
成都
You can see Xposed's logs at "Xposed Installer" -> "Logs". Is there "PhoneStatusBarView#onAllPanelsCollapsed is not found." ?

A question "clamped by the edge of the screen." is an example, sorry. My main question about the partial-scroll-while-pinned problem is previous one. I want to know whether custom ROM has potential of causing this (or these) problem or not.

And for settings... honestly, I don't know what to do if the cause is not CM 11.0.
I saved and then searched my Xposed log, and there is no reference to PhoneStatusBarView#onAllPanelsCollapsed.

I posted a question about the settings issue at the CM 11.0 discussion thread.
 
  • Like
Reactions: tkgktyk

H.Pfitzinger

New member
Touch events don't get through

I was looking hard for any possiblity to contact you, the developer of the Flying Android module, but no chance, so I would be happy if you would contact me.

I am the developer of the App "Field Recorder" and since a couple of days I receive complains from my customers that my App is not receiving any screen touches when Flying Android version 0.6.6 or higher is active. What can we do to solve the problem?
 

Jimmy34742

Senior Member
Jul 1, 2011
879
243
成都
I was looking hard for any possiblity to contact you, the developer of the Flying Android module, but no chance, so I would be happy if you would contact me.

I am the developer of the App "Field Recorder" and since a couple of days I receive complains from my customers that my App is not receiving any screen touches when Flying Android version 0.6.6 or higher is active. What can we do to solve the problem?
Can your users blacklist your app in FA as a temporary workaround?
 

H.Pfitzinger

New member
You experienced that blacklisting is really complicated above 0.6.2 as you already wrote:

Here's something I discovered: when I install 0.6.2, I can modify the black list. If I then install 0.6.7 without manually clearing data or uninstalling, then 0.6.7 will inherit 0.6.2's black list, and will operate with those apps blacklisted. But 0.6.7 still can't add to or subtract from the black list, and of course I can't use 0.6.2 to edit the white list. If I clear the FA's data and uninstall it using Android Tuner, then reboot, then install 0.6.7, then reboot, it still behaves the same way.

By the way, when testing, I reboot after making any change in the options.

But at the moment, some of the customers disabled "Flying Android" and are desperately waiting for an update of Field Recorder. So, I need to contact the developer concerning Android-internal stuff like onTouchEvent() and dispatchTouchEvent() ...

There must be tons of games which also don't work with Flying Android versions 0.6.6 and above.
 
Last edited:

Jimmy34742

Senior Member
Jul 1, 2011
879
243
成都
You experienced that blacklisting is really complicated above 0.6.2 as you already wrote
Yeah, but I thought blacklisting might be working for some people because the dev says it works for him. In that case, it would be good to know which ROM's allow blacklisting, and then that way the dev might have more information to fix the settings problem.
 

H.Pfitzinger

New member
it would be good to know which ROM's allow blacklisting, and then that way the dev might have more information to fix the settings problem.

I have no chance to get the information which ROM's on which devices do or don't allow blacklisting because these problems appear on customers' devices to which I have no access.

Actually, this is a more general problem, as there are obviously many apps which work, so I am willing to adapt my touch analysis according to the instructions of the developer.

Obviously versions prior to 0.6.6 have been working perfectly. So, the developer should know what the internal change was, that avoids apps to get touch events any longer.
 
Last edited:

Top Liked Posts

  • There are no posts matching your filters.
  • 22
    **THIS MOD IS NO LONGER BEING MAINTAINED**
    Use Niwatori - One-Handed Mode.


    Flying Android - an Xposed module to move the window of Android.
    ic_launcher.png
    I support the one-handed operation!
    Flying Android (FA) is a module of Xposed. FA introduces a movable mode called "Flying" to any screens. In the Flying mode, you can move the window of apps because drag events are intercepted and the whole window containing the Action Bar is dragged. On the other hand, click events are processed normally.

    Features
    • Move the window of activities, dialogs and expanded status bar.
    • Pin the window after moving.

    User Interface
    • Activities start as the normal mode (the same as before installing FA).
    • Launch "FA Toggle" to toggle mode, and drag to move.
    • Tap the outside of apps to back to the normal mode after moving.
    • Tap the pin to fix position of the window.
    FA Toggle just sends a broadcast "jp.tkgktyk.flyingandroid.ACTION_TOGGLE". Because it is an Activity (but no display), you'll feel a time lag until toggle is done. If you want to avoid this time lag, use a background service (other app) to send ACTION_TOGGLE.

    Settings
    Flying

    Speed
    Choice the speed in the Flying mode.

    Initial position...
    Move to this position when you launch FA Toggle. Drag to change the position and press back key to save.

    Notify flying
    If checked, draw boundary of application while flying.

    Flying dialog
    If checked, you can fly dialogs. Note that IME is also dialog.
    Pinning

    Use pin
    If checked, other settings for pinning are enabled.

    Always show pin
    Pin is always shown on apps regardless of whether flying.

    Pin position...
    Show a pin button on this position while flying. You can edit this position by dragging.

    Auto pin
    Window is pinned automatically. Select a behavior from disabled, when takeoff or after moving.

    White list...
    Select applications that apply pinning. If not check anything, pin is shown in all apps.

    Flying status bar
    If checked, you can fly (expanded) status bar.

    Reset when collapsed
    This is an option for Flying status bar. If checked, reset the state of Flying when status bar is collapsed. This requires Android 4.2 or later.
    Troubleshooting

    Force set black background...
    Check apps for clear background if you encounterd a ghost on the outside of app after moving. I saw ghosts on Chrom, Firefox and Feedly.

    Black list...
    Select applications that don't apply Flying Android for avoiding trouble.

    TODO
    • Transparent background -> Pending
    • Problem (reported): scrolling is partially while pinned.
    • Problem (reported): black / white lists don't work correctly.

    Download
    http://repo.xposed.info/module/jp.tkgktyk.flyingandroid

    Full Changelog
    https://sites.google.com/site/tkgktyk/android/flying-android

    Source code
    https://github.com/tkgktyk/FlyingAndroid

    Special thanks
    • Xposed framework by rovo89
    Reference mods (A-Z):
    • GravityBox by C3C076
    • SwipeBack by PeterCxy
    • XHaloFloatingWindow by zst123
    And there is a full text on https://sites.google.com/site/tkgktyk/android/flying-android.

    Demo
    Demonstration movie for version 0.5.x (on Youtube).

    Screenshots
    screenshot1.png

    -> after moving
    screenshot2.png

    Flying Status Bar
    screenshot3.png

    Flying Dialog
    screenshot4.png
    1
    Release / Status

    version 1.1.0 (stable)
    Changes:
    * Added: notification toggle (thanks to Joe R.)
    * Added: animation when takeoff or go home
    * Added: Chinese text (zh-rCH, zh-rHK and zh-rTW; thanks to CodeingBoy)
    * Added: Japanese text
    * Modified: use two-pane layout for settings on the large display devices.
    * Changed: the speed setting from list box to edit text.
    * Modified: behavior of pin which is always displayed.
    1
    I just flashed a completely different ROM to upgrade my S4 to 4.4.2 (CM 11.0), and I still have the same white and black list problem and the same partial-scroll-while-pinned problem.

    EDIT: I had to revert to 0.6.2 because the app kept flying my keyboard app, Kii. I always type by swiping, and the flying keyboard made that impossible, which is why I need to black list it. 0.6.2 allows me to black list apps, no problem.
    1
    0.6.7: no improvements. I still have the partial-scroll-while-pinned problem, the white and black lists can't be modified, and the new "Reset when collapsed" feature has no effect.

    Here's something I discovered: when I install 0.6.2, I can modify the black list. If I then install 0.6.7 without manually clearing data or uninstalling, then 0.6.7 will inherit 0.6.2's black list, and will operate with those apps blacklisted. But 0.6.7 still can't add to or subtract from the black list, and of course I can't use 0.6.2 to edit the white list. If I clear the FA's data and uninstall it using Android Tuner, then reboot, then install 0.6.7, then reboot, it still behaves the same way.

    By the way, when testing, I reboot after making any change in the options.
    1
    "Reset when collapsed" feature hooks a method "PhoneStatusBarView#onAllPanelsCollapsed". Android 4.1.2 or earlier don't have this method, so not work. Does your ROM have this method? if not so, FA will log "PhoneStatusBarView#onAllPanelsCollapsed is not found." via Xposed framework.

    For the partial-scroll-while-pinned problem, does your ROM customize how to render views? Is the scroll region clamped by the edge of the screen?

    For lists problem, I found an another difference between 0.6.2 and newer. It is flag when open preferences. In 0.6.2, preferences is opened with MODE_PRIVATE flag, but new versions use MODE_WORLD_READABLE flag to reload settings without reboot. Are there similar troubles at your ROM's community? Especially about get/putStringSet with MODE_WORLD_READABLE flag.
    All my system info is in my signature:
    Galaxy S 4 I9500 (CM 11.0 ROM (Android 4.4.2), PhilZ Touch CWM 6.0.4.7)
    Galaxy Note 2 N7100 (CM 11.0 ROM (Android 4.4.2), PhilZ CWM Touch 6.0.4.5)

    I'm not sure what you mean my "clamped by the edge of the screen." My fly position is at the bottom, and the pin position is center left. Everything looks normal, except the scroll amount is limited to the same number of slots that would have scrolled without flying.

    The settings problem is the most serious, so maybe it would be best to try to fix that first. I don't have issues with settings in any other app. Perhaps make it a user option to have immediate settings changes or settings that require reboot? The user would know to choose which option depending on whether or not there are problems. Currently, if I check a box in the black (or white) list and then press "show only black (or white)," it shows nothing, and then the checkbox is cleared when I go back to the regular view. I've never seen this problem anywhere before, and have never seen CyanogenMod users talking about it. The problem is the same on both of my phones.