*6-17-23 Updated to 2.2*
--removed dependency on ScreenShotEasy
--added small binary file to convert frame buffer contents to png image
If you are updating, you must uninstall the previous version and read below as the app function has changed starting with 2.0.
The Quick Tiles app is an implementation for the NST/G of a now ubiquitous feature of modern Android systems. In this version for the NST/G, the user may select and arrange up to eight "tiles" which are shortcuts to features such as WiFi, screen orientation, NoRefresh, FastMode, and others. You may also edit the selection and arrangement of the tiles via the panel itself (the "pencil"--see screenshot below). I've tried to keep the selection of options focused on the typical areas of display and connectivity, although I have included some mode functions as well, such as display refresh modes and USB host. I welcome suggestions for additional options, but would discourage trying to make a "launcher" application out of what should be shortcuts to basic functions.
General Requirements
1. Root. A number of tiles require root to access shell commands or something else generally off limits to typical user access. Root permission is required only once, however, since it's all one app. The quickest way to get this over with is a long-press on the WiFi tile. This tries to access the WiFi Settings section of the Settings app and so needs root access. Once you've approved that, anything else will be OK.
2. This is a Tasker-generated app. If you already have one of my other Tasker-generated apps, you don't need the two Google maps library files included in the zip and can delete them. If you do need them, copy the two files into the locations shown below:
/system/etc/permissions/com.google.android.maps.xml
/system/framework/com.google.android.maps.jar
Set permissions for both files to rw-r--r-- and reboot. Without these files resident, the app will not install.
3. Copy the binary file "fb2png" to /data/local, permissions rwx rx rx
4. Copy the folder "QTiles" (and its contents) from the zip to the root of your SD card.
5. Because it is used (by Tasker) as a plugin, RotationLocker is a dependency of the app. It must be installed whether you use that feature or not.
6. Copy the QuickTiles apk file to your SD card and install via a file manager or install via ADB.
Setup
This app includes all the functionality of many other small apps I have put together. As such, it needs many of the configuration measures and/or plugins for those apps (but not the actual apps themselves such as USB Audio, Screenshot, ES Remote Manager, RN Menu, WiFi Menu, etc.--any of these other apps may be uninstalled if you are using Quick Tiles). As supplied, the app is configured to show only the WiFi tile (option wifi1). This configuration information is stored in the file QTiles/qtiles.txt:
Code:
wifi1,blank,blank,blank
You can edit this file on the NST/G with a text editor or on your PC.
New in version 2.x
To enable Quick Tiles, tap on the icon after installation. You will eventually see a message that the app is enabled. This means there is now a transparent overlay which covers the status bar from the right edge of the "menu" button to approximately the clock. The stock "hot spot" for the WiFi/Glowlight dialog extends fully over the clock. I stopped my overlay before the clock to allow access to bookmarking in the stock reader. So if you've gotten used to tapping in the upper right corner for WiFi/Glowlight, you'll need to relearn the motion. What you gain (besides Quick Tiles) is the possibility of assigning some other function to "clock" using NTMM, although it won't work in the Reader. Meanwhile, Quick Tiles will work in the Reader as well as everywhere else, whether the status bar is visible or not. Also, enabling Quick Tiles means that if you reboot, the transparent overly will reappear (shortly) without any additional action on your part (i.e., you never need to tap on the app icon again). To open the panel, just tap on the status bar between the "menu" button and the clock. You can close the panel manually by swiping upward (a little clumsy) or tapping on the small arrow at bottom center.
There are potential hazards associated with blocking areas of the screen, even apparently "blank" areas of the status bar. During testing I found at least one app that used the "hot spot" area when in full-screen mode: QuickPic. Editing and other tools appear in that area and are blocked by the transparent overlay of QuickTiles. My solution was to add an "escape" of sorts. If you long-press on the "hot spot" you will shortly see a toast stating that the app is disabled for 1 minute. This allows access to potentially blocked spots some apps may use.
----------------------------------------------------------------------------------------------------------------------------
When the Quick Tiles panel is open, a long-press on the pencil icon in the lower right will attempt to open the configuration file for editing. If you choose whatever text editor you have as the default for a .txt file, the next time you access this function the file will open immediately (ES Note Editor, a part of ES File Explorer, is a great simple text editor). Changes in the configuration are immediate, i.e., the next time you open the panel, you will see the new arrangement. YOU MUST SELECT A MULTIPLE OF FOUR TILES, INCLUDING BLANKS (i.e., either 4 or 8 tiles).
All the tile options are listed below, along with links for configuration information and download links for apps used as plugins. These are also the names to be used in the configuration qtile.txt file as well as the names of icon files in Qtiles/icons (if you hate my icons, you may design your own, as long as you adhere to the same size of transparent png). By their nature, some tiles require the panel to close before execution. Actions which display alerts or dialogs are examples. Others (such as WiFi) can operate either with auto-close of the panel or without. It's your choice. I find myself often wanting something else after starting WiFi, so I have that tile set for manual close. Where this is an option there are two identical icons such as wifi1 and wifi2. The option with the "1" will auto-close the panel in every case. If you choose the option with the "2", you can close the panel yourself with an upward swipe or the little arrow.
Note: where an app is required, you only need to install it if you are going to use that function. This does not include RotationLocker which is a dependency.
blank
Place-holder. It should be used to make a full count of four (one row) or eight (two rows), if you are using fewer than a full row. It could also be used for spacing.
clearscreen
Uses the Nook Clear Screen app as a plugin (download).
fastmode1/2
Toggle shortcut to FastMode2 (the original FastMode has a different package name and will not work). It behaves exactly the same way as tapping on the regular FastMode icon. You must have FastMode2.apk installed (download) as well as a kernel that supports this display mode.
ftp
Shortcut to the Remote Manager function of ES File Explorer. WiFi must be on for this to work. Termination of the Remote Manager is handled through the notification window. You must have some version of ES File Explorer installed (download).
glowlight
Duplicates the behavior of QuickNav button #5 (default) for the NSTG, calling up the GlowLight control panel.
glowtoggle
Toggles the light off/on with a tap. A long-press calls up the GlowLight control panel.
Note: this option assumes you have not reassigned a long-press of the "n" button to anything but the Glowlight. Otherwise, a tap on the icon will call up whatever alternative you have selected.
input
Calls up the Android 2.1 keyboard selector. Keyboard apps should be placed in /system/app and permissions set to rw-r-r.
norefresh1/2
Toggle shortcut to NoRefresh (the package names for the two versions of the app are apparently the same so whichever you have should work). It behaves exactly the same way as tapping on the regular NoRefresh icon. Generally you don't need this, but those of us who use NoRefresh know that it sometimes just drops out! You must have either of the two NoRefresh apps installed (download) as well as a kernel that supports this display mode. Note: this assumes you have all the automatic/gesture options disabled. The contrast adjustment is OK, but the rest causes all kinds of trouble.
reboot
Calls up a dialog similar to the stock shut down dialog. If reboot is confirmed, executes a complete reboot from the "Read Forever" screen.
rotation
Toggle (default portrait) that uses the Rotation Locker app to change the screen orientation. Landscape mode is locked in by using a notification/background service. It is best not to exit landscape via the notification since that will probably confuse the toggle variable. Return to portrait should be done via the Quick Tile. Requires RotationLocker app (download).
screenshot
Uses /data/local/fb2png to take a screenshot and then displays a brief, smaller version of the screenshot as well as a notification. Images are saved to /sdcard/Pictures/Screenshots. Create folders if they don't exist already.
usbaudio
Toggle which starts/stops USB audio service and prompts for the appropriate connections before displaying on-sceen media volume controls. Requires a kernel supporting USB host, additional patches for audio, as well as phone.apk in system/app for media volume control.
usbhost
Toggle which starts/stops USB host service and prompts for the appropriate connections. Requires a kernel supporting USB host.
wifi1/2
Toggle which bypasses the B&N WiFi Quick Settings dialog. If WiFi is off, it turns it on. If it's on, it turns it off. A long-press on this tile turns on the WiFi radio and opens the WiFi Settings menu for occasions when you need to select and log on to an unfamiliar network.
Note that something like wifi1/2 in the list above actually represents two different options, wifi1 and wifi2
Heads up, the RotationLocker link on this is dead, 403 forbidden
alexhorner said:
Heads up, the RotationLocker link on this is dead, 403 forbidden
Click to expand...
Click to collapse
Try again. I just downloaded from the link.
nmyshkin said:
Try again. I just downloaded from the link.
Click to expand...
Click to collapse
No luck here. It downloads an apk file which contains the contents of the 404 page.
Tried in another browser logged out, logged in, etc
alexhorner said:
No luck here. It downloads an apk file which contains the contents of the 404 page.
Tried in another browser logged out, logged in, etc
Click to expand...
Click to collapse
Ah. I didn't look at the file. Try this https://forum.xda-developers.com/attachments/rotationlocker_mod-apk.5088219/
nmyshkin said:
Ah. I didn't look at the file. Try this https://forum.xda-developers.com/attachments/rotationlocker_mod-apk.5088219/
Click to expand...
Click to collapse
That one worked, thanks!
Got QuickTiles installed now. Very happy with it, makes some functions much easier to handle.
Is it possible to move the files from the SD to the system? I don't keep an SD card with my nook right now as I am constantly rewriting it for testing.
alexhorner said:
That one worked, thanks!
Got QuickTiles installed now. Very happy with it, makes some functions much easier to handle.
Is it possible to move the files from the SD to the system? I don't keep an SD card with my nook right now as I am constantly rewriting it for testing.
Click to expand...
Click to collapse
Mmm....it's probably possible. Fortunately I still have all the bits on my KitKat device (Tasker AppFactory will not run on Eclair, not even version 1) from just updating the app. As it happens this is something I'm looking into for my weather widget which I've been doing some update work on when not putting out fires in the Forest of Arden (BTW, the other UK "helpee" managed nicely on a second try with your directions, so thanks from both of us). I believe moving its folder to /media will resolve an issue present since version 1, but I've gotten bogged down in other issues and haven't tried it yet. I'm also working on a mod of Mantano Reader, so the little grey cells get a bit jumbled at times.
Let me see if I can quickly change all the references from "sdcard" to "media" and recompile. It may take a day and I probably won't test it. I'll leave that to you. Meanwhile, you clearly need a couple of sdcards.
nmyshkin said:
Mmm....it's probably possible. Fortunately I still have all the bits on my KitKat device (Tasker AppFactory will not run on Eclair, not even version 1) from just updating the app. As it happens this is something I'm looking into for my weather widget which I've been doing some update work on when not putting out fires in the Forest of Arden (BTW, the other UK "helpee" managed nicely on a second try with your directions, so thanks from both of us). I believe moving its folder to /media will resolve an issue present since version 1, but I've gotten bogged down in other issues and haven't tried it yet. I'm also working on a mod of Mantano Reader, so the little grey cells get a bit jumbled at times.
Let me see if I can quickly change all the references from "sdcard" to "media" and recompile. It may take a day and I probably won't test it. I'll leave that to you. Meanwhile, you clearly need a couple of sdcards.
Click to expand...
Click to collapse
Managed to find another SD card but I would still like it to run without certainly. No rush on it!
alexhorner said:
Managed to find another SD card but I would still like it to run without certainly. No rush on it!
Click to expand...
Click to collapse
Give the attached apk a try. Best to uninstall the old one first, move the Qtiles folder and contents to /media and then install the new app. Tap on the icon and see what happens. As I said, I did not test this, but I think I caught all the directory changes. Unless there is an access issue, it should function.
nmyshkin said:
Give the attached apk a try. Best to uninstall the old one first, move the Qtiles folder and contents to /media and then install the new app. Tap on the icon and see what happens. As I said, I did not test this, but I think I caught all the directory changes. Unless there is an access issue, it should function.
Click to expand...
Click to collapse
No luck after a few attempts inclusing a reboot I'm afraid. Attached is the logcat which complains of some failed link creations:
Spoiler: QuickTiles 2.0 Internal Logcat
I/PowerManagerService( 1053): setPowerState: mPowerState=0x3 newState=0x3 noChangeLights=false reason=1
I/PowerManagerService( 1053): setPowerState: mPowerState=0x3 newState=0x3 noChangeLights=false reason=1
I/PowerManagerService( 1053): setPowerState: mPowerState=0x3 newState=0x3 noChangeLights=false reason=1
I/PowerManagerService( 1053): setPowerState: mPowerState=0x3 newState=0x3 noChangeLights=false reason=1
I/ActivityManager( 1053): Starting activity: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x14000000 cmp=com.home.nmyshkin.quicktiles/net.dinglisch.android.tasker.Kid }
I/ActivityManager( 1053): Start proc com.home.nmyshkin.quicktiles for activity com.home.nmyshkin.quicktiles/net.dinglisch.android.tasker.Kid: pid=1645 uid=10029 gids={}
E/TC ( 1295): KPICollector: 1634499255283 platform process_start {"processName":"com.home.nmyshkin.quicktiles"}
I/dalvikvm( 1645): Debugger thread not active, ignoring DDM send (t=0x41504e4d l=38)
I/dalvikvm( 1645): Debugger thread not active, ignoring DDM send (t=0x41504e4d l=60)
E/TC ( 1295): KPICollector: 1634499255317 ActivityManager background {"component":"com.gacode.relaunchx/.AllApplications"}
E/TC ( 1295): KPICollector: 1634499255319 ActivityManager foreground {"component":"com.home.nmyshkin.quicktiles/net.dinglisch.android.tasker.Kid"}
D/ ( 1645): unable to unlink '/data/data/com.home.nmyshkin.quicktiles/shared_prefs/net.dinglisch.android.tasker.preffy.xml.bak': No such file or directory (errno=2)
D/dalvikvm( 1645): GC freed 7905 objects / 350624 bytes in 39ms
D/dalvikvm( 1645): GC freed 9893 objects / 366576 bytes in 39ms
D/dalvikvm( 1645): GC freed 10583 objects / 379016 bytes in 40ms
D/dalvikvm( 1645): GC freed 8001 objects / 204056 bytes in 55ms
I/global ( 1645): Default buffer size used in BufferedReader constructor. It would be better to be explicit if an 8k-char buffer is required.
D/dalvikvm( 1645): GC freed 11001 objects / 538824 bytes in 45ms
D/LocationManager( 1645): Constructor: service = [email protected]
D/dalvikvm( 1645): GC freed 1040 objects / 176368 bytes in 50ms
I/global ( 1645): Default buffer size used in BufferedReader constructor. It would be better to be explicit if an 8k-char buffer is required.
D/dalvikvm( 1645): GC freed 1018 objects / 252120 bytes in 40ms
D/ ( 1645): unable to unlink '/data/data/com.home.nmyshkin.quicktiles/shared_prefs/net.dinglisch.android.tasker.statey.xml.bak': No such file or directory (errno=2)
D/dalvikvm( 1645): GC freed 3917 objects / 222192 bytes in 43ms
D/dalvikvm( 1645): GC freed 6271 objects / 196128 bytes in 51ms
D/dalvikvm( 1645): GC freed 13055 objects / 517832 bytes in 56ms
D/dalvikvm( 1645): GC freed 44936 objects / 1603840 bytes in 64ms
W/InputManagerService( 1053): Window already focused, ignoring focus gain of: [email protected]
D/dalvikvm( 1645): GC freed 5770 objects / 288336 bytes in 49ms
D/ ( 1645): unable to unlink '/data/data/com.home.nmyshkin.quicktiles/shared_prefs/net.dinglisch.android.tasker.varry.xml.bak': No such file or directory (errno=2)
D/dalvikvm( 1645): GC freed 1148 objects / 83472 bytes in 40ms
D/ ( 1645): unable to unlink '/data/data/com.home.nmyshkin.quicktiles/shared_prefs/net.dinglisch.android.tasker.fixy.xml.bak': No such file or directory (errno=2)
V/Activity( 1362): performResume()
D/EPD#ActivityResume( 1053): resetRegion 4
D/NATIVE-EPD( 1053): epd_reset_region: 0x10
D/EPD#ActivityResume( 1053): resetRegion 5
D/NATIVE-EPD( 1053): epd_reset_region: 0x20
D/EPD#ActivityResume( 1053): resetRegion 6
D/NATIVE-EPD( 1053): epd_reset_region: 0x40
D/EPD#ActivityResume( 1053): resetRegion 7
D/NATIVE-EPD( 1053): epd_reset_region: 0x80
D/EPD#ActivityResume( 1053): Disable EPD for 350ms!!!!!!!!
E/TC ( 1295): KPICollector: 1634499258078 ActivityManager background {"component":"com.home.nmyshkin.quicktiles/net.dinglisch.android.tasker.Kid"}
E/TC ( 1295): KPICollector: 1634499258111 ActivityManager foreground {"component":"com.gacode.relaunchx/.AllApplications"}
D/dalvikvm( 1645): GC freed 2790 objects / 148896 bytes in 111ms
D/dalvikvm( 1362): GC freed 15222 objects / 941720 bytes in 132ms
D/ReLaunchApp( 1362): --- onResume(AllApps)
D/dalvikvm( 1645): GC freed 1637 objects / 99640 bytes in 95ms
E/QuickTiles( 1645): 20.34.18#E: error: Read Line: no SD present.
D/SurfaceFlinger( 1053): Frame buffer posted; elapsed time = 31 msecs
I/PowerManagerService( 1053): setPowerState: mPowerState=0x3 newState=0x3 noChangeLights=false reason=1
D/SurfaceFlinger( 1053): Frame buffer posted; elapsed time = 11 msecs
D/dalvikvm( 1386): GC freed 8203 objects / 298784 bytes in 44ms
D/SurfaceFlinger( 1053): Frame buffer posted; elapsed time = 14 msecs
W/ResourceType( 1053): Resources don't contain package for resource number 0x7f040000
W/ResourceType( 1053): Resources don't contain package for resource number 0x7f020000
W/ResourceType( 1053): Resources don't contain package for resource number 0x7f020000
W/ResourceType( 1053): Resources don't contain package for resource number 0x7f040000
W/ResourceType( 1053): Resources don't contain package for resource number 0x7f020000
W/ResourceType( 1053): Resources don't contain package for resource number 0x7f020000
W/ResourceType( 1053): Resources don't contain package for resource number 0x7f060001
D/Searchables( 1053): Checking component ComponentInfo{com.google.android.providers.enhancedgooglesearch/com.google.android.providers.enhancedgooglesearch.Launcher}
D/SurfaceFlinger( 1053): Frame buffer posted; elapsed time = 11 msecs
D/dalvikvm( 1295): GC freed 1694 objects / 89152 bytes in 35ms
alexhorner said:
No luck after a few attempts inclusing a reboot I'm afraid. Attached is the logcat which complains of some failed link creations.
Click to expand...
Click to collapse
Sorry. I'll have to do it the hard way. I need to find out the correct syntax anyway for my other WIP.
nmyshkin said:
Sorry. I'll have to do it the hard way. I need to find out the correct syntax anyway for my other WIP.
Click to expand...
Click to collapse
No worries! Let me know if there is anything I can do to help
alexhorner said:
No worries! Let me know if there is anything I can do to help
Click to expand...
Click to collapse
Um....did you remember to copy the Qtiles folder (and contents) into /media from the sdcard (or the original zip)?
nmyshkin said:
Um....did you remember to copy the Qtiles folder (and contents) into /media from the sdcard (or the original zip)?
Click to expand...
Click to collapse
I did, and I also checked it's presence and contents via shell and ensured the permissions were loose
alexhorner said:
I did, and I also checked it's presence and contents via shell and ensured the permissions were loose
Click to expand...
Click to collapse
Huh. The apps works on my NSTG. And you did uninstall before the new install? Let me download what I posted and try that...
nmyshkin said:
Huh. The apps works on my NSTG. And you did uninstall before the new install? Let me download what I posted and try that...
Click to expand...
Click to collapse
I did indeed.
I uninstalled, moved the directory from SD to media using windows, checked with ADB shell that the files existed, and that they had loose permissions.
I then installed and attempted starting but no luck.
I also did several combinations of install, uninstall and reboots to ensure it wasn't a fluke
alexhorner said:
I did indeed.
I uninstalled, moved the directory from SD to media using windows, checked with ADB shell that the files existed, and that they had loose permissions.
I then installed and attempted starting but no luck.
I also did several combinations of install, uninstall and reboots to ensure it wasn't a fluke
Click to expand...
Click to collapse
I just downloaded what I posted and tried that. It also works.
MD5: 34c265a260da53ab9ac83d5ba154905a
CHMOD on the QTiles folder and contents = 775
Your logcat seems to be saying that the app never successfully installed. The files it is looking for in /data/data/com.home.nmyshkin.quicktiles are the xml configuration files normally installed by the apk package and one where variable values are stored as they change with operation and configuration. Something is definitely wrong. Did you ask RelaunchX to install this for you (which should invoke the stock package installer) or did you install via ADB, or.....?
nmyshkin said:
I just downloaded what I posted and tried that. It also works.
MD5: 34c265a260da53ab9ac83d5ba154905a
CHMOD on the QTiles folder and contents = 775
Your logcat seems to be saying that the app never successfully installed. The files it is looking for in /data/data/com.home.nmyshkin.quicktiles are the xml configuration files normally installed by the apk package and one where variable values are stored as they change with operation and configuration. Something is definitely wrong. Did you ask RelaunchX to install this for you (which should invoke the stock package installer) or did you install via ADB, or.....?
Click to expand...
Click to collapse
I have now fully uninstalled QuickTiles, recopied it over to my SD Card, recreated my QTiles directory in /media and installed using ReLaunchX - my usual install method is ADB, never have I installed anything using ReLaunchX before now.
Its working now. I guess yet another one of those unexplained issues... Quite annoying
Related
I saw from several other threads that there's a "Power Control" widget which toggles wifi/gps/bluetooth/etc on your desktop and is one of the feature in Donut 1.6 ROM, wonder if the widget can be downloaded separately instead of upgrading to a new ROM?
Why would you not want to upgrade to Donut?
The only problem I can think of is compatibility with some apps but I've only experienced one or two problematic apps and they are ones I use rarely. Also it's up to the developers to update their apps now and not users to wait for them.
For now, I'd prefer official ROM for my Magic and since I have the PVT32A version, for the moment, Donut upgrade is out of question for me as it's only PVT32B compatible.
I was thinking that the Power Control Bar could be downloaded as a standalone widget, plus I also read in a thread where someone also said the same too but I just couldn't find any download link for it, so my question is, is there such thing as a "Power Control" widget?
try this
http://www.4shared.com/file/138048564/1936d28c/Settings.html
adb remount
adb install settings.apk
might work
when i adb logcat
i selected widget this is what i get
W/InputManagerService( 156): Window already focused, ignoring focus gain of: co
[email protected]
D/dalvikvm( 489): GC(2) freed 1711 objects / 119648 bytes in 119ms
I/ActivityManager( 156): Displayed activity com.android.settings/.AppWidgetPick
Activity: 3272 ms (total 3272 ms)
D/dalvikvm( 489): GC(2) freed 879 objects / 45832 bytes in 95ms
D/Launcher( 305): dumping extras content=Bundle[{appWidgetId=15}]
W/InputManagerService( 156): Window already focused, ignoring focus gain of: co
[email protected]
Since I saw some people wants tablet UI on mirroring or lapdock,
I made a file for Atrix's CM9 based on this thread.
http://forum.xda-developers.com/showthread.php?t=1467051
I didn't post a screenshot cause you can see it at link.
Every UI will change to that of tablet, and every app will act as tablet.
So here's the steps you have to do.
http://api2.ge.tt/0/81rFJED/0/blob/download
1. Download services.jar and overwrite it to /system/framework.
(Of course, need 644 permission.
If you are not sure, see other file's permission in folder.)
(This file is based on alpha 7)
2. Open /system/build.prop
3. Find the line 'ro.build.characteristics=default'
and change the 'default' to 'tablet'
4. Set the screen density to 120 by changing
'ro.sf.lcd_density=240' to 'ro.sf.lcd_density=120'
5. Save and reboot.
6. You will get tablet UI
So, If you want to get back,
just change your density to 240 and it will revert to phone UI.
We need reboot between UI change now,
but maybe devs can do some mod after CM9 have all feature
Awesome but, it doesn't look very good on the lap dock - there is something wrong with the resolution. Im sure it will be fixed.
Additionally if the phone could switch the UI from Phone to Tablet when HDMI is connected it would be an awesome way to ditch the awful Webtop.
+1 Thanks to you man!!
was trying to do this by editing the services.jar, this is WONDERFUL.
if possible can you tell me how to do a PM? (where changing the file classes), baksmali, simali need not only change which line ...
soluttion calls
folks, you should now be aware that the "app called" force close, I've tried the app (phone) several roms without success .. == force close when calling ==
ps: but the calls continue in the background!
some options:
1 - ShakeCall (has other apps)
2 - accessibility options = end call button poweer
This is cool!
I tried it, its like having a small tablet....
Just a pitty about the phone UI, its not actually usuable like that!
Whatching for development
I see great potential in this.
If we could autoscript something, where if the phone recognises that it's been connected via HDMI (for mirroring), then it automatically changes into tablet UI. That'll be so freakin awesome! And it'll be a good webtop replacement for CM9!
Notorious544d said:
I see great potential in this.
If we could autoscript something, where if the phone recognises that it's been connected via HDMI (for mirroring), then it automatically changes into tablet UI. That'll be so freakin awesome! And it'll be a good webtop replacement for CM9!
Click to expand...
Click to collapse
Thats what I've been saying...
Notorious544d said:
I see great potential in this.
If we could autoscript something, where if the phone recognises that it's been connected via HDMI (for mirroring), then it automatically changes into tablet UI. That'll be so freakin awesome! And it'll be a good webtop replacement for CM9!
Click to expand...
Click to collapse
+1
I thought somebody was already working on this.
Sent from my MB860 using xda premium
try
is usable but ...
set large fonts ...
do not set the lcd_density so small, it can be adjusted, try 140 .... (I think)
I find it very usable ... hopefully someone with enough knowledge to resolve calls ...
D/AudioMgrRIL( 1321): setting volume, volume = 6
I/AudioService( 1469): AudioFocus requestAudioFocus() from AudioFocus_For_Phone_Ring_And_Calls
D/lights ( 1469): RGB: "attention", color=0x00000000, flash=2, onMs/offMs=0/0 => blink=0, RGB=0 0 0
D/CallNotifier( 2693): showIncomingCall()... phone state = OFFHOOK
D/dalvikvm( 2693): GC_CONCURRENT freed 358K, 27% free 6530K/8839K, paused 2ms+2ms
D/lights ( 1469): LCD: SENSOR, 88 * 1.00 => 88
D/lights ( 1469): LCD: SENSOR, 82 * 1.00 => 82
D/lights ( 1469): LCD: SENSOR, 75 * 1.00 => 75
D/lights ( 1469): LCD: SENSOR, 69 * 1.00 => 69
D/dalvikvm( 2693): GC_CONCURRENT freed 422K, 27% free 6653K/9031K, paused 1ms+2ms
D/lights ( 1469): LCD: SENSOR, 63 * 1.00 => 63
D/lights ( 1469): LCD: SENSOR, 56 * 1.00 => 56
I/ ( 1400): odm_disp_esd_thread is running(200) state=1
D/lights ( 1469): RGB: "attention", color=0x00ffffff, flash=2, onMs/offMs=7/1000 => blink=1, RGB=255 255
255
D/lights ( 1469): LCD: SENSOR, 50 * 1.00 => 50
D/lights ( 1469): RGB: "attention", color=0x00000000, flash=2, onMs/offMs=0/0 => blink=0, RGB=0 0 0
D/lights ( 1469): LCD: SENSOR, 44 * 1.00 => 44
D/lights ( 1469): LCD: SENSOR, 37 * 1.00 => 37
D/lights ( 1469): RGB: "attention", color=0x00000000, flash=0, onMs/offMs=0/0 => blink=0, RGB=0 0 0
I/CustomSpnReader( 2693): operatorNumberic = 72402
I/CustomSpnReader( 2693): oriSpnName = TIM
I/CustomSpnReader( 2693): Current language is : pt
E/CustomSpnReader( 2693): Config File Path : /system/etc/spn-conf.xml
D/lights ( 1469): LCD: SENSOR, 31 * 1.00 => 31
D/lights ( 1469): LCD: SENSOR, 25 * 1.00 => 25
I/CustomSpnReader( 2693): expression : /spnOverrides/spnOverride[@numeric='72402']
W/ActivityThread( 2693): ClassLoader.getResources: The class loader returned by Thread.getContextClassLoa
der() may fail for processes that host multiple applications. You should explicitly specify a context cla
ss loader. For example: Thread.setContextClassLoader(getClass().getClassLoader());
D/lights ( 1469): LCD: SENSOR, 18 * 1.00 => 18
E/CustomSpnReader( 2693): Not Found : 72402 in spn-conf.xml
D/lights ( 1469): LCD: SENSOR, 12 * 1.00 => 12
D/ComprehensiveCountryDetector( 1469): onServiceStateChanged
D/lights ( 1469): LCD: SENSOR, 6 * 1.00 => 6
D/lights ( 1469): LCD: SENSOR, 0 * 1.00 => 0
I/power ( 1469): *** set_screen_state 0
D/lights ( 1469): buttons: USER, 0
D/SurfaceFlinger( 1318): About to give-up screen, flinger = 0xf918
D/ ( 1400): NVRM_DAEMON(1137): pm_notifier_thread: calling power_displays(false)
I/ ( 1400): DispMgr recv'd NvDispMgrDisplayAttr_Suspend
I/ ( 1400): called NvDispMgrAttrSetTranslate() from attr_common err=0
I/ ( 1400): DispMgr recv'd NvDispMgrDisplayAttr_Suspend
I/ ( 1400): called NvDispMgrAttrSetTranslate() from attr_common err=0
D/ ( 1400): NvDdkDispBacklightTimeout() thread running
I/ ( 1400): enter motDsiSetMode
I/ ( 1400): exit motDsiSetMode
I/ ( 1400):
I/ ( 1400): enter motDsiSetPowerLevel
I/ ( 1400): enter motDsiSuspend
I/nvrm_daemon( 1394): NVRM_DAEMON(1137): pm_notifier_thread: calling power_displays(false)
E/AudioHardwareMot( 1321): Error:Unsupported key = tty_mode=tty_off
D/dalvikvm( 2693): GC_CONCURRENT freed 425K, 27% free 6718K/9095K, paused 3ms+2ms
I/ ( 1400): exit motDsiSuspend
I/ ( 1400):
I/ ( 1400): exit motDsiSetPowerLevel
I/ ( 1400):
D/ ( 1400): NVRM_DAEMON(1140): pm_notifier_thread: returned from power_displays(false)
I/nvrm_daemon( 1394): NVRM_DAEMON(1140): pm_notifier_thread: returned from power_displays(false)
E/AudioHardwareMot( 1321): Error:Unsupported key = screen_state=off
E/DefaultVoicemailNotifier( 2419): No voicemails to notify about: clear the notification.
D/AccelerometerListener( 2693): orientation: horizontal
D/MccTable( 2693): updateMccMncConfiguration: mcc=724, mnc=2
D/MccTable( 2693): locale set to null_br
D/MccTable( 2693): WIFI_COUNTRY_CODE set to br
I/WifiService( 1469): WifiService trying to set country code to br with persist set to true
D/dalvikvm( 1469): GC_EXPLICIT freed 558K, 31% free 9601K/13767K, paused 4ms+5ms
D/dalvikvm( 2693): GC_CONCURRENT freed 421K, 26% free 6839K/9223K, paused 2ms+3ms
D/Tethering( 1469): MasterInitialState.processMessage what=3
D/PicasaSyncManager( 2253): active network: null
D/PicasaSyncManager( 2253): background data: true
I/MediaUploader( 2232): No need to wake up
Click to expand...
Click to collapse
seems an error of speakers, and also a file in system/etc/spn-conf.xml
WOW
I would love to have this ability. I am not a huge fan of the webtop as is, and if there was a method to use this UI through the HDMI connection (especially through a lapdock) I could see some cool things happening.
Only thing that stopped me from using this is that I can't use the phone
Sent from my MB860 using XDA App
The phone capability would be awesome to have, and I wouldn't doubt that the extremely talented DEV people could find a way to make that work, but no phone isn't a deal breaker for me.
I tried to get awareness of this in the CM9 thread of jokersax, but there is more important talk going on over there at the moment. Hopefully someone will pick up this project further, and make it available to those who want it (and hopefully add in the missing functionalities).
The UI experience I think would clean up the overall install of things on the phone, get rid of the webtop and/or separate OS installation, and provide one OS that will be used for both the phone and a docking experience.
We'll see though .
I can start working on this, this weekend, I've been busy working on a small version of vector Linux that runs through vnc on the lap dock.
Sent from my MB860 using XDA App
Use buildroot or OpenEmbedded to keep it light as possible, plus you can optimize the compiler flags for tegra
Sent from my MB860 using XDA App
OK, hadn't thought of build root, the only thing I'm having a little trouble is getting it to mount the 32 gb SD card, even after partitioning it for vector. Sometimes it'll mount. Some times mope
Sent from my MB860 using XDA App
Mount loop img, I preffer it over reformating the SD card
Also check out Linux for Tegra from nVidia
Sent from my MB860 using XDA App
Will do, thanks
Sent from my MB860 using XDA App
I don't sure if it's possible, but can we run vnc server on android and connect from Chroot/vnc environment. Sort of vnc in vnc. If it's possible we can use it instead aiw application.
Sent from my MB860 using XDA App
I can try that when I get home, but I don't think it'll work.
Sent from my MB860 using XDA App
Heck Yeah
I started up the talk again! haha
Thanks guys for talking/looking into getting this to work. Hopefully bumping this post will get people to check into this more, and be guinea pigs for the testing.
Unfortunately, my schedule and how I use my phone doesn't allow me the time to easily help out with testing things, and I apologize about that ahead of time.
Keep up the good work, and please keep us informed!
Also, I'm not sure if the thread creator would get upset with you working on his stuff (and publishing it for testing, or whatever) without proper consent. Just wanted to throw that out there, just in case. I don't want to see the progress on things to be thwarted due to something as trivial as getting a "verbal" OK to work on making something better.
Thanks for the time all!
This is an app to control and test CPU-related parameters on OTF-compatible kernels. In realtime.
(HP Extreme, HP ICS, Etana. NOT guestekrnL as that has its own app with a lot more features.)
This app is BETA - may contain bugs.
It's been tested on HP 2X Extreme (Stock 20R), HP-ICS-RC1 (CM9-kang) and Etana (2.6) on CM7 & MIUI.
At boot it restores the minimum and maximum frequency using its own script, 88_myrt_otf, which again reads values stored in /data/myrt.
It relies on the kernels' own scripts to restore the OTF-parameters at boot-time. On HP it writes saved configs to /data/spicabootcfg, and on etana to /data/tweakaio/tweakaio.conf
To ROM-Chefs: You may now include this app in your ROMs under the following conditions:
1) You mention it is included somewhere in the ROM-release post.
2) You clearly state the app is in a BETA-state.
3) You link to this thread.
4) That you let me know
The first 3 can of course be done in a single, short line, and the last by posting a message in this thread or a PM.
Changelog:
0.7.2 - Fixed small display bug after adjusting mhz-steps. Added button to delete all files created by the app. Displays CPU-speeds correctly on ICS. Moved download to Google Play
0.7.1 - Adds option to "snap to" frequency and voltage table frequencies. Adds option to show color-coded voltages on CPU-page. On kernels without defaults specificed, selects voltage-table entries as defaults.
0.7.0 - Added support for Etana's new OTF-structure, while hopefully still working on older Etanas and Spica.
0.5.6 - Added support for vibrator strength on Etana. (Kernels May 11th or newer). You may have to uninstall old versions before installing this one, as it adds a permission for vibration.
0.5.5 - Added option to always start at: Last used page, CPU-page, Monitor-page or Reboot-page.
0.5.4 - Added reboot page.
0.5.3 - Fixes crash on Etana NON-OC kernels.
0.5.2 - Auto-moved sliders now work. Now disables controls correctly if root-access denied.
0.5.1 - Fix for permission denied issue on CM9. (Min/Max-Frequencies would not be set.)
0.5.0 - First Beta.
Technical background in post 2. Read it, it will be useful before using the app.
Known issues and misc. in post 3.
Please report any erratic behaviour in this thread, and look closely for whether your settings are restored correctly after boot. If you report a bug or other strangeness, please state the exact version of Myrt OTF, ROM and kernel.
Myrt OTF in Google Play
Tech. background.
Myrt OTF reads the current values of the CPU-frequencies and the OTF-parameters. It adjusts those values in realtime when you move the sliders. When the app exits, those values are written to files which will be used to restore the values at boot. The app itself never reads those files.
This means that if you adjust a value in for example the Etana Tweaker, an app which only adjust values to be used at boot-time, Myrt OTF will not see those values.
Myrt OTF adjusts the values in use now, and also saves them for use at boot-time.
Keep that in mind when using the kernel-specific tools and this app.
If you use either the HP Tweaker or Etana-tweaker, make sure to exit those apps with the back-button, not the home button. (This will force them to read the updated settings when they re-start.)
Known issues:
o Sometimes, when starting the app for the first time after boot, it may show "N/A" for the processor speeds. Just exit the app and start it again to fix it. (The app adjusts the permissions for the required files, sometimes it will try to read the speeds before the permissions are set.)
o If you use/have used other overclocking apps, they probably have left scripts in /etc/init.d which modify the processor-speeds as well. The last script to execute wins. If you don't get the expected min-max frequencies after boot, check for leftover scripts in /etc/init.d
thank you for you work mate.... your works are excelents and always are welcome.... once again, thank you very much
You're welcome!
Thank you very much mate!!
You're a true hero for this community
Thanks man! Love your App very much and I'll try the new one immediately!
Thanks a lot for this Trym
Edit:
Installed and doing what it supposed to do, I hope everybody buys your game Gemi from the Google Play Store to support you amazing work and participation here at XDA
As always tremendous work
Hi I have a bug using etana kernal the app is force closing when I go to system monitor. Using temask Kang 88.
04-22 10:03:12.910 I/ActivityManager(1693): Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.myrt.otf/.OTFActivity } from pid 1863
04-22 10:03:13.000 I/ActivityManager(1693): Start proc com.myrt.otf for activity com.myrt.otf/.OTFActivity: pid=3881 uid=10078 gids={}
04-22 10:03:13.640 I/ActivityManager(1693): Displayed com.myrt.otf/.OTFActivity: +650ms
04-22 10:03:25.420 E/AndroidRuntime(3881): at com.myrt.otf.f.onPreExecute(Unknown Source)
04-22 10:03:25.420 E/AndroidRuntime(3881): at com.myrt.otf.c.a(Unknown Source)
04-22 10:03:25.420 E/AndroidRuntime(3881): at com.myrt.otf.TitlePageIndicator.a(Unknown Source)
04-22 10:03:25.420 E/AndroidRuntime(3881): at com.myrt.otf.TitlePageIndicator.onTouchEvent(Unknown Source)
04-22 10:03:25.430 W/ActivityManager(1693): Force finishing activity com.myrt.otf/.OTFActivity
04-22 10:03:25.930 W/ActivityManager(1693): Activity pause timeout for HistoryRecord{409acbb8 com.myrt.otf/.OTFActivity}
04-22 10:03:28.850 I/ActivityManager(1693): Process com.myrt.otf (pid 3881) has died.
04-22 10:03:28.850 I/WindowManager(1693): WIN DEATH: Window{409286b8 com.myrt.otf/com.myrt.otf.OTFActivity paused=false}
04-22 10:03:36.600 W/ActivityManager(1693): Activity destroy timeout for HistoryRecord{409acbb8 com.myrt.otf/.OTFActivity}
04-22 10:04:01.350 I/ActivityManager(1693): Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.myrt.otf/.OTFActivity } from pid 1863
04-22 10:04:01.380 I/ActivityManager(1693): Start proc com.myrt.otf for activity com.myrt.otf/.OTFActivity: pid=4039 uid=10078 gids={}
04-22 10:04:02.050 I/ActivityManager(1693): Displayed com.myrt.otf/.OTFActivity: +675ms
04-22 10:04:13.490 E/AndroidRuntime(4039): at com.myrt.otf.f.onPreExecute(Unknown Source)
04-22 10:04:13.490 E/AndroidRuntime(4039): at com.myrt.otf.c.a(Unknown Source)
04-22 10:04:13.490 E/AndroidRuntime(4039): at com.myrt.otf.TitlePageIndicator.a(Unknown Source)
04-22 10:04:13.490 E/AndroidRuntime(4039): at com.myrt.otf.TitlePageIndicator.setCurrentItem(Unknown Source)
04-22 10:04:13.490 E/AndroidRuntime(4039): at com.myrt.otf.OTFActivity.onOptionsItemSelected(Unknown Source)
04-22 10:04:13.520 W/ActivityManager(1693): Force finishing activity com.myrt.otf/.OTFActivity
04-22 10:04:14.030 W/ActivityManager(1693): Activity pause timeout for HistoryRecord{40989408 com.myrt.otf/.OTFActivity}
04-22 10:04:15.440 I/ActivityManager(1693): Process com.myrt.otf (pid 4039) has died.
04-22 10:04:15.440 I/WindowManager(1693): WIN DEATH: Window{4092d0c8 com.myrt.otf/com.myrt.otf.OTFActivity paused=false}
04-22 10:04:15.440 I/WindowManager(1693): WIN DEATH: Window{40983dd0 AtchDlg:com.myrt.otf/com.myrt.otf.OTFActivity paused=false}
04-22 10:04:24.690 W/ActivityManager(1693): Activity destroy timeout for HistoryRecord{40989408 com.myrt.otf/.OTFActivity}
Sent from my Optimus 2X using XDA
it's cool~~ thx!
What about including the Autobrightness settings like in GuesteOC?
Would be so nice!
I'm very enthusiastic after testing the app! Very nice work!
Thanks!
Sorry for my english
@Shadowchas: Thanks for the report. That's an odd one. Going to install temasek kang 88 to see if I can reproduce.
Was this beta 0.5.0 or beta 0.5.1?
NedbuR said:
What about including the Autobrightness settings like in GuesteOC?
Would be so nice!
I'm very enthusiastic after testing the app! Very nice work!
Thanks!
Click to expand...
Click to collapse
EDIT. I misread (haven't had my coffee yet.) Sorry, that's not doable, the autobrightness-adjustment setting is a guestekrnL-feature, not available on other OTF-kernels. (As far as I know. If someone knows otherwise, please let me know.)
(My previous answer was about the softkey-lights, which is doable.)
@Shadowchas: I can't reproduce the bug on tamasek 88 with etana 2.6.32.59 (and the kernel-version should be irrelevant here. It was very relevant of course ;-)).
Going to fix some (unrelated) things and upload 0.5.2, can you please try that one and tell me if it still happens? If it does I can PM you a 'special' version to track down the bug.
TrymHansen said:
@Shadowchas: Thanks for the report. That's an odd one. Going to install temasek kang 88 to see if I can reproduce.
Was this beta 0.5.0 or beta 0.5.1?
Click to expand...
Click to collapse
Hi its 0.5.1
Edit will try 0.5.2 now
Sent from my Optimus 2X using XDA
TrymHansen said:
@Shadowchas: I can't reproduce the bug on tamasek 88 with etana 2.6.32.59 (and the kernel-version should be irrelevant here).
Going to fix some (unrelated) things and upload 0.5.2, can you please try that one and tell me if it still happens? If it does I can PM you a 'special' version to track down the bug.
Click to expand...
Click to collapse
No same bug I'm afraid. Happy to help bug fix feel free to pm me
Sent from my Optimus 2X using XDA
K, thanks, will PM you within an hour with a debug-version.
Work great with -42 build CM9!
Thanks for your support to this community...!
Sent by LG Optimus 2x
Thanks, right back at you. I'm still using one of your themes.
Fir example:
app://80C8133B-168C-48C7-B95F-08D6331AE891/_default#/Microsoft.Mcx.Mobile.UpdaterShell;component/Views/AdminView.xaml
What's the structure of this URI?
"app://" - URI scheme, tells the OS how to handle the request (app launcher).
"80C...891" - App's ProductID GUID. Unique for every app (but does not change on updates). Identifies the app in question.
"/_default" - Use the app's normal launch task (as opposed to a launch task for a live tile or something).
"#" - URI fragment indicator, specifies where within the app to navigate to.
"Microsoft.Mcx.Mobile.UpdaterShell" - Name of the assembly containing the desired XAML file (the specification method is WP standard for embedded resources).
";" - Separator between the assembly and the path within the assembly; standard in WP.
"component/Views/" - Path to the embedded XAML view that you want to open (also WP standard format for embedded resources).
"AdminView.xaml" - the name of the (embedded) XAML file that you want to open.
Hope that helps.
Is it possible to call a Javascript function that exists within a WebView from Tasker? I tried calling a URL on the WebView of "javascript:FUNCTION_NAME()", but that did not seem to work.
This is a completely random example. Lets say, from Tasker, that I want to be able to change the background color of the body of the WebView.
In the webview, I have the code
JavaScript:
function ChangeBGColor(NewColor)
{
document.body.style.backgroundColor=NewColor;
}
I want to be able to call ChangeBGColor() from Tasker with a color.
I remember having this same question a while back and was unable to find a solution that didn't involve sending HTTP requests, so I came up with a really weird hacky solution. I'm not sure its going to work for your situation, but maybe it can give you some ideas.
On the web side- have a transparent div element that occupies a single pixel. Put it in a corner or somewhere you won't accidently touch it. Now, add an event listener to it like this:
element.addEventListener('touchend', (e)=> {
let x = e.changedTouches[0].clientX;
let y = e.changedTouches[0].clientY;
renderColor(x, y);
});
On the Tasker side- If you don't already have it, download AutoInput, which is plugin that was created by Joao Diaz before he took over development of Tasker, and its incredibly cheap for what it does. You can use it to simulate a swipe gesture that starts at that exact spot on the screen, and ends at the coordinates you specify. You now have a way to send two values from tasker to you Javascript with a possible range of your screen resolution.
This might be challenging if you want the full spectrum of colors, because ideally you would want 3 parameters with 256 possibe values (0 for 00 and 256 for FF), so you'll have to figure out a way to encode and decode your color. You could either dumb down the resolution of colors and then use some math involving the modulus operator, but a better way would be to send the data via two swipe gestures, which would give you 4 parameters to work with- so to send white with full opacity (FFFFFFFF), simulate a swipe starting at 0,0 and ending at 256, 256 (FF or 256 for your alpha value, and the same for red), have your Javascript function store that in a variable. Then, send the second swipe which in this case will be the same as the first, and you now have 4 values to give you your color. Keep in mind you'll want to offset everything by 1 or you wouldn't be able to send black, since swiping from 0,0 to 0,0 won't trigger anything.